Release Note 018: Providing strong names for the Consultingwerk Assemblies

Starting the next official release of the SmartComponent Library (expected around the release of OpenEdge 10.2B Service Pack 5) we are going to provide strong names for the Consultingwerk Assemblies:  

  • Consultingwerk.Design.dll 
  • Consultingwerk.SmartComponents.dll 

  • Consultingwerk.Support.dll  

The assembly Consultingwerk.SmartComponents.Design.dll will not be strong named.  

The strong naming of the assemblies is required to simplify the deployment of SmartComponent Library based applications on network fileservers, see the following MSDN Blog post for a discussion on strong named assemblies and deployment on network file servers:  

Even though Progress.NetUI.dll is digitally signed starting 10.2B03 it does not provide a strong name. As a consequence it is not possible to strong name Consultingwerk.SmartComponents.Design.dll which is the only assembly that has references to Progress.NetUI.dll. The other assemblies used by the SmartComponent Library (Consultingwerk.Design.dll, Consultingwerk.SmartComponents.dll and Consultingwerk.Support.dll) do only contain references to core .NET assemblies and thus can be strong named.  

This restriction is not really an issue for the functionality of the SmartComponent Library at runtime: The Consultingwerk.SmartComponents.Design.dll has never been required at runtime clients, it's just required for the OpenEdge Architect Visual Designer enhancements that are responsible for the rich design time experience of the SmartComponent Library.  

The only files affected by issues (compilation, deployment) with Consultingwerk.SmartComponents.Design.dll are the four procedure files:  

  • Consultingwerk\SmartComponents\Support\SmartBindingSourceDesigner_ShowAddFieldsChooserForm.p 

  • Consultingwerk\SmartComponents\Support\SmartBindingSourceDesigner_ShowImportSchemaForm.p 

  • Consultingwerk\SmartComponents\Support\SmartBusinessEntityAdapterDesigner_ShowBusinessEntityTablePic.p 

  • Consultingwerk\SmartComponents\Support\SmartPanelControllerDesignerForm_ShowDesignerDialog.p  

As stated earlier. These procedures are only required within the OpenEdge Architect Visual Designer and do not need to be deployed to end-user sites. Even when you compile them with access to the Consultingwerk.SmartComponents.Design.dll we do not except and issues when deploying the R-Code (with the other R-Code contained in the Consultingwerk\SmartComponents\Support folder) as they will never be executed at runtime. We have chosen to use procedure files for this part of the SmartComponent Library design functionality to avoid dependencies from the application runtime to the Design time assembly.  

Thus for the goal of simplifying the deployment of SmartComponent Library based applications on file servers this inability of strong naming the Consultingwerk.SmartComponents.Designer.dll is not relevant.