Geeks With Blogs
Liam McLennan hackingon.net
When Asp.net AJAX was about to be born I was an early adopter. I dutifully downloaded each new preview and upgraded my solution to handle the API changes. This experience taught me that living on the edge is a world of pain. Each new release could mean hours of wasted time, just to get back to where I started.

Since then I have avoided working with pre-release software - until Asp.Net MVC came along looking too good to refuse. So now I am back in the familiar cycle of responding to preview releases. I knew the upgrade to preview 3 would be a tough one just by looking at the forum traffic it generated. This release includes a lot of changes. But since I had already skipped an interim code drop I decided that I could not afford to delay any longer. As bad as these upgrades are they are even worse if you skip a release.

The upgrade was complicated by MVCContrib, which is versioned to match Asp.Net MVC, meaning that when MVC is upgraded MVCContrib must also be upgraded. Here I re-learned an important lesson about MVCContrib. There is almost no documentation, but there are excellent sample applications distributed with the source. Had I looked in the sample application to begin with I would have saved hours of trying to work out how to get the new MVCContrib to work with Castle Windsor.

The other changes were straight forward. All of the controller actions had to be changed to return an ActionResult, which I think is an excellent change. All of the Html helpers for drop-down lists and list boxes have also changed. The old API for these was definately a weak spot and I like the new API much better. Finally, strongly typed view data is now available in the views as ViewData.Model instead of just ViewData so that meant a lot of simple changes.

Now that I am finished the upgrade appears to have been a success. I have all the latest-and-greatest goodness and my application is still working. Posted on Saturday, June 7, 2008 11:44 PM | Back to top

Copyright © Liam McLennan | Powered by: GeeksWithBlogs.net