Microsoft Enterprise Library

Last updated
Enterprise Library
Developer(s) Microsoft and Community
Stable release
6.0.1304.0 / 25 April 2013;10 years ago (2013-04-25)
Operating system Windows 8, Windows 7, Windows Server 2012, Windows Server 2008, and above
Platform .NET Framework
Type Software Factory
License Microsoft Public License opensource.org/licenses/ms-pl
Website msdn.microsoft.com/entlib
www.codeplex.com/entlib

The Microsoft Enterprise Library is a set of tools and programming libraries for the Microsoft .NET Framework. It provides APIs to facilitate proven practices in core areas of programming including data access, logging, exception handling and others. Enterprise Library is provided as pluggable binaries and source code, which can be freely used and customized by developers for their own purposes. It also ships with test cases and quickstarts.

Contents

Benefits

Application Blocks

Each application block addresses a specific cross-cutting concern and provides highly configurable features, which results in higher developer productivity. The Application Blocks in Enterprise Library are designed to be as agnostic as possible to the application architecture, for example the Logging Application Block may be used equally in a web, smart client or service-oriented application.

Microsoft have produced a number of other deliverables that leverage Enterprise Library Application Blocks, [1] including the Web Service Software Factory and Smart Client Software Factory.[ citation needed ]

Utilities

In addition to the Application Blocks, the standard Microsoft distribution of the Enterprise Library includes:

Version history

There have been several versions of the Microsoft Enterprise Library:

Unity 3.5 Portable Class Library Preview

Unity is the dependency injection component of Microsoft Enterprise Library, which grew out of the Dependency Injection Application Block. It later became a standalone library [2] and continues to be maintained by the community. [3] Version 3.5, released in April 2014, [4] adds support for Xamarin. [5]

Version 6.0

Microsoft Enterprise Library 6 was released in April 2013. [6] New features include:

This release has also retired the following 3 blocks:

Version 5.0

Microsoft Enterprise Library 5.0 was released in April 2010, announced by Grigori Melnik. [7] New features include:

Version 5.0 Silverlight Integration Pack

A port of Microsoft Enterprise Library 5.0 to Silverlight. Released in May 2011, [8] it includes the following blocks:

Version 5.0 Windows Azure Integration Pack

Released in December 2011 [9]

Unity 3.0

Released April 2013. [10]

Unity 2.1

Original released in May 2011, with an update in August 2012. [11]

Version 4.1

This release of Enterprise Library in October 2008 [12] is a service releases that includes the following: [13]

The Application Block Software Factory and the Strong Naming Guidance Package are not included in this release but are available as a separate download. Thus, there is no longer a dependency on Guidance Automation Extensions (GAX).

Version 4.0

This release of Enterprise Library in May 2008 [14] includes the following:

Version 3.1

In May 2007, Enterprise Library 3.1 was released with minor enhancements to the Validation and Policy Injection Application Blocks.

Version 3.0

In April 2007, Enterprise Library 3.0 was released. It contains new Application Blocks, a new Application Block Software factory designed to simplify the development of new Application Blocks and extensions, and new features providing better integration with .NET Framework 3.0. The 3.0 release of Enterprise Library contains the following Application Blocks:

Version 2.0

In January 2006, a new version of Enterprise Library was released that targeted .NET Framework 2.0. The most significant change in this release was that the Configuration Application Block was removed, and the blocks were updated to use .NET's improved System.Configuration capabilities. This release also included significant improvements to the Logging Application Block, and much of the Security Application Block was removed due to similar capabilities provided in .NET Framework 2.0. The .NET 2.0 release of Enterprise Library contained the following Application Blocks:

Version 1.1

Two releases of Enterprise Library were released for .NET Framework 1.1. The first was released in January 2005, followed by a minor maintenance release in June 2005. The .NET 1.1 releases of Enterprise Library contained the following Application Blocks:

Version 1.0

Future

Ron Jacobs, a Microsoft Evangelist, described the purpose of Enterprise Library as "filling in the gaps" of .NET development between releases of the framework. As the framework continues to advance, developers are demanding more productive development libraries.

At the same time, Microsoft platforms evolve and certain scenarios, initially addressed by the Enterprise Library, are now being supported by the platforms themselves. In this case, the patterns & practices team uses the graceful retirement process to deprecate some parts. [15]

