All week at TechEd I worked in the Oslo booth in the SOA area. I worked with Kris Horrocks, Miguel Llopis and Shy Cohen. Kris and Miguel are on the Oslo product team and Shy is an architect and trainer, who recently left Microsoft after over 10 years in Redmond. Working with Softies from the Product Team is always a treat because I get to ‘go deep’ into a technology. This is definitely something I miss about my job as a broad reach developer evangelist. I spent a good amount of time listening, and doing my usual translating, trying to help the customers to understand our vision of Oslo. So the questions came is two groups.
1) I am a developer and this is a developer thing that I have never heard of – so what is it exactly?
2) I am an architect (usually a large enterprise architect) and I use product X right now, how does Oslo compare?
To answer the first one, we started with basic concepts. Oslo is a platform for creating model-driven application and it contains a language, M; tools, IntelliPad and Quadrant; and a (SQL Server) database, Repository. The MSDN Oslo developer center is a great place to start learning – it’s here.
Oslo allows developers to use, extend or to create DSLs (domain-specific languages). DSLs are used to create models which conform to schema or grammar types. All artifacts, i.e. models, schemas, etc…are stored in the Repository. We intend to provide several core DSLs as part of Oslo when it ships as a product. These include MWeb for ASP.NET, MService for WCF / WF, MEntity for the Entity Framework, and MSchema for SQL. You can use these DSLs ‘as is’ to improve developer productivity, i.e. write in a more natural way (for developers) and get output in various formats, or you can extend the DSLs we provide, or even write your own. A fun example that we showed was a ‘MWindow’ DSL that ‘translated’ input in the form of a poem, i.e. ‘Give me a Window, With a Title of New, Color the Outside, And the Inside too, Make them both, blue, light, blue’, which was then translated into XAML, which was next associated with the runtime to output a WPF application.
Of course the key to using any new toolset is understanding the language. For a quick look at M, see the video referenced below.
We also showed some other DSL examples, (such as one for the X10 home automation domain) via IntelliPad. The example shown below is from the IntelliPad team blog and it shows MSchema, or SQL generation.
Quadrant, which was previewed at PDC last fall, is NOT part of the current Oslo CTP (Jan 2009). This CTP includes all the samples we showed at TechEd as well as IntelliPad. Principal Architect of Oslo, Don Box, also presented a session at TechEd on Oslo, which should be available online (eventually) after the show.
As I told many customers as the show, we are ‘early’ in the development of our modeling platform, so if this is an area of interest for you, please grab the CTP, check it out and send me your feedback. Our product team really wants to hear from you.