The beauty of the ASP.NET MVC Framework is that it is so extensible. I talked about the extensibility in detail several times, especially at the Orlando CodeCamp 2009 as well the Tampa ASP.NET MVC Developer Group:
Some of the more common extensibility points are:
- Custom ControllerFactory
- Custom View Engines
- Custom Filters - IActionFilter, IResultFilter, IExceptionFilter, IAuthorizationFilter
- etc...
Typically when you are building ASP.NET MVC Web Applications you will also take advantage of an IoC / Dependency Injection Container ( like Unity ) and leverage that to inject dependencies into your controllers, action filters, etc.
Getting all these customizations and wirings set-up and working properly is pretty easy, but tiresome from project-to-project. You will either want to leverage a code generator, item or project templates in Visual Studio, or a base framework to help you with these details.
If that sounds like a lot of effort and you would rather use an open source solution, you may want to check out MVC Turbine that attempts to help you with these details. Per the CodePlex Project:
“MVC Turbine is a plugin for ASP.NET MVC that has IoC baked in and auto-wires controllers, binders, view engines, http modules, etc. that reside within your application.”
MVC Turbine will essentially help you with the following items:
- Integrate your Dependency Injection / IoC Tool of Choice:
- Unity
- Castle Windsor
- StructureMap
- Ninject
- Auto-Register a Custom View Engine
- Auto-Register Custom Filters using a custom Attribute: InjectableFilter
- and more...
You can learn more here.
Check out some ASP.NET MVC Books.
ASP.NET MVC Tutorials