Microsoft continues to promote Enterprise Library for enterprise/line-of-business development, and even many Microsoft products as well as projects within Microsoft IT use it extensively.

Starting November 2013, Microsoft fully open-sourced Enterprise Library and all of its application blocks. [16] They now accept community contributions. The latest releases of SLAB1.1 and Unity 3.5 are developed in close collaboration with the community.

In August 2015, Microsoft posted they were handing Unity Dependency Injection over to new owners (Pablo Cibraro and Pedro Wood) into a new GitHub repo. [3] At the same time, the patterns & practices - Enterprise Library home web site on CodePlex, [17] announced that the remainder of the application blocks will no longer be developed. However, the source will continue to be available.

See also

Related Research Articles

<span class="mw-page-title-main">Internet Information Services</span> Extensible web server software by Microsoft

Internet Information Services (IIS) is an extensible web server created by Microsoft for use with the Windows NT family. IIS supports HTTP, HTTP/2, HTTPS, FTP, FTPS, SMTP and NNTP. It has been an integral part of the Windows NT family since Windows NT 4.0, though it may be absent from some editions, and is not active by default.

<span class="mw-page-title-main">Delphi (software)</span> General-purpose programming language and a software product

Delphi is a general-purpose programming language and a software product that uses the Delphi dialect of the Object Pascal programming language and provides an integrated development environment (IDE) for rapid application development of desktop, mobile, web, and console software, currently developed and maintained by Embarcadero Technologies.

<span class="mw-page-title-main">Adobe ColdFusion</span> Rapid Web app development platform

Adobe ColdFusion is a commercial rapid web-application development computing platform created by J. J. Allaire in 1995. ColdFusion was originally designed to make it easier to connect simple HTML pages to a database. By version 2 (1996) it had become a full platform that included an IDE in addition to a full scripting language.

<span class="mw-page-title-main">Dependency injection</span> Software programming technique

In software engineering, dependency injection is a programming technique in which an object or function receives other objects or functions that it requires, as opposed to creating them internally. Dependency injection aims to separate the concerns of constructing objects and using them, leading to loosely coupled programs. The pattern ensures that an object or function which wants to use a given service should not have to know how to construct those services. Instead, the receiving 'client' is provided with its dependencies by external code, which it is not aware of. Dependency injection makes implicit dependencies explicit and helps solve the following problems:

In software engineering, inversion of control (IoC) is a design pattern in which custom-written portions of a computer program receive the flow of control from a generic framework. The term "inversion" is historical: a software architecture with this design "inverts" control as compared to procedural programming. In procedural programming, the code that expresses the purpose of the program calls reusable libraries to take care of generic tasks, but with inversion of control, it is the framework that calls the custom (program) code.

Netscape Plugin Application Programming Interface (NPAPI) was an application programming interface (API) of the web browsers that allows plugins to be integrated.

Windows Presentation Foundation (WPF) is a free and open-source graphical subsystem originally developed by Microsoft for rendering user interfaces in Windows-based applications. WPF, previously known as "Avalon", was initially released as part of .NET Framework 3.0 in 2006. WPF uses DirectX and attempts to provide a consistent programming model for building applications. It separates the user interface from business logic, and resembles similar XML-oriented object models, such as those implemented in XUL and SVG.

ColdSpring is a web application framework for the ColdFusion application programming language, based on the Java Spring Framework. It was originally created by Dave Ross and Chris Scott. The framework provides Dependency injection, inversion of control and aspect-oriented programming design pattern capabilities in an effort to make the configuration and dependencies of ColdFusion components (CFCs) easier to manage.

The Spring Framework is an application framework and inversion of control container for the Java platform. The framework's core features can be used by any Java application, but there are extensions for building web applications on top of the Java EE platform. The framework does not impose any specific programming model.. The framework has become popular in the Java community as an addition to the Enterprise JavaBeans (EJB) model. The Spring Framework is open source.

<span class="mw-page-title-main">SharePoint</span> Web application platform

SharePoint is a web-based collaborative platform that integrates natively with Microsoft 365. Launched in 2001, SharePoint is primarily sold as a document management and storage system. However the product is highly configurable, and its usage varies substantially among organizations, from sharing information through intranets to internal apps implementing business processes through workflows.

<span class="mw-page-title-main">PowerShell</span> Cross-platform command-line interface and scripting language for system and network administration

