Smart Client Software Factory Review – Day One

Its looking like we’re going to use Smart Client Software Factory (SCSF) 2008 as the UI framework for writing my next project. As part of that, I’m spending the next few days getting up to speed on SCSF (since I’ve never “really” used it before in anger)… here’s my thoughts as I go through the install process and the guiding SCSF Lab sessions…

12.15: OK. Firstly, the default install we have on my PC doesn’t work – when I try to create a new SCSF project type (Guidance Packages/Smart Client Development) it comes up with a warning about a missing registration to a VB dll – not a good start. Drop a colleague an email to ask about this… seems like it’s a known problem with our builds and I need to reinstall it.

12.25: Reinstalled the SCSF framework off the network.

12.30: Open up the Lab sessions word document, and successfully create a new Project.

12.35: Firstly thing I notice is that assembly Titles, assembly Names, and Namespaces in those assemblies do not match e.g.

  • Assembly name: AdventureWorks.Infrastructure.Shell
  • Namespace: AdventureWorks.Infrastructure.Shell
  • Assembly Title: Shell

Why is the Title not the same as the other two (Title is what you see in Solution Explorer)??

12.40: Following the instructions in the word document, I hit F5 to run the project. It crashes immediately:

Assembly file C:\Dev\AdventureWorksCyclesEx\bin\Debug\Infrastructure.Module.dll was not found.

I email a colleague again and then go for lunch.

13.45: I find out how to fix this problem – it’s actually related to that mismatch of assembly names etc..

There’s a config file called ProfileCatalog.xml which lists the different modules of your application. It puts in the Infrastructure module automatically, except it does it wrongly – it puts in the Assembly Title instead of it’s Name e.g. “Infrastructure.Module.dll” instead of “AdventureWorks.Infrastructure.dll”. Change this and it works:

    <ModuleInfo  AssemblyFile="AdventureWorks.Infrastructure.Module.dll"/>

14.00: Try to add a new smart part to the Shell, but the toolbox doesn’t yet have the controls in there, so I have to add them myself (Microsoft.Practices.CompositeUI.Winforms.dll).

14.05: I drag a Tab workspace onto the Form. Visual Studio complains that I already have a reference to the above WinForms dll. I have to remove the reference from the project and then it works. Why??

14.20: More problems with assembly references. It seems that the project by default references one version of the CompositeUi dlls whereas the one I added above is a different version, so I’m now getting version mismatches. I have to go through all the projects in the solution, remove the references to the old version and add the references to the new one.

To be continued…


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s