ASP.NET MVC Preview 5

29 ago. 2008
!Acaban de lanzar la preview 5 de ASP.NET MVC en Codeplex!

Si eres de los valientes (como nosotros) que estas desarrollando con ASP.NET MVC, recuerda que tendrás que desinstalar la versión anterior antes de instalar este nuevo lanzamiento.

Por si nos os apetece leer, y ya que tengo que revisar los cambios en profundidad, aquí tenéis  algunas de las nuevas características respecto a la Preview 4:

  • Mejoras en los motores de visualización (ViewEngine)
    • Ahora, en vez de ser cada controlador el responsable de decidir que motor de visualización se utilizará, los motores se registran de forma global.
    • Se ha modificado la interfaz IViewEngine para que añada el método "RenderPartial".
  • Mejoras en los helpers
    • Soporte para la renderización de views parciales.
    • Nuevo parámetro para poder indicar a un DropDownList cuál será su opción por defecto.
    • Se han movido las extensiones AJAX a otro namespace, teóricamente para que sea más sencillo reemplazarlas por tu propio código.
    • Otras mejoras
  • Mejoras en los controles y los filtros.
    • Los parámetros de las acciones ahora soportan también arrays.
      Esto ocurría cuando varios controles tienen el mismo nombre.
    • Soporte a para crear tus propios "binders". Los binders asocian los valores que llegan por querystring o form con parámetros de la acción.
    • Añadida la interfaz "IActionInvoker" para desacoplar el controlador la implementación específica de "ControllerActionInvoker".
    • Añadido el modo actualización (UpdateMode) a la clase del controlador. Es posible utilizar este método para actualizar las propiedades de un modelo a partir de los parámetros pasados en el formulario.
    • Se ha modificado "HandleErrorAttribute" para que mientras estás desarrollando aparezca la ventana amarilla de error que proporciona la máxima información posible.
    • Nuevo atributo "AcceptVerbs". Permite indicar qué verbos HTTP son aceptados (GET, POST, etc...). Esto permite tener dos acciones con el mismo nombre siempre y cuando acepten verbos diferentes.
    • Nuevo atributo "ActionName". Permite indicar un nombre de acción a un método diferente del nombre del método. Su ejemplo para estas dos últimas mejoras es bastante claro:

      [AcceptVerb("GET")]
      public ActionResult MyAction(...);

      [ActionName("MyAction"), AcceptVerb("POST")]
      public ActionResult MyAction_FormSubmit(...);

      [AcceptVerb("GET")]
      public ActionResult OtherActionOverloaded(string id);

      [AcceptVerb("POST")]
      public ActionResult OtherActionOverloaded(string id, ...);

Muy bonita toda esta explicación, pero ¿cómo nos ha afectado a nostros en el proyecto que estamos realizando en ASP.NET MVC?

Estos son los problemas que hemos encontrado para que nuestro proyecto compile tras haber actualizado a la preview 5:
  • El objeto "LinkBuilder" ahora se encuentra en el espacio de nombre "Microsoft.Web.Mvc". Este objeto lo utilizamos para generar un "RouteValueDictionary" a partir de una expresión de Linq.
  • El método ActionLink<T> que adminte como tipo un controlador, se ha movido también a Microsoft.Web.Mvc.
  • BindingHelperExtensions ya no existe y aún no he encontrado ningún objeto equivalente.
  • El controlador ya no tiene la propiedad ViewEngine.ç
  • Html.RenderUserControl() ya no existe, ahora hay que usar Html.RenderPartial(). Por ejemplo:
     <%=Html.RenderUserControl("~/UserControls/TagList.ascx", ViewData.Model.PopularTags)%>
    Ahora será:
     <% Html.RenderPartial("~/UserControls/TagList.ascx", ViewData.Model.PopularTags);%>
    Fíjate que ahora no hay que poner el igual delante, y que tiene que acabar con punto y coma.
¿Alguien más se está peleando con ASP.NET MVC? Me encantaría escuchar vuestros comentarios.

comments powered by Disqus
subir