Visual Studio Tipp: Auto-refresh file changes

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.

image

Advertisement

Microsoft Buzzword-bingo with Oslo, M, Quadrant, Dublin and some facts about .NET Framework 4.0 and Visual Studio 2010 (October 2008, Pre-PDC)

Update: Post-PDC: Again, what is “Oslo”? M, MGrammar, Quadrant, Repository, textual DSLs, DSL Tools, UML-Modeling (November 2008)

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

Steve Martin, Introducing “M” and “Quadrant”

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.

Don Box, Oslo – Don Box’s Spoutlet – Pluralsight Blogs

With Oslo, we’re doing two things:

  1. 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.
  2. 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.

Page 2 – The Origins of Microsoft’s Oslo Software Modeling Platform 

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?

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.

General Information

Some general information links VS2010. But what I’m interested in more, is the Architecture Section below 🙂

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.

Top-down

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.

Bild 20

Bild 22

Bild 23

Bild 24

Bottom-up

Means exploring existing code and use models to understand how things work or don’t work.

“Bottom-up” Design with Visual Studio Team System 2010 Architect | VisualStudio | Channel 9

Bild 35

Bild 29 Bild 30

Bild 31

Bild 34

DSL Tools, Software Factories and Oslo – Model-driven the Microsoft .NET way

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

The Domain-Specific Language Tools firstly shipped as external package for Visual Studio 2005. For Version 2008 they joined the Visual Studio 2008 SDK.

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

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

Bild 4

3) Another click on “Run” starts the generated wizard program that was defined by the model.

Bild 5

 

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.

A nice thing is that T4 allows you to use your favorite .NET programing language. But it is not even half as powerful as for example XPand template language which is used in openArchitectureWare.

It unfortunately lacks support for polymorphism, multi-file generation, protected regions and custom beautifiers.

Resources on DSL Tools

Download and Install

References

People

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

Software Factories

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.

The Microsoft Patterns and Practices Team is developing a couple of Software Factories, which include:

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!

Resources

Download and Install

People

Codename “Oslo

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:

  1. 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
  2. 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:

  1. The modeling language/tool to describe schemas for the repository as well as meta models and DSLs?
  2. A repository that is able to store and connect tons of data following these models.
  3. 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:

  1. A CTP Release around PDC (October 27?)
    He didn’t say what that will include.
  2. New Workflow Foundation with .NET 4 and a new Visual Studio version
  3. The repository including the modeling language and its visual editor + a first part of the process server
  4. 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!

Resources

People

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

kick it on DotNetKicks.com