See also: Open Letter to Douglas Purdy: Eclipse, Oslo, and how to invent the future together
The PDC is over, and most contents including the Oslo SDK (without Quadrant) and all PDC Session Videos on channel9. Thanks! But where are we now? If you want a “brief” overview, you should at least have a look at A Lap around “Oslo”.
Jump to “What Oslo definitely is!”
What Oslo is not!
I’ll start with correcting some of my former assumptions in DSL Tools, T4, the Software Factories and “Facts” Rumors about Oslo.
Built upon DSL Tools?
No, Oslo (M and Quadrant) is not built upon DSL Tools, T4 and the UML Tooling in Visual Studio 2010. It’s totally apart. The DSL Tools are the here and now, while Oslo still is “Pre-Pre-Pre-Alpha” (Douglas Purdy).
Douglas promised that his team is working tight with the VSTX team in order to bring this together. He mentioned the possibility of using M as the backing metamodel format for the DSL Toolkit. Graphically edited DSLs could then be converted, described in MSchema and stored into the Oslo Repository or MGraph files. Update (12.Nov): Later in his talk “a lap around Oslo” Doug also said his the team is discussing to schematize the DSL Toolkit, and let the graphical DSLs live within Oslo.
A move towards UML/OMG?
No. I don’t think so. Microsoft joined the OMG and they support some UML Diagrams in Visual Studio 2010. But so far this has not to do much with Oslo.
Update (12.Nov): Someone asked about how Oslo relates to XMI and UML. Doug’ promised that they will model the UML-Domain and let the UML Designers in Visual Studio live within Oslo.
Talking of Model-driven Architecture (MDA) it seems that Microsoft avoids this abbreviation. They rather talk about Model-driven Development and Model-driven Applications – I’ll write more on this in a separate post.
A Application/Process Server?
Dublin is announced to be Model-driven, but it is not a part of “Oslo”, but rather related to Windows Azure and IIS. The plan is to host cloud-enabled services both locally on Dublin and in the cloud on Windows Azure with maximal control and minimal effort for deployment and configuration.
Read Workflows, Services, and Models by David Chappell to see how Dublin relates to Oslo.
A new Version of WF and WCF?
WCF and WF were model-driven right from the beginning, but in the next versions the source for the models that drive Workflows and Services might come from Oslo.
MService is a textual DSL that combines service configuration, implementation and workflow definition into one resource.
A new Modeling Language Family
Yes, it’s definitely about a new modeling language family “M”, consisting of three core languages. These languages do all have similar Syntax and a shared type system.
Defines schemas for data instances. Quite comparable to XSD and DTD.
JSON-like format for capturing concrete data instances.
Defines grammars for textual DSLs. Could also be looked at as a Unicode-to-MGraph-tranformation language.
There are other languages planned for some horizontal domains as Database, Services and Web. But here you can even put some more “Pre”s before the “Alpha”.
A Language Workbench for textual DSLs!
Well, I’ll just copy Martin on that.
At some point I really need to rethink what I consider the defining elements of a Language Workbench to be. For the moment let’s just say that Xtext and Oslo feel like Language Workbenches and until I revisit the definition I’ll treat them as such.
Martin Fowler Bliki: Oslo
A new Storage Repository!?
Oslo Repository is a tool and a framework that allows storing models into SQL Server. I’m still quite torn on this idea.
- Design-time story: Many tool vendors tried backing repositories supporting simultaneous changes. But sharing them in files is just easier. If it was on the web – ok, then we had to talk about security and stuff – But as it is tied to SQL Server 2008, it looses a lot of my attention.
- Runtime story: Having models in a database at runtime at least seams more natural in my opinion. What then to store there is another thing to figure out. Is it meant to store operational data or configurations and application definitions? That’s what is left to the customer to decide.
The repository compiler (mx.exe) generates T-SQL code out of your models, while it supports two modes:
- Plain T-SQL: Mapps your explicit MSchema definitions or implicitely “guessed” schemas from MGraph data to data tables.
- Repository SQL: A Repository is a database pre-populated with tons of schemas describing the “Microsoft IT world”. It also supports some core services, as are:
- Deployment: Import and Export from and to M + Webservice Deployment to Dublin
- Security: Tables hidden behind views, claims-based security
- Catalog: Keeps the semantics you have in your MSchema as not everything maps directly to T-SQL.
- Versioning: Sadly not instance data versioning. But you got full SQL Server 2008 capabilities including SSIS, Change Tracking, Replication, … + Due to the separation of views and tables you can support backward-compatible schema evolution.
Oslo does not come with a own data-access technology stack. It rather gives you a generator for EF-Models.
A Graphical Modeling Toolkit!
Yes. Quadrant lets you interact with models graphically. It’s highly generic, customizable and it looks great.
But as I’ve understand, Quadrant only works on models stored in the Repository, hence SQL Server. Really interested to see how this works together with your textual definitions you might rather store in Version Control.
Release Dates, Packaging and Pricing
From Microsoft “Oslo” Frequently Asked Questions
Q: What is the timeline for shipping “Oslo”?
A: We are not disclosing the release schedule at this time. We are committed to releasing regular Community Technology Previews (CTPs) after PDC and will engage with the developer community on an on-going basis. The Oslo Development Center (http://msdn.microsoft.com/oslo) will also be the place to learn about the latest Oslo-related downloads.
Q: Is “Oslo” shipping with the rest of the Visual Studio 2010 product line?
A: We are not currently disclosing schedules or packaging.