Infragistics and SCSF compatability

Topics: CAB & Smart Client Software Factory
Jun 27, 2007 at 8:33 PM
I have created a nice POC for SCSF but then tried to create a new SCSF project and incorporate Infragistics' CAB Exstensibility Kit (NCEK). Startign at a basic level, I only want to allow the ShellApplicaiton.cs to implement the IGShellApplication but I am getting the error: Microsoft.Practices.CompositeUI.Services.ModuleEnumeratorException was unhandled... Message="An exception occurred while enumerating the modules using the Microsoft.Practices.CompositeUI.Services.FileCatalogModuleEnumerator enumerator." on the ShellApplication().Run() statement. There is VERY little, if any, doc on what to do so my initial guess was to change the ShellApplicaiton to implement/extend IGShellApplication instead of SmartClientApplication. Obviously that is not the only thing or some other issue. Perhaps NCEK has issues with May'07's SCSF release... Any input or experience with this would be greatly appreciated.


Jun 27, 2007 at 9:56 PM

I am also doing POC with Infragistics using RTM version of SCSF. When I got this type of error it was related to the SmartClientApplication.cs class not inheriting from IGFormShellApplication. SmartClientApplication.cs is found in the Infrastructure.Library project.

Modify the class as follows:

public abstract class SmartClientApplication<TWorkItem, TShell> : IGFormShellApplication<TWorkItem, TShell>
where TWorkItem : WorkItem, new()
where TShell : Form

You will also have to add a reference to the Infragistics.Practices.CompositeUI.WinForms.dll to any project that uses Infragistics controls.
Jun 29, 2007 at 1:20 PM
Perfect. Towards the end of the day I did notice a single line of doc that indicated IGFormShellApplication was to be used in place of the FormShellApplication.

Thanks for the push in the right direction.

By the way, I am assuming that the Infragistics workspaces can co-exist with base SCSF/CAB workspaces. For example, I can use a deckworkspace on the shellform and then 'apply' an UltraTabWorkspace to the deckworkspace without issues. Essentially, the Infragistics and SCSF/CAB components and workspaces are 1 big happy family. True (that you know of)? I discovered that I cannot WPF enable an SCSF project and then apply Infragistics CAB components like I can with base SCSF/CAB workspaces. It did not like that.

Again, thanks.
Jun 29, 2007 at 4:20 PM
Few things I found out:

1) Yes SCSF/CAB will work with Infragistics if you inherit from IGFormShellApplication.
-To make things simpler, I used the source code from CEK and did a project reference instead of DLL reference. This allows me to debug Infragistics.

2) I too found the WPF integration in SCSF challenging so we disabled that recipe from our recipe XML configuration files.

3) The Infragistics DockWorkspace save layout feature is rather cumbersome to work with.
-You'll find that the XML file layout produced when persisting the DockWorkspace layout is rather unintuitive. No documentation available on the schema.
-A problem we found is that if the number of SmartParts in the DockWorkspace does not match the number of SmartParts in the Infragistics XML layout file, when you load an obsolete layout, the SCSF application will blow up big time. We still haven't figured out the best way to resolve this issue in our POC.
-For example, let's say the profilecatalog.xml loads 5 SmartParts. You then create a new profilecatalog.xml file that has 8 SmartParts. When you try to load the Infragistics layout that used to have 5 SmartParts, the DockWorkspace will error out - gives you a really nasty error message ; )

4) When persisting the DockWorkspace layout, do not follow the example on their site where they use a hard-coded "RootView".
-Here's the link I'm talking about:
-If you use their example you can only load 1 SmartPart to the DockWorkspace because dynamically loaded modules do not know about each other.
-Don't use the RootView and you will be able to load multiple SmartParts to your DockWorkspace.

Good luck!
Jul 2, 2007 at 12:02 PM
I appreciate your feedback. Thanks and good luck to you as well.
Jan 12, 2010 at 3:50 PM


My goal is to load multiple views from multiple modules in dockworkspace, and then save that configuration in xml via savetoxml method.

So when the user launches the application I can reproduce that saved state. 

I am able to show multiple views in dockworkspace, and save the layout to xml, but how to reproduce the configuration? In Infragistics samples all the views and the root view are in the same module, but I have multiple modules with their own views so what is the concept of loading those views in a shelllayout?