Archive for the ‘Factories’ Category
Just to call out that Edward Bakker is coordinating a new Contrib project for Feature Builder. This project provides more feature extensions such as Value Providers and Commands that can be added to an FB project. We are going to start looking into using Feature Builder for the next version of WSCF Blue.
If you are familiar with GAT/GAX and the pre-cursor to FB , Blueprints, do take a look at what we are doing in this new FBContrib project and send in your ideas and suggestions for more extensions. If you have some experience in these areas and would like to join and contribute, please let us know.
A new Architecture power tool, the Feature Builder has been announced. This is the outcome of the earlier Blueprints project. As I had written earlier, in many ways Blueprints was the successor to GAT/GAX in terms of a platform for providing executable guidance inside Visual Studio and in its first incarnation was very much an ‘incubation project’.
To quote the introductory paragraph from the MSDN Channel 9 intro video page
“Feature Builder is an official Power Tool from the Architecture Tools team within the Visual Studio Product Group enabling the rapid construction of Visual Studio Extensions (VSIXs) that combine VS Extensibility (menus, etc.) , Project/Item/T4 templates and step-by-step guidance/documentation. The output VSIX, called a Feature Extension, delivers all these things, including the guidance, directly within Visual Studio”
The MSDN Forum for this tool is here and there is a FAQ posted by David Trowbridge, the architect on the project on this thread which explains what versions of VS are needed etc. There are a number of intro videos on Channel 9
All of this now builds on the architecture & modeling capability inside VS2010, so the tool itself cannot be run in a previous version (say VS2008) (I know it should be pretty obvious, but equally sure that someone still using VS2008 is going to ask this 🙂 ). I guess if you attach code generation to the models that you build with this, then those could emit code for solutions in .NET 3.5.
Another question that is bound to come up now is “what happens to the old P&P software factories such as the Service Factory, Web Client SF and so on“. The P&P team have blogged about refreshing the factories for GAT/GAX 2010 and there is no public information yet on what impact, if any, this Feature Builder tool will have on those factories going forward, but as soon as I hear of any plans that can be disclosed, I’ll post a follow up.
Check out the tool and send the team feedback via the MSDN forum. I expect to dive in head first now and share what I learn here. Enjoy 🙂 .
Some of you may have noticed that the Microsoft Blueprints project has gone quiet and the site taken down from CodePlex and MSDN. I had written a couple of posts about Blueprints in the past and how it was eventually going to take over from GAT/GAX.
Anyway, if you are wondering what’s happening, the answer is that we are making some changes around Blueprints. The Blueprints project was an important incubation whose purpose was to explore process guidance and automation. They helped us (that is, the product teams involved in developing this) gain a better understanding of the requirements for this kind of technology through customer and partner feedback. The reason we took down the external projects was to focus the incubation internally and we are looking at taking this forward so we can support process guidance and automation in a manner that is aligned with VS Team System product direction.
As users of VSTS know, the suite is not based around any particular methodology and can support a range of project methodologies ranging from very lightweight to very formal and process driven. The tooling supports this range of methodologies. Software Factories are an important development discipline which we support and as Jezz Santos and Edward Bakker and other thought leaders have written, it is possible to approach factory development itself in agile or very formal ways and its quite often found that a rapid iterative approach works very well with developing factories That said, VS should and will support factory development going forward in a manner thats agnostic of methodology. Exactly how this manifests itself in the product suite remains to be seen but having looked at the features that are available already in Dev10 Beta-1 in the VS Team Architect edition, we can be sure that it will be of high quality.
GAT/GAX will be available in VS10 and the DSL Toolkit has been improved quite a bit and aligns well with the new “Extensions” model so if you havent checked out the latest developnments in the DSL Toolkit space, I would encourage you to take a look. Stuart Kent has a nice video on the new deployment method for DSL Toolkit based packages.
I will post more on this topic when there is more information that I can share and especially when there are bits available to play with. Watch this space 🙂 .
This post is just to call out some work that Bram Veldhoen has done in linking the Biztalk Software Factory to the venerable Deployment Framework. One thing to note is that the integration was done to the NAnt version of the framework prior to the latest MSBuild version of the framework (5.x). I guess linking into the new MSBUILD version is next on the cards and I’ve chatted to Bram about the possibility of doing something jointly (as if i didnt have enough irons in the fire with MockingBird and BizUnitExtensions 🙂 ). Check it out and post feedback on the BSF codeplex space.
Mike Lehman has posted a set of screen-casts on Channel 9 that explain the process of authoring and composing blueprints, including how to use the WF process workflow, creating custom extensions, using T4 etc. Here is the list of videos and a short summary (the C9 abstract) of each and my comments wherever applicable. I spent a useful afternoon last weekend watching every one of them
(1) Microsoft Blueprints 101 – The SimpleEdit Blueprint : In this screencast (10 minutes, 34 seconds), Michael Lehman demonstrates the essential features of the Microsoft Blueprints Manager by walking through the sample SimpleEdit Blueprint. Here Mike shows how to use the Blueprint to build another text editor.
(2) Authoring Blueprints – Introduction : In this screencast (6:05) Michael Lehman introduces Microsoft Blueprints. This shows how to build a Level 100 blueprint with only word based guidance and no code.
(3) Authoring Blueprints – Adding Project Templates : In this screencast (3:27) Michael Lehman describes creating Microsoft Blueprints using custom project templates. Mike only demonstrates the single project template here but the written guidance includes some information on how to use multi-project templates and links to the MSDN article on multi-project VSTemplates. In future versions of the Blueprints we may have a UI for simplifying the creation of multi-project templates. Although creating such a template is fairly simple, hand-editing the XML doesnt make for a great experience, but this is a Visual Studio feature not a Blueprints feature.
(4) Authoring Blueprints – Composing Blueprints : In this screencast (5:26), Michael Lehman demonstrates how to combine Blueprints together using composition to create composite Blueprints. The feature of linking blueprints is shown here.
(6) Authoring Blueprints – Custom Command Extensions using WF: In this screencast (7:58), Michael Lehman demonstrates how to create custom Visual Studio automation command extensions using WF. Mike shows the addition of a menu item that appears on the “Project” item and it is possible to have more sophisticated and custom filters so that menus show up only for , say . C# files in a particular project and so on. Although there are a few manual steps to get them all linked up, i think its still much simpler than the GAT route.
(7) Authoring Blueprints – Creating custom Command Extensions in C# : In this screencast (5:35), Michael Lehman demonstrates how to create custom command extensions using C#
(8) Authoring Blueprints – Using T4 Templates : In this screencast (4:01), Michael Lehman demonstrates how to use T4 templates with Microsoft Blueprints. Only a very basic T4 template is shown which is sufficient for the purposes of the demonstration. For more information on T4, read Oleg Sych’s T4 tutorial series.
(9) Authoring Blueprints – From sample application to Blueprint : In this screencast (7:08), Michael Lehman demonstrates how the sample editor application was converted into the SimpleEdit Blueprint. This is quite useful and shows how we can convert our own working applications into Blueprints. Only some of the blueprint features are shown here but a larger reference blueprint will be made shortly to cover all the other features.
(1) Infosys Blueprints Screencast : Watch a demonstration (10:10) of the Infosys Blueprints on Channel 9. Follow along as Farrukh Nizami uses the Infosys Blueprints to build a layered web application that incorporates Silverlight, WCF and LINQ to SQL. I put in some comments on the Channel 9 post as well regarding the patterns used.
Creating Blueprints – Article
(1) Creating My First Blueprint: An Infosys blog article explaining the process of creating a blueprint in detail.
Hope you find the links above useful. There’s some good discussions going on at the codeplex site as well.
“The idea is that, if you complete this Lab until the end, you’ll be able to create your own modeling graphical designers using the DSL Tools technology, and the code generator that will generate code, documentation, configuration files or whatever textual artifact you want, from the information that is entered by the designer user. This will probably take you one day to complete it, but it’s really worth it!”
Another good resource to learn DSL Tools is a set of videos in the How-Do-I video series on MSDN. These include the following (in the VSX category). It might be a good idea to watch these first (they are each around 15-25 minutes long), if you want to see what this is all about before diving into the lab.
- #21 How Do I: Get Started with the Visual Studio Domain Specific Languages? : Learn what the Domain-Specific Language (DSL) tools are in the Visual Studio Software Development Kit (SDK). Dylan Miles briefly explains some of the main concepts and how to get started.
- #20 How Do I: Create And Use T4 Templates? : Learn about the Text Templating Transformation Toolkit (T4), the code generation engine used as part of Domain Specific Languages and Software Factories projects. With the T4 toolkit now built directly into Visual Studio 2008, you can easily add code generation to your arsenal.
- #22 How Do I: Generate Code from my Domain Specific Language using DSL Tools? :Use the power text template engine built into Domain-Specific Language (DSL) Tools to generate code from a model created by a Domain-Specific Language.
- #23 How Do I: Create and Customize My Domain Specific Language? : Learn how to create and customize your own Domain Specific Language using Visual Studio DSL Tools. Dylan Miles shows you the basics of creating your own domain classes, changing the visual properties of shapes, and adding your own custom properties.
- #24 How Do I: Use Advanced Customization? : Learn how to override functionality in the generated code of your Domain Specific Language. Dylan Miles explains how using a custom constructor, custom storage for your shape and domain classes as well as hooking events to your shape classes.
Channel 9 also has an excellent video titled “Exploring the new Domain-Specific Language (DSL) Tools with Stuart Kent” where Stuart (a senior program manager on the VS /DSLTools team) explains what they are all about and creates a DSL from scratch.
In a previous post, I called out the fact that the GAT technology is now evolving into its next version, Blueprints, and also shared why I think this is a great idea and how Blueprints makes up for deficiencies in GAT. In this series, my aim is to learn this technology and share it with you as I go deep into it. Although I never got round to blogging in detail about GAT, I did closely follow along with the progress in that space, notably concentrating on how the Service Factory implemented GAT and DSLs. So here , as we look at building and using Blueprints, we’ll also compare and contrast GAT along the way (and if the GAT content gets pretty large then I’ll hive that off into a separate set of posts).
Of course, with me being a BizTalk guy, for me it all comes down to whether these things can help with BizTalk development or not and I certainly think they can. So expect a call-back in most posts to relate it to the BTS world. The BizTalk Solution Factory has made a great start in this area (using GAT) and I do believe that with Blueprints we can take BSF to the next level.
Okay, enough preamble. Let’s get on with it. Here are the resources I’ve come across to help get started.
(A) Overview stuff
- MSDN – Overview (landing page) : pretty sparse at the time of writing this. Expect a lot more to come.
- MSDN – Introduction to Blueprints: Puts blueprints into context, explaining how it ties in with Software Factories 2.0 and what to expect from the Blueprints family of offerings.
- C9 – S+S Blueprints: A short video where Mike Lehman explains what S+S is and what the S+S Blueprints are all about. This was done quite a while ago when, IMO, Software Factories 2.0 hadn’t been written about, so there’s no mention of GAT/GAX or DSLs. There are a couple of other videos on Multi-Tenant data access blueprints and a Silverlight blueprint for Sharepoint. I’m not looking into the S+S area now although I suspect that when Azure starts to take off this will gain more significance.
- Infosys – Microsoft Blueprints – Building Process Oriented Contextual Guidance: Infosys, one of the top Indian SI’s are also one of the earliest adopters of the Blueprints technology. This article puts Blueprints into context.
(B) More Details On Blueprints
- C9 – Beyond VS Packages : A fairly detailed video talking about what to expect from Blueprints and a general sense of where the technology is headed.
(C) Building and Using Blueprints
- MSDN – Inside Blueprints : Talks about the levels of blueprints and a quick overview of the Blueprints Manager tool. This page unfortunately has serious formatting problems at present with the content defining each “level” being all over the place. I’ve pinged Mike about it so I hope it gets revised soon.
- C9 – S+S Blueprint Walkthrough: This screencast is a walkthrough of using the first S+S Blueprint, the Outlook+Services Blueprint. Mike shows the process of building an add-in for Outlook. The add-in is like Twitter and he calls it “Mumbl”. The process is much faster )(when compared to raw VSTO based development) because of the help of blueprints to code-gen some parts of the solution. If you are used to GAT, then this is no big deal. In fact there’s no automated generation of standard project naming conventions and all the other stuff we are used to in GAT. So from that respect its a little disappointing but remember this was done in Nov 2007 and so there’s no equivalence to GAT there.
(D) Blogs to keep an eye on
At this point in time, look out for these blogs. As the P&P team gets deeper into this, many of their blogs will contain good information. I shall highlight them as they become available and if you come across others, let me know.
- Mike Lehman: the lead architect for Blueprints.
- SF Team Blog
- Infosys Blogs on Software Factories
- Mine ? : well, I’ll leave that to you to decide 🙂
So, this should be enough to give you an idea of what’s out there. My next post will be on getting started with the blueprints manager, installing the existing samples and looking at what’s in the boxes (this inspection tends to get missed out often when looking into new stuff – we can learn a lot by diving into the existing blueprints) and then we’ll look at writing our own blueprints (which is where the real fun is).
However, If you can’t wait to get started, then make sure you have Visual Studio 2008 (Standard and above) with SP1 and head over to the codeplex site to grab the bits and look at the discussion forums for a couple of issues that have already been posted there.
As always, your feedback is welcome. As the series progresses, let me know if there’s anything specific you would like me to cover.