Does Microsoft have a Model Driven Development strategy?

I recently asked question this question as a post on the Microsoft modeling and tools forum:

Various Microsoft attempts at MDD have failed or been put on the back burner: WhiteHorse, Software Factories, Oslo.

Does Microsoft have any strategy for Model Driven Development? Will any of the forementioned tools ever see the light of day?

Stuart Kent responded to my question here:  http://blogs.msdn.com/b/stuart_kent/archive/2011/04/07/is-model-driven-development-feasible.aspx - Have a look at his post: there is a nice reference frame illustrating the continuum from model-assisted development, through model-driven development to model-centric development.

I think that the approaches that Stuart listed (DSL Tools, UML, LightSwitch and Dynamix) are a) not united or integrated; and b)  far from delivering on the promise of model assisted/driven/centric approaches.

 
1) DSL Tools - Having recently worked through the VMSDK tutorials and built a DSL for a customer, I can say that these are hardly user friendly. There is no declarative API, and the VSIX development (e.g. EnvDTE , Introspection, etc.) is archaic and begs for abstraction. See my forum post http://social.msdn.microsoft.com/Forums/en-US/dslvsarchx/thread/5ae59afe-e046-4aac-b3f8-e3a6868d1fb0/
 
2) UML and the Feature Pack - While it is great that you can shape T4 transforms of UML XMI, there is no round-trip, and I have yet to see a software product that can be completely described using the OO centric UML approach (e.g. UI, SOA architecture) . see my forum post here detailing the limits of UML as a modeling tool: http://social.msdn.microsoft.com/Forums/en-US/modelingandtools/thread/0ca397f3-1c1a-4b54-8bf0-8eb8bfcfd27d/#6f51f8c6-504d-4551-8b71-3c9e33fe6df9  . While I like the Software Factory approach now found in Feature Builder Blueprints, I believe it is not widely adopted because of the effort involved - it is not a seamless or transparent part of ALM.
 
3) LightSwitchThere is no ability to define entities, screens, relationships and queries through code / markup / a DSL - the DSL is not exposed - you cannot shape the T4, and have to rely on the Designer. There is no programmatic access to the API underlying the LightSwitch designer, in order to automate LightSwitch application generation (i.e. meta-programming). See the forum discussion I initiated here: http://social.msdn.microsoft.com/Forums/en-US/lightswitchgeneral/thread/321e75a7-7d0b-4b8b-a4ab-228817ddf349/  
 
4) Dynamix - ERP / CRM only cover a fraction of Information System development, which ranges in scale and addresses a wide range of differing functionality- you don't expect most applications to be repackaged CRM systems?
 
I look forward to hearing about Microsoft's top-secret next-generation Modeling and Meta-programming approach.

Until then, I'll keep on coding!

Print | posted on Thursday, April 7, 2011 6:49 PM

Feedback

# re: Does Microsoft have a Model Driven Development strategy?

Left by Steven Kelly at 4/8/2011 11:50 AM
Gravatar > I look forward to hearing about Microsoft's
> top-secret next-generation Modeling and
> Meta-programming approach. Until then, I'll
> keep on coding!

Of course, if you're not restricted to tools from Microsoft, there are other modeling and meta-modeling tools out there. The best have full automation of the creation of modeling tools from a declarative language definition - without XML hacking, magic GUIDs, etc. See MetaEdit+ at http://www.metacase.com if that sounds interesting.

It's not for me to compare the user-friendliness of our tool with a competitor, especially since I know we too can always improve. Users seem to prefer it though: "Extremely user-friendly maintenance of metamodels, especially when compared to Microsoft's DSL Tools" <http://www.metacase.com/cases/testimonials.html>.

# re: Does Microsoft have a Model Driven Development strategy?

Left by Gunwald Darko at 10/23/2012 2:26 PM
Gravatar Microsoft has completely abandoned model-driven development. DSL tools is for hobbyists - no offense :-). They are now really focused on code-first approach (Entity Framework, Roslyn). On the .NET platform, there are indeed model-first alternatives though. Here is one that is there for many years (not very well known though): CodeFluent Entities (http://www.softfluent.com/products/codefluent-entities)

Your comment:





 
 

Copyright © JoshReuben

Design by Bartosz Brzezinski

Design by Phil Haack Based On A Design By Bartosz Brzezinski