<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/atom.xsl" media="screen"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-GB"><title type="html">stuart kent's blog</title><subtitle type="html">software modeling and visualization</subtitle><id>http://blogs.msdn.com/stuart_kent/atom.xml</id><link rel="alternate" type="text/html" href="http://blogs.msdn.com/stuart_kent/default.aspx" /><link rel="self" type="application/atom+xml" href="http://blogs.msdn.com/stuart_kent/atom.xml" /><generator uri="http://communityserver.org" version="2.1.61025.2">Community Server</generator><updated>2009-05-22T22:12:31Z</updated><entry><title>Extending UML designers in VS2010 Beta2</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/stuart_kent/archive/2009/11/02/extending-uml-designers-in-vs2010-beta2.aspx" /><id>http://blogs.msdn.com/stuart_kent/archive/2009/11/02/extending-uml-designers-in-vs2010-beta2.aspx</id><published>2009-11-02T13:37:27Z</published><updated>2009-11-02T13:37:27Z</updated><content type="html">&lt;p&gt;As mentioned in &lt;a href="http://blogs.msdn.com/stuart_kent/archive/2009/10/21/vs2010-beta2-available-links-to-posts-on-arch-tools-in-beta2.aspx" target="_blank"&gt;this post&lt;/a&gt;, the UML designers in VS2010 Ultimate now come with a set of APIs that makes them easy to extend. I see that &lt;a href="http://www.peterprovost.org/blog/" target="_blank"&gt;Peter Provost&lt;/a&gt; has now posted the first of a series of articles (going by the title of this one) explaining how to get started: &lt;a title="Extending Visual Studio 2010 UML Designers – Part 1- Getting Started" href="http://www.peterprovost.org/blog/post/Extending-Visual-Studio-2010-UML-Designers-ndash3b-Part-1-Getting-Started.aspx"&gt;Extending Visual Studio 2010 UML Designers – Part 1- Getting Started&lt;/a&gt;.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9916123" width="1" height="1"&gt;</content><author><name>Stuart Kent</name><uri>http://blogs.msdn.com/members/Stuart+Kent.aspx</uri></author><category term="VSX" scheme="http://blogs.msdn.com/stuart_kent/archive/tags/VSX/default.aspx" /><category term="UML" scheme="http://blogs.msdn.com/stuart_kent/archive/tags/UML/default.aspx" /><category term="Visual Studio" scheme="http://blogs.msdn.com/stuart_kent/archive/tags/Visual+Studio/default.aspx" /><category term="VSTS2010" scheme="http://blogs.msdn.com/stuart_kent/archive/tags/VSTS2010/default.aspx" /></entry><entry><title>Jean-Marc blogs about DSL Tools in VS2010 Beta2</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/stuart_kent/archive/2009/11/02/jean-marc-blogs-about-dsl-tools-in-vs2010-beta2.aspx" /><id>http://blogs.msdn.com/stuart_kent/archive/2009/11/02/jean-marc-blogs-about-dsl-tools-in-vs2010-beta2.aspx</id><published>2009-11-02T13:31:47Z</published><updated>2009-11-02T13:31:47Z</updated><content type="html">&lt;p&gt;Back from holiday (in Cyprus, 30 degrees C, very relaxing thanks), and as I suggested might happen in my &lt;a href="http://blogs.msdn.com/stuart_kent/archive/2009/10/21/vs2010-beta2-available-links-to-posts-on-arch-tools-in-beta2.aspx" target="_blank"&gt;previous entry&lt;/a&gt;, I see that Jean-Marc has blogged about DSL Tools in VS2010 Beta2: &lt;a title="We released the DSL SDK for Visual Studio Beta2 this morning" href="http://blogs.msdn.com/jmprieur/archive/2009/10/22/we-released-the-dsl-sdk-for-visual-studio-beta2-this-morning.aspx"&gt;We released the DSL SDK for Visual Studio Beta2 this morning&lt;/a&gt;.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9916122" width="1" height="1"&gt;</content><author><name>Stuart Kent</name><uri>http://blogs.msdn.com/members/Stuart+Kent.aspx</uri></author><category term="DSL Tools" scheme="http://blogs.msdn.com/stuart_kent/archive/tags/DSL+Tools/default.aspx" /><category term="VSX" scheme="http://blogs.msdn.com/stuart_kent/archive/tags/VSX/default.aspx" /><category term="Visual Studio" scheme="http://blogs.msdn.com/stuart_kent/archive/tags/Visual+Studio/default.aspx" /><category term="VSTS2010" scheme="http://blogs.msdn.com/stuart_kent/archive/tags/VSTS2010/default.aspx" /></entry><entry><title>VS2010 Beta2 Available, Links to posts on Arch Tools in Beta2</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/stuart_kent/archive/2009/10/21/vs2010-beta2-available-links-to-posts-on-arch-tools-in-beta2.aspx" /><id>http://blogs.msdn.com/stuart_kent/archive/2009/10/21/vs2010-beta2-available-links-to-posts-on-arch-tools-in-beta2.aspx</id><published>2009-10-21T19:31:36Z</published><updated>2009-10-21T19:31:36Z</updated><content type="html">&lt;p&gt;VS2010 Beta2 is available for &lt;a href="http://msdn.microsoft.com/en-gb/vstudio/dd582936.aspx" target="_blank"&gt;download&lt;/a&gt;. Install Ultimate and you’ll be able to give the architecture tools a spin, which have been much improved since Beta1. In particular, a lot of work has been put into making it easy to extend the UML designers using Managed Extensibility Framework (MEF). It’s now easy to add your own context menu commands (no need for a VS Package or VSCT definitions), drag drop and double-click gestures and validation constraints. They then get deployed using VSIX, the new, much easier way to extend Visual Studio. You’ll need to download the corresponding &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=cb82d35c-1632-4370-acfb-83c01c2ece24" target="_blank"&gt;VS SDK&lt;/a&gt;, for this.&lt;/p&gt;  &lt;p&gt;When I get back from holiday I hope to be able to point you at more information on how to create extensions, and samples of extensions.&lt;/p&gt;  &lt;p&gt;You’d also do well to take a look at &lt;a href="http://blogs.msdn.com/camerons/" target="_blank"&gt;Cameron Skinner&lt;/a&gt;’s blog, in particular:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://blogs.msdn.com/camerons/archive/2009/10/19/visual-studio-2010-and-net-framework-4-beta-2.aspx"&gt;Visual Studio 2010 and .NET Framework 4 Beta 2!!!&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://blogs.msdn.com/camerons/archive/2009/10/19/modeling-and-visualization-in-visual-studio-2010-ultimate.aspx"&gt;Modeling and Visualization in Visual Studio 2010 Ultimate&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://blogs.msdn.com/camerons/archive/2009/10/19/first-time-experience-with-arch-tools.aspx"&gt;“First-time Experience” with Arch Tools&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://blogs.msdn.com/camerons/archive/2009/10/20/layer-diagram-in-visual-studio-2010-ultimate-beta-2.aspx"&gt;Layer Diagram in Visual Studio 2010 Ultimate Beta 2&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;and &lt;a href="http://www.lovettsoftware.com/" target="_blank"&gt;Chris Lovett&lt;/a&gt;’s new blog, in particular:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://www.lovettsoftware.com/blogengine.net/post/2009/09/24/Directed-Graph-Documents.aspx"&gt;Directed Graph Documents&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.lovettsoftware.com/blogengine.net/post/2009/09/26/Standard-Dependency-Graphs.aspx"&gt;Standard Dependency Graphs&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Chris has some great videos for you to look at.&lt;/p&gt;  &lt;p&gt;Also available is the &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=f5431a70-b421-4be6-8fd3-6b27abda0817" target="_blank"&gt;DSL SDK&lt;/a&gt;. Between Beta1 and Beta2 a fair amount of work was done on the designer authoring component of DSL Tools, as well as on further improving the quality of the runtime. You’ll find much improved templates for building forms-based designers, support for DSL libraries (now you can share components of a DSL definitions between designers), and MEF extensibility points injected into the Dsl Designer itself, to enable us and the community to extend and customize DSL authoring through simple VSIX extensions. I’m sure that &lt;a href="http://blogs.msdn.com/jmprieur/default.aspx" target="_blank"&gt;Jean-Marc&lt;/a&gt; will blog about all this some more soon.&lt;/p&gt;  &lt;p&gt;[Nov 2nd: Changed &lt;strong&gt;Microsoft&lt;/strong&gt; Extensibility Framework to &lt;strong&gt;Managed&lt;/strong&gt; Extensibility Framework. Sorry for the original error.]&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9910846" width="1" height="1"&gt;</content><author><name>Stuart Kent</name><uri>http://blogs.msdn.com/members/Stuart+Kent.aspx</uri></author></entry><entry><title>Most influential paper award</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/stuart_kent/archive/2009/08/14/most-influential-paper-award.aspx" /><id>http://blogs.msdn.com/stuart_kent/archive/2009/08/14/most-influential-paper-award.aspx</id><published>2009-08-14T19:33:07Z</published><updated>2009-08-14T19:33:07Z</updated><content type="html">&lt;p&gt;Life can throw up surprises, some nasty some rather pleasant. Well this week I received an email which was a pleasant surprise. A paper I co-wrote ten years ago, when I was a researcher before joining Microsoft, just received an award from the VL/HCC conference series: &lt;strong&gt;&lt;em&gt;Most Influential Paper from approximately one decade ago&lt;/em&gt;&lt;/strong&gt;. See &lt;a title="http://eecs.oregonstate.edu/vlhcc09/mip.html" href="http://eecs.oregonstate.edu/vlhcc09/mip.html"&gt;http://eecs.oregonstate.edu/vlhcc09/mip.html&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;I’m immensely proud to find that work I contributed to has been judged to have had such an impact by research colleagues. And, having been out of research and working on product for the last five years, this came as a real surprise. I had no idea.&lt;/p&gt;  &lt;p&gt;And the paper? It’s about formalizing a subset of a graphical notations based on Venn diagrams for visualizing navigation paths, constraints and object structures in OO systems. The paper describing the full notation appeared in the 1997 OOPSLA conference and is called Constraint Diagrams: Visualizing Invariants in Object Oriented Modelling. You can get a copy from &lt;a title="http://www.cs.kent.ac.uk/archive/people/staff/sjhk/publications/OOPSLA97/index.html" href="http://www.cs.kent.ac.uk/archive/people/staff/sjhk/publications/OOPSLA97/index.html"&gt;http://www.cs.kent.ac.uk/archive/people/staff/sjhk/publications/OOPSLA97/index.html&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Perhaps one day we’ll see these kinds of notations appearing in Microsoft’s tools… &lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9870262" width="1" height="1"&gt;</content><author><name>Stuart Kent</name><uri>http://blogs.msdn.com/members/Stuart+Kent.aspx</uri></author><category term="Software Development" scheme="http://blogs.msdn.com/stuart_kent/archive/tags/Software+Development/default.aspx" /><category term="Conferences" scheme="http://blogs.msdn.com/stuart_kent/archive/tags/Conferences/default.aspx" /><category term="Research" scheme="http://blogs.msdn.com/stuart_kent/archive/tags/Research/default.aspx" /><category term="Visualization" scheme="http://blogs.msdn.com/stuart_kent/archive/tags/Visualization/default.aspx" /></entry><entry><title>Pedro on the Code Generation Conference</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/stuart_kent/archive/2009/06/23/pedro-on-the-code-generation-conference.aspx" /><id>http://blogs.msdn.com/stuart_kent/archive/2009/06/23/pedro-on-the-code-generation-conference.aspx</id><published>2009-06-23T19:47:06Z</published><updated>2009-06-23T19:47:06Z</updated><content type="html">&lt;p&gt;&lt;a href="http://pjmolina.com/metalevel/"&gt;Pedro Molina&lt;/a&gt; has &lt;a href="http://pjmolina.com/metalevel/2009/06/my-impressions-about-code-generation-2009/"&gt;blogged&lt;/a&gt; about his experience at the code generation conference in Cambridge. Pedro was one of the folks with whom I had some great discussions, and his commentary on the conference is well worth reading.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9799820" width="1" height="1"&gt;</content><author><name>Stuart Kent</name><uri>http://blogs.msdn.com/members/Stuart+Kent.aspx</uri></author><category term="Code Generation" scheme="http://blogs.msdn.com/stuart_kent/archive/tags/Code+Generation/default.aspx" /><category term="Conferences" scheme="http://blogs.msdn.com/stuart_kent/archive/tags/Conferences/default.aspx" /></entry><entry><title>So what is a DSL anyway?</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/stuart_kent/archive/2009/06/23/so-what-is-a-dsl-anyway.aspx" /><id>http://blogs.msdn.com/stuart_kent/archive/2009/06/23/so-what-is-a-dsl-anyway.aspx</id><published>2009-06-23T15:48:28Z</published><updated>2009-06-23T15:48:28Z</updated><content type="html">&lt;p&gt;The term Domain Specific Language (DSL) is a popular buzz-word at the moment. If you look at wikipedia you’ll see the following definition:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;“In &lt;a href="http://en.wikipedia.org/wiki/Software_development"&gt;software development&lt;/a&gt;, a &lt;b&gt;domain-specific language&lt;/b&gt; (&lt;b&gt;DSL&lt;/b&gt;) is a &lt;a href="http://en.wikipedia.org/wiki/Programming_language"&gt;programming language&lt;/a&gt; or &lt;a href="http://en.wikipedia.org/wiki/Specification_language"&gt;specification language&lt;/a&gt; dedicated to a particular problem domain, a particular problem representation technique, and/or a particular solution technique. The concept isn't new—&lt;i&gt;special-purpose programming languages&lt;/i&gt; and all kinds of modeling/specification languages have always existed, but the term has become more popular due to the rise of &lt;a href="http://en.wikipedia.org/wiki/Domain-specific_modeling"&gt;domain-specific modeling&lt;/a&gt;.&lt;/p&gt;    &lt;p&gt;The opposite is:&lt;/p&gt;    &lt;ul&gt;     &lt;li&gt;a &lt;i&gt;&lt;a href="http://en.wikipedia.org/wiki/Programming_paradigm"&gt;general-purpose programming language&lt;/a&gt;&lt;/i&gt;, such as &lt;a href="http://en.wikipedia.org/wiki/C_(programming_language)"&gt;C&lt;/a&gt; or &lt;a href="http://en.wikipedia.org/wiki/Java_(programming_language)"&gt;Java&lt;/a&gt;, &lt;/li&gt;      &lt;li&gt;or a &lt;i&gt;general-purpose modeling language&lt;/i&gt; such as the &lt;a href="http://en.wikipedia.org/wiki/Unified_Modeling_Language"&gt;UML&lt;/a&gt;.”&lt;/li&gt;   &lt;/ul&gt; &lt;/blockquote&gt;  &lt;p&gt;The problem I have with this definition is that it’s hard to draw the boundary between what is general purpose and what is domain specific. Instead, I prefer to think of a language having different dimensions, and to categorize a language we need to place it on each of the dimensions relative to other languages. This leads to a much more fluid categorization system, but makes it easier to identify the similarities and differences between languages. Below is a diagram I produced recently for a talk showing three dimensions. I think there are more, but these three seem quite important. I put some examples on the diagram to illustrate.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/stuart_kent/WindowsLiveWriter/WhatisaDSLanyway_BE9C/image_2.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/stuart_kent/WindowsLiveWriter/WhatisaDSLanyway_BE9C/image_thumb.png" width="568" height="427" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;And as a tool platform vendor, I’d like to provide facilities for creating and using languages in as many points in that 3-dimensional (though probably should be n-dimensional) space as possible. I also want to provide ways of moving between languages at different points in the space.&lt;/p&gt;  &lt;p&gt;What might other dimensions be? &lt;a href="http://www.martinfowler.com/bliki/DomainSpecificLanguage.html"&gt;Martin Fowler&lt;/a&gt; makes the further distinction between internal and external DSL, so perhaps that might be another, though in that case I might concede that the dimension is binary: external xor internal, and no points between. Another might be formal/informal dimension.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9799361" width="1" height="1"&gt;</content><author><name>Stuart Kent</name><uri>http://blogs.msdn.com/members/Stuart+Kent.aspx</uri></author><category term="Domain Specific Languages" scheme="http://blogs.msdn.com/stuart_kent/archive/tags/Domain+Specific+Languages/default.aspx" /><category term="DSL" scheme="http://blogs.msdn.com/stuart_kent/archive/tags/DSL/default.aspx" /></entry><entry><title>More from Code Generation 2009</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/stuart_kent/archive/2009/06/23/more-from-code-generation-2009.aspx" /><id>http://blogs.msdn.com/stuart_kent/archive/2009/06/23/more-from-code-generation-2009.aspx</id><published>2009-06-23T15:22:19Z</published><updated>2009-06-23T15:22:19Z</updated><content type="html">&lt;p&gt;Now I’m back from the conference, here’s an update on my &lt;a href="http://blogs.msdn.com/stuart_kent/archive/2009/06/17/news-from-code-generation-2009.aspx"&gt;first report&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Some highlights for me during the rest of the conference were:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Seeing the second part of the joint keynote by Markus Völter and Steven Kelly, where they got to discuss views, cross-references and interaction between models. It felt good to finally have an answer for this difficult area with the new modelbus in VS2010 (see my previous &lt;a href="http://blogs.msdn.com/stuart_kent/archive/2009/06/03/dsl-tools-vs2010-beta1-modelbus-sample.aspx"&gt;post&lt;/a&gt; on this). &lt;/li&gt;    &lt;li&gt;A great goldfish bowl to discuss the question: does modeling = programming? We got as far as agreeing that executable modeling = programming, so programming was regarded as a subset of modeling, and that we need many of the tools we use for programming at the modeling level (debug and test models, anyone?). However, there was some discussion of whether there are some mdoels which aren’t programs (I argued that there were, giving examples such as business &amp;amp; performance models, models showing metrics for coverage, completion and so on), although conceded that these models indirectly influenced the eventual shape of the program. There is a bit of a slippery slope here, because then one could argue that they are part of the description of the program in some way, and therefore then part of the program. Mmm… all getting a bit philosophical for me. One nugget that did come out was the fact that modeling tools (at least graphical and forms-based ones) don’t let you model informally very well, and then incrementally change the informal to formal. You kind of get this for free with a text editor, because you can write pseudo code in comments and then step-by-step formalize that building as you go, until you get a successful build, at which point you can try executing the code which then leads you to a further step of validation. &lt;/li&gt;    &lt;li&gt;Lots of interesting conversations, including a discussion on code generation on the MSFT platform with &lt;a href="http://msmvps.com/blogs/kathleen/"&gt;Kathleen Dollard&lt;/a&gt;. &lt;/li&gt;    &lt;li&gt;Positive feedback received on the DSL Tools and T4 features we’re shipping in VS2010. &lt;a href="http://blogs.msdn.com/jmprieur"&gt;Jean-Marc&lt;/a&gt; gave a session on this, which was well-received with lots of questions afterwards from folks wanting to know more. Folks particularly like the aforementioned modelbus. Indeed I came away with the general feeling that Visual Studio 2010 provides a solid, competitive platform and set of tools for those wanting to do model-driven development, whether it is from their own DSLs, from UML or some integrated combination of the two.&amp;#160; &lt;/li&gt;    &lt;li&gt;Feedback received from a number of people, who have tried using both Eclipse GMF and DSL Tools, and who told me how much easier it was to build graphical designers using DSL Tools than GMF. We’re often told how hard it is to extend Visual Studio in comparison with Eclipse, but here is one area where it looks like we are some way ahead. I think folks will be surprised at the the new functionality put into the core Visual Studio platform in 2010, with the &lt;a href="http://blogs.msdn.com/pedrosilva/archive/2009/04/02/introducing-vs-extension-manager.aspx"&gt;VS Extension Manager&lt;/a&gt; and &lt;a href="http://www.codeplex.com/MEF"&gt;Managed Extensibility Framework&lt;/a&gt;. We’ve exploited this already in DSL Tools, and have been working on exploiting it further to make the new Team Architect tools really easy to extend – but you’ll have to wait for the next preview after VS 2010 Beta1 for that. The new editor can also be extended using these mechanisms: see &lt;a title="http://editorsamples.codeplex.com/" href="http://editorsamples.codeplex.com/"&gt;http://editorsamples.codeplex.com/&lt;/a&gt;.&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;strong&gt;[Added on 23rd June 2009]&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;I missed another highlight. There was a demo of &lt;a href="http://www.jetbrains.com/mps/"&gt;Jetbrains Meta-Programming System&lt;/a&gt; (MPS). Although perhaps not for the masses, I thought this was conceptually very clean and nicely done. Great interactive session as well. &lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9799332" width="1" height="1"&gt;</content><author><name>Stuart Kent</name><uri>http://blogs.msdn.com/members/Stuart+Kent.aspx</uri></author></entry><entry><title>IMS Locks Sample for VS DSL Tools 2010 Beta1</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/stuart_kent/archive/2009/06/23/ims-locks-sample-for-vs-dsl-tools-2010-beta1.aspx" /><id>http://blogs.msdn.com/stuart_kent/archive/2009/06/23/ims-locks-sample-for-vs-dsl-tools-2010-beta1.aspx</id><published>2009-06-23T14:47:44Z</published><updated>2009-06-23T14:47:44Z</updated><content type="html">&lt;p&gt;I see that &lt;a href="http://blogs.msdn.com/jmprieur"&gt;Jean-Marc&lt;/a&gt; has just posted another sample on the &lt;a href="http://code.msdn.microsoft.com/DslTools"&gt;DSL Tools Code Gallery landing page&lt;/a&gt;, this time about the new IMS Locks capability. This allows you to make some parts of your models read-only, which is good for situations where some users (say an architect) are allowed to make changes to some aspects of the model (say the core architecture components), and other users (say developers) are only allowed to make changes to other aspects (say the properties specifically focused on driving the code generators). As author of the DSL you have complete control in the locking policy used. More details in Jean-Marc’s &lt;a href="http://blogs.msdn.com/jmprieur/archive/2009/06/23/new-beta1-sample-available-imslocks.aspx"&gt;post&lt;/a&gt;.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9799259" width="1" height="1"&gt;</content><author><name>Stuart Kent</name><uri>http://blogs.msdn.com/members/Stuart+Kent.aspx</uri></author><category term="DSL Tools" scheme="http://blogs.msdn.com/stuart_kent/archive/tags/DSL+Tools/default.aspx" /><category term="VSX" scheme="http://blogs.msdn.com/stuart_kent/archive/tags/VSX/default.aspx" /><category term="Visual Studio" scheme="http://blogs.msdn.com/stuart_kent/archive/tags/Visual+Studio/default.aspx" /><category term="VSTS2010" scheme="http://blogs.msdn.com/stuart_kent/archive/tags/VSTS2010/default.aspx" /></entry><entry><title>News from code generation 2009</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/stuart_kent/archive/2009/06/17/news-from-code-generation-2009.aspx" /><id>http://blogs.msdn.com/stuart_kent/archive/2009/06/17/news-from-code-generation-2009.aspx</id><published>2009-06-17T12:17:55Z</published><updated>2009-06-17T12:17:55Z</updated><content type="html">&lt;p&gt;I’m at the &lt;a href="http://www.codegeneration.net/cg2009/"&gt;Code Generation 2009&lt;/a&gt; conference in Cambridge, which started yesterday.&lt;/p&gt;  &lt;p&gt;Numbers are a little down on last year, but not much. Attendance is mostly from industry, with some academics. As usual it’s stuffed full of people with tons of experience in building code generators and languages to drive them.&lt;/p&gt;  &lt;p&gt;I gave a talk yesterday which placed model driven development and code generation in the wider context of what I called the design cycle (see image below). Perhaps I’ll write it up as an article on this blog someday. I also illustrated this with a demo of some of the features of Visual Studio 2010, including the new tools for visualizing existing code through graphs.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/stuart_kent/WindowsLiveWriter/Newsfromcodegeneration2009_204B/image_2.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/stuart_kent/WindowsLiveWriter/Newsfromcodegeneration2009_204B/image_thumb.png" width="459" height="345" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Interesting panel yesterday on migrating to model driven development. There is real, concrete data out there which demonstrates the productivity benefits of an MDD approach. Why is it, then, that everyone isn’t doing it? Lots of discussion, with the top reason being social and cultural issues. It was also suggested that tooling isn’t good enough for broad use.&lt;/p&gt;  &lt;p&gt;I’m sitting in the keynote which has an interesting format: the two invited keynote speakers (Markus Völter and Steven Kelly) decided to join forces and give a joint talk spanning the two sessions. I like it, especially when the speakers argue (e.g. textual DSLs, which Markus favors, versus graphical DSLs, which Steven favors; actually they concluded that a platform which integrates and supports both would be best).&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9768882" width="1" height="1"&gt;</content><author><name>Stuart Kent</name><uri>http://blogs.msdn.com/members/Stuart+Kent.aspx</uri></author><category term="Software Development" scheme="http://blogs.msdn.com/stuart_kent/archive/tags/Software+Development/default.aspx" /><category term="Code Generation" scheme="http://blogs.msdn.com/stuart_kent/archive/tags/Code+Generation/default.aspx" /><category term="Conferences" scheme="http://blogs.msdn.com/stuart_kent/archive/tags/Conferences/default.aspx" /></entry><entry><title>ModelBus Adapters Project Template</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/stuart_kent/archive/2009/06/17/modelbus-adapters-project-template.aspx" /><id>http://blogs.msdn.com/stuart_kent/archive/2009/06/17/modelbus-adapters-project-template.aspx</id><published>2009-06-17T09:49:46Z</published><updated>2009-06-17T09:49:46Z</updated><content type="html">&lt;p&gt;&lt;a href="http://blogs.msdn.com/jmprieur"&gt;Jean-Marc&lt;/a&gt; has just posted a &lt;a href="http://visualstudiogallery.msdn.microsoft.com/en-us/0c6980d5-4c79-4e9c-af88-23555096a9e0"&gt;ModelBus Adapters project template&lt;/a&gt; on the &lt;a href="http://visualstudiogallery.msdn.microsoft.com/"&gt;Visual Studio Gallery&lt;/a&gt;. This template makes it easy to a modelbus adapter and adapter manager to your own DSL, which exposes your DSL for reference and access from other DSLs. This compliments the sample recently posted, as described in &lt;a href="http://blogs.msdn.com/stuart_kent/archive/2009/06/03/dsl-tools-vs2010-beta1-modelbus-sample.aspx"&gt;my last post.&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9767111" width="1" height="1"&gt;</content><author><name>Stuart Kent</name><uri>http://blogs.msdn.com/members/Stuart+Kent.aspx</uri></author><category term="DSL Tools" scheme="http://blogs.msdn.com/stuart_kent/archive/tags/DSL+Tools/default.aspx" /><category term="VSX" scheme="http://blogs.msdn.com/stuart_kent/archive/tags/VSX/default.aspx" /><category term="Visual Studio" scheme="http://blogs.msdn.com/stuart_kent/archive/tags/Visual+Studio/default.aspx" /><category term="VSTS2010" scheme="http://blogs.msdn.com/stuart_kent/archive/tags/VSTS2010/default.aspx" /></entry><entry><title>DSL Tools VS2010 Beta1: ModelBus Sample</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/stuart_kent/archive/2009/06/03/dsl-tools-vs2010-beta1-modelbus-sample.aspx" /><id>http://blogs.msdn.com/stuart_kent/archive/2009/06/03/dsl-tools-vs2010-beta1-modelbus-sample.aspx</id><published>2009-06-04T01:07:42Z</published><updated>2009-06-04T01:07:42Z</updated><content type="html">&lt;p&gt;One of the most common asks from customers of the DSL Tools has been support for integrating models and designers, that is the ability to have models of the same or different DSL cross-reference one another, and the ability to write simple code that exploits these cross-references to implement interesting interactions between designers.&lt;/p&gt;  &lt;p&gt;In VS2010 we’re providing this support which can now be previewed in VS2010 Beta1 release. &lt;a href="http://blogs.msdn.com/jmprieur"&gt;Jean-Marc&lt;/a&gt; has just posted a sample (&lt;a title="StateMachineOverModelBus.zip" href="http://code.msdn.microsoft.com/Project/Download/FileDownload.aspx?ProjectName=DslTools&amp;amp;DownloadId=5982"&gt;StateMachineOverModelBus.zip&lt;/a&gt;, &lt;a title="documentation" href="http://code.msdn.microsoft.com/Project/Download/FileDownload.aspx?ProjectName=DslTools&amp;amp;DownloadId=5981"&gt;documentation&lt;/a&gt;) that illustrates how the modelbus can be used to achieve the behaviors described above, and I’ve just posted a short &lt;a href="http://code.msdn.microsoft.com/Project/Download/FileDownload.aspx?ProjectName=DslTools&amp;amp;DownloadId=6011"&gt;video&lt;/a&gt; demonstrating the behaviors and giving a quick insight into what you need to do to realize them in your own designers.&lt;/p&gt;  &lt;p&gt;Details on how you can provide feedback can be found on our the &lt;a href="http://code.msdn.microsoft.com/DslTools"&gt;DSL Tools Code Gallery landing page&lt;/a&gt;. Or by all means provide feedback on this blog.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9693508" width="1" height="1"&gt;</content><author><name>Stuart Kent</name><uri>http://blogs.msdn.com/members/Stuart+Kent.aspx</uri></author><category term="DSL Tools" scheme="http://blogs.msdn.com/stuart_kent/archive/tags/DSL+Tools/default.aspx" /><category term="VSX" scheme="http://blogs.msdn.com/stuart_kent/archive/tags/VSX/default.aspx" /><category term="Visual Studio" scheme="http://blogs.msdn.com/stuart_kent/archive/tags/Visual+Studio/default.aspx" /><category term="VSTS2010" scheme="http://blogs.msdn.com/stuart_kent/archive/tags/VSTS2010/default.aspx" /></entry><entry><title>Much simpler deployment of DSLs in VS2010</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/stuart_kent/archive/2009/05/22/much-simpler-deployment-of-dsls-in-vs2010.aspx" /><id>http://blogs.msdn.com/stuart_kent/archive/2009/05/22/much-simpler-deployment-of-dsls-in-vs2010.aspx</id><published>2009-05-23T01:54:51Z</published><updated>2009-05-23T01:54:51Z</updated><content type="html">&lt;p&gt;In Visual Studio 2010 you’ll find a new extension manager that makes it much easier to package and deploy extensions to Visual Studio. Pedro has more information: &lt;a href="http://blogs.msdn.com/pedrosilva/archive/2009/05/21/early-buzz-on-the-vs-sdk-and-extension-manager.aspx"&gt;Early Buzz on the VS SDK and Extension Manager&lt;/a&gt;, &lt;a href="http://blogs.msdn.com/pedrosilva/archive/2009/04/02/introducing-vs-extension-manager.aspx"&gt;Introducing VS Extension Manager&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;We’ve exploited this to deploy DSL Tools. Gone has the DSL Setup project which used WiX to create and MSI. Instead, a DSL authoring solution builds a VSIX package and uses that to install the DSL in the experimental instance of Visual Studio. But even better, to install the DSL in the main instance of Visual Studio, all you have to do is open the VSIX file in windows explorer and respond to the prompts. Restart Visual Studio and your DSL is installed! How easy is that?&lt;/p&gt;  &lt;p&gt;I’ve captured all this on &lt;a href="http://code.msdn.microsoft.com/Project/Download/FileDownload.aspx?ProjectName=DslTools&amp;amp;DownloadId=5904"&gt;video&lt;/a&gt;.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9636183" width="1" height="1"&gt;</content><author><name>Stuart Kent</name><uri>http://blogs.msdn.com/members/Stuart+Kent.aspx</uri></author><category term="DSL Tools" scheme="http://blogs.msdn.com/stuart_kent/archive/tags/DSL+Tools/default.aspx" /><category term="VSX" scheme="http://blogs.msdn.com/stuart_kent/archive/tags/VSX/default.aspx" /><category term="Visual Studio" scheme="http://blogs.msdn.com/stuart_kent/archive/tags/Visual+Studio/default.aspx" /><category term="VSTS2010" scheme="http://blogs.msdn.com/stuart_kent/archive/tags/VSTS2010/default.aspx" /></entry><entry><title>Speaking at Code Generation 2009</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/stuart_kent/archive/2009/05/22/speaking-at-code-generation-2009.aspx" /><id>http://blogs.msdn.com/stuart_kent/archive/2009/05/22/speaking-at-code-generation-2009.aspx</id><published>2009-05-23T00:49:03Z</published><updated>2009-05-23T00:49:03Z</updated><content type="html">&lt;p&gt;I’m speaking at the &lt;a href="http://www.codegeneration.net/cg2009/"&gt;Code Generation 2009&lt;/a&gt; conference in Cambridge in June on the topic of &lt;a title="Code-Centric or Model-Centric – Approaches to developing software" href="http://www.codegeneration.net/cg2009/sessioninfo.php?session=55"&gt;Code-Centric or Model-Centric – Approaches to developing software&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/jmprieur"&gt;Jean-Marc&lt;/a&gt; is also speaking on &lt;a href="http://www.codegeneration.net/sessioninfo.php?session=56"&gt;What’s new in the DSL Tools and T4 in Visual Studio 2010&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;I’m really looking forward to going to this conference which is at the cutting edge of model-driven and code generation techniques. It will be great to meet up again with folks I haven’t seen for some time, especially colleagues I used to work with before I joined Microsoft.&lt;/p&gt;  &lt;p&gt;And beware: “LATE BOOKING FEES APPLY FROM JUNE 1ST”&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9636051" width="1" height="1"&gt;</content><author><name>Stuart Kent</name><uri>http://blogs.msdn.com/members/Stuart+Kent.aspx</uri></author><category term="DSL Tools" scheme="http://blogs.msdn.com/stuart_kent/archive/tags/DSL+Tools/default.aspx" /><category term="Software Development" scheme="http://blogs.msdn.com/stuart_kent/archive/tags/Software+Development/default.aspx" /><category term="T4" scheme="http://blogs.msdn.com/stuart_kent/archive/tags/T4/default.aspx" /><category term="Code Generation" scheme="http://blogs.msdn.com/stuart_kent/archive/tags/Code+Generation/default.aspx" /><category term="Conferences" scheme="http://blogs.msdn.com/stuart_kent/archive/tags/Conferences/default.aspx" /></entry><entry><title>T4 Roundup</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/stuart_kent/archive/2009/05/22/t4-roundup.aspx" /><id>http://blogs.msdn.com/stuart_kent/archive/2009/05/22/t4-roundup.aspx</id><published>2009-05-23T00:39:25Z</published><updated>2009-05-23T00:39:25Z</updated><content type="html">&lt;p&gt;&lt;a href="http://blogs.msdn.com/garethj/"&gt;Gareth&lt;/a&gt; has been posting a lot about T4 over the past few months. In case you missed it, here’s a roundup of all his posts, in chronological order. Lots there to get your teeth into.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a title="Fun use of T4 to generate strongly-typed web navigation" href="http://blogs.msdn.com/garethj/archive/2008/01/31/fun-use-of-t4-to-generate-strongly-typed-web-navigation.aspx"&gt;Fun use of T4 to generate strongly-typed web navigation&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a title="More general-purpose T4 goodness" href="http://blogs.msdn.com/garethj/archive/2008/02/04/more-general-purpose-t4-goodness.aspx"&gt;More general-purpose T4 goodness&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a title="Hanselman gives T4 some love" href="http://blogs.msdn.com/garethj/archive/2008/10/14/hanselman-gives-t4-some-love.aspx"&gt;Hanselman gives T4 some love&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a title="Another collection of T4 resources" href="http://blogs.msdn.com/garethj/archive/2008/10/23/another-collection-of-t4-resources.aspx"&gt;Another collection of T4 resources&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a title="Using extension methods in T4 templates" href="http://blogs.msdn.com/garethj/archive/2008/10/30/using-extension-methods-in-t4-templates.aspx"&gt;Using extension methods in T4 templates&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a title="DSL 2010 Feature Dives- T4 Preprocessing - Part One - Rationale" href="http://blogs.msdn.com/garethj/archive/2008/11/11/dsl-2010-feature-dives-t4-preprocessing-rationale.aspx"&gt;DSL 2010 Feature Dives- T4 Preprocessing - Part One - Rationale&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a title="DSL 2010 Feature Dives- T4 Preprocessing - Part Two - Basic Design" href="http://blogs.msdn.com/garethj/archive/2008/11/12/dsl-2010-feature-dives-t4-preprocessing-part-two-basic-design.aspx"&gt;DSL 2010 Feature Dives- T4 Preprocessing - Part Two - Basic Design&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a title="T4 Interview in Redmond Developer News" href="http://blogs.msdn.com/garethj/archive/2009/01/09/t4-interview-in-redmond-developer-news.aspx"&gt;T4 Interview in Redmond Developer News&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a title="T4 Adoption continues with ASP.Net MVC Tools" href="http://blogs.msdn.com/garethj/archive/2009/01/12/t4-adoption-continues-with-asp-net-mvc-tools.aspx"&gt;T4 Adoption continues with ASP.Net MVC Tools&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a title="More on T4 in ASP.Net MVC" href="http://blogs.msdn.com/garethj/archive/2009/02/04/more-on-t4-in-asp-net-mvc.aspx"&gt;More on T4 in ASP.Net MVC&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a title="Clarius take T4 editing to the next level" href="http://blogs.msdn.com/garethj/archive/2009/02/04/clarius-take-t4-editing-to-the-next-level.aspx"&gt;Clarius take T4 editing to the next level&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;You can now try out the VS2010 features mentioned above with the release of VS2010 Beta1, VS2010 SDK Beta1, and VS2010 DSL SDK Beta1: see &lt;a href="http://blogs.msdn.com/stuart_kent/archive/2009/05/22/dsl-tools-for-visual-studio-2010.aspx"&gt;Dsl Tools for Visual Studio 2010&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;I’ll also add one more link:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a title="http://tangibleengineering.blogspot.com/2009/05/tangible-t4-editor-for-visual-studio.html" href="http://tangibleengineering.blogspot.com/2009/05/tangible-t4-editor-for-visual-studio.html"&gt;http://tangibleengineering.blogspot.com/2009/05/tangible-t4-editor-for-visual-studio.html&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;As you can see, T4 is getting popular!&lt;/p&gt;  &lt;p&gt;And for VS2010 there’s more to come on top of the features that Gareth describes. Not available in Beta1, but in Beta2 we’ll be providing support for accessing models in T4 via the modelbus. This will enable text templates to access models created with the new UML designers in Visual Studio and more enterprise-scale orchestration of code generation. &lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9636024" width="1" height="1"&gt;</content><author><name>Stuart Kent</name><uri>http://blogs.msdn.com/members/Stuart+Kent.aspx</uri></author><category term="DSL Tools" scheme="http://blogs.msdn.com/stuart_kent/archive/tags/DSL+Tools/default.aspx" /><category term="VSX" scheme="http://blogs.msdn.com/stuart_kent/archive/tags/VSX/default.aspx" /><category term="Visual Studio" scheme="http://blogs.msdn.com/stuart_kent/archive/tags/Visual+Studio/default.aspx" /><category term="VSTS2010" scheme="http://blogs.msdn.com/stuart_kent/archive/tags/VSTS2010/default.aspx" /><category term="T4" scheme="http://blogs.msdn.com/stuart_kent/archive/tags/T4/default.aspx" /></entry><entry><title>Migrating DSLs to VS2010 Beta1</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/stuart_kent/archive/2009/05/22/migrating-dsls-to-vs2010-beta1.aspx" /><id>http://blogs.msdn.com/stuart_kent/archive/2009/05/22/migrating-dsls-to-vs2010-beta1.aspx</id><published>2009-05-23T00:12:31Z</published><updated>2009-05-23T00:12:31Z</updated><content type="html">&lt;p&gt;When we released DSL Tools for VS2008, the migration story from VS2005 was not great: basically we provided a sheet of manual instructions which led to a fragile and long-winded experience. This time we’ve done a lot better. In the VS2010 DSL SDK Beta1 you’ll find a migration tool that converts your projects and solutions for you automatically. We’ve been using this internally to convert samples, test projects and so on, and it does a lovely job. There are links to a video showing the tool in use, and some documentation on the &lt;a href="http://http://code.msdn.microsoft.com/DslTools/Release/ProjectReleases.aspx"&gt;Downloads tab&lt;/a&gt; of the &lt;a href="http://code.msdn.microsoft.com/DslTools"&gt;DSL Tools Code Gallery&lt;/a&gt;. Life is good.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9635952" width="1" height="1"&gt;</content><author><name>Stuart Kent</name><uri>http://blogs.msdn.com/members/Stuart+Kent.aspx</uri></author><category term="DSL Tools" scheme="http://blogs.msdn.com/stuart_kent/archive/tags/DSL+Tools/default.aspx" /><category term="VSX" scheme="http://blogs.msdn.com/stuart_kent/archive/tags/VSX/default.aspx" /><category term="Visual Studio" scheme="http://blogs.msdn.com/stuart_kent/archive/tags/Visual+Studio/default.aspx" /><category term="VSTS2010" scheme="http://blogs.msdn.com/stuart_kent/archive/tags/VSTS2010/default.aspx" /></entry></feed>