Dennis Mulder - Convert.ToString(My.Core.Dump)

Software Factories and the Microsoft product groups

It seems the Software Factories vision is shaping up good. While I have had the privilege to talk to several people within the Microsoft product teams that are working on the Software Factories vision I have always complained that it seemed the vision wasn't shared among the entire company. Based on the things I have seen and heard on the SOA & BPM Conference last week, I think things will shape up soon. Some facts:

The Connected Systems Division is openly expressing their vision for the next wave of the technologies under their responsibility:

  • Internet Scope ("Web Services")
  • Models ("Declarative Programming") -> Metadata driven -> DSLs!!
  • Federation ("Mesh Architectures") -> Embracing the fact that the world is diverse
  • Cloud ("Software as a Service") -> At service & communication level

I'd like to pick the one on Models. Models are all about higher abstraction levels, metadata, domain specific languages, one of the core pillars of Software Factories. Haven't we seen this before? As soon as the VB Forms Designer appeared, massive amounts of people were able to Windows Development. Before that era the Windows API was only programmed by the happy few that understood Petzold his books. You could argue that bringing Modelling into the SOA, SaaS, and connected systems in world will accelerate the adoption of these technologies (or should I say "theories"?). And there's a whole lot of domains that can be modelled in the connected applications domain: Workflow, Rules, Security, Deployment, .....

It was very nice to see that Craig McMurtry is calling the Windows Communication Foundation a Software Factory template for communication. On the other hand in fact he is a competitor as he is writing a book on WCF, just like we are :). He was saying it is a modelling language for a specific domain of problems. Interesting to see that there in fact is no modelling tool involved yet. On the other hand that is a common misconception of the Software Factories Vision. Out there in the marketplace I have seen some confusion how DSLs relate to Software Factories, which is why I am adressesing this here. Some people think DSLs and Software Factories are the same which is not true. DSLs address specific small problems in a Software Factory that lend themselves to abstract by using visualization. Building a solution for a particular domain involves solving potentially 100's of small problems in smaller subdomains that aren't always straightforward to model. It is the expectation that only 20% will be solved with modelling assets based on tools like the DSL tools, the rest is solved by one or more of the other pillars of the Software Factories vision (Software Product Lines, Architect Frameworks, Guidance in Context).

At least the base of the Communications factory is there, the WCF framework is there to build a factory around. There's quite a bit of work that needs to be done to raise the abstraction level, while Microsoft did a great job in unifying the API there's still a large gap between what Enterprises need and what the technology is all about. There are certain viewpoints of an SOA app that lend themselves to model. Within Avanade we have been working on a DSL for SOA apps based on ACA.NET and WCF that should raise the abstraction level of the layering of an SOA architecture and the contracts involved. The goal is to draw diagrams that can be understood by non technical people and generate WCF code based on thoroughly tested and proven code templates. ACA.NET is the Avanade execution architecture based on Enterprise Library. Ironically Enterprise Library was originally based on ACA.NET, as you can read here. Just like we have seen with the original ACA.NET framework (logging, caching, data access, security etc.) we are now seeing that our frameworks become part of the platform. Specifically we tossed out the SOA framework which has been around for 3 years now and replaced that with WCF, while adding the power of Aspect Oriented Programming (a must read article by our Chief Architect Kyle Huntley).

Originally I was triggered by this article to start this blog post, but basically this article turns out to be about a topic that is keeping me busy for over half a year. The article is all about the Extensibility of Visual Studio. Microsoft recently released the Visual Studio SDK v3 which contains the tools required to extend Visual Studio. Originally this toolset was provided to Visual Studio Integration partners (VSIP). Companies like Deklarit, Compuware, etc that provide commercial products that are built on top of Visual Studio. Interestingly now they are providing the SDK to everybody. The goal is obvious; try to create an Eco-system around Visual Studio extensiblity and drive the Software Factories vision. \\

I have been busy writing a whitepaper that will soon be published to MSDN that dives deeper into the approach we took to develop the initial version of the DSL.

Here's a small (and incomplete) teaser:

Comments

Dennis Mulder - Convert.ToString(My.Core.Dump) said:

Finally the whitepaper I have been talking about before is published. The paper dives into the process

# maart 28, 2007 1:16

Dennis Mulder - Convert.ToString(My.Core.Dump) said:

Finally the whitepaper I have been talking about before is published. The paper dives into the process...

# maart 28, 2007 1:16
Leave a Comment

(required) 

(required) 

(optional)

(required) 


Enter the numbers above: