Solution Development Fundamentals
Solution development fundamentals cover the cross-cutting aspects of solution development, such as security, caching, data access, validation, exception management, and so on. It also includes application architecture, development process, the software development life cycle (SDLC), and application life cycle guidance. You will find guidance and patterns that are generally applicable to solution development regardless of the specific architecture or scenario.
Enterprise Library. Enterprise Library is a collection of application blocks that address common cross-cutting concerns that developers face when developing applications. The latest version of Enterprise Library (version 6) was released in April 2013 and includes two new application blocks (Semantic Logging Application Block and Transient Fault Handling Application Block) and many improvements.
The Enterprise Library 5.0 Integration Pack for Windows Azure is a collection of reusable application blocks that address common cross-cutting concerns in enterprise software development. The Microsoft Enterprise Library Integration Pack for Windows Azure is an extension to Microsoft Enterprise Library 5.0 that can be used with the Windows Azure technology platform. It includes the Autoscaling Application Block, Transient Fault Handling Application Block, blob configuration source, protected configuration provider, and learning materials.
- Unity. Unity is a lightweight and extensible dependency injection container with support for interception. We recently released Unity 3.0 (also part of the latest version of Enterprise Library) which added a number of key features, including registration by convention and support for Windows Store apps. Unity provides a mature and stable foundation for building high-quality, flexible, pattern-based libraries and reference implementations. It facilitates loosely-coupled design and help improve testability.
- Data Access for Highly-Scalable Solutions: Using SQL, NoSQL, and Polyglot Persistence. This guide describes how to design and build applications and services that can take best advantage of SQL and NoSQL databases by combining them into a polyglot solution. It provides an end to end walkthrough of a business application that uses SQL Server in conjunction with a variety of NoSQL databases, showing how the designers selected the databases to closely match the various business requirements. This guide has an accompanying reference implementation of an online ordering system. The sample code illustrates how to implement a polyglot solution that stores data in a variety of SQL and NoSQL databases, and how to decouple the data access logic from the business logic of the application.
- Parallel Programming with Microsoft .NET This book describes patterns for parallel programming, with code examples, that use the new parallel programming support in the Microsoft® .NET Framework 4. This support is commonly referred to as the Parallel Extensions. You can use the patterns described in this book to improve your application's performance on multicore computers. Adopting the patterns in your code makes your application run faster today and also helps prepare for future hardware environments, which are expected to have an increasingly parallel computing architecture
- Parallel Programming with Microsoft Visual C++ This book describes patterns for parallel programming, with code examples, that use the parallel programming support in the Microsoft® Visual C++. The Parallel Patterns Library (PPL) and the Asynchronous Agents Library introduce a new programming model for parallelism that significantly simplifies the job. Behind the scenes are sophisticated algorithms that dynamically distribute computations on multicore architectures. In addition, Microsoft® Visual Studio® 2010 development system includes debugging and analysis tools to support the new parallel programming model. You can use the patterns described in this book to improve your application's performance on multicore computers. Adopting the patterns in your code makes your application run faster today and also helps prepare for future hardware environments, which are expected to have an increasingly parallel computing architecture
- CQRS Journey. This guidance is designed to help you get started with the Command & Query Responsibility Segregation and the Event Sourcing patterns. The guide is a journal that describes the experiences of a development team with no prior CQRS proficiency in building, deploying (to Windows Azure), and maintaining a sample real-world complex enterprise system to showcase various CQRS and ES concepts and techniques.
- A Guide to Claims–based Identity and Access Control, 2nd Edition. This guide gives you enough information to evaluate claims-based identity as a possible option when you're planning a new application or making changes to an existing one. It is intended for any architect, developer, or information technology (IT) professional who designs, builds, or operates Web applications and services that require identity information about their users.
- Building a Release Pipeline with Team Foundation Server 2012. This book shows how to use Team Foundation Server to build a release pipeline that is based on the Build – Deploy – Test – Release pattern. It uses an iterative approach that begins with a simple, largely unautomated pipeline and ends with a completely automated, continuous delivery pipeline. By continuous delivery, we mean that through techniques such as versioning, continuous integration, automation, and environment management, you will be able to decrease the time between when you first have an idea and when that idea is realized as software that's in production. Any software that has successfully gone through your release process will be software that is production ready, and you can give it to customers whenever your business demands dictate. There are also hands-on labs that accompany the book to show you how to build a release pipeline using Visual Studio ALM tools.
- Testing for Continuous Delivery with Visual Studio 2012. This guide provides an end-to-end walkthrough of the testing scenarios supported by the Visual Studio 2012 infrastructure. It will help testers and developers use Team Foundation Server effectively as an application lifecycle management solution for testing and supporting products.
- Microsoft Application Architecture Guide, 2nd Edition. This guide provides design-level guidance for the architecture and design of applications built on the .NET Framework.
- Performance Testing Guidance for Web Applications. This guide shows you an end-to-end approach for implementing performance testing for your Web applications.
- Describing the Enterprise Architectural Space — June 2004
- Enterprise Solution Patterns Using Microsoft .NET — June 2003
- Microsoft .NET/COM Migration and Interoperability — August 2001
- Enterprise Library 4.1 — October 2008
- Unity Application Block 1.2 for Silverlight — December 2008
- Unity Application Block 1.2 — October 2008
- Visual Studio Team System — September 2007
- Write Less Code and Play More Golf — Getting to Know Enterprise Library 4.0
- Inject Some Life into Your Applications — Getting to Know the Unity Application Block
- Getting to Know the Team System Management Model Designer
- Exploring the Factory Design Pattern
- Exploring the Observer Design Pattern
- Guidance Automation (GAT/GAX)
- Upgrading Visual Basic 6.0 Applications to Visual Basic .NET and Visual Basic 2005 — October 2005
- .NET Data Access Architecture Guide — June 2003
- Asynchronous Invocation Application Block for .NET — June 2003
- Data Patterns — June 2003
- Deploying .NET Framework-based Applications — June 2003
- Caching Architecture Guide for .NET Framework Applications — April 2003
- Application Architecture for .NET: Designing Applications and Services — December 2002
- Designing Data Tier Components and Passing Data Through Tiers — August 2002
- Exploring the Singleton Design Pattern — February 2002
- Monitoring in .NET Distributed Application Design — August 2001
- Exception Management Architecture Guide
- Enterprise Library 5.0 Integration Pack for Silverlight
- Enterprise Library 4.1 — October 2008
- Enterprise Library 4.0 — May 2008
- Enterprise Library 3.1 — May 2007
- Enterprise Library 2.0 — January 2006
Unity Application Block
- Unity 2.0 – April 2010
- Unity Application Block 2.0 for Silverlight — April 2010
- Unity Application Block 1.1 — May 2008
- Testing .NET Application Blocks Version 1.0 — January 2005
- Testing Software Patterns — October 2003
- Production Debugging for .NET Framework Applications — November 2002
Please refer to the patterns & practices: Retired section for all retired offerings.
Last updated June 2010
About Microsoft patterns & practices
Recommendations on how to design and develop custom applications using the Microsoft platform.
By using patterns & practices offerings, you can accelerate the design and development of your custom applications, reduce project technical risk, and position yourself to take advantage of future Microsoft technologies. Each patterns & practices offering contains a combination of written documentation and re-usable source code. Many also include a reference implementation. This combination provides you with a solid starting point for your application, and a set of proven practices to aid your development.
For more information, visit the patterns & practices Developer Center.