ASP.NET MVC扩展库

时间:2022-04-23
本文章向大家介绍ASP.NET MVC扩展库,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

很多同学都读过这篇文章吧 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