While being at the PDC 2008, a got a first approach on Oslo.

In short Oslo is a large modelling environment which has connections to almost every aspect of .NET development. This seems kind of radical and it probably is. The whole of it still has to be processed in my brains (Which is now running double overtime 🙂 )

The Oslo platform can be divided in:

  • "M"
    This is the language where the textual DSL magic happens.
  • "Quadrant"
    The tool for authoring the model visually.
  • Repository
    For the storage of the models which has been created.

So much magic happens at this moment in the M language. It’s used to build your textual DSLs.

Textual what?

Yes what I was used to was DSL with squares, round, connectors etc etc. (Singleminded me 🙂 ) It’s kind of cool and also a bit complex. You create your DSL with the M language.

After that you have you environment (Maybe even pseudo language) to give input to your domain model.

More about "M"

See an example of the "M" language:

   1: module Microsoft.Samples 

   2: { 

   3:   type MusicItem 

   4:   { 

   5:     Id: Integer64 = AutoNumber(); 

   6:     Album : Text; 

   7:     Artist : Text; 

   8:     Rating : Integer32 where value <= 3; 

   9:   } where identity Id; 


  11:   MusicLibrary :MusicItem*; 

  12: }


In short: "M" is a language for defining domain models and a textual DSL.

M domain models define schema and query over structured data

  • Values, Constraints, and Views
  • Natural projection to SQL

So now we know what it is what is it not:

  • An object oriented language
  • A data access technology
  • A replacement for T-SQL

The M Framework

  • M is itself implemented as M DSL
    • Parser exposed using M DSL machinery
    • Type flow exposed as framework component
  • SDK ships with an evaluator(MrEPL)


So lot’s of new stuff 🙂

Also check out my colleague Michel Heijman about his first contact with Oslo.