很多同学都读过这篇文章吧 ASP.NET MVC中你必须知道的13个扩展点,今天给大家介绍一个ASP.NET MVC的扩展库,主要就是针对这些扩展点进行。这个项目的核心是IOC容器,包括Ninject, StructureMap, Unity ,Windsor和Autofac。如果你和我一样喜欢使用IOC,这个库值得你关注,这些IOC我都用过了,现在比较喜欢使用Autofac。
ASP.NET MVC扩展库的网站地址是http://www.mvcextension.com/,基于Ms-PL协议的开源库,5.11发布了1.0版本,下面介绍一下他的特性:
- 这个库的核心是IOC,却可以让你的代码和IOC无关,你的代码却可以使用强大的IOC。
- 多个IOC库的适配器:所有.NET上流行的IOC容器都由适配器。
- Bootstrapping:不用在各个项目中写类似的代码了,处理你的Controller/Controller Factory/Model Binders/View Engines/Action Filters/Custom Dependencies的注册。
- PerRequestTask:类似于HttpModule处理自定义的业务逻辑,还可以控制执行的顺序。
- Model Binder:通过构造函数注入你的Model Binder的自定义的依赖。
- Action Filter Fluent Registration:支持构造函数方式注入流贯的注册你的Action Filter。
- ModelMetadata Fluent Configuration:支持复合ModelMetadata provider, 默认使用DataAnnotationsModelMetadataProvider,还支持EF Code First 和 Fluent NHibernate.
- 各种ActionResults:包含通用的ActionResults,其中包括XmlResult,ExtendedJsonResult(支持JsonConverters),Adaptive PRG (PostRedirectGet) results。
- 各种通用的Route 变量:包括Range, Positive Int/Long, Guid, Enum, RegEx等等
- 各种其他的实用方法和助手类。
这个库的实际应用的例子可以看这个项目Shrinkr,作者在博客上有几篇文章介绍:
MvcExtensions – Bootstrapping Wednesday, May 12, 2010
Announcing the RTM of MvcExtensions (aka System.Web.Mvc.Extensibility) Tuesday, May 11, 2010