Patterns & Practices – New addition Unity

The Unity Application Block (Unity) is a lightweight extensible dependency injection container with support for constructor, property, and method call injection.

Unity addresses the issues faced by developers engaged in component-based software engineering. Modern business applications consist of custom business objects and components that perform specific or generic tasks within the application, in addition to components that individually address cross cutting concerns such as logging, authentication, authorization, caching, and exception handling.

The key to successfully building such applications is to achieve a decoupled or very loosely coupled design. Loosely coupled applications are more flexible and easier to maintain. They are also easier to test during development. You can mock up shims (lightweight mock implementations) of objects that have strong concrete dependencies; such as database connections, network connections, ERP connections, and rich user interface components.

Dependency injection is a prime technique for building loosely coupled applications. It provides ways to handle the dependencies between objects. For example, an object that processes customer information may depend on other objects that access the data store, validate the information, and check that the user is authorized to perform updates. Dependency injection techniques can ensure that the customer class correctly instantiates and populates all of these objects, especially where the dependencies may be abstract.

More details here: http://www.codeplex.com/unity

 

Patterns & Practices – New addition Unity

The Unity Application Block (Unity) is a lightweight extensible dependency injection container with support for constructor, property, and method call injection.

Unity addresses the issues faced by developers engaged in component-based software engineering. Modern business applications consist of custom business objects and components that perform specific or generic tasks within the application, in addition to components that individually address cross cutting concerns such as logging, authentication, authorization, caching, and exception handling.

The key to successfully building such applications is to achieve a decoupled or very loosely coupled design. Loosely coupled applications are more flexible and easier to maintain. They are also easier to test during development. You can mock up shims (lightweight mock implementations) of objects that have strong concrete dependencies; such as database connections, network connections, ERP connections, and rich user interface components.

Dependency injection is a prime technique for building loosely coupled applications. It provides ways to handle the dependencies between objects. For example, an object that processes customer information may depend on other objects that access the data store, validate the information, and check that the user is authorized to perform updates. Dependency injection techniques can ensure that the customer class correctly instantiates and populates all of these objects, especially where the dependencies may be abstract.

More details here: http://www.codeplex.com/unity

 

patterns & practices Application Architecture Guide – v2.0 beta


Link: http://www.codeplex.com/AppArchGuide

Provides design-level guidance for the architecture and design of applications built on the .NET Framework. It focuses on the most common types of applications, partitioning application functionality into layers, components, and services, and walks through their key design characteristics.This guide is a collaborative effort between patterns & practices, product teams, and industry experts.

 

patterns & practices Application Architecture Guide – v2.0 beta


Link: http://www.codeplex.com/AppArchGuide

Provides design-level guidance for the architecture and design of applications built on the .NET Framework. It focuses on the most common types of applications, partitioning application functionality into layers, components, and services, and walks through their key design characteristics.This guide is a collaborative effort between patterns & practices, product teams, and industry experts.

 

MSF White paper – Project Management

Microsoft Solutions Framework (MSF) Whitepaper – MSF Project Management Discipline v1.1 can be read here (pdf)

Microsoft Solutions Framework (MSF) has a distributed team approach to project management that improves accountability and allows a great range of scalability from small projects to very large, complex projects. This paper describes how the distributed team approach works and also explains how project managers relate to the MSF team model. Although project management is important in small projects, the focus in this paper is on large projects with extended teams. While not touching on all aspects of the project management field, recommended practices for planning and estimating are also given.

 

MSF White paper – Project Management

Microsoft Solutions Framework (MSF) Whitepaper – MSF Project Management Discipline v1.1 can be read here (pdf)

Microsoft Solutions Framework (MSF) has a distributed team approach to project management that improves accountability and allows a great range of scalability from small projects to very large, complex projects. This paper describes how the distributed team approach works and also explains how project managers relate to the MSF team model. Although project management is important in small projects, the focus in this paper is on large projects with extended teams. While not touching on all aspects of the project management field, recommended practices for planning and estimating are also given.

 

Agile Modeling

Agile Modeling (AM) is a practice-based methodology for effective modeling and documentation of software-based systems. At a high level AM is a collection of best practices, depicted in the pattern language map below (click on the practice for information). At a more detailed level AM is a collection of values, principles, and practices for modeling software that can be applied on a software development project in an effective and light-weight manner.

Read more here

 

Agile Modeling

Agile Modeling (AM) is a practice-based methodology for effective modeling and documentation of software-based systems. At a high level AM is a collection of best practices, depicted in the pattern language map below (click on the practice for information). At a more detailed level AM is a collection of values, principles, and practices for modeling software that can be applied on a software development project in an effective and light-weight manner.

Read more here