PowerShell is a task automation and configuration management program from Microsoft, consisting of a command-line shell and the associated scripting language. Initially a Windows component only, known as Windows PowerShell, it was made open-source and cross-platform on August 18, 2016, with the introduction of PowerShell Core. The former is built on the .NET Framework, the latter on .NET.

The POrtable COmponents (POCO) C++ Libraries are computer software, a set of class libraries for developing computer network-centric, portable applications in the programming language C++. The libraries cover functions such as threads, thread synchronizing, file system access, streams, shared libraries and class loading, Internet sockets, and network communications protocols, and include an HTTP server, and an XML parser with SAX2 and DOM interfaces and SQL database access. The modular and efficient design and implementation makes the libraries well suited for embedded system development.

<span class="mw-page-title-main">.NET Framework version history</span>

Microsoft started development on the .NET Framework in the late 1990s originally under the name of Next Generation Windows Services (NGWS). By late 2001 the first beta versions of .NET Framework 1.0 were released. The first version of .NET Framework was released on 13 February 2002, bringing managed code to Windows NT 4.0, 98, 2000, ME and XP.

Canigó is the name chosen for the Java EE framework of the Generalitat de Catalunya.

<span class="mw-page-title-main">ColdBox Platform</span> Web application framework

ColdBox is a free, open-source, conventions-based, modular web application framework intended for building enterprise applications with ColdFusion (CFML) using a Hierarchical MVC approach.

<span class="mw-page-title-main">Mono (software)</span> Computer software project

Mono is a free and open-source .NET Framework-compatible software framework. Originally by Ximian, it was later acquired by Novell, and is now being led by Xamarin, a subsidiary of Microsoft and the .NET Foundation. Mono can be run on many software systems.

<span class="mw-page-title-main">Ember.js</span>

Ember.js is an open-source JavaScript web framework that utilizes a component-service pattern. It allows developers to create scalable single-page web applications by incorporating common idioms, best practices, and patterns from other single-page-app ecosystem patterns into the framework.

References

  1. "Microsoft patterns & practices". GitHub. Microsoft. Retrieved 27 November 2020.
  2. Tavares, Chris. "Forward to Developer's Guide to Dependency Injection Using Unity". microsoft.com. Microsoft Patterns & Practices. Retrieved 27 November 2020.
  3. 1 2 "The future of Unity". blogs.msdn.microsoft.com. 21 August 2015. Retrieved 2016-05-07.
  4. Melnik, Grigori. "Unity 3.5 RTW: Now with more Peace, Love, and Rock 'n' Roll". Microsoft Blog. Retrieved 27 November 2020.
  5. "Simplifying cross-platform development - Unity 3.5 Portable Class Library Preview". MSDN Blog. Microsoft. Archived from the original on 26 Nov 2015.
  6. "Just released - Microsoft Enterprise Library 6". microsoft.com. Retrieved 27 November 2020.
  7. Melnik, Grigori. "Microsoft Enterprise Library 5.0 Released!". Microsoft Blog. Retrieved 27 November 2020.
  8. Melnik, Gregori. "Silverlight Integration Pack for Microsoft Enterprise Library 5.0 released!". Microsoft Blog.
  9. Melnik, Grigori. "Announcing the Enterprise Library Integration Pack for Windows Azure with Autoscaling, Transient Fault Handling and more". Microsoft Blog. Retrieved 27 November 2020.
  10. "Unity 3". Microsoft.
  11. "Unity 2.1". Microsoft.
  12. Melnik, Grigori. "Just Released: Microsoft Enterprise Library 4.1 and Unity 1.2". Microsoft Patterns & Practices. Retrieved 27 November 2020.
  13. "About This Release of Enterprise Library". microsoft.com. Retrieved 27 November 2020.
  14. "Microsoft Enterprise Library 4.0 – May 2008". Microsoft Patterns & Practices. Retrieved 27 November 2020.
  15. Melnik, Grigori. "On deprecation". Microsoft Blog. Retrieved 27 November 2020.
  16. Melnik, Grigori. "Microsoft Enterprise Library - Open Development Model". Microsoft Blog.
  17. "patterns & practices – Enterprise Library". CodePlex. Archived from the original on 2018-01-16. Retrieved 2016-05-07.

Further reading