The last 3 years I was working a lot on evolving the Software Factories Paradigm and applying it to industry problems. Part of this effort I spent researching Domain Specific Modeling Languages with the Microsoft DSL Toolkit which is part of the Visual Studio SDK. Therefore I was also very curious to see what the “Oslo” project is all about so I downloaded the CTP from http://code.msdn.microsoft.com/oslo.
What is “Oslo”?
In short “Oslo” is a platform for Model Driven Applications. If we are talking about model driven applications then we can split a model driven approach into three major categories:
1. Drawings: These are for example the white board drawings we all use to communicate architecture and design in a more informal way. Very often we use a tool such as Visio to capture those thoughts to document them.
2. Model Assisted: In this category we capture applications that use models of some form to declaratively describe parts of it. This could be a XML based textual or graphical DSL that is used to define parts of the software.
3. Model Driven: Applications such as Microsoft SharePoint Server that uses CAML as descriptive modeling language to drive the application.
The overall goals of the Model based applications paradigm is to allow for high flexibility to enable agile application development, increase productivity by focusing of the essence rather than the ceremony of context tasks, and last but not least to provide higher transparency for software systems.
What are the parts that make up “Oslo”?
· “M” : Textual language to author models.
· Quadrant: Tools for graphical interaction with models and DSLs.
· Repository: SQL based database to store and share models.
The key concepts of “Oslo” are shown below:
What is the architecture of “Oslo”?
On a very high level the “Oslo” architecture is shown below:
In my next post I will drill more into the details of using “Oslo” to write your own languages, so stay tuned…..