Wednesday, March 26, 2008 10:40 PM
Kazi Manzur Rashid
Kigg - Upgraded to MIX08 ASP.NET MVC Release
[Note: This post was meant to be published the day after MIX08 version was out]
I have upgraded Kigg with the new bits. Upgrading was plain and simple, though I created a new project and added the files instead of changing the Guids. There has been few changes in the web project which are required by the MIX08 release such as routing declaration, removing attribute for controller actions, using lambdas for action link where it is appropriate and finally changing the Unit test with Scott Hanselman's MVCMockHelper and Fake View Engine from Phil Hack's Test Specific Subclass pattern.
As Phil Hack already mention the MIX08 release was focused on to improve the Routing system and the next drop will streamline the testability issues, I think it is the right time to put my requirement list and comments on the new bits, not in any specific order, here I go:
- It is good to see that controller now can implement IDisposable, I was wondering why not going one step further and make the IController inherits from IDisposable?
- The ControllerAction has vanished, certainly a good choice and I am sure the in next .NET Framework, we do not have to deal with WebMethod and OperationContract attributes anymore, of course it does not make any sense having a double standard in the same platform.
- Filter attributes is a better substitute of HttpModule in MVC world.
- The team has not published any list on the Bug that has been fixed in this release. But I am sure there has not been many, currently two things that are really bothering me:
- It is still not possible to use a base class in Master Page and a concrete class in Content Page. (Details)
- You cannot turn-off the Session Module. (Details)
- Previous MVCToolkit has been imported into the core MVC framework which is good, but I would like to see most of the Url building methods of HTMLHelper are also available in UrlHelper, specially those with lambda versions.
- Validation Support. Currently we have to write both client side and server side codes, which is really painful, we need to have a similar kind of web form validation controls in MVC space.
- Close Integration with ASP.NET AJAX. I think the main reason that ASP.NET Ajax is mostly used framework in developing ASP.NET application due to its tight integration with ASP.NET. We need the same kind of support in MVC. Currently, the AjaxHelper is left empty, I guess later on the partial rendering will be implemented over there, but I would like to put more emphasis on the controller actions, what I would love to see is some attributes e.g. AjaxOperation, AjaxMethod which will generate the client side proxy, same as we have today for the web service and page methods.
- I do not believe that those Control Helper methods of Rob Conery can really substitute the real controls. Instead I find those problematic. Why:
- I loose the rich design time support of VS.
- Certain but very common scenario like bind some data source with a select list with some predefined items what the AppendDataBoundItems property of the List Control does in web form world. Or, consider how do you generate a Url with # with those helpers.
- Currently helper exists for intrinsic controls, but did you consider the number of parameters when you introduce helper methods for GridView/DataList/Template supported controls.
Since most of the existing controls of ASP.NET become handicapped in MVC world, why not develop a separate set of controls for MVC, it is hard to imagine running VS without toolbox.
- Prior MIX08, ScottGu posted the roadmap of mix08 release. I would like to see a detail list of features that are planned for the final version. Certainly, a lot of things will be added/modified from the community feedback.
Filed under: Asp.net, MVC