StrataFrame Forum

How to use Strataframe in Multi Developer Environment

http://forum.strataframe.net/Topic30602.aspx

By lastcanary - 11/16/2011

Let me be as clear as possible.

We are two developers. My boss installed Strataframe on a Windows Server 2003 PC (CPU is 32 bit Core2Duo). He used the Strataframe source code project, modified the source code and build new dlls. He managed to install these new dlls to the server by using a batch file similar to AfterBuild.bat. Everthing is working fine in this PC. The strataframe database is also located in this server.

I installed Strataframe on a Windows Server 2008 R2 PC. The Visual Studio 2010 contains the Strataframe menu.

In order to be able to work with the same project I have to install the new dlls. I took new dlls from him and used a similar AfterBuild.bat to register the new dlls. Here is my AfterBuild.bat:


for %%x in (*.DLL) do "%ProgramFiles(x86)%\Microsoft SDKs\Windows\v7.0A\Bin\NETFX 4.0 Tools\gacutil.exe" -i "%%x" -f
for %%x in (*.DLL) do copy /Y "%%x" "%CommonProgramFiles%\MicroFour\StrataFrame"
for %%x in (*.DLL) do copy /Y "%%x" "%CommonProgramFiles(x86)%\MicroFour\StrataFrame"


After executing this batch file and try to open Visual Studio 2010 the following error appears:


ArgumentException
  The stream could not be evaluated because the resource could not be located.

Source     : MicroFour StrataFrame Base

Stack Trace:
   at MicroFour.StrataFrame.UI.Localization.CreateDataTableFromStream(Stream Input)
   at MicroFour.StrataFrame.UI.Localization.RegisterEmbeddedXmlFile(Assembly ContainingAssembly, String FullPath)
   at MicroFour.StrataFrame.AddIns.AddInManager.OnConnection(Object application, ext_ConnectMode connectMode, Object addInInst, Array& custom)



When I close the error, the visual studio starts but without the Strataframe tab. When I try to access a form using the new dlls I get an error:


The specified DataSourceKey [] was not found within the collection.


When I run Strataframe setup and choose modify and repair, I return back to the situation when I first installed Strataframe.

Could you please help us?
By Ivan George Borges - 11/16/2011

The message tells you that it can't find the built in Localization keys. I assume you are pointing your StrataFrame Data Store to the one installed on his machine. You should install SF on your machine, get it working, then if his DLLs are working fine after him changing and recompiling the source code, get his DLLs from his "C:\Program Files (x86)\Common Files\MicroFour\StrataFrame" and copy them to yours and drag them to your "C:\Windows\assembly" folder.
By lastcanary - 11/17/2011

Dear Ivan,

Thank you for your reply. I think that I am doing exactly what you suggest. The batch file is copying the dlls to the proper location and by using gacutil I am registering to GAC area. Could you please check the batch file?

for %%x in (*.DLL) do "%ProgramFiles(x86)%\Microsoft SDKs\Windows\v7.0A\Bin\NETFX 4.0 Tools\gacutil.exe" -i "%%x" -f
for %%x in (*.DLL) do copy /Y "%%x" "%CommonProgramFiles%\MicroFour\StrataFrame"
for %%x in (*.DLL) do copy /Y "%%x" "%CommonProgramFiles(x86)%\MicroFour\StrataFrame"

I dont know how to access the data store directly (since the menu is not there) but by using the localization editor I checked that the data store is saved correctly and the localization projects are shown from the original location.

It is very important for us to work together in this project to meet the deadlines but we couldnt be able to manage it.

Could you please help us?
By Ivan George Borges - 11/17/2011

Before copying DLLs and such, try a plain SF install on your machine pointing to the SQL Server you need. You should be able to get it working with the original install properly, test creating a new Project, things like that. After you get it working, then we go and try copying the other DLLs to your GAC.

After you get it working, then update the DLLs in the GAC. The batch file seemed fine, but I would advice you to do it manually to be sure. Drag the DLLs from one folder to the windows\assembly folder. By the way, you are administrator at your machine, right? To be sure the install goes fine, right click the SF installation EXE and run it as administrator.
By lastcanary - 11/17/2011

