Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
.NET MVC vs Ruby on Rails. Ding (tokumine.com)
24 points by simon_kun on March 21, 2009 | hide | past | favorite | 15 comments



This is a horribly uninformed opinion piece with no substantial data to back up any claims. MVC is a huge step forward for MS. 10 releases prior to 1.0. The source is available (yes, they don't take contributions). It has 94% code coverage. It's brand new and it's true the docs need some improvements. .NET has three ORMs built in (L2S, EF and typed Datasets, which are crap, but they're there) that you can use for the model. Validation and scaffolding are there (not sure how they missed that) and there's excellent 3rd party validation tools (like xVal). C# 3.0 is awesome (LINQ rules and it's more than just LINQ to SQL) and hardly verbose.

I hope people don't read this blog post and dismiss ASP.NET MVC because of it, because the post is just plain wrong.

EDIT: Here's an example of how the docs are already being worked on: http://weblogs.asp.net/scottgu/archive/2009/03/10/free-asp-n... Completely free and licensed under Creative Commons Attribution No Derivatives.


I also had the distinct feeling of him ragging on the software in its 1.0 version, while comparing it to a mature framework like Rails.

I do agree that this is MS trying to play catch-up and is trying to prevent developers from jumping the ship, but it's still only 1.0.

Docs will get better, but lack of contributions is sad.


Exactly. There are a lot of claims in this article that aren't correct. For example, No integrated ORM doesn't mean that you have to write a lot of boilerplate code...boilerplate code should always be abstracted away.(also, if you use linq-to-sql, there are tools to help you with code generation)

Also, for the licensing, if i remember correctly. You're allowed to change the source anyway you. But it's true that it's not not an open source license because it stops you from re-distributing your changes.

The API is actually more unified now then in prior releases...the prior releases weren't done on purpose, just that the framework was changing too fast.

The strong typing and the views thing is actually a requirement because you're using a statically typed language. That doesn't make it less powerful, just different. And as mentioned, you can(and should) abstract that away via custom types and so on...

I've been using the framework for about 7 months now in one project and i think it's very nice. I usually develop using Django and so can't stand something like webforms that has a lot of magic.(i do miss python's native dictionaries though whenever i am writing c#)


This post seems to basically be "I love rails and ASP.NET is not Rails so it's inferior." Now I'm not saying the author is wrong for loving Rails, just that there was no way ASP.NET MVC could win in a rigged game so the comparison doesn't hold much weight.

To be a tad more specific...

1. A few of his issues are just wrong. The MVC team has been very open about including the community and taking contributions for example.

2. A lot of the author's comparisons are unfair because he's comparing a product that essesntially had it's first official release a few days ago to Rails. So complaints like "the community is too small" or "Microsoft might kill the project as a cost cutting measure" are not fair

3. A lot of his arguments are really the age old static vs dynamic language debate. I won't open that can of worms now but needless to say both sides have valid opinions. So it isn't fair to ding C# for that.

4. On another point Rails is what most call "opinionated software" while ASP.NET strives to give a lot of choices. So dinging ASP.NET for allowing the programmer to choose an ORM package that fits their needs doesn't seem really fair (Microsoft does provide one in the form of the Entity Framework)


Quote: "13. As the MVC project is very much a reactionary response to staunch the outflow of devs to other MVC frameworks, there is a worry that MS will drop the project if forced to make a cost cutting decision (see licensing comment 6). They are certainly not going to drop normal ASP.NET."


This is baseless speculation. MVC is now one of the core parts of the ASP.NET stack (Webforms, MVC, Dynamic Data) and it isn't going anywhere. I was at MIX this past week and met most of the MVC team. They get it. MS has stated a commitment to developing both Webforms and MVC going forward.


It's a decent comparison, but now that MVC has a full release, the documentation has gotten significantly better. http://msdn.microsoft.com/en-us/library/dd394709.aspx

I will disagree about ORM- there are already plenty of ORM and ORM-like frameworks out there for .NET, and I don't think the MVC team wanted to add another one.

Not sure about the routing being verbose. I'm (hopefully) close to finishing up a fairly complicated app with the framework, and routing hasn't been a problem for me.

I will definitely agree with point 12 though, but that's because the WebForms model causes brain damage if you use it for too long.


Actually... it sharpens your mind since it's much more complicated :)


"C# is too verbose for most web work"

Lame.


I disagree.

Leaving out the backend stuff, the front-end of web work usually ties into generating reasonably complex HTML or XML.

In dynamic languages it is almost trivial to keep the overhead to a minimum because it's fairly easy to tie into these domains. With languages like Java and C# this quickly becomes a pain and the templating structures provided require learning yet another crazy and inefficient (typing and maintainability-wise) pseudo-language.


I genuinely would like to see an example how you think C# is too verbose. I'm not trying to discount your argument, but it is contrary to my experience. We probably just have different ideas of what "too verbose" means.


"require learning yet another crazy" -- there's your problem.


Lame. I agree. By "verbose" I imagine the author means statically typed. What's so "wrong" about using a static language to do web development?


Some of his complaints seem to be about C#, which is not required. Also, the exclusion of an ORM is probably a good thing, so you can choose whatever you want, similar to the view engine.


You're right, the exclusion of a default ORM is a good thing. They do ship ORMs with the .NET framework though so if you need one, it's right there to use. And you can plug in any 3rd party one you want like NHibernate or SubSonic (which was inspired by ActiveRecord) or whatever.

StackOverflow (the biggest public ASP.NET MVC site that I know of) uses LINQ to SQL for instance, which is built in to the framework.

MS gets grief when they include something people don't want by default so they decided with MVC to avoid an ORM war and give people the option to use whatever they want (or are already using) and they get grief anyway.




Consider applying for YC's Fall 2025 batch! Applications are open till Aug 4

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: