EFx Factory

EFx Factory

The EFx Factory ( [http://msdn2.microsoft.com/en-us/library/aa905331.aspx (EFx Architectural-Guidance Software Factory] ) is a pioneering Architectural Guidance Software Factory from Microsoft, and one of the first implementations of a software factory to be built.

The ‘EFx Factory’ implements the [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnbda/html/distapp.asp .NET Distributed Architecture] for Service-Oriented applications and services.

The factory is based upon an Architectural Application Framework called Enterprise Framework that describes a physical Microsoft .NET architecture leveraging Microsoft Enterprise Library and other service-oriented patterns from Microsoft patterns & practices.The EFX Factory was designed and built by development consultants within [http://www.microsoft.com/services/microsoftservices Microsoft Consulting Services] in response to customer demand for an implementation of the .NET Architecture] , best practices for .NET development, and guidance on best use of Enterprise Library and a number of other application blocks freely available from Microsoft.

History

Initially, (circa 2003, .NET Framework 1.0-1.1, Visual Studio 2002–2003) ‘Enterprise Framework’ (EFx) was built to meet growing customer demand for an implementation of the .NET architecture. The framework was based upon implementation patterns harvested from several enterprise solution implementations, for various customers. This framework implemented the layered .NET architecture and leveraged, and extended Enterprise Library to provide a complete framework for authoring applications and services on the .NET platform.

This application framework evolved along with changes in the .NET platform, emerging Microsoft technologies and changes in industry service orientation patterns. The framework delivered a set of class libraries containing base implementations of the architectural layers prescribing certain technologies (such as ASMX), and ‘infrastructural services’ which developers used to address the cross-cutting concerns for the architectural layers: Exception handling, Authentication, Authorization, Logging etc. The framework extended Enterprise Library, and implemented several real-world security providers necessary for many customers of the time with heterogeneous technology environments. In addition, many best practice patterns, specifically concerning exception handling were built upon Enterprise Library to solve these requirements in an enterprise context. The framework also provided blocks that were not packaged in Enterprise Library, such as a validation block. It provided useful abstractions of Enterprise Library specific to this solution domain, that offered simplified APIs, and the framework unified the API with typing of string parameters.

The framework was delivered (in source form) as a set of framework assemblies, packaged with Enterprise Library. The framework included a suggested set of solutions, Reference Implementation (RI) and documentation. From this, the developers created their client side applications and server side ASP.NET web services. Development of an application or service required a developer to create a new solution and implement a set of assemblies (one for each layer), that referenced the framework assemblies. These were then deployed as an executable application or web service.

The primary challenge for developers was learning the patterns of the framework, and hand crafting the applications and services from blank solutions, without availability (at that time) of code templates. This resulted in prolific cut and pasting of code from the Reference Implementation code, itself highly vulnerable to manual error.

Circa 2005, several technologies emerged from Microsoft that enabled the use of templates, automation and modeling of these types of applications and services, including: Visual Studio 2005, [http://msdn2.microsoft.com/en-us/library/ms379582(VS.80).aspx Visual Studio Modeling] (Distributed Application and System Designers), the [http://msdn.microsoft.com/vstudio/teamsystem/Workshop/gat/default.aspx Guidance Automation Toolkit GAT] , and the [http://msdn.microsoft.com/vstudio/DSLTools/ Domain-Specific Language Toolkit] (DSL). Using these new technologies, the framework was able to evolve systematically into an implementation of a software factory. In that process, many of the constraints of the framework were lifted to enable further flexibility of the products which the factory could assemble. Primarily - the removal of the prescription of technology in the architectural layers, and the ability to deal effectively with change during the development of the applications and services. The factory introduced, through domain modeling, several new abstractions and utilized automation that were previously not possible.

This factory was one of the first factories to combine DSL diagrams with GAT recipes, as well as extending the [http://msdn2.microsoft.com/en-us/library/ms379582(VS.80).aspx Distributed Application and System Designers] of Visual Studio with GAT recipes. The factory makes extensive use of recipes: for automating changes to solution structure and property changes to that structure, providing wizards to configure the models the factory provides, generating project templates for work products and automating menial tasks for the factory user.

Circa 2006-2007, development on the EFx Factory was ceased as an offering from [http://www.microsoft.com/services/microsoftservices/srv_application.mspx Microsoft Consulting Services] , and many of the concepts it had pioneered are to be absorbed by the future software factory platform from Microsoft, and adopted by software factories from patterns & practices (such as the [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnpag2/html/servicefactory.asp Web Service Software Factory] ).

Core features

The following list exemplifies the features of this factory from others of its period.

Architectural Product Model

The factory was one of the first factories to be designed on a factory ' [http://blogs.msdn.com/photos/jezzsa/images/684385/original.aspx Product Model] ' (part of the factory schema), and the factory provides a logical architectural view (and supporting runtime) for creating/modifying the work products of the factory, for the developer. This logical model separates the logical design of the factory product ‘ [http://blogs.msdn.com/photos/jezzsa/images/677147/original.aspx Product Explorer] ’ from the physical implementation normally viewed and modified in ‘Solution Explorer’ of Visual Studio. In this way the physical structure of the solution artifacts could be separated from the logical architectural structure of the work products of the product. The factory user could now focus upon the architecture of the product, and author it using models and other abstractions, whilst the factory manages the creation, and placement of its source artifacts.

Distributed application and system designer integration

The factory integrates with, and extends, the [http://msdn2.microsoft.com/en-us/library/ms379582(VS.80).aspx Distributed Application and System Designers] installed with [http://search.msdn.microsoft.com/search/Redirect.aspx?title=Visual+Studio+2005+Team+Edition+for+Software+Architects+&url=http://msdn.microsoft.com/vstudio/teamsystem/products/arch/ Visual Studio Team Edition for Software Architects] . The Visual Studio provided diagrams such as the Application Designer and System Designers provide a means to define the high-level application (and services) in an enterprise and compose those into black box systems, which themselves can be composed into larger systems. The factory extends these designers to add a number of new shapes representing the implementation of those applications and services. These new shapes can then be implemented to provide the specific projects and solution templates to represent their physical structure in the factory product. These templates added a new set of diagram files to represent the internal component parts of the application and service layers. These [http://blogs.msdn.com/photos/jezzsa/images/544743/original.aspx diagrams] define the specification of the application or service layers, and give the user a navigation path ( [http://blogs.msdn.com/photos/jezzsa/images/677127/original.aspx drill-down] ) from the high-level applications into the inner implementation details.

Composability and technology extensibility

The factory models (using [http://msdn.microsoft.com/vstudio/DSLTools/ DSL’s] ) the internal implementation of the applications and services based upon a logical, technology-independent architecture and SOA patterns. This architecture is composed of several layers which are then extended and implemented by pluggable ‘Artefact Generators’ (or ‘technology providers’). The technology providers provide a technology specific implementation (and view) of each layer. An example a such a layer would be the ‘Service Contract’ layer of a web service, containing service interfaces, service operations and data contracts.This factory was the first factory to provide an extensibility mechanism with which 3rd parties (such as Global SI's and ISV's and community domain experts) would provide technology tailored implementations of the various layers. These technology providers would take the form of other external factories (or factorettes), that would integrate into the EFx factory to enhance and expose technology specific views of the architectural models, and ultimately, transform those into source artefacts. This technology separation capability allowed a 'variant factory' to be packaged up and deployed to include: the technology-independent core factory (and its’ models) with several ‘Artefact Generators’ providing the technology implementations. The factory enabled the composability of variant factories that could build solutions to suit a multitude of real-world heterogeneous technology environments.

ee also

* Factorette
* Software Factory (Microsoft .NET)

External links

* MSDN Whitepaper — [http://msdn2.microsoft.com/en-us/library/aa905331.aspx The EFx Architectural-Guidance Software Factory]
* Factory Blog — [http://blogs.msdn.com/jezzsa/archive/tags/EFx+Software+Factory/default.aspx EFx Software Factory]
* ArCast — [http://www.skyscrapr.net/blogs/arcasts/default.aspx?ID=597 ARCast.net — The EFx Architectural-Guidance Software Factory]


Wikimedia Foundation. 2010.

Игры ⚽ Поможем написать реферат

Look at other dictionaries:

  • EFX — may refer to: * EFX (show), a Las Vegas show * Enterprise Framework (EFx), see EFx Factory * Enerflex Systems, a Canadian company listed as EFX on the Toronto Stock Exchange * Equifax, a U.S. company listed as EFX on the New York Stock Exchangeee …   Wikipedia

  • Software Factory (Microsoft .NET) — Although the term software factory is used by Microsoft in association with their .NET Framework, Software Factories are much broader in use and application.Implementations* The EFx Factory from [http://www.microsoft.com/services/microsoftservices… …   Wikipedia

  • Component Object Model — Not to be confused with COM file. Component Object Model (COM) is a binary interface standard for software componentry introduced by Microsoft in 1993. It is used to enable interprocess communication and dynamic object creation in a large range… …   Wikipedia

  • Microsoft Enterprise Library — Enterprise Library Developer(s) Microsoft and Community Stable release 5.0.505.0 / 11 May 2011; 6 months ago (2011 05 11) Operating system Windows7, Windows Server 2008, W …   Wikipedia

  • Composite UI Application Block — The Composite UI Application Block (or CAB) is an addition to Microsoft s .NET Framework for creating complex user interfaces made of loosely coupled components. Developed by Microsoft s patterns practices team, CAB is used exclusively for… …   Wikipedia

  • DirectX — A component of Microsoft Windows Details Included with Windows 95 OSR2 Windows NT 4.0 and all subsequent releases Microsoft Direct …   Wikipedia

  • ActiveX Data Objects — Microsoft s ActiveX Data Objects (ADO) is a set of Component Object Model (COM) objects for accessing data sources. A part of MDAC, it provides a middleware layer between programming languages and OLE DB (a means of accessing data stores, whether …   Wikipedia

  • .NET Framework — This article is about the Microsoft technology. For the Top level domain, see .net. For other uses, see .NET. .NET Framework Developer(s) Microsoft …   Wikipedia

  • Windows API — The Windows API, informally WinAPI, is Microsoft s core set of application programming interfaces (APIs) available in the Microsoft Windows operating systems. It was formerly called the Win32 API; however, the name Windows API more accurately… …   Wikipedia

  • Distributed Component Object Model — (DCOM) is a proprietary Microsoft technology for communication among software components distributed across networked computers. DCOM, which originally was called Network OLE , extends Microsoft s COM, and provides the communication substrate… …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”