Wednesday, February 20, 2008

Microsoft MVC or Is the Monorail off it's track?

For those of you who didn't know, Microsoft has been working on it's own MVC framework. I haven't used it yet since I am in the middle of testing several Web-testing tools for an upcoming article. That said, I have done a little research on the web and here are a few things that Monorail users may want to know:

  • Hammett, the founder of Castle::Monorail, has helped MS by making suggestions about their implementation. See his comment below:
    I'm not actively collaborating with MS regarding the MS MVC. I've offered help due to my expertise with complex web sites we have built using MonoRail, I was invited to fly to Redmond and analyze their product, and discuss things, make suggestions.
  • It's been suggested (in comments) that Monorail may become a wrapper for the MS Framework, if the MS MVC framework progresses well.
  • The MS Framework does support intellisense in it's views. Views are written in your .Net language of choice.
  • ASP.Net controls are available for use in Views.
  • The MS Framework does not forbid the use of ActiveRecord but with LINQ on the horizon developers may choose it. (I haven't played with the LINQ extensions yet)
  • Monorail is more time tested (and just works)! Also, the MS framework is closed source.
  • The MS MVC framework will allow you to use any xUnit framework and any Mocking framework you choose but, as of this writing the MS solution has nothing nearly as kewl as the Monorail BaseControllerTest.
  • I can find nothing about IoC support in the MS offering.
  • Some people believe the routing engine in the MS offering is easier to configure. I'll have to test this assumption.
I personally have no plan to switch to the Microsoft framework yet. I DO believe the MS Framework will introduce MS developers to how great MVC can be. I also believe that Microsoft will slowly position the MVC framework as it's preferred web-app architecture. The ASP.Net architecture, while successful, was a fundamentally flawed offering that should be abandoned quickly.

As Microsoft moves into this new territory we'll start to see a subtle change in how they do business. The .Net framework was their last major move ( just had it's 6 year anniversary). The latest signs of change are already out there; LINQ, extension methods, the MVC architecture. Things to look for now; Redesigning the Ajax.Net library, functional programming with F#, greater support for DSLs.

Some Interesting Links
Let me know if you have any other questions. I'll try to answer them as I play with the new framework.

10 comments:

hammett said...

Just a small correction: I'm not actively collaborating with MS regarding the MS MVC. I've offered help due to my expertise with complex web sites we have built using MonoRail, I was invited to fly to Redmond and analyze their product, and discuss things, make suggestions.

So far, that summarizes my involvement with MS MVC.

regards,
hammett

Agile Jedi said...

hammett,

Apologies for the error. I'll post an updated entry.

Any ideas on how the MS MVC will affect Monorail?

Thanks,
AgileJedi

hammett said...

Define 'affect'. My guess is that both will coexist for a long long time.

Agile Jedi said...

I agree, both will co-exist for a while. I'll get some assumptions out of the way.
(1) Monorail is a "Not for Profit", good faith, contribution to the community that is used for "For Profit" projects.
(2) Much of the development on Monorail is driven by community input.

The community is important to OpenSource projects. It never ceases to amaze me how much more quickly OSS offerings adapt to users' needs. It also never ceases to amaze me how quickly an OSS project can dry up when the community disapears.

What happened to Nant? Their last release was over a year in waiting. A superior product IMHO. None the less many have jumped ship for MSBuild, leaving Nant wanting for good ideas and task developers.

SO do you think that Monorail will suffer this fate? I hope not....we still use Nant and don't have any plans to switch to the MS MVC framework either. Do you think that the MS MVC could be more compelling than Monorail now or in the future? Will future design decisions be made based on what the MS MVC guys are doing? ....Will I ever stop writing this comment ;)

Thanks

Ryan Doom said...

I think monorail is still going to be the way to go for writing large MVC apps with .NET for awhile.

I like the convention of having 'the way' of doing things. Some people like having the ability to decide which IoC to use, or which ORM/DAL and which unit testing framework. But if you have been working with .NET for the last 5+ years you maybe getting tired of all the choices and ways of doing things ;)
I like that monorail has everything ready to go already.

Also, you can use structure map IoC with ASP MVC. Phil Haack has a good blog post about it.

Matt Moore said...

Anybody attended PDC last week?

Microsoft Office 2010 Professional Plus said...

I'm delighted that I have observed this weblog. Finally anything not a junk, which we go through incredibly frequently. The website is lovingly serviced and kept up to date. So it need to be, thank you for sharing this with us.

for IT the said...

I have read your blog its very attractive and impressive. I like it your blog.

ASP.NET MVC Training in Chennai | ASP.NET MVC Training in Chennai

ASP.NET MVC Online Training | Online LINQ Training | ASP.NET Online Training

Pavithra M said...

It is really a great work and the way in which u r sharing the knowledge is excellent.
Thanks for helping me to understand basic concepts. As a beginner in dot net programming your post help me a lot.Thanks for your informative article.Dot Net training in chennai | dot net training and placement | Dot Net training in velachery

Mithun Mithun said...

Thanks for your informative articel .its very useful
dot net training center in chennai | dot net training institute in velachery | dot net training and placement in chennai