Especially when dealing with code generation, checking “Auto-load changes, if saved” saves you the dialog that asks you to accept file changes from the outside of VS.
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.
After primarily being concerned about Model-driven Software Development in general and specifically the concepts openArchitectureWare brings into our daily developer life, I wanted to figure out what Microsoft’s answer is like.
I separated my research into three parts:
- DSL Tools – Great graphical designers for Domain-Specific Languages
- Software Factories – Powerful project wizards and guidances
- Codename “Oslo” – Essentially a lot of rumors, but also new modeling techniques to be launched around PDC 2008
With the DSL Tools Microsoft offers a graphical user interface for creating DSLs. Compared to MDSD terms, the DSL Tools base DSLs on a static meta-metamodel.
A DSL then consists of Classes and Relationships defining the metamodel on the one hand, and Diagram Elements describing the graphical experience for creating an model on the other hand. Out of this metamodel VS generates a fully typed object-structure as well as designers which can be plugged into Visual Studio or Visual Studio Shell.
To give you some impression these screen shots show the “End-End Wizard UIP”, one of many examples that ship with the Visual Studio SDK:
1) Defining a DSL
2) Just a click on “Run”: The Designer that was automaticly generated for this DSL + a Model following the DSL is opened in a Visual Studio Shell
3) Another click on “Run” starts the generated wizard program that was defined by the model.
T4 – Text Template Transformation Toolkit
For the generation of source code both DSL Tools as well as Software Factories utilize T4, a ASPX-like template language for generating program code, XML or any text files as for example database schemas.
It unfortunately lacks support for polymorphism, multi-file generation, protected regions and custom beautifiers.
Resources on DSL Tools
- MSDN: Domain-Specific Language Tools
- MSDN: Visual Studio 2008 SDK
- DSL Tools Webcast with Stuart Kent (1 hour)
Great presentation on DSL in general as well as the DSL Tools implementation in Visual Studio. It includes some Demos as well.
- Gareth Jones on DSL Extensibility (Webcast)
- VSX – DSL Tools A lot of how-to videos.
- Skinner’s Blog : DSL + UML = Pragmatic Modeling
- stuart kent’s blog : DSL Tools beyond VS2008
- Book: Domain-Specific Development with Visual Studio DSL Tools
- Oleg Sych – » Text Template Transformation Toolkit
Download and Install
- Microsoft EDM Designer
- LINQ to SQL Entities
- Microsoft P&P Software Factories
- Some other Software Factory Vendors
- JaDAL – Just another DSL-Tools Addon Library – Home
- DSL Editor PowerToy – Home
- DSL Import XSD PowerToy – Home
- DSL Cross Model Framework – Home
- Candle – Experimental multi-layers application generator using DSL tools – Home
- Sculpture MDSD Toolchain ScreenCast
- …. There are tons of open source projects on Codeplex that extend or use the DSL Tools
These names were just popping up all over.
- Steve Cook, Book Author, Microsoft, formerly representing IBM on the OMG Team specifying UML2, does now work on DSL Tools + UML.
- Cameron Skinner Comments on Visual Studio Team System, Design and Architecture, .NET, and beyond
- Stuart Kent, Book Author, Senior Program Manager, Visual Studio
- Gareth Jones, Microsoft, Senior Development Lead, Visual Studio
The software factories Microsoft offers are meant to guide through the whole developing lifecycle of an application mostly for one specific horizontal domain.
Software Factories are based on GAX and GAT, the Guidance Automation Extensions and the Guidance Automation Toolkit. These are frameworks to create wizards and macros/recipes that guide through the creation of an solution.
It would be wrong to say that Software Factories by concept incorporate MDSD principles, but there is still an analogy.
I could imagine building a software factory for compositing different models into a very specific ready-to-use-factory that fully considers MDSD principles by using DSLs and Code Generators.
- Smart Client Software Factory, for Visual Studio 2008 (released: April 2008)
- Web Service Software Factory (released: July 2006 and updated December 2006)
- Mobile Client Software Factory (released: July 2006)
- Web Client Software Factory (released: January 2007)
Especially these implementations lack at one point: Refactoring! Since code is generated once, instead of generating over and over again, changes on the templates and the model wont affect generated code.
The Software Factories are not meant to be used as products! That does’t mean they are not made for productive us, but it means that a isv will have to create own Software Factories build upon GAT/GAX or at they will at least have to highly customize the factories for their end customers use.
While DSL-Tools and MDSD often help to get bigger projects done more rapidly, developing a software factories will most likely not return its investments during the first project they are used for. You wont build a car-factory to build one single car either!
- Software Factories MSDN Starting Pages
- Introduction to the Guidance Automation Toolkit
- MSDN Architecture Webcast: Packaging Design and Architecture Guidance for Visual Studio (Level 300)
- Harry Pierson’s DevHawk Weblog : Introducing the Guidance Automation Toolkit
- Software Factory (Microsoft .NET) – Wikipedia, the free encyclopedia
- Microsoft Patterns and Practices Team
- Dennis Doomen.NET: Software Factories..is it worth it?
- Has Microsoft Implemented the Software Factory? I think not
- Making the Business Case for Software Factories
- ARCast – MDA vs. Software Factories
Audio show with Jack Greenfield and Martin Danner on MDA, UML.
- ARCast – DSL and Software Factories
Audio talk with Steve Cook about DSLs and Software Factories.
- Software Factories Gunther Lenz’s Blog on Model Driven Software Development (MDSD) and Software Factories.
- Software development magazine: UML, Agile, programming, testing, project management, jobs
- Software Factory Initiative : Software Factories 2.0
- Software Factory Initiative
Download and Install
- Guidance Automation Extensions and Toolkit
Note: You need to install the extensions AND the toolkit with two separate installers.
- For Example: Smart Client Software Factory – April 2008
- Dennis Doomen – A dutch Speaker and .NET Architect dedicated to the software factory community.
- Jezz Santos Principal Product Development Consultant
- Jack Greenfield’s Blog Software Architect, Enterprise Tools, Microsoft
Since October 2007, when Microsoft firstly mentioned Codename “Oslo” there has been a lot of rumors on what “Oslo” means. Oslo was never announced as a product, but more likely as a concept and strategy influencing Microsoft’s enterprise and development products line.
In fact the Oslo wave grew so big, that the different camps at Microsoft use to describe it differently.
The two latest official Statements were:
- At TechEd Fishbowl in June David Chappell described Oslo as:
- A storage repository and visual modelling tool
- A new version of Windows Workflow Foundation
- A process server to host WCF services and WF workflows
- In September there was an announcement from the BizTalk camp. Douglas Purdy said Oslo now consists of just the modelling components, which are:
- A modelling tool
- A modelling language
- A storage repositoryThat is it. That is all Oslo is. Oslo is just the modeling platform.
But Microsoft still leaves plenty of room for speculations. As I understand, Oslo is a campaign that affects plenty of products and services. Therefore it’s impossible to say what Oslo exactly is just in a few words.
The aspects on Oslo that excite me most, and to which I look forward to most, are:
- The modeling language/tool to describe schemas for the repository as well as meta models and DSLs?
- A repository that is able to store and connect tons of data following these models.
- A process server to host WF, WCF and hopefully own services that brings stability, scalability, hot deployment and all the other services we are used from Java Application Servers.
David Chappel also described the release roadmap, but without confirming any exact dates:
- A CTP Release around PDC (October 27?)
He didn’t say what that will include.
- New Workflow Foundation with .NET 4 and a new Visual Studio version
- The repository including the modeling language and its visual editor + a first part of the process server
- A more complete version of the process server, including lifecycle manager (whatever that means)
The indend, they tell me, is to ship these three chunks of technology in a fairly close succession. As much so as possible.
David Chappell, PDC 2008
There is nothing left but waiting for the PDC in October. So see you there!
- The Road to Oslo #2 – Product Outlines
Conclusion on what different people say about Oslo.
- What is Oslo? « Douglas Purdy
- endpoint.tv – The Road to “Oslo” by Ron Jacobs
David Chappell on what Oslo is about.
- endpoint.tv – Framework Best Practices with an eye towards “Oslo”
- Q&A: What’s Next for BizTalk Server: Oliver Sharp
”Oslo” is the code name for Microsoft’s forthcoming modeling platform.
- ZDnet More Microsoft ‘Oslo’ modeling details fall into place
- plural sight – Don Box on Oslo
- Peter Friese – Microsoft excited about modelling
Well, everyone who seems to be really important does not say anything about Oslo. But still we got some statements in the past.
- David Chappell – Consulter and Keynote Speaker who seems to be a insider to Microsoft and its forthcoming Oslo technologies
- Douglas Purdy – Product Unit Manager at Microsoft. His vision: “to make everyone a programmer (even if they don’t know it)”.
- Jon Flanders