Microsoft yesterday released a new ’May 2009’ CTP for their ‘Oslo’ toolset. This can be downloaded from Microsoft’s web site at
The release is notable for a couple of reasons. First, it provides insight into the move away from the ‘three-in-one’ language approach (MGraph, MSchema and MGrammar) towards a single unified, ‘M’ language. Second, it contains an early version of ‘Quadrant’ which, to date, has only been visible outside the company as part of limited CTP releases (e.g., the PDC release).
Other highlights include an early version of UML domain models, together with an XMI repository loader. Microsoft is publically committed to providing strong UML and XMI support in ‘Oslo’ and this is our first glimpse of what they intend. There is also a CLR domain model and a corresponding .NET assembly loader.
The version of ‘Quadrant’ will raise a few eyebrows. It containsfunctionality for browsing the repository, inspecting types and listing database sessions.However, those of us who played with earlier versions will be surprised to find that model creation facilities are missing. You can drag itemsout into workpads onto the canvas as before, and use different views,but there are no tools for creating new models or amending existing models. This does not, however, indicate some reversal of Microsoft’s intentions.The Oslo team explain that they simply want to focus on model browsing in this CTP release, and to get feedback on that one aspect of the tooling. Expect to see the ’missing’ functionality re-emerge in future CTPs.
In a similar fashion, only a limited number of domain models are installed in the repository in this release. In earlier releases we saw a whole lot more stuff that Microsoft is working on. The absence of model domains in this release does not imply in any way that Microsoft has ceased working on those domains. This is a constrained release only.
Update: I just discovered that one new feature of Quadrant is the ability to point it off at any SQL Server database. This represents a further change in emphasis away fromthe purely respository-centric approach that was originally touted a year and half ago when MS first started talking about their plans. It’s very welcome. So much metadata, and so many existing models are currently scattered to the four winds, and allowing Quadrant to explore and expolitthose models in a unified fashion is a very good idea. Let’s have support for other stores, and not just SQL Server.
My initial experiments with LoadUML suggest that the tool is not yet fully functional. For example, it fell over the use of the xmi:type attribute on the uml:Model element. It failed to handle a type element of an ownedAttribute, and it didn’t recognise the packageImport element.The error messages were not always very helpful and the tool is slow. This is very early preview (’alpha’) code, so we must make allowances for these sorts of problems. With a little messing around, I managed to successfully import a simple XMI file into the repository.
Update:The Oslo team plans to do a lot more work in this area to ensure that their XMI tooling works well with a spectrum of more widely-used modelling tools. This, apparently, will mean building support for a number of XMI variants.
Initial experiments with LoadAssembly went a little more smoothly. Again, the tool is very slow, and can take several minutes to complete imports. The basic problem is that the tool imports a full closure of all assembly dependencies. This means that every time you import an assembly, you are likely to suck in large amounts of additional metadata for.NET framework assemblies and anything else you are dependent on! Nevertheless, the tool managed to cope with the assemblies I threw at it without any errors.
This early version of Quadrant has big problems with big models. It could, in some cases, take several minutes of 100% CPU usage to display the contents of a folder. Memory usage can also grow to monumental proportions. Do not import assemblies with large numbers of dependencies! Another problem is that the ’Refresh’ facility in Quadrant doesn’t appear to work properly yet. After re-importing a model, you will need to close the Repository Explorer and re-open it to see the changes. Worse than that, when importing for the first time, I found I generally needed to close and re-open Quadrant itself to see new folders. All in all, don’t expect Quadrant or the new loaders to behave very well. This is very early preview code.
I haven’t yet played with the new version of IntelliPad or M. I’m looking forward to seeing where these technologies have got to.