Which .Net Web Framework? Let’s at least ask the question.

I can’t say that I’ve ever spent much time on StackOverflow, but there’s a small discussion going called  OpenRasta vs FubuMVC vs Asp.net MVC just some thoughts that’s obviously interesting to me. 

Forget for a second whatever you think the answer is (and also forget that the question misses a couple other options like NancyFx, Manos, or even using ServiceStack to do a one page app), the most important thing to me is that the question itself should be continued to be asked and debated.  Accepting a monoculture where the officially sanctioned Gu-approved solution is the only game in town is the quickest way to damn the .Net ecosystem to permanent mediocrity. 

Nobody has a monopoly on good ideas and innovation.  Certainly not myself and the other FubuMVC contributors, not Seb, not Ayende, not the post-.Net/”I’m awesome because I’m on the Ruby bandwagon now” guys,  not the ASP.Net MVC feature teams in Redmond, and not even DHH and the Ruby on Rails team.  Let diversity and some good old fashioned competition take us to some better places than we’ve been before.

Even if your employer forces you to only use Microsoft solutions, you can still help move the ball forward overall by contributing to the alternatives – and contribution doesn’t have to mean writing code or docs for an OSS project.  Feedback, criticism, and real discussion helps too.

About Jeremy Miller

Jeremy is the Chief Software Architect at Dovetail Software, the coolest ISV in Austin. Jeremy began his IT career writing "Shadow IT" applications to automate his engineering documentation, then wandered into software development because it looked like more fun. Jeremy is the author of the open source StructureMap tool for Dependency Injection with .Net, StoryTeller for supercharged acceptance testing in .Net, and one of the principal developers behind FubuMVC. Jeremy's thoughts on all things software can be found at The Shade Tree Developer at http://codebetter.com/jeremymiller.
This entry was posted in Ranting. Bookmark the permalink. Follow any comments here with the RSS feed for this post.
  • Battaile
  • Guest

    The SO thread got removed?  The link doesnt work…

  • http://twitter.com/doobiaus Craig D

    I love the idea of choice, I love that there are multiple Frameworks, and I would love them all to be uber successful.

    But… It comes down to portability, long term support,  company culture, and having a common toolbox. 

    I’ve been at this game for over a decade, and the biggest problem I  encounter over and over again (besides beancounters ;) ) is legacy frameworks. By that I mean things that in their day were considered by someone as the tool de jour, but have fallen out of favour and/or and maintenance and now hold products back from forward migration, or keep the people maintaining those apps from progressing their skills. Tools that effectively require developers to become specialist of themselves.

    It could be anything  - COM components, CMS frameworks, web Frameworks, DataSets, XML islands, Microsoft Entlib … ;)  etc etc

    Developer “A” implements “Excellent Architecture Foo” and alls good, because he understands and buys into it. He leaves, developers “B” comes along that has a different architecture perspective and it doesn’t gel. Something like a culture change from “Software Factories” to YAGNI. Everything turns into a hack, and next thing you have is spaghetti (usually with meatballs). 

    The way I (try to) avoid that is by very careful consideration. Choosing between Fubu, OpenRasta, MonoRail and ASP.NET, is not just about their relative merits, but their long term impact on my products and my teams, and our commitment to maintaining those products. It means every new hire has to be upskilled, and in many cases it’s not the easy stuff you need skills in, like building pages, it’s the hard stuff, like debugging and performance which only comes with experience.

    That’s why developers migrate towards the “most popular” frameworks, it’s self preservation. In Java it’s Spring, in Ruby it’s Rails, in .NET, well, it’s “Microsoft sourced” because it’s the usually the largest support team. It’s not always the case. nHibernate, JSON.Net, MVVM Light, log4net, DotNetZip come to mind as OSS tools that have managed to build enough momentum, and stay portable and relevant. 

  • http://twitter.com/rayoneill Ray O’Neill

    Well said.

  • seankearon

    Are we not disappearing up our own arses here?  FFS, the guy who asked the question on StackOverflow starts with a bias – “i’m looking for a .net mvc framework”.  Why would anyone want that as an outcome?  What does it give you – shouldn’t that be the focus?  From his question, Webmatrix would be the best answer, surely?