Software factories provide a way to  

  • Handle cross-cutting concerns such as authentication, instrumentation, exception handling, logging consistantly.
  • Train developers on how to correctly use best practices, patterns, and technologies.
  • Increase developer productivity. 

In October 2006, MSDN published a white paper describing an implementation of a software factory to implement the Microsoft Distributed Architecture for .NET Applications for building application and services. The paper is called, Building Distributed Applications: The EFx Architectural-Guidance Software Factory.

The software factory described in the paper combined Enterprise Library, a number of Microsoft Application Blocks, and best practices. The EFx Software Factory was developed by Microsoft Consulting Services and there wasn't really public release. Jezz Santos describes what has happened to EFx in his blog posting, EFX Factory Futures.

Since EFx was created, several important software factories have been produced by the patterns and practices group which is closing the gap between the vision of EFx and products you can use. This includes the Web Service Software Factory. The latest version provide ways to construct web services using best practices for either Windows Communications Foundations (WCF) or ASP.NET ASMX.

Several other software factories have been created:

For those wanting to build their own software factories: Jeez has a series of postings that describe how to do it yourself at Building Software Factories. Edward Bakker provides the starting point: Software Factories: Where to Start?