This article will provide a basic understanding of Microsoft's new Model Driven Platform called "OSLO".
"Oslo" is code name for Microsoft's platform for model-driven development. To understand "Oslo" we need to be familier with MDD and MDA (Model Driven Development and Model Driven Architecture).
MDA and MDD is the recent trends in Software Development and Architecture. To start any thing in Software Methdologies from Requirements till implementation every thing we think off / we visiulazie is a Model. Model can be a Object of you software like Employee, Person etc... it can also be a Component or Module like Service, UI etc... All the design and development that is based on OOP 100% uses these Models to finally create the ouput. Models are used in many ways in our applications a simple example is a Configuration Model which is web.config in the ASP.NET which is very easy to change the behaviour of the Application. "Oslo" brings such type of Transparency and Flexibility to your application.
Oslo is platform which contains Tools and Languages to perform MDA & MDD
Why Languages ?
When we start an software development we will have requirements which are nothing but an Object with a Process. We convert these Objects and their Process (like behaviour) into System Language using GPL. GPL is a General Purpose Lanuage like C, C++, C# etc...
Model is the thing which will be used in between to understand Business and Code. Model is nothing but a description of a domain. It can be a System Domain like UI/Service etc... or can be a Business Domain like Finance/HR etc...
Below example shows a Model of a HTML Page. Language used in HTML, Domain is UI (System Domain). IE is the runtime which understands the Model and shows in a UI form.
GPL helps developers to create Models and Attach their behaviours in a way that system will able to understand it. If we have a language if this solves the purpose of directly using Domain Rules say for example
Object : Employee
Process : Join / Resign etc...
So the Domain Rules are a set of rules to perform Resign or Join for Employess so in this scenario if we can use Domain Lanugauge directly like
Submit Desk Keys
Submit Library Books
Get NOC from Operations
If there is a compiler that understands these rules and convert to System Lanaguage it will improve the productivty of software development a lot.
Oslo comes with a Language and Compiler that will help you to create your own compiler to understand DSL. The above set of rules is called DSL nothing but (Domain Specific Language). This is called M Language.
There is one more tool called Quadrant to view/edit Models / DSLs visually like a Visio or like Work Flow Designer.
Oslo Repository is a simple database which holds the Models / DSLs and Data. Any change in model just push it to database no compailitaion at application level. This will help to reduce changes in your GPL and you can use new ADO.NET provider to use these models from your application.
Oslo "M" Language
M is a language which helps developers to create their own compilers to support DSL. This language also helps to create Models. It is a declarative language to create Models and DSLs.
Oslo "Quadrant" Tool
Quadrant is a visual tool for Business Users to understand Models and DSLs in a visual way. It is like a Desginer IDE for Models and DSLs.
Oslo "Repository" is SQL Server database which stores all the Models and DSLs. Your application can connect to this using ADO.NET and can use these models dynamiclly.
Below diagram shows the summary about Oslo. It has a Language/Designer Tool/Repository. You create your application runtimes in .NET or other platforms and can consume these models in a easy way.
Will publish more articles on each of the components in detail. But this is to give brief idea on "Oslo" and its purpose.