Ivan George Borges (11/17/2011)
Before copying DLLs and such, try a plain SF install on your machine pointing to the SQL Server you need. You should be able to get it working with the original install properly, test creating a new Project, things like that. After you get it working, then we go and try copying the other DLLs to your GAC.

After you get it working, then update the DLLs in the GAC. The batch file seemed fine, but I would advice you to do it manually to be sure. Drag the DLLs from one folder to the windows\assembly folder. By the way, you are administrator at your machine, right? To be sure the install goes fine, right click the SF installation EXE and run it as administrator.


I uninstalled strataframe completely and then installed it. It was working perfectly well.

I drag the dlls from one window to another window containing the assembly folder as you have suggested in another post. When I run Visual Studio I noticed that the Dlls are not registered to GAC at all.

I run my batch file again and I am sending you the resulting contents for the assembly folder attached.

Could you please help us? We are totally locked to this issue in our company.

Note: Please take also into consideration that the PC building the dlls has a 32 bit Core2Duo CPU and Windows Server 2003 installed and the PC that we are trying to install has a 64 bit Core2Quad CPU with Windows Server 2008 R2 installed
By Ivan George Borges - 11/17/2011

Try deleting them all from the GAC first, then copy the ones built from the other machine back. Also, copy them to your machines "C:\Program Files\Common Files\MicroFour\StrataFrame" too. In my projects, all SF DLLs reference the DLLs from the Common Files. You could also check that your boss compiled them using Any CPU for the Plataform, you will find that in the Configuration Manager.
By lastcanary - 11/17/2011

I deleted the dlls from the GAC, copied the new dlls to the windows/assembly folder and StrataFrame folder. I am still getting the same error. I am now asking to my boss for the configuration. Any more suggestions?
By Ivan George Borges - 11/18/2011

I can't think of anything more specific at the time being. Maybe you could also copy the source code he changed on his machine to your machine and compile it with your Visual Studio.
By lastcanary - 11/18/2011

My Boss told me that he compiled using "any CPU" option.
By lastcanary - 11/18/2011

I copied the source code to my macine and build it, nothing changed, I am stilll getting the same error.

Please help
By Trent L. Taylor - 11/18/2011

I got your PM, but I am going to respond here so that everyone else gets the benefit of this discussion as well.  First of all, there isn't a lot that can go wrong, so we just need to backup and troubleshoot one piece at a time.  We too work in a multi-developer environment, so StrataFrame is geared this way.

To begin, you made a comment about the StrataFrame menu item no longer being there, this is because we use an Add-In to load StrataFrame.  When an add-in fails, Visual Studio will set the add-in file to a LoadBehavior of 0 to keep it from loading next time.  I can tell you where to change this later, but that is why it went away.

Let's start fresh on your machine.

  1. Let's remove all of your connection settings on YOUR machine where things are failing
  2. Open Windows Explorer, and on Windows 7 you will find the files here: C:\ProgramData\MicroFour\ConnectionData
  3. Delete AppKeys.dat and Connections.dat
  4. Next, Uninstall StrataFrame on your machine
  5. Make sure that Visual Studio is closed
  6. Install the new StrataFrame build.  When prompted, check the "Skip the data deployment phase"

    http://forum.strataframe.net/Uploads/Images/f5dd3e6b-cda1-4df1-96fc-cabe.jpg

    The database has already been setup by the first and functional install of StrataFrame.  No need to do this again.
  7. After the installation, when you go into Visual Studio, you will be prompted to connect to SQL Server.  Enter the appropriate SQL Server connection settings.
At this point you should be good.  If you run into any errors, please post them.  Thanks.
By Ivan George Borges - 11/18/2011

Well, I am drawing a blank over here. The message is telling you that it can't find the Localization embedded files in the SF source code. Those are stored into a folder called Localized Messages, and are all set as Embedded Resources. I don't know what your boss changed in the source code... You could probably start asking him and thinking if his changes could produce the error. Reinstall SF on your machine and get it working. Then get the list of changes he did and start changing on yours too, one by one, and test at each build. This way you will be able to identify what causes the error and we can try to fix it from there.
By Trent L. Taylor - 11/18/2011

Ivan is right as well, if you have been making changes, then backtrack and figure out what might have changed.
By lastcanary - 11/18/2011

