很多同學都讀過這篇文章吧 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