miércoles, febrero 11, 2009

ASP.NET MVC != Ruby On Rails

ASP.NET MVC desde que llego a los portales de noticias y se empezaron a publicar blogs sobre él, creo que ha estado bajo fuego enemigo como fuego amigo.

Y una buena parte de ese fuego, viene desde el "bando" de los programadores de WebForms, que no se hacen a la idea de desarrollar aplicaciones Web en esta herramienta tan "minimalista" y que no cuenta con ningún control UI que puedan "arrastrar y soltar" para componer su pagina, forzandolos a programar HTML.

Otra parte del fuego, viene de la misma gente .NET, que esperaban que ASP.NET MVC se parezca mas a Ruby On Rails y que están un tanto en desacuerdo con las decisiones técnicas que realizadas sobre el Framework.

Y por ultimo esta la gente que escucha el acrónimo MVC y espera que ASP.NET MVC sea un clon exacto de Ruby On Rails, y que al ver que no es así, simplemente desestima el Framework.

Desde mi punto de vista, ASP.NET MVC no debería de tener ningún compromiso de parecerse a Ruby On Rails, creo que debe de crecer por su cuenta, tomando las fortalezas de .NET así como sus debilidades también.

Pero volviendo al titulo de este post, ASP.NET MVC != Ruby On Rails y no se debe de esperar que lo sea por las siguientes razones:

Ruby On Rails es un framework super integrado desde la presentación Web hasta el acceso a la base de datos, esto nos ayuda a no preocuparnos sobre la "plomería" de nuestro proyecto y simplemente enfocarnos a lo importante, implementar la funcionalidad de negocio de nuestra aplicación.

Por su parte ASP.NET MVC es únicamente un Framework para desarrollar aplicaciones Web con el patrón MVC, pero no ofrece una guía sobre el acceso a base de datos, validación, ni ninguna otra cuestión de infraestructura. Aunque esto no es malo del todo; pero hay señales encontradas por parte del mundo .NET en este sentido, por ejemplo Microsoft empuja el uso de Entity Framework como capa de persistencia a datos, gente de la comunidad y empleados de Microsoft realizan sus demos con Linq2SQL y la gente mas independiente de Microsoft empuja NHibernate.

Esta situación donde no hay quien de una pauta, causa confusión en la gente que quiere aprender a desarrollar con ASP.NET MVC o los que vienen de frameworks como Ruby On Rails, que esperan llegar y desarrollar sin preocuparse de esas cuestiones, y que al final de cuentas se van decepcionados porque ASP.NET MVC no llena sus expectativas.

Hasta ahorita las únicas guías serias y con fundamento que he visto es la que promociona Headspring con su Arquitectura de la Cebolla y los proyectos CodeCampServer y MVCContrib, y la guía de SharpArchitecture, que de alguna manera es muy parecida a la Arquitectura de la Cebolla. Por lo menos ambas ayudan a olvidarse de los detalles de implementación y dedicarse a crear la funcionalidad de la aplicación.

Si a final de cuentas lo que buscamos son comparaciones, creo de ASP.NET MVC se parece mas al framework de Ruby Merb, el cual, al igual ASP.NET MVC es agnóstico a su capa de persistencia, presentación, etc.; tal y cual es el estado actual de ASP.NET MVC. Ambos frameworks tienen puntos extensibles que nos permiten reemplazar la funcionalidad original por nuestra la funcionalidad preferida.

Por lo tanto y para finalizar, quiero remarcarlo una vez mas, ASP.NET MVC != Ruby On Rails

4 comentarios:

Arturo dijo...

Muy buen post. Me aclaro el marco de trabajo de ASP.NET MVC

Gunnar Wolf dijo...

En realidad, quien peque de tal miopía... No sabe de lo que habla, y se ve que es programador novato. Vamos, terminología básica de objetos ;-) El patrón MVC es implementado por Ruby on Rails (y es una de las mejores implementaciones orientadas a Web que he visto). Sin embargo, el patrón es muy flexible, y se puede implementar de mil maneras.
El patrón MVC tiene cosa de 30 años de haberse planteado. Y de aplicarse a Web, yo al menos puedo hablarte de código que hice hace 8 años que lo sigue - No, no con un framework especializado, sino que a fuerza de saber lo que me conviene, y manteniendo una estructura de mi código acorde.
El ver como equivalente una implementación con la única manera válida de hacer las cosas... Habla mucho de ese fenómeno de fanboyismo que se ha hecho plaga en la comunidad de Rails.

Mario Alberto Chavez dijo...

Gunnar, desafortunadamente el "fanboyismo" esta presenteno solo en la comunidad rails, lo mismo pasa en la comunidad .net y me imagino que en otras mas, es algo con lo que se tiene que vivir.

Gracias por el comentario

Unknown dijo...

Desarrollaba aplicaciones con webforms al final termine desilusionado, estuve mirando asp.net MVC personalmente creo que es un disparate hasta ahora, demasiado hueco para atraer a personas que usan otros frameworks como rails, cake, y otros mas. como tu le metes en la cabeza a un tipo que ha comprado controles por 1000$ uds que se ponga a amanzar html y javascrip, y lo peor donde no hay una integracion mas aja de las unit test, yo trabajo actualmente combinando 2 frameworks en asp.net visual web gui + EntitySpaces, estoy aprendiendo ruby on rails para mi es uno de los frameworks mas completos y mejor ideados!