The guide you are holding in your hands is a primer on using dependency injection with Unity – a lightweight extensible dependency injection container built by the Microsoft patterns & practices team. It covers various styles of dependency injection and also additional capabilities of Unity container, such as object lifetime management, interception, and registration by convention. It also discusses the advanced topics of enhancing Unity with your custom extensions.
The guide contains plenty of trade-off discussions and tips and tricks for managing your application cross-cutting concerns and making the most out of both dependency injection and Unity. These are accompanied by a real world example that will help you master the techniques. Keep in mind that Unity can be used in a wide range of application types such as desktop, web, services, and cloud. We encourage you to experiment with the sample code and think beyond the scenarios discussed in the guide.
In addition, the guide includes the Tales from the Trenches – a collection of case studies that offer a different perspective through the eyes of developers working on the real world projects and sharing their experiences. These chapters make clear the range of scenarios in which you can use Unity, and also highlight its ease of use and flexibility.
Whether you are a seasoned developer or just starting your development journey, we hope this guide will be worth your time studying it. We hope you discover that Unity container adds significant benefits to your applications and helps you to achieve the goals of maintainability, testability, flexibility, and extensibility in your own projects.
Über den Autor und weitere Mitwirkende
Dr. Grigori Melnik is a Principal Program Manager in the patterns & practices group at Microsoft. He leads the Microsoft Enterprise Library, Unity, Acceptance Testing Guidance, and CQRS Guidance projects. Prior to that, Grigori was a researcher, software engineer, and educator - long enough to remember the joy of programming in Fortran. His areas of expertise include agile methods, empirical software engineering, and software testing. Grigori is a regular contributor to software conferences around the world. He is a member of the IEEE Software Advisory board. Grigori holds a Ph.D. in Computer Science from the University of Calgary, Canada. Contact him at http://blogs.msdn.com/agile or follow him on twitter via @gmelnik.
Fernando Simonazzi is a software developer and architect with over 12 years of professional experience. He has been a contributor to several projects for Microsoft's patterns & practices group, including Prism v4 and several versions of the Enterprise Library.
Mani Subramanian is a software tester on the patterns & practices team. His recent projects include Enterprise Library (Windows Azure, V5), CQRS Journey, Unity, Prism 4.1. Areas he has worked on include core.net, Windows Azure and Windows Phone, BizTalk ESB, performance, security, and test management. He has 12+ years of industry experience. Prior to joining p&p, he was a developer for products that enable network security and worked as a project manager and test consultant.