Software Factories
Ramblings about Software Factories. What goes into them, how to build them and how to use them.
I am proud to present the first episode of Industry Vertical the twice monthly net cast about industrializing software development with Software Factories, Guidance Automation and Domain Specific Languages at http://tinyurl.com/6gjlgl. This episode starts out with the basics of Software Factories and trys to answer the question "What is a Software Factory"
Sometimes when defining a property for a domain model element you may need to use a complex type that has more than one property or can't easily be displayed using a single text field or drop down in the property editor. A good example might be a class that holds a list of strings for a GUI interface or a Rich Text editor for a custom text field required by your framework. To resolve this you can create a custom editor and hook it into your domain model that will provide a proper user interface to...
Here's a handy tip when you are trying to learn how the components of the Service Factory works. I've found it very useful over the last couple of weeks. Since the Service Factory now gets registered under the Visual Studio Experimental Hive you can configure the solution so you can debug it. If you are familiar with debugging DSLs, this should be nothing new. Just follow the steps below: Set the Service Factory Guidance Package as the Start-Up Project by right-clicking on the project and selecting...
I've been trying to add a couple of additional projects and item templates to the Service Factory for workflows and workflow activities. I thought I’d try to use the same techniques that the Service Factory was using to dynamically bind the menu options using the ProjectIsInRoleReference helper in the Binding.xml recipe. So I did the following: Added new roles WorkflowRole and ActivitiesRole to the file WSSF\Modeling.CodeGeneratio... I did this so that the Project...
Guidance includes so many different types of documents; Help, How-Tos, FAQs, Checklists, Code Examples, Design Patterns, and Guidelines to name just a few that coming up with a standard way to develop the needed guidance is a hard task to do from scratch. Luckily Microsoft's patterns & practices group has a tool that can simplify a lot of this for you. The Microsoft patterns & practice's Guidance Explorer provides a one stop shop for discovering, developing and publishing high quality development...
I've been needing a tailored version of the Web Service Software Factory to simplify the design and creation of web services for my development team. Not that the Service Factory isn't easy to use, but my team has to design and build services that use industry standard schemas as well as invoke workflows. So, I figured extending the the service factory would allow me to tailor it to my team's needs and by using some of the new features in the v3b117 Alpha I could keep the modifications simple. Granted,...
In my last post I discussed some of the other life cycle artifacts that I thought should be included in a Software Factory. In this post I'll show how to use T4 templates to generate a Use Case document from an XML data file. To do this we can invoke a Custom Directive from within a Text Template to parse the XML file and reformat in to an HTML Document. The MSDN's DSL Tools documentation provides a great example on how to create a Custom Text Template Directive Processor I've modified the class,...
When I look at Software Factories I see a chance to reuse resources in a major way. If you think about it, many of the foundations that Software Factories are built on are rooted in reuse initiatives. When viewing Software Factories from a reuse perspective, what artifacts should a factory contain besides executable code? Should we include resources from all of the phases that make up the software development life cycle or should we limit the resources to just those needed to produce executable code?...
I've been involved in DSLs and Software Factories for about six months now, before that I dabbled in building DSLs trying to see how I could use them in enhancing the development experience for both developers and non-developers. One of the big problems I came across is the lack of a single reference that provided the necessary background information required to assemble a Software Factory. Granted the MSDN provides all of the documentation on-line and you have the various community sites, but there...