It has been a long time in my learning process of ASP.NET MVC and from it: I have discovered so many interesting things. I think at this time I am ready to share my findings.
I’m going to start by talking about the frameworks I found useful without boring you with what an MVC framework is composed of. So let us start:
ASP.NET MVC 2.0 – http://www.asp.net/mvc/download/
Of course, the first would be the actual base framework. Currently in Beta, it is expected to hit RC1 half way between its final release with Visual Studio 2010 in March 2010. I strongly encourage you to utilize the Beta version and upgrade to the RC1 when it is released.
Spark View Engine – http://sparkviewengine.com/
The spark view engine, is what most would call a “true” MVC view render engine. I personally like this engine because it has the ability to be a “general purpose template engine” as well as a view engine. The down side with the ASP.NET MVC view engine is that: outside of your HttpContext/ControllerContext it renders itself to be completely useless for Rendering Views.
With Spark, you can build up templates anywhere you reference your Spark.dll. What’s the point of this? Let’s say you want to build up an Email Template, which uses dynamic data. Spark is your best bet for that. I’ll go into this in a later tutorial.
AutoMapper – http://automapper.codeplex.com/
The AutoMapper framework is catching eyes in the MVC community and might someday have a great influence on the actual ASP.NET MVC Framework. To put it in the simplest terms: automapper takes your domain objects and translates them into your view model objects, with minimal coding from you. If you ever find yourself writing large amounts of redundant translation code for your data objects, chances are you need this framework.
Dot Less CSS – http://www.dotlesscss.com/
The Dot less framework is actually is a .NET implementation of the LESS framework for Ruby. The LESS framework is a wrapper for CSS that allows you to write clean CSS by using “variables, mixins, and nested rules”. It is very easy to setup, and can clean up your CSS files by a lot. You could think of it as a head start on CSS3 and avoid CSS HELL.
JQuery – http://jquery.com/
Is a JavaScript framework for those of us who hate writing JavaScript. This framework makes it easy to select dom objects, writing events, apply styles, run effects, and most importantly write AJAX calls to your ASP.NET MVC Application.
NHibernate – http://nhforge.org/
One beast to rule them all. NHibernate is an ORM framework that allows you to bind your domain layer objects to your relational database. If you hear people talking about a data access layer this is where this framework will exist. I recommend anyone to read as much as they can on this framework. It plays a big part in the MVC world and making sure that your data access is smooth and simple in the long run.
Linq to NHibernate – http://sourceforge.net/projects/nhibernate/files/
If you have not heard of Linq then you probably have a lot of catching up to do. Thanks to Oren Eini we now have full Linq support for Nhibernate, no need for that pesky Hibernate Query Language. As a note, it can usually be found in the NHibernate repository and will usually be one build behind in its own DLL File.
StructureMap – http://structuremap.sourceforge.net
Inversion of Control, Dependency Injection, yeah I had my head spinning if not still from all the ongoing conversations about all these fancy words
. Surprisingly enough, I realized when I was done reading about it; I had used something similar to this back in my Java/Spring days.
What is it, what does it do? It is a design pattern nothing more which through interfaces allows you to remove dependencies on concrete classes, and “inject” locate, put, setup (whatever) those interfaces based on a set of rules. This type of pattern will be very useful in developing your growing web application. Structure map is just a framework that I have come to like after exploring other IoC containers such as Windsor.
Moq – http://code.google.com/p/moq/
This is a mocking framework pronounced mock-you that allows you to mock up interfaces and classes in your testing framework, to avoid things such as connecting to your database or services. I have a few tutorials already posted up on the website on how to utilize this technology, feel free to explore them and utilize them.
Sharp Test Ex – http://sharptestex.codeplex.com/
This is a fun little framework that lets you write fluent assertions for your unit tests and at the same time really helps you write the tests you really should be writing. Check it out you will see what I mean.
WebAii – http://www.artoftest.com/products/webaii.aspx
I have been using this front end unit testing framework for quite a while now, and it hasn’t failed me yet. Though I can’t say I am a big fan of the other tool which “attempts” to generate the testing code for you. This little framework is awesome, and really easy to use if you are more a developer then a tester.
And that is for now. I look forward to starting off this series of tutorials with How to build an Email Template Manager with Spark.