Solution Development Fundamentals

patterns & practices Developer Center

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.

Active Releases

  • 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.

  • Semantic Logging 2.0. Semantic Logging can help to minimize the development effort required to implement structured event logging in your applications, and reduce the chances of inconsistency and errors when writing code that conforms to modern practice for generating logs containing semantically useful typed information. The Semantic Logging Application Block is a framework for capturing and manipulating events raised by applications, and storing the typed and structured information they contain in log files or other logging stores. Logs of this type make automated log parsing and monitoring much easier and more efficient.

  • 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 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.

Technical Articles

Please refer to the patterns & practices: Retired section for all retired offerings.

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 Projects.