Oslo at first glance

Microsoft is making some noise about Oslo: the new MS approach to Model Driven Development (MDD for friends) and Domain Specific Languages (DSL).

As a practitioner and enthusiast of MDD and .NET I was looking forward to try it and see if there are nuts enough to justify the noise.

At Models Remixed you can find some nice marketing introductory videos about Model Driven & Oslo. By the way, if you take a look to the funny video about Modeling through the ages just remember that the second scene about humans and T-Rex is purely fiction: humans & T-Rex were never concurrent in time. Fortunately T-Rex disappeared a long time before humans get off the trees.

Much more technical & serious videos can be found at the Oslo homepage in MSDN.

Oslo is the Microsoft codenamed project to embrace MDD as a second wave initiative annunciated by Bill Gates before retiring. The first wave was initiated by Microsoft DSL Tools some years ago to support a modeling environment following the steps of Java counterparts EMF/GMF.

The project Oslo is still under development but some bits are available in form of CTP. As seen, Oslo provides the following main components:

  • A Repository. A relational, SQL Server based, repository to store models as schemas and models instances as data.
  • A language called M. Or better said, a meta-language used to create languages (textual DSLs) and schemas or models.
  • A functional language to create grammars MGrammar.
  • A graphical editor called Quadrant able to represent models in a graphical way. I’ve seen some videos but seems it is not released yet in the CTP.

More utilities comes with it to assist in the modeling tasks:

  • Intellipad is lightweight text editor with keyword highlighting capabilities able to help in the editing of a myriad of languages, also custom ones defined in MGrammar.
  • Some commands tools like mx to compile & deploy models to DB Schemas.

I was wondering to know if Quadrant (the visual editor) has a common-ground on DSL Tools. But for them moment it seems to be no common roots here or reuse. The editor seems to be (re-)created totally from scratch.

As a first rough simplification we could say that M allows to define modules (or namespaces). Modules contains types, types contains properties, properties can have any type you have already define or can be a primitive type.

The mx tool is able to compile models and generate tables, views as stored procs. in Transact-SQL.

Types are compiled into tables. Properties are compiled into columns.

Models will be available at the database ready to be consumed by any application able to connect to the database using raw SQL, ADO, Datasets, LINQ, objects models (M models), etc. Of course, other Microsoft tools will be prepared to take profit of the MDD tools: Biztalk, Visual Studio 10, .NET 4.0

I am still playing & learning the ropes with Oslo, but is it difficult not to compare it with other previous experiences like:

I will continue commenting about Oslo as CTPs appears and my knowledge on it increases.

My general impression is that there is a good stuff behing Oslo, but we will have to wait a bit before seeing it in his full glory.

To get started with Oslo and take your own impressions you can download the CTP and take a look here.

More info at wikipedia.

Updated: a nice video about how to start with MGrammar from Channel 9.

Post a comment.