Phil Haack has a tutorial type post of usage of the new MS MVC with TDD, DI and the Repository Pattern. In the tutorial he sets up a new project, creates a repository and gets a sample app up and running with StructureMap.
As I stated in the comments of his posting there are only two things that concern me off the bat. The first thing is the fact that every action on controllers require a [ControllerAction] attribute. This is very descriptive of the controllers but really unnecessary. It adds a lot of extra typing for no real benefit. I realize they are trying to make sure that developers aren’t running around naked with scissors but descriptive documentation stating every public method will be an action would work better here. My hope is there will be some way to override this behavior.
The other thing that concerns me in the post is the way he is passing a parameter back to the view when calling RenderView like so: RenderView(“myview”, mycollection). I would imagine that they have a way to set parameters to an array like PropertyBag in MonoRail. Perhaps there is a way to accomplish this already. I haven’t really dove into the documentation for the new framework. I am trying to hold back until the CTP.
All this is great and excellent that a MS employee is now explaining how to use TDD with a new framework from MS. This is a great move on their part and I’m glad we’ve gotten this far. The new framework looks great and I’m sure it will do fine with the community.
Regardless of how awesome it looks, I do have to go back to an older posting that I wrote that describes at the end of the day, this is still a Microsoft technology. Therefore, there is no way you can take this framework and add features to it yourself, or fix bugs, or contribute to it. This fact alone makes me very nervous about using it. I don’t mean to get on an open source soap box here but these are the types of things I look at when choosing a new framework. Sure, it is made by MS, but how many times have you been burned by a MS tool? It just makes me nervous that this is not Open Source. The main reason that MonoRail has been so successful is because it is open source. They have an extremely large number of contributors that help make MonoRail successful.
Anyway’s, before I piss of too many people I will say farewell and I am very much looking forward to the MS MVC CTP which is coming very soon!