In Nov 2009 SQL Server Modeling CTP, we have shipped two domains: Microsoft.Uml2 and System.Runtime.  The domain in this CTP consists of two pieces: Model Schemas and Loader/Exporters.  The model schemas are defined using code name "M" and the loaders/exporters are surfaced as executables.  Our team is in the process of building more value-added domains for artifacts that are part of an application lifecycle in an enterprise for future release of SQL Server Modeling Services. 

The UML XMI loader in the Microsoft.Uml2 domain allows you to load UML artifact metadata from XMI files.  The CLR loader in the System.Runtime domain allows you to load .NET Common Language Runtime (CLR) metadata from the .NET executables and assemblies.  Why would you want to load this metadata into a database?

There are multiple scenarios and business applications that can be enabled by SQL Server Modeling Services - one of the scenario is enterprises having a central database for storing approved published software artifacts, for reuse, discovery, inventory and business intelligence.   If you are doing .NET development, CLR assemblies form an essential part of your application.  Besides having just the high level asset metadata (like various asset repositories) support, you can also get exploded metadata about the assemblies for impact analysis.  The development groups in the enterprise can augment their build policies to publish this metdata (by using LoadAssembly.exe) to the repository after a successful build has been deployed in the production datacenter. 

The same is true for UML artifacts, where your architecture team can share the vetted and approved UML metadata with the rest of the organization.  I will create separate posts around more concrete queries that can be performed over the CLR and UML metadata.  In this post, I would like to request some user feedback for System.Runtime domain. 

Here is how you can try out loading an assembly or set of assemblies to the SQL Server Modeling Services database:

      LoadAssembly.exe Notepad.exe -targetFolder:Notepad -database:Repository

The complete command line reference is available here.

I would like to get feedback on some advanced features of the CLR Loader (will explain this more in a future post)  Would you be interested in participating in a usability study? If yes, please contact me.  I will really appreciate your feedback.  Help us improve the functionality of the CLR loader - the improvements will be released in the next CTP of SQL Server Modeling Services.