There it says, that if you start VS using devenv /Log, it will log it’s acitivity to %AppData%\Roaming\Microsoft\VisualStudio\10.0\ActivityLog.xml (for VS 2010). And it even comes with an XML that provides some output:

New XSL with Profiling Capabilities

So I tweaked the XSL to be a little bit more “profiling-friendly”. It will now:

This post is not about bad documentation and samples. Much simpler. It’s about the Visual Studio license model.

You can’t tell me Microsoft really earns any real money with development tools. We’ve heard that before. Microsoft is all about Windows, Office and SQL Server. The rest is ecosystem.

Professional for hobbyists

But to come to the point. The Visual Studio License Model makes Software Quality Hard. The problem is, that the most common Professional Edition has major restrictions. It is not worth being called “Professional” version.

A Professional Software Engineer should be able to:

To analyze the code he writes

To run test coverage and find code impacted by tests

To do UI testing

To do web testing

To do performance testing

To explore the architecture of the project he is working on

Agree? Then why is all of this not available in an edition called “Professional”? And if you get the Professional without MSDN Subscription, it is even worse.

The Price Problem

Then just go buy the “Premium” or “Ultimate”, right?

Hm. Who decides this again? The developer? In most cases, sadly enough, the manager. But we also know managers have hard times buying tools. Especially in big enterprises.

Well you don’t buy VS on Amazon – so the prices vary a lot. On this online list two years of VS Professional cost around €1000, the Premium is available for about €7000 and the Ultimate costs €16000.

Now what happens if you try to order an Ultimate? Your manager will ask if Ultimate is a 16x productivity gain, right?

Managers (at least too many of them) are interested in quality as long as they get it for free. Quality Software is already expensive enough. Why do you make it so hard, my dear Tools Devision?

Good Medicine is bad for Doctors

Oh, I forgot: Bad quality software means somebody has to fix it for money. Slow software means more hardware and hence more sold licenses.

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.

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.

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.

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.

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!

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!