Aprendiendo ASP.NET MVC

En estos días, se preguntó en una lista del MUG sobre recursos para aprender ASP.NET MVC. Yo aprendí de a poco, a lo largo de los años, así que sé exactamente cómo sumergirse rápidamente en el tema. Pero puedo escribir y mencionar algunos pasos y recursos.

Primero, hay que comprender que MVC viene de Model View Controller. Y en el caso de ASP.NET MVC, está claramente implementado. En lugar de tener páginas Web Form, con una parte visible de diseño y una parte de código con eventos de ida y vuelta, el esquema de ASP.NET MVC es distinto.

Cuando un usuario pide una página como /customer, el código de ASP.NET MVC rutea (de hecho, hay un ruteador) ese pedido a un método de una clase controladora. Por ejemplo, al método Index dentro de CustomerController. Luego, ese método tiene que devolver información sobre la vista que hay que mostrar. Las vistas se programan en general como HTML con código embebido, de distintas “engines”, la más popular es Razor. Una vista es algo parecido (sólo parecido) al ASP clásico de los noventas. Pero cada vista recibe lo que se llama un modelo: por ejemplo, la vista de listado de clientes podría recibir un IList<Customer> como modelo (accesible desde la propiedad de la vista Model) y podría iterar sobre el modelo para producir un resultado.

Pero es mejor tener código de ejemplo, ver el resultado de una charla que dí en el MUG:

https://github.com/ajlopez/TddRocks/tree/master/Consorcios

Donde se hicieron algunas páginas, y la lógica del dominio (simple) está en un proyecto de clases aparte. Vean que también puse tests. De hecho, la charla fue sobre cómo programar ASP.NET MVC usando TDD (Test-Driven Development). Ver mis posts sobre TDD. Por ejemplo la serie Escribiendo una Aplicación (ASP.NET MVC) usando TDD

Ver también el video que explica paso a paso el proceso, gracias a la gente de AltNet Hispano

Desarrollando una aplicación con TDD desde cero

No recuerdo dónde quedó el código de esa reunión, debe ser

https://github.com/ajlopez/TddRocks/tree/master/TddApp o
https://github.com/ajlopez/TddAppAspNetMvc

Tal vez es demasiado empezar con TDD en un tema nuevo, pero les recomiendo que una vez comienzen a dominar ASP.NET MVC, pasen a trabajar de esa manera. Puede comenzar top-down (con las vistas y primeros modelos de vistas, sin tener la lógica de negocio y el modelo de negocio), o pueden comenzar por “el medio”, armando con TDD todo el proyecto de clases donde resida la lógica y modelo de negocio.

Otro tema es el lenguaje: prácticamente todos están programando en C#. Si están con VB.NET, puede ser una buena oportunidad para cambiar de lenguaje. No es difícil, los conceptos y clases de .NET son los mismos.

ASP.NET MVC fue evolucionando. Ultimamente, tuvimos ASP.NET MVC 3, 4 y ahora 5. Lamentablemente, no son simples librerías, sino que dependen del framework .NET, y para las últimas versiones de MVC tienen que usar las últimas versiones de Visual Studio. Yo aconsejaría Visual Studio 2010 (no sé por qué, algún genio de Microsoft quitó los botones y funcionalidad de tests que había en VS 2008 y VS 2010, y en el VS 2012 hay un test explorer; por lo menos para mí, que sigo el flujo de trabajo de TDD, es bastante molesto; veré si puedo acostumbrarme). Si tienen VS 2010, iría directamente a ASP.NET MVC 4. Si tiene VS 2012, lo mismo (pero podría intentar instalar el MVC 5 si quieren). Me temo que las vistas generadas varían de versión a versión.

No hace falta, pero si quieren tener un panorama más amplio de la interfaz, pueden leer:

User Interface Patterns

Hay una explicación más detallada de lo que es ASP.NET MVC, para los que se inician en el tema, en:

An Absolute Beginner’s Tutorial on ASP.NET MVC for Web Forms Developers

No lo necesitan tanto al principio, pero si quieren ver más detalles de routing:

Routing in ASP.NET MVC 3 Tutorial

Tienen varios recursos en el sitio de Microsoft:

Learn about ASP.NET MVC

Por ejemplo:

ASP.NET MVC Overview
Learn about the differences between ASP.NET MVC application and ASP.NET Web Forms applications. Learn how to decide when to build an ASP.NET MVC application.

Hay un buen listado de recursos en

ASP.NET MVC 4 Content Map

Si tienen VS 2012, pueden intentar hacer:

ASP.NET MVC Facebook Birthday App

Bien, hay de todo, como en botica. Bastante por hoy. Aprendan MVC (que en el ambiente web ha prendido como patrón, antes que en .NET, en Python y Ruby). Algunos enlaces más, en “potpourri”:

https://delicious.com/ajlopez/aspnetmvc
https://delicious.com/ajlopez/aspnetmvc,tutorial
https://delicious.com/ajlopez/aspnetmvc4
https://delicious.com/ajlopez/aspnetmvc5
https://delicious.com/ajlopez/mvc
https://delicious.com/ajlopez/mvc,computerhistory (interesante para ver de dónde viene MVC, que no nació para la web)

Nos leemos!

Angel “Java” Lopez
http://www.ajlopez.com
http://twitter.com/ajlopez

This entry was posted in 10747, 11699, 13362, 1389, 5374. Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>