One month ago I posted on Microsoft and their heavily discussed facts and rumors about the “Oslo” modeling initiative. Since then VS2010 and .NET Framework 4 has officially been released. But still “Oslo” isn’t totally unveiled!
Oslo Facts and Rumors
Microsoft will be showing a lot of new technologies on PDC. Many topics that were mentioned in context to “Oslo” are not that related anymore. Have a look at the Microsoft PDC Session Calendar in order to get an overview over all the new buzzwords.
In my last post about Oslo I cited David Chappell and Douglas Purdy saying what Oslo is about. Now Steve Martin took Douglas’ list and just decorated it with some nice code names.
M and Quadrant – Modeling Language, Tools and Repository and Oslo
We got new code names! M and Quadrant.
- A language – codenamed “M” – that helps people create and use textual domain-specific languages (DSLs) and data models
- A relational repository – that makes models available to both tools and platform components
- A tool – codenamed “Quadrant” – that helps people define and interact with models in a rich and visual manner
As I understand, M textually defines models, while Quadrant can be used to view and build those graphically. Where textual DSLs comes in here, and wether M defines meta models, represent models, or both is still not clear to me.
With Oslo, we’re doing two things:
- We’re making it easier for people to write things down in ways that make sense for the domain they are working in – the common term for this in the wild is modeling.
- We’re making the things people wrote down accessible to platform components during program execution.
… so we’ve built a design tool for working with the same information our text-centric friends produce and consume….
…Our goal is to make it possible to build real apps purely out of data. For some apps, we’ll succeed – for others, the goal is to make the transition to traditional code as natural as possible…
I can’t yet figure out what he means by saying “out of data”. I hope, Microsoft does not try to make the world even worse with their data-centric viewpoint.
“The language was designed with an RDBMS [relational DBMS] as very, very, very much top-of-mind, so that we have a very clean mapping,” Lovering said. “But the language is not hard-wired to an RDBMS or relational model. And the language is actually built against an abstract data model. We represent the program itself also in that same abstract data model, which is a very LISP-ish idea—you know, where the whole program itself is the same data structure on which it operates.”
The Oslo language also is partially based on TLA+, a language developed by Microsoft researcher Leslie Lamport, Lovering said.
I’m really looking forward to see some samples written in this language!
It’s been tried before and it’s never worked – I have to admit that was my first thought…
…So it’s going to really interesting to see where this all goes. I hope Microsoft pulls it off.
Some Thoughts on Oslo by Andrew Tokely
Windows Workflow Foundation and Oslo
The new WF comes with a new designer and a new runtime which most likely will be a part of the .NET Framework 4.0. The relation to Oslo seem to be the ability to define workflows using the new Oslo Language and to store them in the Oslo Model Repository.
WF 4 is announced to be 10 times faster and will contain a lot new built-in activities and workflow types.
Dublin – The Process Server and Oslo
The process server David mentioned got a own code name, too: Dublin!
Dublin will be extending the IIS Information Services with a more managed way to host distributed WCF and WF Services. Firstly it will be available as an extension to Windows Server 2008, but it is planned to become a part of new Windows Server releases.
Is this the Application Server we have been waiting for so long time?
- Introducing “Dublin” – Microsoft .NET Framework
- WCF 4, WF 4 and Dublin (Word Document)
- Life, Liberty and the Pursuit of Simple Middleware – Steven Martin, CSD Product Management : The Road to PDC – .NET Framework 4.0 and “Dublin”
The fun doesn’t stop here. Next week, you’ll hear more from us on how “Oslo” fits into the picture…
Steve Martin, http://blogs.msdn.com/stevemar
Visual Studio 2010 (formerly Rosario) + .NET Framework 4.0
Visual Studio Codename “Rosario”, has now officially been dubbed Visual Studio 2010 and was announced at September 29th.
Some general information links VS2010. But what I’m interested in more, is the Architecture Section below
- Microsoft Unveils Next Version of Visual Studio and .NET Framework
Reveals extensive enhancements for simplified application life-cycle management, provides sneak peek at all key focus areas for Visual Studio 2010 and the .NET Framework 4.0.
- Visual Studio 2010 and .NET Framework 4.0 Overview
- Visual Studio Team System 2010 Week on Channel 9! | VisualStudio | Channel 9
Architecture with VS2010
David Skinner talks about the features VS2010 leverages for .NET Architects. Generally VS2010 suppose to support both Top-down and Bottom-up modeling approaches. One of the key features is the linking between the models at all different abstraction layers.
All the diagrams were built with a improved version of the the DSL Toolkit. The six main diagrams shipped are:
- The Layer Diagram
- UML 2.1 Use Case Diagram
- UML 2.1 Component Diagram
- UML 2.1 Activity Diagram
- UML 2.1 Class Diagram (Logical Class Diagram)
- UNL 2.1 Sequence Diagram
Model = Code?
The diagrams shipped in VS2010 are not just other views on code, they are real abstractions. But still, there is a connection. One feature I really like is to validate code against models. This validation can even be ran within the build process. Using the Layer Diagram for example, it is possible to enforce that developers don’t violate the relation constraints. If someone then would code a call from business to data layer, the build just fails.
I’ll just show some screenshots I took while watching the video “Top-down” design with Visual Studio Team System 2010 on Channel 9.
Top-down in this context means, starting with modeling and then creating the software and code.
Means exploring existing code and use models to understand how things work or don’t work.