<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Jezz Santos : Web Services Software Factory</title><link>http://blogs.msdn.com/jezzsa/archive/tags/Web+Services+Software+Factory/default.aspx</link><description>Tags: Web Services Software Factory</description><dc:language>en-GB</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>TechEd Europe 2007</title><link>http://blogs.msdn.com/jezzsa/archive/2007/09/26/teched-europe-2007.aspx</link><pubDate>Wed, 26 Sep 2007 03:50:25 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:5132272</guid><dc:creator>jezzsa</dc:creator><slash:comments>4</slash:comments><comments>http://blogs.msdn.com/jezzsa/comments/5132272.aspx</comments><wfw:commentRss>http://blogs.msdn.com/jezzsa/commentrss.aspx?PostID=5132272</wfw:commentRss><description>&lt;p&gt;&lt;a href="http://www.mseventseurope.com/teched/07/developers/Content/Pages/Default.aspx"&gt;&lt;img id="id" src="http://www.mseventseurope.com/teched/07/developers/Images/logo_people_dev4.gif" align="right" /&gt;&lt;/a&gt; For those big into Software Factories in Europe - it is &lt;strong&gt;TechEd Developers in Barcelona &lt;/strong&gt;again! (November 7th)&lt;/p&gt;  &lt;p&gt;There are a few sessions on factories, including ours &amp;quot;&lt;strong&gt;ARC 301 - &lt;em&gt;Build Your Own Software Factory&lt;/em&gt;&lt;/strong&gt;&amp;quot;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;Software factories are emerging automation and guidance tools that address many of the chronic problems in building software for our customers, partners, and industry today. This session explores the what, the why, and the how of building software factories, and shares the &amp;quot;real life&amp;quot; experiences of designing, implementing, and customizing factories available today. Receive guidance on the processes, patterns, and tools needed to build your own software factories that can succeed and survive on today's and tomorrow's evolving platforms.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;This will be the same session &lt;a href="http://www.edwardbakker.nl"&gt;Edward&lt;/a&gt; and I presented at &lt;a href="http://blogs.msdn.com/jezzsa/archive/2007/06/12/teched-2007-factories-summary.aspx"&gt;TechEd US in Orlando&lt;/a&gt; in June, and &lt;a href="http://blogs.msdn.com/jezzsa/archive/2007/08/24/factories-are-big-in-japan.aspx"&gt;TechEd Japan in Yokohama&lt;/a&gt; in August, however this one has a little twist to it - my good friend and colleague &lt;a href="http://blogs.msdn.com/donsmith"&gt;Don Smith&lt;/a&gt; is going to be your host!!&lt;/p&gt;  &lt;p&gt;Don has kindly offered to deliver this talk in my absence, basically because I cant make it and he kindly stepped up. We have delivered this talk together so he knows the content (and to be fair he is a better speaker than I am - don't tell him I said that though). You'll love him.&lt;/p&gt;  &lt;p&gt;Don is also delivering &amp;quot;&lt;strong&gt;TLA304-&amp;#xA0; Building Services with the Service Factory: Modeling Edition&lt;/strong&gt;&amp;quot; (also on the 7th Nov) which for some of you will be a massive revelation and insight into the potential of software factories of the future.&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;Being an extremely useful tool for architects and developers, the next release of the Service Factory adds one of the most often requested features: a graphical tool for designing message contracts and service interfaces based on the Visual Studio SDK, DSL Toolkit and Guidance Automation Toolkit. There are clear advantages of using a modeling environment when building services. The development team has more flexibility when the modeling environment includes logical models that don&amp;#x2019;t force platform and language decisions too early in the project. When this environment has a great deal of extensibility, the capabilities are only limited by imagination. The Web Service Software Factory: Modeling Edition provides this type of modeling environment. Attend this demo-heavy session to see how the Service Factory can be used and extended by your service development team.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;If you haven't seen the &lt;a href="http://www.codeplex.com/servicefactory"&gt;Service Factory&lt;/a&gt; (Modeling Edition) recently, you really need to, this will blow you away!!&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=5132272" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/jezzsa/archive/tags/Web+Services+Software+Factory/default.aspx">Web Services Software Factory</category><category domain="http://blogs.msdn.com/jezzsa/archive/tags/Software+Factories/default.aspx">Software Factories</category></item><item><title>EFx Factory Futures</title><link>http://blogs.msdn.com/jezzsa/archive/2007/01/17/efx-factory-futures.aspx</link><pubDate>Thu, 18 Jan 2007 00:50:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1438714</guid><dc:creator>jezzsa</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/jezzsa/comments/1438714.aspx</comments><wfw:commentRss>http://blogs.msdn.com/jezzsa/commentrss.aspx?PostID=1438714</wfw:commentRss><description>&lt;P&gt;Well, its time to (officially) announce the end of further development of the &lt;A href="http://msdn2.microsoft.com/en-us/library/Aa905331.aspx" mce_href="http://msdn2.microsoft.com/en-us/library/Aa905331.aspx"&gt;EFx Factory&lt;/A&gt;&amp;nbsp;prototype! and open a new chapter on software factories for our customers.&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;[In actual fact, not really hot-off-the-press news, this post has been pending getting published for some months now.]&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;The pioneering work on EFx has not been in vain. The good news is that many of the innovations, learnings, patterns&amp;nbsp;and assets, from this factory are to be absorbed into future factories from Microsoft, thanks to the patterns &amp;amp; practices team. You can expect to see some of the more powerful features exemplified in EFx (such as:&amp;nbsp;Product Modelling, Runtime Integration, Technology Separation and Extensibility for Composability) in the next versions of the &lt;A href="http://go.microsoft.com/fwlink/?linkid=67205&amp;amp;clcid=0x409" mce_href="http://go.microsoft.com/fwlink/?linkid=67205&amp;amp;clcid=0x409"&gt;Service&amp;nbsp;Factory&lt;/A&gt;. The gap you see now between these two factories (discussed in detail &lt;A href="http://blogs.msdn.com/jezzsa/archive/2006/11/14/faq-how-does-efx-factory-differ-from-the-web-service-factory.aspx" mce_href="http://blogs.msdn.com/jezzsa/archive/2006/11/14/faq-how-does-efx-factory-differ-from-the-web-service-factory.aspx"&gt;in How does EFx differ from Service Factory?)&lt;/A&gt;&amp;nbsp;will start to close now, as we consolidate our experiences, and ramp up with a new software factory platform - go the &lt;A href="http://go.microsoft.com/fwlink/?linkid=67205&amp;amp;clcid=0x409" mce_href="http://go.microsoft.com/fwlink/?linkid=67205&amp;amp;clcid=0x409"&gt;Service&amp;nbsp;Factory&lt;/A&gt;!&lt;/P&gt;
&lt;P&gt;The stuff in EFx was too good to ignore, (our customers really wanted to get their hands on it), and its only been a matter of finding the right channels to get this out publicly (to have the largest impact on our customer problems), which has really been the major challenge to date. Now that we have found that channel, you should expect to see even more innovations and compelling features in the new generation of software factories to come. &lt;/P&gt;
&lt;P&gt;As for myself, I'll continue to work passionately on software factories, in the hope of '&lt;STRONG&gt;making sense of it for you'&lt;/STRONG&gt; (the tag line of this blog). &lt;/P&gt;
&lt;P&gt;There are still many challenges&amp;nbsp;in making enterprise development a cheaper, easier and more predictable experience with reliable results using factories, and hopefully I'll share with the community some of the past experiences, patterns and techniques&amp;nbsp;in this area that we have identified as key with building your factories. &lt;/P&gt;
&lt;H2&gt;Looking Forward&lt;/H2&gt;
&lt;P&gt;Currently, this industry is on the brink of the adoption of software factories, and we currently find ourselves in a limbo, waiting for a platform to assist with the vision and boost adoption. &lt;/P&gt;
&lt;P&gt;Many customers have identified and committed to&amp;nbsp;a strategy to move forward with software factories, but without support from the platform, and experience and knowledge transfer in this&amp;nbsp;domain,&amp;nbsp;this task at hand seems ominously difficult, or hopelessly un-informed. &lt;/P&gt;
&lt;P&gt;Those of us that took the plunge earlier on, without any formal &amp;nbsp;platform, can testify that building factories is not an effortless undertaking. The rewards of those efforts are starting to come to fruition for the betterment of others. The earlier attempts, in various forms, should begin now to coalesce into a shared experience, and impact the future direction of this space.&lt;/P&gt;
&lt;P&gt;Building factories today is hard. It's both hard to know what to build, and hard to know how to build it. Also, the current platform for building them is difficult to manipulate and esoteric. All this gets worse when you know we are in the shadow of a new platform that will soon to leap frog us forward again. But there are incremental advances being made all the time by many different people. It's going to take sometime before we have a fully realised vision, but this is no different than any other critical innovation in our industry, we will do it in small (verifiable) increments. Hopefully, we will be providing a bunch of tools to make this more achievable in the near future.&lt;/P&gt;
&lt;P&gt;Most people have not witnessed the power of a real software factory yet. For most, it's hard to understand what they are and what benefit&amp;nbsp;they offer the current software development market today. For those of us that have witnessed them, the potential is sobering and the benefits crystal clear. It's easy to see therefore what the future of factories can bring this industry, and how that will shape the future of software development.&amp;nbsp;I hope most of you will start to witness that in the coming months.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=1438714" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/jezzsa/archive/tags/Software+Development+Truths/default.aspx">Software Development Truths</category><category domain="http://blogs.msdn.com/jezzsa/archive/tags/EFx+Software+Factory/default.aspx">EFx Software Factory</category><category domain="http://blogs.msdn.com/jezzsa/archive/tags/Web+Services+Software+Factory/default.aspx">Web Services Software Factory</category><category domain="http://blogs.msdn.com/jezzsa/archive/tags/Software+Factories/default.aspx">Software Factories</category></item><item><title>FAQ - How does EFx Factory differ from the Web Service Factory?</title><link>http://blogs.msdn.com/jezzsa/archive/2007/01/17/faq-how-does-efx-factory-differ-from-the-web-service-factory.aspx</link><pubDate>Wed, 17 Jan 2007 12:50:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1076364</guid><dc:creator>jezzsa</dc:creator><slash:comments>3</slash:comments><comments>http://blogs.msdn.com/jezzsa/comments/1076364.aspx</comments><wfw:commentRss>http://blogs.msdn.com/jezzsa/commentrss.aspx?PostID=1076364</wfw:commentRss><description>&lt;p&gt;Naturally, I get asked this all the time.  &lt;p&gt;&lt;strong&gt;What are the differences between the 'EFx Factory' and software factories such as the 'Web Service Software Factory' from patterns &amp;amp; practices?&lt;/strong&gt;  &lt;p&gt;&lt;em&gt;[Now, I do need to say this, I do work closely with the patterns &amp;amp; practices teams who built Service Factory, in fact, I am still a member of the expert advisory board on that project. So, I do need to be careful how I word this :) or &lt;/em&gt;&lt;a href="http://blogs.msdn.com/donsmith"&gt;&lt;em&gt;Don&lt;/em&gt;&lt;/a&gt;&lt;em&gt; and &lt;/em&gt;&lt;a href="http://blogs.msdn.com/tomholl"&gt;&lt;em&gt;Tom&lt;/em&gt;&lt;/a&gt;&lt;em&gt; will kill me.]&lt;/em&gt; &lt;p&gt;My aim here is to give a fair comparison between the two factories from the point of view of the customers using them and market assessing them. What is available today, and what customers can expect to see from factories in this space in the future (especially from Microsoft). Therefore, this is not about how they were implemented technically, but more about how they are designed, and how they are used to do what they do from the customer end-user perspective. &lt;p&gt;I thought this was going to be a brief post, but I was wrong again. (I'll get there eventually).  &lt;p&gt;&lt;em&gt;[I'm using &lt;font color="#804000"&gt;colour&lt;/font&gt; &lt;font color="#004080"&gt;to&lt;/font&gt; &lt;font color="#804000"&gt;distinguish&lt;/font&gt; &lt;font color="#004080"&gt;the&lt;/font&gt; &lt;font color="#804000"&gt;answers&lt;/font&gt; &lt;font color="#004080"&gt;for&lt;/font&gt; &lt;font color="#804000"&gt;each&lt;/font&gt; &lt;font color="#004080"&gt;factory, &lt;font color="#804000"&gt;and&lt;/font&gt; aid &lt;/font&gt;&lt;font color="#804000"&gt;readability &lt;/font&gt;&lt;font color="#004080"&gt;(hopefully). &lt;font color="#804000"&gt;Not&lt;/font&gt; here &lt;font color="#804000"&gt;of&lt;/font&gt; course, &lt;font color="#804000"&gt;but&lt;/font&gt; below.]&lt;/font&gt;&lt;/em&gt; &lt;h2&gt;Backgrounder&lt;/h2&gt; &lt;h3&gt;The Basics&lt;/h3&gt; &lt;p&gt;&lt;font color="#004080"&gt;The &lt;/font&gt;&lt;font color="#004080"&gt;&lt;a href="http://msdn.com/servicefactory"&gt;Web Service Software Factory&lt;/a&gt;&lt;/font&gt;&lt;font color="#004080"&gt; (Service Factory) is a released public available deliverable from the &lt;/font&gt;&lt;font color="#004080"&gt;&lt;a href="http://msdn.microsoft.com/practices/"&gt;patterns &amp;amp; practices&lt;/a&gt;&lt;/font&gt;&lt;font color="#004080"&gt; group. Currently, it's&amp;nbsp;in version 2.0 and addresses building secure ASMX or WCF web service layers and building data access layers.&lt;/font&gt;  &lt;p&gt;&lt;font color="#804000"&gt;The &lt;/font&gt;&lt;font color="#804000"&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/aa905331.aspx"&gt;EFx Factory&lt;/a&gt;&lt;/font&gt;&lt;font color="#804000"&gt; is a limited, unreleased, prototype&amp;nbsp;offering developed within &lt;/font&gt;&lt;font color="#804000"&gt;&lt;a href="http://www.microsoft.com/services/microsoftservices/srv_application.mspx"&gt;Microsoft Consulting Services&lt;/a&gt;&lt;/font&gt;&lt;font color="#804000"&gt;. Currently, version 0.9 and not complete or released. It provides the end-to-end architecture for building both Client Applications and Web Services with a choice of any combination of technologies.&lt;/font&gt;  &lt;p&gt;Both factories target similar problem and solution&amp;nbsp;domains and are both founded upon well known &lt;a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnbda/html/distapp.asp"&gt;.NET architectural patterns&lt;/a&gt; and other assets and deliverables from the &lt;a href="http://msdn.microsoft.com/practices/"&gt;patterns &amp;amp; practices&lt;/a&gt; group.  &lt;p&gt;Let’s have a look at both factories from a high level, and then we’ll consider the differences in detail in the answer below. If you are familiar with these factories already, then skip this part and move straight to the answer section below.  &lt;h3&gt;Web Service Software Factory (Service Factory)&lt;/h3&gt; &lt;p&gt;&lt;font color="#004080"&gt;The objectives at the start of this project (circa start of 2006)&amp;nbsp;were to make building web services easier, quicker and provide the right guidance and patterns to implement them. At the time of inception, the application of Software Factories was not well understood and the DSL toolkit was in its infancy. GAT was a recent enabling technology investment made by p&amp;amp;p which steered them to more automation than modelling approach. The p&amp;amp;p project team (consisting of some web service pattern legends: &lt;/font&gt;&lt;font color="#004080"&gt;&lt;a href="http://blogs.msdn.com/thehoggblog/"&gt;Jason Hogg&lt;/a&gt;&lt;/font&gt;&lt;font color="#004080"&gt;, &lt;/font&gt;&lt;font color="#004080"&gt;&lt;a href="http://blogs.msdn.com/donsmith"&gt;Don Smith&lt;/a&gt;&lt;/font&gt;&lt;font color="#004080"&gt;&amp;nbsp;et al. and a number of key industry expert advisors and leaders from our partners and customers) had heaps of valuable web service guidance to put into the factory. &lt;/font&gt; &lt;p&gt;&lt;font color="#004080"&gt;The approach taken was focused on implementing web service patterns with ASMX, and&amp;nbsp;now WCF technology, and on providing the factory user with the source code and solution structure to flesh out the service functionality. Using available p&amp;amp;p deliverables such as GAT, a set of Guidance Packages (GP's)&amp;nbsp;do the code generation from a set of recipes and&amp;nbsp;wizards which capture the user’s settings and generated configuration and source code (via the Text Templating Engine). From there, the developer is expected to enhance the generated source code in order to complete the solution. It also includes recipes for automating some common development tasks.&amp;nbsp;As well, the deliverables include a great deal of invaluable documentation, reference implementations, and guidance for designing and creating web services and implementing web service patterns today. &lt;/font&gt; &lt;p&gt;&lt;font color="#004080"&gt;You can find more details about the features of Service Factory &lt;a href="http://msdn.com/servicefactory"&gt;here&lt;/a&gt;.&lt;/font&gt;  &lt;h3&gt;EFx Software Factory (EFx)&lt;/h3&gt; &lt;p&gt;&lt;font color="#804000"&gt;The EFx Factory evolved from an &lt;/font&gt;&lt;font color="#804000"&gt;Architectural Application Framework&lt;/font&gt;&lt;font color="#804000"&gt; called &lt;a href="http://blogs.msdn.com/photos/jezzsa/images/677117/500x263.aspx"&gt;'Enterprise Framework'&lt;/a&gt; (circa 2003) which itself is founded upon Enterprise Library and a number of other application blocks. The project was initiated internally within Microsoft in response to demand from customers and partners for a implementation of the &lt;a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnbda/html/distapp.asp"&gt;.NET architecture&lt;/a&gt; and enterprise development patterns prescribed in written form from the patterns &amp;amp; practices group. Over a long period of time, the framework has encapsulated these patterns implemented on the .NET framework and has refined class libraries to aid the construction of client applications and services according to these architectures as the .NET platform has evolved. The net result of using the architectural application framework was that a developer need only write a small amount of source code to complete a service/application. The software factory that evolved from this framework (circa mid 2005), focused upon the modelling, tooling and automation of the variability points of the architectures of the client applications and services. The framework provided or pointed to most of these abstractions&amp;nbsp;that would have otherwise have been coded directly&amp;nbsp;to the framework class libraries. The primary focus of the factory&amp;nbsp;has been architectural guidance, usability, and the separation of the technologies that would be used to implement various layers of the architecture. In effect, the&amp;nbsp;factory allows any technology, pattern or strategy to be used to implement the various architectural layers, which promotes re-use and composability of factory variants.&lt;/font&gt;&lt;font color="#804000"&gt; &lt;/font&gt; &lt;p&gt;&lt;font color="#804000"&gt;You can find more details about the features of the EFx Factory &lt;a href="http://en.wikipedia.org/wiki/EFx_Factory"&gt;here&lt;/a&gt;.&lt;/font&gt; &lt;h2&gt;Answer&lt;/h2&gt; &lt;p&gt;So let’s have a look at the key differences of these two factories, in detail.  &lt;p&gt;&lt;i&gt;[For the purposes of this comparison, we are only going to compare the ‘services’ that are built with the EFx Factory to the ‘service’ that is built with the Service Factory. &lt;/i&gt; &lt;p&gt;&lt;i&gt;The EFx Factory actually assembles not only ‘services’, but also ‘client applications’ and also ‘systems’ which are a combination of multiple client applications and multiple services together as one product. &lt;/i&gt; &lt;p&gt;&lt;i&gt;Furthermore, the EFx Factory is somewhat of a different generation of software factory, being much closer to implementing the &lt;a href="http://software-factories-swicki.eurekster.com/Pillars+of+Software+Factories/"&gt;pillars of factories&lt;/a&gt; (Model-Driven Development, Architectural Frameworks, Product Lines, Guidance in Context) and raising the level of abstraction&amp;nbsp;to logical design rather than physical design, so it's not really a level-playing field to do an exact&amp;nbsp;comparison.]&lt;/i&gt;  &lt;h3&gt;Factory Mechanics&lt;/h3&gt; &lt;p&gt;&lt;font color="#004080"&gt;Service Factory is the following: &lt;/font&gt; &lt;ul&gt; &lt;li&gt;&lt;font color="#004080"&gt;&lt;strong&gt;A set of Guidance Packages,&lt;/strong&gt; one per technology and architectural layer: ASMX, WCF, SQL. These create initial solution structure, and primarily generate source code artefacts for each layer directly into the solution structure, invoked from projects in the physical solution structure.&lt;/font&gt;&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&lt;font color="#804000"&gt;EFx Factory is the following: &lt;/font&gt; &lt;ul&gt; &lt;li&gt;&lt;font color="#804000"&gt;&lt;strong&gt;Guidance Packages &lt;/strong&gt;to create initial solution structure, and create the logical work products of the architecture, invoked from a view of the logical architecture of the product, DSL models and Visual Studio Application and System designers.&amp;nbsp; &lt;/font&gt; &lt;li&gt;&lt;font color="#804000"&gt;&lt;strong&gt;DSL designers&lt;/strong&gt; to visualise and define the 'specification' of the internals of the applications and services. &lt;/font&gt; &lt;li&gt;&lt;font color="#804000"&gt;&lt;strong&gt;Factory runtime &lt;/strong&gt;tools &amp;amp; runtime services to provide, view, and manage the &lt;/font&gt;&lt;font color="#804000"&gt;&lt;a href="http://blogs.msdn.com/photos/jezzsa/images/677147/original.aspx"&gt;Product Model&lt;/a&gt;&lt;/font&gt;&lt;font color="#804000"&gt;, exposing a public&amp;nbsp;automation API of the factory and its product. &lt;/font&gt; &lt;li&gt;&lt;font color="#804000"&gt;&lt;strong&gt;A pluggable technology extensibility mechanism &lt;/strong&gt;(models and programming interfaces) for other 3&lt;sup&gt;rd&lt;/sup&gt; party factories to plug in and extend and enhance the provided technology-independent models - enabling re-use and composability. &lt;/font&gt; &lt;li&gt;&lt;font color="#804000"&gt;&lt;strong&gt;Integrated extensions&lt;/strong&gt; to the &lt;/font&gt;&lt;font color="#804000"&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/ms379582(VS.80).aspx"&gt;Distributed Application and Systems designers of Visual Studio&lt;/a&gt;&lt;/font&gt;&lt;font color="#804000"&gt;, enabling top-down development of the service.&lt;/font&gt;&lt;/li&gt;&lt;/ul&gt; &lt;h3&gt;Assets &lt;/h3&gt; &lt;p&gt;Both factories deliver guidance assets that automate the development of the factory product (the service).  &lt;p&gt;&lt;font color="#004080"&gt;The guidance assets included in Service Factory&amp;nbsp;provide &lt;strong&gt;invaluable guidance for service implementation of WCF and ASMX&lt;/strong&gt; technology web services, and &lt;strong&gt;data mapping to and from a SQL database&lt;/strong&gt;. These assets&amp;nbsp;include a number of key&amp;nbsp;innovations in web service patterns and secure web services&amp;nbsp;with class libraries to implement common concerns in building services (i.e. Exception Shielding, Versioning&amp;nbsp;etc.). &lt;/font&gt; &lt;p&gt;&lt;font color="#004080"&gt;The factory delivers &lt;strong&gt;comprehensive written guidance on web service architecture, and message exchange patterns&lt;/strong&gt;, to aid in&amp;nbsp;completing the services which it initiates. &lt;/font&gt; &lt;p&gt;&lt;font color="#004080"&gt;It also includes reference implementations to act as examples of what the factory can create using this guidance.&lt;/font&gt;  &lt;p&gt;&lt;font color="#804000"&gt;The EFx Factory core assets are &lt;strong&gt;based upon service oriented, and enterprise architecture patterns,&lt;/strong&gt; separating the architecture and design of a web service from the technology implementing it. &lt;/font&gt; &lt;p&gt;&lt;font color="#804000"&gt;The factory includes &lt;strong&gt;an Architectural Application Framework&lt;/strong&gt;, itself an abstraction of Enterprise Library, and this framework underpins the models and artefacts which the factory creates. &lt;/font&gt; &lt;p&gt;&lt;font color="#804000"&gt;The factory also includes a reference implementation, but minimal documentation of its use.&lt;/font&gt;  &lt;h3&gt;Solution Structure&lt;/h3&gt; &lt;p&gt;Both factories provide solution templates that determine the&amp;nbsp;initial physical solution structure (solution folders, projects, and layout etc) of a service.  &lt;p&gt;&lt;a href="http://blogs.msdn.com/photos/jezzsa/images/1478584/original.aspx" atomicselection="true"&gt;&lt;img src="http://blogs.msdn.com/photos/jezzsa/images/1478584/secondarythumb.aspx"&gt;&lt;/a&gt; &lt;a href="http://blogs.msdn.com/photos/jezzsa/images/1478566/original.aspx" atomicselection="true"&gt;&lt;img src="http://blogs.msdn.com/photos/jezzsa/images/1478566/secondarythumb.aspx"&gt;&lt;/a&gt;&amp;nbsp;  &lt;p&gt;Both use recipes to define the structure and naming of the solution and its artefacts. The physical solution structure is viewed using the familiar ‘Solution Explorer’. Both factory's solution templates can be customized, in both structure, layout&amp;nbsp;and naming. &lt;/p&gt;&lt;img src="http://blogs.msdn.com/photos/jezzsa/images/1478595/secondarythumb.aspx"&gt;&lt;a href="http://blogs.msdn.com/photos/jezzsa/images/1478585/original.aspx" atomicselection="true"&gt;&lt;img src="http://blogs.msdn.com/photos/jezzsa/images/1478585/secondarythumb.aspx"&gt;&lt;/a&gt;  &lt;p&gt;&amp;nbsp;  &lt;p&gt;Both factories use metadata on the created artefacts (solution folders, project etc).  &lt;p&gt;&lt;font color="#004080"&gt;In Service Factory, this metadata &lt;strong&gt;determines the ‘responsibilities’ of the containing artefact&lt;/strong&gt; (solution folder, project). The metadata &lt;strong&gt;denotes the type of physical artefacts that are contained in the container artefact&lt;/strong&gt;, and furthermore &lt;strong&gt;determines what actions (recipes) can be applied to them&lt;/strong&gt;. &lt;/font&gt; &lt;p&gt;&lt;font color="#004080"&gt;The &lt;strong&gt;assignment of these responsibilities is configurable&lt;/strong&gt; by the factory user.&lt;/font&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/photos/jezzsa/images/1478602/original.aspx" atomicselection="true"&gt;&lt;img src="http://blogs.msdn.com/photos/jezzsa/images/1478602/secondarythumb.aspx"&gt;&lt;/a&gt; &lt;a href="http://blogs.msdn.com/photos/jezzsa/images/1478603/original.aspx" atomicselection="true"&gt;&lt;img src="http://blogs.msdn.com/photos/jezzsa/images/1478603/secondarythumb.aspx"&gt;&lt;/a&gt;  &lt;p&gt;&lt;font color="#804000"&gt;In EFx Factory, this metadata &lt;strong&gt;exposes the meta-model of a logical work product&lt;/strong&gt; the factory is assembling (i.e. a service interface or business component, etc). In other words, a containing artefact (solution folder or project) &lt;strong&gt;is the physical representation of one of the logical work products&lt;/strong&gt; of the service (i.e. Service Interface, business components, data contracts etc). &lt;/font&gt; &lt;p&gt;&lt;font color="#804000"&gt;&lt;strong&gt;The metadata describes the actual state and properties (configuration) of the work product&lt;/strong&gt;, and the containing artefact (solution folder, project) contains the physical artefacts of that work product within it. &lt;/font&gt; &lt;p&gt;&lt;font color="#804000"&gt;The work products of the service are configured in a &lt;strong&gt;separate view of the factory’s logical product in another window called the &lt;/strong&gt;&lt;/font&gt;&lt;strong&gt;&lt;font color="#804000"&gt;&lt;a href="http://blogs.msdn.com/photos/jezzsa/images/677147/original.aspx"&gt;Product Explorer&lt;/a&gt;&lt;/font&gt;&lt;/strong&gt;&lt;font color="#804000"&gt;. This view shows the logical architecture of the service.&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font color="#804000"&gt;&amp;nbsp;&lt;/font&gt;&lt;a href="http://blogs.msdn.com/photos/jezzsa/images/677147/original.aspx" atomicselection="true"&gt;&lt;img src="http://blogs.msdn.com/photos/jezzsa/images/677147/secondarythumb.aspx"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;&lt;font color="#804000"&gt;&lt;font color="#804000"&gt;The EFx Factory &lt;strong&gt;maintains a runtime mapping between the work product in the ‘Product Explorer’, and its artefact realisation in the ‘Solution Explorer’&lt;/strong&gt;&lt;/font&gt;&lt;font color="#804000"&gt;. &lt;/font&gt;This separation (physical from logical) enables the factory user to re-arrange the physical structure to focus upon the deployment of the solution, rather than mixing that with the logical architecture of the service.&lt;/font&gt;  &lt;h3&gt;Artefact Generation&lt;/h3&gt; &lt;p&gt;Both factories use GAT recipes and wizards to automate the creation of artefacts or work products of a service.  &lt;p&gt;&lt;font color="#004080"&gt;The Service Factory &lt;strong&gt;uses recipes and wizards to either generate source code&lt;/strong&gt;, or to configure generated source code (on compiled CLR types), and automate some common development/debugging tasks. &lt;strong&gt;Source code artefacts are generated and assigned directly to the solution structure&lt;/strong&gt;.&lt;/font&gt;  &lt;p&gt;&lt;font color="#804000"&gt;The EFx Factory &lt;strong&gt;uses recipes to create the work products in the logical architectural model&lt;/strong&gt;, and &lt;strong&gt;recipes to configure the metadata of the work product in the model&lt;/strong&gt;. In this way, the logical architecture of the service is separated and abstracted from the physical implementation of it.&lt;/font&gt;  &lt;p&gt;&lt;font color="#804000"&gt;Some work products of the service are represented in more detail using DSL models, and &lt;strong&gt;recipes are used to configure those models directly&lt;/strong&gt;. &lt;/font&gt; &lt;p&gt;&lt;font color="#804000"&gt;The factory also &lt;strong&gt;uses recipes to automate the restructure and renaming of physical artefacts&lt;/strong&gt; representing the work products. For example, renaming a work product will require renaming certain physical artefacts and namespaces.&lt;/font&gt;  &lt;p&gt;&lt;font color="#804000"&gt;The EFx Factory &lt;strong&gt;defers and delegates source code generation of the work products to 3&lt;sup&gt;rd&lt;/sup&gt; party pluggable factories&lt;/strong&gt; at designated times in the development lifecycle of the product. The factory itself is responsible for the generation of the solution structure artefact containers (solution folders, projects), and the &lt;strong&gt;assignment of generated source code artefacts&lt;/strong&gt; (from 3&lt;sup&gt;rd&lt;/sup&gt; parties) to these artefact containers. This process is managed through the factory runtime. &lt;/font&gt; &lt;h3&gt;Models, State and Process&lt;/h3&gt; &lt;p&gt;&lt;font color="#004080"&gt;In Service Factory, &lt;strong&gt;the source code is the 'model' of the service (albeit a 'weak' model)&lt;/strong&gt;. When creating the work products of the service (data contracts, service interfaces etc.), a recipe is invoked from the physical solution structure (solution folder, project in Solution Explorer) according to the assigned responsibilities of that folder or project. (See previous sections). &lt;strong&gt;The wizard alone provides the abstraction of, and the configuration for the 'work product'&lt;/strong&gt; (although &lt;strong&gt;there is no formal concept of a 'work product'&lt;/strong&gt; in Service Factory per se). Once the wizard is completed by the factory user, it generates the required artefacts straight into the current solution folder or project. &lt;/font&gt; &lt;p&gt;&lt;a href="http://blogs.msdn.com/photos/jezzsa/images/1478605/original.aspx" atomicselection="true"&gt;&lt;img src="http://blogs.msdn.com/photos/jezzsa/images/1478605/secondarythumb.aspx"&gt;&lt;/a&gt;  &lt;p&gt;&lt;font color="#004080"&gt;&lt;strong&gt;There is no ‘state’ of the service expressed anywhere -&amp;nbsp;except in the source code of the service&lt;/strong&gt;. The factory (not surprisingly)&amp;nbsp;provides no round-tripping or reverse-engineering of the source code, so &lt;strong&gt;there is no way to view this 'state' at a simplified&amp;nbsp;(abstract) high-level&lt;/strong&gt;.&lt;/font&gt;  &lt;p&gt;&lt;font color="#004080"&gt;As there is no state, and the recipes are keyed from the assigned responsibilities on an solution artefact (project or solution folder), &lt;strong&gt;it's difficult to determine what activities have been performed, and what needs to be done to complete a service&lt;/strong&gt;. The &lt;strong&gt;user must be aware of (or will have to discover by right-click trial and error)&amp;nbsp;which&amp;nbsp;recipes&amp;nbsp;are assigned to which&amp;nbsp;solution folders or projects.&amp;nbsp;&lt;/strong&gt;Furthermore, they &lt;strong&gt;must be very familiar with the process of how to complete a service&lt;/strong&gt; and in &lt;strong&gt;which order they have to execute these recipes&lt;/strong&gt; to complete&amp;nbsp;the service. &lt;/font&gt; &lt;p&gt;&lt;font color="#004080"&gt;&lt;strong&gt;Furthermore, the user&amp;nbsp;must know at what stage of the overall process they are in&lt;/strong&gt;, as this is not depicted anywhere. This is problematic when development of the service is shared between team members. &lt;/font&gt; &lt;p&gt;&lt;font color="#004080"&gt;If the user&amp;nbsp;needs to change something about the service&amp;nbsp;that was generated by the recipes before, they either must re-run the recipe, and &lt;strong&gt;recall how they configured the recipe previously&lt;/strong&gt; beforehand. The recipe will&amp;nbsp;overwrite any customization to the generated code (if any) although the user is warned of this. Or alternatively, rather than re-run the recipe and recall all the settings used previously (usually in the case of a small change), the user can &lt;strong&gt;modify the generated source code by hand to make their change&lt;/strong&gt;. &lt;/font&gt; &lt;p&gt;&lt;font color="#004080"&gt;The Service Factory &lt;strong&gt;does provide additional &lt;em&gt;Code Snippets&lt;/em&gt; to create the most common artefacts&lt;/strong&gt;. However, these last options are the realm only of technology domain experts, and the benefits of automation that the recipes provided is really lost.&lt;/font&gt;  &lt;p&gt;&lt;font color="#804000"&gt;The EFx Factory &lt;strong&gt;provides (and persists)&amp;nbsp;a model of the entire&amp;nbsp;&lt;/strong&gt;&lt;/font&gt;&lt;font color="#804000"&gt;&lt;strong&gt;product&lt;/strong&gt;&lt;/font&gt;&lt;font color="#804000"&gt;&lt;strong&gt; (service) and all its work product instances.&lt;/strong&gt; The product is managed in the &lt;font color="#804000"&gt;&lt;a href="http://blogs.msdn.com/photos/jezzsa/images/677147/original.aspx"&gt;&lt;strong&gt;Product Explorer&lt;/strong&gt;&lt;/a&gt;&amp;nbsp;view&lt;/font&gt;.&lt;/font&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/photos/jezzsa/images/1478608/original.aspx" atomicselection="true"&gt;&lt;img src="http://blogs.msdn.com/photos/jezzsa/images/1478608/secondarythumb.aspx"&gt;&lt;/a&gt;  &lt;p&gt;&lt;font color="#804000"&gt;The &lt;strong&gt;primary work products have graphical DSL designers&lt;/strong&gt; in which their architecture is defined. &amp;nbsp;Recipes are used to configure these models. Because of this visual abstraction, the user (and his teammates)&amp;nbsp;can more easily visualise what state the service is in and what steps needs to be taken to complete the service. (This is aided by validation, discussed later).&lt;/font&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/photos/jezzsa/images/677134/original.aspx" atomicselection="true"&gt;&lt;font color="#804000"&gt;&lt;img src="http://blogs.msdn.com/photos/jezzsa/images/677134/secondarythumb.aspx"&gt;&lt;/font&gt;&lt;/a&gt;&lt;font color="#804000"&gt; &lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font color="#804000"&gt;To create or modify work product instances, &lt;strong&gt;recipes are invoked from the models themselves&lt;/strong&gt;&lt;/font&gt;&lt;font color="#804000"&gt;.&amp;nbsp;&lt;/font&gt;  &lt;p&gt;&lt;font color="#804000"&gt;The &lt;strong&gt;models provide the appropriate abstraction of the components of the service&lt;/strong&gt;, its' variability points, &lt;strong&gt;and the state of the product and work product instances&lt;/strong&gt;. The recipe wizards reflect this state when they are run, and &lt;strong&gt;instead of generating code directly, these recipes act upon the work products and product model itself&lt;/strong&gt;.&lt;/font&gt;  &lt;p&gt;&lt;font color="#804000"&gt;To &lt;strong&gt;enhance the usability, and increase the productivity&amp;nbsp;of using these models, and creating work products, the factory provides a number of specific editors, recipes and wizards to configure these models&lt;/strong&gt;. &lt;/font&gt; &lt;p&gt;&lt;a href="http://blogs.msdn.com/photos/jezzsa/images/544743/original.aspx" atomicselection="true"&gt;&lt;font color="#804000"&gt;&lt;img src="http://blogs.msdn.com/photos/jezzsa/images/544743/secondarythumb.aspx"&gt;&lt;/font&gt;&lt;/a&gt;  &lt;h3&gt;Abstraction &amp;amp; User Level&lt;/h3&gt; &lt;p&gt;&lt;font color="#004080"&gt;In the Service Factory, because the 'model' of the service is in the source code, source &lt;strong&gt;code is essentially the medium that the factory users must manipulate&lt;/strong&gt; to create, configure and complete their service. This is a &lt;strong&gt;low-level abstraction of the solution domain.&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font color="#004080"&gt;&lt;font color="#004080"&gt;All &lt;strong&gt;manipulation of the service is done via the 'Solution Explorer' view&lt;/strong&gt;,&amp;nbsp;which is the detailed physical view of the solution, (and best suited to display the deployment of the solution, not it's logical architecture). As long as this is the working view, the level of abstraction will always be at the source code level.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font color="#004080"&gt;&lt;strong&gt;As there is no state of the service, and no state of the process to completing the service, the factory user will always have to be a 'developer' class user&lt;/strong&gt; familiar with the the overall process of constructing a service from the current state of the source code (as a whole).&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font color="#004080"&gt;&lt;font color="#004080"&gt;In most cases, &lt;strong&gt;to modify or enhance this 'model' this developer will require expert domain knowledge and experience of the technologies&lt;/strong&gt; implemented by the factory.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font color="#004080"&gt;The&lt;strong&gt; 'Guidance Explorer' does help provide a list of steps to complete certain processes&lt;/strong&gt;, (and a log of the recipes executed previously), but it &lt;strong&gt;still does not provide a clear, reliable picture of where in the process the developer is&lt;/strong&gt; and what needs to be done next.&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font color="#804000"&gt;In the EFx Factory,&lt;strong&gt; the model of the service is visualised in &lt;/strong&gt;&lt;/font&gt;&lt;font color="#804000"&gt;&lt;strong&gt;&lt;a href="http://blogs.msdn.com/photos/jezzsa/images/677134/original.aspx"&gt;DSLs&lt;/a&gt;&lt;/strong&gt;&lt;/font&gt;&lt;font color="#804000"&gt;&lt;strong&gt; and in the &lt;/strong&gt;&lt;/font&gt;&lt;font color="#804000"&gt;&lt;strong&gt;&lt;a href="http://blogs.msdn.com/photos/jezzsa/images/677147/original.aspx"&gt;Product Explorer&lt;/a&gt;&lt;/strong&gt;&lt;/font&gt;&lt;font color="#804000"&gt;. The model offers &lt;strong&gt;high-level abstraction of the web service architecture and patterns&lt;/strong&gt;, and holds the current state of the service. Furthermore, these models do not depend on any technology. &lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font color="#804000"&gt;To change the service the user simply uses the visual abstractions (models, explorers) used to view the models.&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font color="#804000"&gt;The factory &lt;strong&gt;user can be any technical user that is familiar with the patterns and architecture&amp;nbsp;used by&amp;nbsp;these abstractions&lt;/strong&gt;. &lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font color="#804000"&gt;The user &lt;strong&gt;can create the specification of a service without ever having to have any detailed experience of the technologies used to implement it.&lt;/strong&gt; However, &lt;strong&gt;eventually, a technology domain expert will be required to apply and optimize the various technologies&lt;/strong&gt; at some stage, but &lt;strong&gt;this activity can be deferred&lt;/strong&gt; till later in the lifecycle of the product.&lt;/font&gt;&lt;/p&gt; &lt;h3&gt;Designer Integration&lt;/h3&gt; &lt;p&gt;&lt;font color="#004080"&gt;The Service Factory &lt;strong&gt;does not leverage existing models or facilitate high-level top-down development of services&lt;/strong&gt;.&lt;/font&gt;  &lt;p&gt;&lt;font color="#804000"&gt;The EFx Factory &lt;strong&gt;integrates and extends the &lt;/strong&gt;&lt;strong&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/ms379582(VS.80).aspx"&gt;Distributed Application and Systems designers of Visual Studio&lt;/a&gt;&lt;/strong&gt; (&lt;/font&gt;&lt;font color="#804000"&gt;&lt;a href="http://msdn2.microsoft.com/en-us/teamsystem/aa718804.aspx"&gt;Team Architect Edition&lt;/a&gt;&lt;/font&gt;&lt;font color="#804000"&gt;&amp;nbsp;if installed). The factory provides additional shapes to represent the implementation of a service, and &lt;strong&gt;enables implementation of the service straight from these diagrams using the project templates provided by the factory&lt;/strong&gt;. &lt;/font&gt; &lt;p&gt;&lt;a href="http://blogs.msdn.com/photos/jezzsa/images/677127/original.aspx" atomicselection="true"&gt;&lt;font color="#804000"&gt;&lt;img src="http://blogs.msdn.com/photos/jezzsa/images/677127/secondarythumb.aspx"&gt;&lt;/font&gt;&lt;/a&gt;&lt;font color="#804000"&gt; &lt;/font&gt; &lt;p&gt;&lt;font color="#804000"&gt;From the &lt;/font&gt;&lt;font color="#804000"&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/ms379582(VS.80).aspx"&gt;Distributed System Designer&lt;/a&gt;&lt;/font&gt;&lt;font color="#804000"&gt;, the EFx Factory &lt;strong&gt;allows the user to drill into theses shapes to expose its' internal specification&lt;/strong&gt;.&lt;/font&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/photos/jezzsa/images/677134/original.aspx" atomicselection="true"&gt;&lt;font color="#804000"&gt;&lt;img src="http://blogs.msdn.com/photos/jezzsa/images/677134/secondarythumb.aspx"&gt;&lt;/font&gt;&lt;/a&gt;&lt;font color="#804000"&gt; &lt;/font&gt; &lt;h3&gt;Validation &amp;amp; Completeness&lt;/h3&gt; &lt;p&gt;&lt;font color="#004080"&gt;In the Service Factory, since a weak 'model' of the web service is effectively defined in source code artefacts themselves, Service Factory &lt;strong&gt;can do little (apart from depending on the language compiler) to validate whether the web service source code artefacts have been created at all, in the right order, correctly or completely to form a valid and complete web service.&lt;/strong&gt; Although, in principal&amp;nbsp;it's possible to create recipes to perform this kind of validation at a course grain level. &lt;/font&gt; &lt;p&gt;&lt;font color="#004080"&gt;The WCF guidance package does add FxCop code analysis rules that help verify the completeness of some WCF related code.&lt;/font&gt;  &lt;p&gt;&lt;font color="#804000"&gt;The EFx Factory has a comprehensive model of the service as a whole and the individual work products. The factory &lt;strong&gt;performs comprehensive validation of this model before any source artefacts are generated from it&lt;/strong&gt;. In fact, this validation is a prerequisite to generation of source artefacts. The factory &lt;strong&gt;prevents the user from making invalid architectural configurations&lt;/strong&gt;, and &lt;strong&gt;ensures the work products are configured correctly and completely&lt;/strong&gt;.&lt;/font&gt;  &lt;p&gt;&lt;font color="#804000"&gt;This &lt;strong&gt;validation&lt;/strong&gt; &lt;strong&gt;guides the factory user in pre-empting the tasks required to complete the service.&lt;/strong&gt;&lt;/font&gt;  &lt;p&gt;&lt;font color="#804000"&gt;&lt;strong&gt;Architectural ‘concerns’ (cross-cutting concerns) for each layer in the architecture are defined in the model and enforced through validation&lt;/strong&gt;, ensuring that these concerns are addressed appropriately, and the service complies to these enterprise-level concerns.&lt;/font&gt;  &lt;h3&gt;Architectural Coverage&lt;/h3&gt; &lt;p&gt;&lt;font color="#004080"&gt;The Service Factory guidance packages provide automated guidance assets (recipes, templates etc) &lt;strong&gt;for the generation of the Service Interface and Data Access Layers of a service&lt;/strong&gt;. It &lt;strong&gt;addresses the middle layer Business Logic implementation and wiring up of the Service Interface&amp;nbsp;and Data Access layers through written guidance&lt;/strong&gt;, and customization of the source code. The Service Factory provides no guidance about architectural concerns of these middle layers, although there is plenty of written guidance available elsewhere on this.&lt;/font&gt;  &lt;p&gt;&lt;font color="#804000"&gt;The EFx factory provides &lt;strong&gt;a comprehensive architectural model of the entire service end-to-end&lt;/strong&gt;. &lt;/font&gt; &lt;p&gt;&lt;a href="http://blogs.msdn.com/photos/jezzsa/images/677134/original.aspx" atomicselection="true"&gt;&lt;font color="#804000"&gt;&lt;img src="http://blogs.msdn.com/photos/jezzsa/images/677134/secondarythumb.aspx"&gt;&lt;/font&gt;&lt;/a&gt;&lt;font color="#804000"&gt; &lt;/font&gt; &lt;p&gt;&lt;font color="#804000"&gt;The EFX factory &lt;strong&gt;models all the architectural layers, and their individual cross-cutting concerns (like: Authorization, Exception Management, Logging etc) at all layers in the architecture&lt;/strong&gt;. &lt;/font&gt; &lt;p&gt;&lt;font color="#804000"&gt;The &lt;strong&gt;models define the interaction between the components (method mapping &amp;amp; entity mapping) in the layers&lt;/strong&gt;. The wiring up of the Service Interface to the Business Logic Components is automatic.&lt;/font&gt;  &lt;p&gt;&lt;font color="#804000"&gt;Since Business Logic implementation is difficult to model (too many technology patterns and strategies). The factory instead &lt;strong&gt;offers a pluggable technology strategy&lt;/strong&gt; to implement this layer.&amp;nbsp;This strategy then wires up the business logic components to the data access layers. Common strategies are: custom coding, sequence diagrams and workflow activity diagrams, each of which is provided by a 3rd party factory that can use any pattern or technology to model this layer.&lt;/font&gt;&amp;nbsp;  &lt;h3&gt;Service Implementation Technologies&lt;/h3&gt; &lt;p&gt;&lt;font color="#004080"&gt;The Service Factory &lt;strong&gt;comes in two technology flavours for the service interface- WCF or ASMX&lt;/strong&gt;, and one flavour for the Data Mapping - SQL. In order to create a 'specification' of a service, &lt;strong&gt;you must make a technology choice before using the factory&lt;/strong&gt;. Once that choice is made, you are tied into that technology implementation – it is very difficult to change that technology decision later - and you'll need to start from scratch again. There is &lt;strong&gt;no de-coupling of technology implementation from architecture of the service&lt;/strong&gt; – so &lt;strong&gt;you can’t create a design and specification of your service without first choosing a technology.&lt;/strong&gt;&lt;/font&gt;  &lt;p&gt;&lt;font color="#804000"&gt;The EFX Factory &lt;strong&gt;separates the architectural&amp;nbsp;specification of the service from the technology&lt;/strong&gt; used to implement it - &lt;strong&gt;using a &lt;/strong&gt;&lt;/font&gt;&lt;strong&gt;&lt;font color="#804000"&gt;&lt;a href="http://blogs.msdn.com/photos/jezzsa/images/677134/original.aspx"&gt;technology-independent model&lt;/a&gt;&lt;/font&gt;&lt;/strong&gt;&lt;font color="#804000"&gt;. &lt;/font&gt; &lt;p&gt;&lt;font color="#804000"&gt;By providing these technology-independent models of the service's internal&amp;nbsp;architecture, and a rich extensibility mechanism for other factories to plug into this factory, the EFx Factory &lt;strong&gt;enables the layers of the service to be implemented by any technology&lt;/strong&gt;. &lt;/font&gt; &lt;p&gt;&lt;font color="#804000"&gt;Furthermore, &lt;strong&gt;there are &lt;/strong&gt;&lt;/font&gt;&lt;font color="#804000"&gt;&lt;strong&gt;several layers in the architecture that can be extended&lt;/strong&gt;&lt;/font&gt;&lt;font color="#804000"&gt;, primarily: Service Contract Implementation, Business Logic Strategy and Data Mapping Implementation. &lt;/font&gt; &lt;p&gt;&lt;font color="#804000"&gt;&lt;a href="http://blogs.msdn.com/photos/jezzsa/images/544666/original.aspx" atomicselection="true"&gt;&lt;img src="http://blogs.msdn.com/photos/jezzsa/images/544666/secondarythumb.aspx"&gt;&lt;/a&gt; &lt;/font&gt; &lt;p&gt;&lt;font color="#804000"&gt;In each of these cases, &lt;strong&gt;a 3&lt;sup&gt;rd&lt;/sup&gt; party software factory specialising in a particular technology and architectural layer, can plug into the EFx Factory&lt;/strong&gt; and implement that layer. They do this in a number of ways: &lt;/font&gt; &lt;p&gt;&lt;font color="#804000"&gt;&lt;/font&gt; &lt;p&gt;&lt;font color="#804000"&gt;&lt;/font&gt; &lt;ul&gt; &lt;li&gt;&lt;font color="#804000"&gt;Enhancing the technology-independent model views with &lt;/font&gt;&lt;font color="#804000"&gt;&lt;a href="http://blogs.msdn.com/photos/jezzsa/images/677135/original.aspx"&gt;technology specific implementation metadata&lt;/a&gt;&lt;/font&gt;&lt;font color="#804000"&gt;, commands and UI cues. &lt;/font&gt; &lt;li&gt;&lt;font color="#804000"&gt;Providing separate technology specific views when that technology addresses work products not present in technology-independent view, or when the technology is best presented in a different view from that provided by the factory. &lt;/font&gt; &lt;li&gt;&lt;font color="#804000"&gt;Providing technology specific implementation of the layer.&lt;/font&gt;&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&lt;font color="#804000"&gt;The EFx Factory, through technology separation and this extensibility mechanism, &lt;strong&gt;promotes 3&lt;sup&gt;rd&lt;/sup&gt; party domain experts to produce the authoritative abstractions and implementations&lt;/strong&gt; of specific technologies of these layers&amp;nbsp;for re-use. These implementations, themselves software factories, will then address and promote a standardised model of these layers. &lt;/font&gt;&lt;strong&gt;&lt;font color="#804000"&gt;This then promotes re-use of these&amp;nbsp;software factories&amp;nbsp;in other similar architectures of other software factories.&lt;/font&gt;&lt;/strong&gt;  &lt;h3&gt;Composability &amp;amp; Re-use&lt;/h3&gt; &lt;p&gt;&lt;font color="#004080"&gt;In Service Factory, the &lt;strong&gt;recipes to create the structure of a service are based upon a specific technology&lt;/strong&gt;. Because of the lack of a 'model' and separation between the service specification and the technology implementation of that service, the &lt;strong&gt;recipes are bound to a specific physical implementation which they create&lt;/strong&gt; – they assume certain source artefacts (CLR types)&amp;nbsp;in a certain structure. This &lt;strong&gt;makes the assets and recipes very hard to re-use in other factories with different physical implementations&lt;/strong&gt;.&lt;/font&gt;  &lt;p&gt;&lt;font color="#804000"&gt;The EFx Factory &lt;strong&gt;separates the model of the service from the implementation of it&lt;/strong&gt;. The implementation is &lt;strong&gt;provided by 3&lt;sup&gt;rd&lt;/sup&gt; party factories based upon the logical architecture of a service layer&lt;/strong&gt;. When these 3&lt;sup&gt;rd&lt;/sup&gt; party factories create physical artefacts for the layer, (specific to their technology), they don’t populate the physical solution structure directly, since they have no coupling to or knowledge of that. Instead, &lt;strong&gt;they pass the artefacts to the factory, and the factory, through its physical&amp;lt;-&amp;gt;logical mapping determines which physical artefact container (solution folder, project) these artefacts will be assigned to&lt;/strong&gt;. &lt;/font&gt; &lt;p&gt;&lt;font color="#804000"&gt;Since the 3&lt;sup&gt;rd&lt;/sup&gt; party factories are only bound to a logical architecture, they &lt;strong&gt;can be re-used by other factories sharing the same logical architecture&lt;/strong&gt;. This means that other factories can be composed using these factories.&lt;/font&gt;  &lt;h3&gt;Availability &amp;amp; Support&lt;/h3&gt; &lt;p&gt;&lt;font color="#004080"&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/aa480534.aspx"&gt;Service Factory&lt;/a&gt;&lt;/font&gt;&lt;font color="#004080"&gt; is a &lt;strong&gt;freely available, released, documented, tested and supported deliverable from the patterns &amp;amp; practices&lt;/strong&gt; team. It will &lt;strong&gt;continue to evolve as the .NET platform and emerging software factory platform evolves&lt;/strong&gt;. This deliverable &lt;strong&gt;will continue to receive support from the patterns &amp;amp; practices team, and the development community as a whole&lt;/strong&gt;.&lt;/font&gt;  &lt;p&gt;&lt;font color="#804000"&gt;EFx Factory is &lt;strong&gt;not finished and is not released to the general public&lt;/strong&gt;. It was prototyped internally at Microsoft, but has not received the necessary development, testing, documentation resources and support to move forward as a releasable deliverable.&lt;/font&gt;  &lt;h2&gt;Summary&lt;/h2&gt; &lt;p&gt;&lt;font color="#004080"&gt;The Service Factory represents the first generation of software factories from Microsoft, which has made a significant step towards the creation and automation of web services.&lt;/font&gt;  &lt;p&gt;&lt;font color="#004080"&gt;The Service Factory is primarily focused upon the automation of web service implementations and patterns for specific technologies, using a wizard-based code generation process. &lt;/font&gt; &lt;p&gt;&lt;font color="#004080"&gt;Its' very valuable guidance assets provide the best patterns and guidance for implementing web services and managing their lifecycle and operation.&amp;nbsp;&lt;/font&gt;  &lt;p&gt;&lt;font color="#004080"&gt;This factory is available and supported&amp;nbsp;publicly today, and is successfully being used by many of our customers in production to help them build web services more rapidly today.&lt;/font&gt;  &lt;p&gt;&lt;font color="#804000"&gt;The EFx Factory represents a prototype of a new generation of software factories within Microsoft, which has pioneered many of the concepts representative of future software factories from Microsoft tomorrow.&lt;/font&gt;  &lt;p&gt;&lt;font color="#804000"&gt;The EFx Factory is primarily focused upon logical architectural design, designer integration, automation, usability and architectural re-use and composability. &lt;/font&gt; &lt;p&gt;&lt;font color="#804000"&gt;It provides a managed automated environment that uses and leverages many abstractions, models and extensibility mechanisms&amp;nbsp;to present an end-to-end&amp;nbsp;logical architectural view of a product,&amp;nbsp;enhancing that with a rich design experience for&amp;nbsp;the&amp;nbsp;user. &lt;/font&gt; &lt;p&gt;&lt;font color="#804000"&gt;It has no dependence on technology. Instead, it&amp;nbsp;provides architectural-based technology-independent models that can be extended&amp;nbsp;by custom technology-specific providers, promoting re-use and innovation in the community.&amp;nbsp;&lt;/font&gt;  &lt;p&gt;&lt;font color="#804000"&gt;In turn, the core factory and the technology-specific providers can be re-used and packaged up to compose other factories to solve specific solution domains. &lt;/font&gt; &lt;p&gt;&lt;font color="#804000"&gt;This factory is not publicly available and remains an unfinished prototype.&lt;/font&gt;  &lt;h2&gt;Moving Forward&lt;/h2&gt; &lt;p&gt;Despite the significant advantages, and advancements that the EFx Factory offers in automating the assembly of service oriented client applications and services, Service Factory (and &lt;a href="http://www.codeplex.com/wiki/view.aspx?projectname=websf"&gt;Web Client Factory&lt;/a&gt;), because of their availability, support, resource investments&amp;nbsp;and ongoing development will remain the premier software factories available to Microsoft Enterprise partners and customers moving forward in this space.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=1076364" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/jezzsa/archive/tags/EFx+Software+Factory/default.aspx">EFx Software Factory</category><category domain="http://blogs.msdn.com/jezzsa/archive/tags/Web+Services+Software+Factory/default.aspx">Web Services Software Factory</category><category domain="http://blogs.msdn.com/jezzsa/archive/tags/Software+Factories/default.aspx">Software Factories</category><category domain="http://blogs.msdn.com/jezzsa/archive/tags/Factory+FAQ/default.aspx">Factory FAQ</category></item><item><title>The Factory 'Meta-Model'</title><link>http://blogs.msdn.com/jezzsa/archive/2006/07/31/the-factory-meta-model.aspx</link><pubDate>Mon, 31 Jul 2006 22:31:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:684404</guid><dc:creator>jezzsa</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/jezzsa/comments/684404.aspx</comments><wfw:commentRss>http://blogs.msdn.com/jezzsa/commentrss.aspx?PostID=684404</wfw:commentRss><description>&lt;P&gt;Hopefully in previous posts I have been able to help de-mystify what exactly the factory schema is and how you should be thinking about it. If you are still confused about how to build a factory and how to create the factory schema, you are not alone. &lt;/P&gt;
&lt;P&gt;My good friend&amp;nbsp;&lt;A href="http://www.edwardbakker.nl/" mce_href="http://www.edwardbakker.nl/"&gt;Ed Bakker&lt;/A&gt; and I have been working together towards improving the user experience of factories, primarily for the factory user, and also for the factory author. He has just posted&amp;nbsp;on some of&amp;nbsp;his own thoughts in this area (&lt;A href="http://www.edwardbakker.nl/PermaLink,guid,f672ac1b-3cb1-4853-8dfe-6c6a9fcf673f.aspx" mce_href="http://www.edwardbakker.nl/PermaLink,guid,f672ac1b-3cb1-4853-8dfe-6c6a9fcf673f.aspx"&gt;Software Factories - The Next Generation&lt;/A&gt;). &lt;/P&gt;
&lt;P&gt;I wanted to expand on some of those thoughts here from a different angle, in a couple of articles and focus a little more&amp;nbsp;on the schema and meta-model of a factory and how they are related, the EFx factory has a bit of a head start on most of the emerging factories at the moment. &lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;A Solution-based Approach&lt;/STRONG&gt; &lt;/P&gt;
&lt;P&gt;The first software factories on the market right now like the 'Service Factory' (from patterns &amp;amp; practices team) do not define or provide or use a factory schema, nor offer help on what one should look like, or how it works. They do not provide a 'model' per-se of the problem domain of building a service as a 'product' of the factory, and therefore they don't require the need for a factory schema. &lt;/P&gt;
&lt;P&gt;Instead, the approach it uses is to define sets of losely related GAT recipes to create the physical components of a service by directly generating the source artefacts right into the solution. &lt;BR&gt;These recipes are expected to be executed, by the factory user, in the right order, on the right physical solution elements, then somehow the user is expected to know what was created and further more go back into the physical artefacts, manually, and edit them (using code snippets and other recipes). It's a job for a skilled expoerienced developer who has detailed knowledge about the how the factory works, and deep knowledge of the solution domain as well.&lt;BR&gt;It is the output of the recipes (source code) that maintains&amp;nbsp;the *state* of the service being defined, and therefore it is difficult to re-configure the state of the service with automated tools. So to be clear, there is a 'solution&amp;nbsp;model' maintained in the source code. But there is no provision for reverse engineering the 'solution model' source back to a logical 'problem model', that can be modified and re-generated easily by the factory user. &lt;/P&gt;
&lt;P&gt;This class of factory is able, to describe the work products (physical artefacts) of the factory, and the assets that create them (tools, recipes etc), but they offer little formal schema of the factory or visualisation of that schema, and rely upon written guidance as a means to relate one work product to another. &lt;BR&gt;In other words, there is no 'problem model' of the product of the factory.&amp;nbsp;There&amp;nbsp;is a 'solution model' persisted in the physical solution structure and its artefacts, and the factory user is expected to be very familiar and concerned with the physical model. This design thererfore only offers very little abstraction of the problem space. &lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;A Different Approach&lt;/STRONG&gt; &lt;/P&gt;
&lt;P&gt;An approach which is more in-line with factories of the future, and one the EFx factory took to the same problem domain, is to use a model driven approach to model the service and its variability points&amp;nbsp;from end-to-end. This therefore, offers an abstraction of the problem domain to the factory user. The advantages of this approach are numerous: &lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;The Problem Model&lt;/STRONG&gt; &lt;/P&gt;
&lt;P&gt;The EFx factory employs a runtime model (a Meta-Model) of the 'product' and its' work products that the factory produces, as well as the architectural relationships between them. &lt;/P&gt;
&lt;P&gt;The factory is then able to display a logical 'view' of the things (work products) it produces (a product model) in a hierarchy that describes how they are composed and related, offering implicit guidance on how to construct and compose them. &lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Separating the Implementation from the Configuration&lt;/STRONG&gt; &lt;/P&gt;
&lt;P&gt;In addition, the EFx factory offers an extensible plug-in mechanism for 'Artefact Generators' which are used to generate the source artefacts that are represented by&amp;nbsp;the model (once the model has been configured). &lt;/P&gt;
&lt;P&gt;The model describes the architectural make up of the service and the relationship of the components within, not the technology implementation of it. &lt;/P&gt;
&lt;P&gt;Technology implementation is cleanly separated by this design, and only applied (postponed) till when the factory user is ready to select a technology based upon changing requirements of the solution.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;It is these 'Artefact Generators' (seperate specialised pluggable packages)&amp;nbsp;that determine how best to write the source artefacts based upon the current configuration of the model, and in all but the rarest cases, these artefascts will require no further editing by the factory user. In fact, in this design the factory user, performs little if any coding. The coding know-how of the solution domain is encoded into the 'Artefact Generator' itself. &lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Seperating the Logical from the Physical&lt;/STRONG&gt; &lt;/P&gt;
&lt;P&gt;Further advantages of this approach are: &lt;/P&gt;
&lt;P&gt;The factory user no longer needs to be concerned about working with, or configuring, the physical artefacts the factory (artefacts generators) produce, nor modifying them. &lt;/P&gt;
&lt;P&gt;The factory maintains a logical model of the product and its work products, and this logical model maintains a runtime mapping to the physical structure of the solution. The factory is able to determine where the generated artefacts are placed in the physical structure. &lt;/P&gt;
&lt;P&gt;The factory can do this because it attributes meta-data properties from the model to the physical solution structure containers (Solution Folders, Projects, Files), designating them as a specific work products in the product model. &lt;/P&gt;
&lt;P&gt;Therefore, since the this product model provides a seperation and mapping to the physical artefacts that are produced, so the solution structure can be independently manipulated (re-structured) to define a suitable physical deployment model of the product, rather than attempting to describing the logical structure of it. The advantage of this is clear. &lt;/P&gt;
&lt;P&gt;The mixture of these two concerns&amp;nbsp;(logical structure vs. deployment structure) often leads to poorly named and structured solutions, and much debate on what physical structure to use per solution/project/developer. Now, you can address correctly the concern of the deployment structure of the solution -&amp;nbsp;independently from the logical structure of the problem. &lt;/P&gt;
&lt;P&gt;You can see the relationship of the&amp;nbsp;Logical View and the Physical View of the product of the factory in the picture below. &lt;/P&gt;
&lt;P mce_keep="true"&gt;&lt;A href="http://blogs.msdn.com/photos/jezzsa/images/677147/original.aspx"&gt;&lt;IMG style="WIDTH: 424px; HEIGHT: 375px" height=375 src="http://blogs.msdn.com/photos/jezzsa/images/677147/424x375.aspx" width=424 mce_src="http://blogs.msdn.com/photos/jezzsa/images/677147/424x375.aspx"&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Figure 1.&lt;/STRONG&gt; Illustrates the 'EFx Solution Explorer' logical view of the solution, and its relationship to the physical structure of the solution in 'Solution Explorer', and meta-data attributed to the work products of the factory. &lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Architectural Correctness and Guidance in Context&lt;/STRONG&gt; &lt;/P&gt;
&lt;P&gt;The fact that the service has been modelled from end-to-end and the variability of the problem domain is configurable in a persisted model -&amp;nbsp;offers additional advantages: &lt;/P&gt;
&lt;P&gt;The model already describes the relationship between the logical concepts of the architecture, and therefore can validate them at an appropriate time in context with each other, preventing invalid architectures and illegal configuration of the work products. &lt;/P&gt;
&lt;P&gt;The user is no longer expected to know how to compose a single work product (with a set of related recipes), since the model describes and maintains the configuration of the work product. The selected specialised 'Artefact Generators' determine the correct and most efficient means to construct it, and create the physical representation of it. &lt;/P&gt;
&lt;P&gt;The work products can be re-generated over and over again by re-configuring the model, producing reliably, highly predictable and architecturally correct artefacts every time. &lt;/P&gt;
&lt;P&gt;For more details on the other features of this factory and their advantages see the &lt;A href="http://blogs.msdn.com/jezzsa/articles/677177.aspx" mce_href="http://blogs.msdn.com/jezzsa/articles/677177.aspx"&gt;EFx Architectural Guidance Software Factory article&lt;/A&gt;.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=684404" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/jezzsa/archive/tags/EFx+Software+Factory/default.aspx">EFx Software Factory</category><category domain="http://blogs.msdn.com/jezzsa/archive/tags/Web+Services+Software+Factory/default.aspx">Web Services Software Factory</category><category domain="http://blogs.msdn.com/jezzsa/archive/tags/Software+Factories/default.aspx">Software Factories</category></item><item><title>The Web Service Software Factory (Service BAT)</title><link>http://blogs.msdn.com/jezzsa/archive/2006/04/09/the-web-service-software-factory-service-bat.aspx</link><pubDate>Sun, 09 Apr 2006 20:41:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:571990</guid><dc:creator>jezzsa</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/jezzsa/comments/571990.aspx</comments><wfw:commentRss>http://blogs.msdn.com/jezzsa/commentrss.aspx?PostID=571990</wfw:commentRss><description>&lt;P&gt;Very recently p&amp;amp;p announced the 'Web Service Software Factory' (formerly the 'Service BAT') to the public community (&lt;A href="http://blogs.msdn.com/thehoggblog/archive/2006/04/05/569610.aspx" mce_href="http://blogs.msdn.com/thehoggblog/archive/2006/04/05/569610.aspx"&gt;official announcement here&lt;/A&gt;). The name is still not nailed down yet, but its drawing in close.&lt;/P&gt;
&lt;P&gt;A number of us in the community have been busy helping the p&amp;amp;p team refine the requirements and design of this guidance package and basically representing you guys - the community, in shaping this offering. The outcome of this project is set to be an exciting offering from p&amp;amp;p and a god send for developers building services today.&lt;/P&gt;
&lt;P&gt;At present the offering is in its infancy, but rapidly progressing. We are all hoping that when finally released this package will provide a huge step towards proving a factory for our development community that exubes automation, guidance, patterns and tools to speed the construction of services.&lt;/P&gt;
&lt;P&gt;It's quite an interesting position to be in with both authoring the EFx Factory and advising on the p&amp;amp;p 'Service Factory' project, since they both share the same overall vision. However, they do differ somewhat in their scope, approaches and end goals. The EFx Factory has been a gradual evolution from its beginnings as an application framework on .Net 1.0, into a automation toolkit and now a software factory on .Net 2.0. EFx provides more of a model driven approach to constructing Service Oriented applications and services. It is geared towards providing more architectural guidance, abstractions of the solution and separation between design and technology implementation and is based upon creating components on top of an application framework, (itself based upon Enterprise Library).&lt;/P&gt;
&lt;P&gt;It is yet to be seen what future direction the 'Service Factory' will take, which will be further influenced by the wider development community now. However, the EFx Factory has been useful in providing an alternative viewpoint to the problem space overall, and although not directly used in the development of the 'Service Factory' offering, EFx remains as an influencer in its further development.&lt;/P&gt;
&lt;P&gt;There are a number of key influencer's in this project (&lt;A href="http://blogs.msdn.com/thehoggblog/archive/2006/04/05/569610.aspx" mce_href="http://blogs.msdn.com/thehoggblog/archive/2006/04/05/569610.aspx"&gt;Jason names a few here&lt;/A&gt;), that provide various key parts that the toolkit covers, and these guys are all providing valuable input into the project - so check out what they have to say.&lt;/P&gt;
&lt;P&gt;&lt;A href="http://www.edwardbakker.nl/" mce_href="http://www.edwardbakker.nl"&gt;Edward&lt;/A&gt; currently owns the web space on the details of the &lt;A href="http://www.edwardbakker.nl/PermaLink,guid,1c610c51-8d58-411f-a874-f6342c3db22e.aspx" mce_href="http://www.edwardbakker.nl/PermaLink,guid,1c610c51-8d58-411f-a874-f6342c3db22e.aspx"&gt;'Service Factory'&lt;/A&gt; at the moment, and is going to provide many more details in the future. So no point me repeating them for you - hook into &lt;A href="http://www.edwardbakker.nl/" mce_href="http://www.edwardbakker.nl/"&gt;his blog&lt;/A&gt;.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=571990" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/jezzsa/archive/tags/EFx+Software+Factory/default.aspx">EFx Software Factory</category><category domain="http://blogs.msdn.com/jezzsa/archive/tags/Web+Services+Software+Factory/default.aspx">Web Services Software Factory</category><category domain="http://blogs.msdn.com/jezzsa/archive/tags/Software+Factories/default.aspx">Software Factories</category></item></channel></rss>