今天Unity Application Block提前发布了,翻译一下下文纪念一下. 顺便推荐看看我整理的Castle方面的资料开源框架:Castle,这有助于你理解和使用Unity Application Block。
今天Unity Application Block提前发布了,翻译一下下文纪念一下. 顺便推荐看看我整理的Castle方面的资料开源框架:Castle,这有助于你理解和使用Unity Application Block。
原文:http://msdn2.microsoft.com/en-us/library/cc468366.aspx
摘要
Unity Application Block (Unity)是一个 轻量级的, 可扩展的依赖注入容器.
下载
Unity Application Block – April 2008Unity Application Block Documentation for Visual Studio 2008Unity Application Block Documentation for Visual Studio 2005
社区
License
End User Licensing Agreement (EULA) (译者注:使用的协议是MS-PL,也就是说代码是按照开源的协议发布的)
概要
Unity Application Block (Unity)是一个 轻量级的, 可扩展的依赖注入容器. 它有助于构建松耦合的应用程序和为开发者提供以下便利:
- 简化对象的创建,特别在分层对象结构和依赖的情形下
- 它支持需求的抽象化,这允许开发人员在运行时或在配置文件中指定依赖,简化横切关注点(crosscutting concerns)的管理
- 它通过把组件配置推给容器来决定,增加了灵活性
- 服务定位能力; 这使客户端能够存储或缓存容器
Introduction to Unity 包括一系列的简短节所提供的信息有助于你判断Unity Application Block是否和你的需求相符.
Developing Applications Using Unity 描述如何配置容器以执行特定的任务,并说明了如何使用Unity创建和和构建实例对象。
学习如何扩展它的功能, 请看Extending and Modifying the Unity Application Block.
详细的部署方法,请看 Deployment and Operations.
常见场景
每个场景解释相应的工作, 描述了这项工作可能发生的现实的情况, 并包含代码演示了如何使用Unity Application Block来完成这项工作. 场景如下:
- Setting Up the Unity Container
- Resolving an Object by Type
- Resolving an Object by Type and Registration Name
- Resolving All Objects of a Particular Type
- Using BuildUp to Wire Up Objects Not Created by the Container
- Annotating Objects for Constructor Injection
- Annotating Objects for Property (Setter) Injection
- Annotating Objects for Method Call Injection
读者要求
.NET 编程的知识是必须的(译者注:应该具备基本的.net 编程的知识).
系统要求
以下是Unity的最小系统要求:
- Microsoft Windows XP Professional, Windows Server 2003, Windows Server 2008, or Windows Vista operating system
- Microsoft .NET Framework 2.0, 3.0, or 3.5
- Microsoft Visual Studio 2005 or Visual Studio 2008 development system (any of the following editions):
- Standard Edition
- Professional Edition
- Team Edition for Software Developers
- Team Edition for Software Testers
- Team Edition for Software Architects
- Team Suite
Unity Application Block 解决方案和项目文件都是Visual Studio 2005格式,你可以用Visual Studio 2005打开和修改。应用程序块所带的二进制程序集是.net framework 2.0的。然而,你可以在Visual Studio 2008创建的应用程序中引用二进制程序集。
你可以用Visual Studio 2008修改和扩展Unity Application Block。当你用Visual Studio 2008打开解决方案,Visual Studio 2008会升级的项目到VS2008格式和用.net framework 3.5编译程序集(译者注:用VS2008也可以选择.net framework 2.0来编译,共需要自己多做一步工作)。用VS2008 ,就没有办法把工程转换成Visual Studio 2005格式。因此保持原来的解决方案和项目.
设计目标
Unity Application Block 实现下述目标:
- 通过积极的解耦合促进模块化设计
- 提供人们对设计应用程序的时候要考虑最大限度的可测试性。
- 为创建新的对象实例和管理存在的对象实例提供一个快速的和轻量级的注入容器
- 为程序员使用容器提供一个紧凑而直观的API
- 支持广泛的代码语言,语言所支持接受泛型参数的重载方法
- 支持特性驱动(attribute-driven )的构造函数注入,属性注入, 和
methods of target objects(这个怎么翻译,那位兄弟翻译以下) - 通过自定义和第三方的容器扩展提供可扩展性
- 提供企业级业务线(LOB)所要求的性能
想了解Unity设计的更多信息, 请看 Design of the Unity Application Block.
Getting Started
关于依赖注入的介绍, 请看Martin Flower的文章 Inversion of Control Containers and the Dependency Injection pattern 。
关于Unity Application Block的主要特性请看Unity QuickStarts. 这个Unity 主要特性的文档是是开始使用Unity的一个很好起点.
社区
Unity Application Block,象许多已发布的的模式与实践 有一个 社区站点 在这个社区站点, 你可以提交你的问题, 提供反馈, 或者和其他的用户交流你的想法. 社区成员可以帮助微软计划和测试Unity已经发布的特性, 并可以下载额外的内容,例如容器的扩展和培训资料.
反馈和支持
问题? 评论? 建议? 关于Unity Application Block的反馈, 或者是寻求问题的帮助,请访问 Unity 社区站点. 社区网站的留言板是首选的反馈和支持渠道因为它允许你在整个社区分享你的想法,问题和解决方案。 Unity Application Block是一个指导性产品, 设计为可重用的 ,可定制的和可扩展的。 代码是按照"as is" 发布的,并没有保证。 用户可以通过微软的 Microsoft Premier Support Services 获得支持(译者注:需要费用,也就是说不是免费服务),但是微软支持人员认为代码是用户写的。
作者和贡献者
Unity Application Block 是由以下人员完成的:
- 产品经理: Grigori Melnik (Microsoft Corporation)
- 项目经理: Scott Densmore and William Loeffler (Microsoft Corporation)
- 架构师: Chris Tavares (Microsoft Corporation)
- 开发人员: Chris Tavares (Microsoft Corporation), Fernando Simonazzi (Clarius Consulting), and Nicolas Botto (Digit Factory)
- 测试团队: Hanz Zhang and Carlos Farre (Microsoft Corporation); Naveen Guda, Pooja Parate, Pravin Pawar, Ronita Acharya, Sai Pasumarthi, and Venkata Appaji Sirangi (Tata Consultancy Services); and Vijaya Janakiraman (Solutions IQ)
- 文档编写: Alex Homer (Content Master Ltd);
- 编辑团队: Nelly Delgado and RoAnn Corbisier (Microsoft Corporation), Tina Burden McGrayne (TinaTech, Inc.)
特别感谢产业咨询委员会的成员:
- Brian Button (Asynchrony Solutions)
- Daniel Piessens (Red Prairie)
- Francois Tanguay (nVentive)
- Keenan Newton (Microsoft Corporation)
- Kyle Huntley (Avanade)
- Lenny Fenster (Microsoft Corporation)
- Rinat Shagisultanov (Neudesic)
- Tom Hollander (Microsoft Corporation)
非常感谢以下为Unity做代码检查和提供有意义的反馈:
- Ade Miller, Blaine Wastell, Bob Brumfield, Brad Wilson, Glenn Block, Michael Puleio, Francis Cheung (Microsoft Corporation)
相关主题