Thank you for the replies. I am going to apply Trent's message step by step and inform you about the results. Meanwhile I would like to tell that I asked to my boss and he told me that the changes in StrataFrame source code are only minor changes and they can be called only bug-fix changes. He also mentioned that these changes are working perfectly well in his PC (Windows 2003 Server/32 bit Core2Duo CPU).
By lastcanary - 11/18/2011

Trent L. Taylor (11/18/2011)
I got your PM, but I am going to respond here so that everyone else gets the benefit of this discussion as well.  First of all, there isn't a lot that can go wrong, so we just need to backup and troubleshoot one piece at a time.  We too work in a multi-developer environment, so StrataFrame is geared this way.

To begin, you made a comment about the StrataFrame menu item no longer being there, this is because we use an Add-In to load StrataFrame.  When an add-in fails, Visual Studio will set the add-in file to a LoadBehavior of 0 to keep it from loading next time.  I can tell you where to change this later, but that is why it went away.

Let's start fresh on your machine.

  1. Let's remove all of your connection settings on YOUR machine where things are failing
  2. Open Windows Explorer, and on Windows 7 you will find the files here: C:\ProgramData\MicroFour\ConnectionData
  3. Delete AppKeys.dat and Connections.dat
  4. Next, Uninstall StrataFrame on your machine
  5. Make sure that Visual Studio is closed
  6. Install the new StrataFrame build.  When prompted, check the "Skip the data deployment phase"

    http://forum.strataframe.net/Uploads/Images/f5dd3e6b-cda1-4df1-96fc-cabe.jpg

    The database has already been setup by the first and functional install of StrataFrame.  No need to do this again.
  7. After the installation, when you go into Visual Studio, you will be prompted to connect to SQL Server.  Enter the appropriate SQL Server connection settings.
At this point you should be good.  If you run into any errors, please post them.  Thanks.


Hi,

I finished all 7 steps successfully without any error. Everything is working fine with Strataframe, I am waiting for the next steps to install new source code dlls.
By Trent L. Taylor - 11/21/2011

Now, as for new source code, it sounds as though you have made changes to StrataFrame.  Honestly, this is really never a good idea.  If there is something at the root level that is an issue, then we should be made aware so that it can make standard distribution.  If you are extending the framework, you should create your own assemblies that inherit from StrataFrame.  Then you can override, etc. and not have any core issues.

But at any rate, you will want to get the most recent version of source code.  You will then build it in debug mode so that you can track any errors that may come up during development more easily.  These assemblies should be updated in the GAC once built using the gacutil.  The AfterBuild.bat files attempt to do this for you in the post build events of the project.  If you open up the GAC and see multiple versions of the same assembly of StrataFrame with the same version, then you will need to remove the one that you are not using.  I recommend building StrataFrame in MSIL (All CPUs) as this will reduce downstream issues.

If you take any of these steps and it doesn't work, then you know that it is the source code you are building.  At that point, there is not much I can do for you as you will need to talk with your co-worker and figure out what has changed and how to resolve these issues.
By lastcanary - 11/22/2011

Hi Trent,

Please take into consideration that the changes to the StrataFrame source code is working perfectly well in my boss PC (Windows 2003 Server with 32 bit Core2Duo CPU). The changes to the source code are only some bug-fix changes, new properties are added and Foreign Key Support is added. We can share the code with you if it is required.

We are thinking that if the dlls are working in one environment perfectly well, they should be able to work in another environment too.

Could you please help us?
By Ivan George Borges - 11/23/2011

Now you have SF originally working on your machine, have you by any means tried making the changes one by one to your source code, compiling it, and testing it? Since he has made changes to the source code, I would think he has a list of them. And as they are not many, as you said, it would point you directly to where the issue could be.
By lastcanary - 11/23/2011

I will be trying to implement the changes to the new version of StrataFrame and post the problems here.
By lastcanary - 11/24/2011

Thank you for your support. I managed to handle the problems with 1.7.3.5 by applying all changes one by one.

I like version 1.7.3.5 BigGrin
By Trent L. Taylor - 11/24/2011

Glad to hear it! Smile
By Marcia G Akins - 11/24/2011

Hi Trent.

what the heck are you doing working on Thanksgiving? Do you ever take a break?

Happy Turkey Day!

-- Marcia
By Ivan George Borges - 11/24/2011

Glad you got it going! Cool