Unity is a lightweight, extensible dependency injection container.
On This Page
Unity is a lightweight, extensible dependency injection container. This release is a port of Unity 2.0 to Microsoft Silverlight 3.0 and 4.0.
Microsoft Silverlight is a cross-browser, cross-platform implementation of the Microsoft .NET Framework for building and delivering the next generation of media experiences and rich interactive application for the Web.
In Unity 2.0 for Silverlight some capabilities and packaging of the Unity container have been adjusted in order to accommodate the differences between Silverlight and the desktop common language runtime (CLR), so. The following are the major differences:
- XML configuration is not supported.
- Because of differences in the Silverlight security model, only public types can be created and injected by the container. The desktop version allows you to also inject internal types.
- The Unity interception mechanism is not supported.
For the full list of changes, please refer to the Release Notes.
A working knowledge of .NET programming and Silverlight is required.
The following are the system requirements for using Unity:
- Operating system: Microsoft Windows® 7 Professional, Enterprise or Ultimate; Windows Server 2003 R2; Windows Server 2008 with Service Pack 2; Windows Server 2008 R2; Windows Vista with Service Pack 2, or Windows XP with Service Pack 3.
- Microsoft® Silverlight™ 3 or Microsoft Silverlight 4.
For a rich development environment, the following are recommended:
- Microsoft Visual Studio® 2008 Development System with Service Pack 1 (any edition) or Microsoft Visual Studio 2010 Development System (any edition).
- Microsoft Silverlight3 Tools for Visual Studio 2008 SP1 or Visual Studio 2010, or Microsoft Silverlight 4 Tools for Visual Studio 2010
To run the unit tests, the following are also required:
- Microsoft Visual Studio 2008 Professional, Visual Studio 2008 Team Edition, Visual Studio 2010 Premium, Visual Studio 2010 Professional, or Visual Studio 2010 Ultimate edition.
- Moq v3.1 assemblies.
If these dependencies are not met, you may not be able to use certain features of Unity.
For an introduction to dependency injection, see the article Inversion of Control Containers and the Dependency Injection pattern by Martin Fowler.
For information about the key features of Unity, see What is Unity topic and the StopLight QuickStart packaged with the release.
Unity, like many patterns & practices deliverables, is associated with a community site. On this community site, you can post questions, provide feedback, or connect with other users to share ideas. Community members can also help Microsoft plan and test future releases of Unity, and download additional content such as extensions and training material.
Feedback and Support
Questions? Comments? Suggestions? To provide feedback about Unity 2.0 for Silverlight, or to get help with any problems, visit the Unity Community site. The message board on the community site is the preferred feedback and support channel because it allows you to share your ideas, questions, and solutions with the entire community. Unity for Silverlight is a guidance offering, designed to be reused, customized, and extended. Code-based guidance is shipped "as is" and without warranties. Customers can obtain support through Microsoft Premier Support Services for a fee, but the code is considered by Microsoft support staff as user-written.
Authors and Contributors
Unity 2.0 for Silverlight was produced by the following individuals:
- Product/Program Management: Grigori Melnik (Microsoft Corporation)
- Architecture/Development: Bob Brumfield and Chris Tavares (Microsoft Corporation), Fernando Simonazzi (Clarius Consulting), Nicolas Botto (Digit Factory) and Olaf Conijn (Olaf Conijn BV)
- Testing: Carlos Farre, Masashi Narumoto and Rohit Sharma (Microsoft Corporation), Nicolas Botto (Digit Factory), Lavanya Selvaraj, Magdelene Sona, Mani Krishnaswami, Meenakshi Krishnamoorthi, Santhosh Panneerselvam, and Ravindra Varman (Infosys Technologies Ltd), Erik Renaud and François Tanguay (nVentive Inc), Rick Carr (DCB Software Testing, Inc)
- Documentation: Alex Homer (Microsoft Corporation) and Dennis DeWitt (Linda Werner & Associates Inc)
- Editing and production: RoAnn Corbisier and Steve Elston (Microsoft Corporation), Nancy Michel (Content Master Ltd.), and Patrick Lanfear and Tom Draper (Twist Creative LLC)
- Release management: Richard Burte (ChannelCatalyst.com, Inc.) and Jennifer Burch (DCB Software Testing, Inc)
- Business administration support: Tracy Emory (Microsoft Corporation)
Many thanks to the following members of the Advisory Board:
- Brian Button (Asynchrony Solutions)
- Kyle Huntley (Avanade)
- David Starr (Elegant Code)
- Wallin Ludwik (Volvo), Bill Wilder (Fidelity)
- Andrej Golcov (Hermes SoftLab)
- John Askew, Nicholas Blumhardt, Martin Bennedik and Serge Baranovsky (Independent)
- Evgeny Sorokin and Ksenia Mukhortova (Intel)
- Scott Nichols (Idaho Central)
- Eng Chong Lim and Isabel Niu (McDonald's Corporation)
- Aaron Hanks, Glenn Block, Hugo Batista, Jason Hogg, Jason Olson, John Czernuszka, Joshy Joseph, Lenny Fenster, Massimo Mascaro, Matthew Podwysocki, Tom Hollander, Piyush Gupta, and Scott Densmore (Microsoft)
- Matthew Buonomano and Nikola Malovic (Monster.com)
- Daniel Piessens and Phill Van Hoven (Red Prairie)
- Walter Wu (Royal Bank of Canada)
Many thanks to the following people who previewed Unity 2.0 and provided valuable feedback and ideas:
- Ade Miller, Blaine Wastell, David Hill, Don Smith, Eugenio Pace, and Mohammad Al-Sabt (Microsoft Corporation).
- Microsoft Unity Container Home Page
- Unity 2.0
- Microsoft Enterprise Library Home Page
- Microsoft Enterprise Library 5.0