Cambios generales

(fuente: MVC preview 2 Readme)

Cambios en la estructura del proyecto

Agregado de las librerías de MVC v2 y remoción de MVC Toolkit y Web.Extensions 3.6.0.0

  • Hay que remover las librerías MVCToolkit y Web.Extensions 3.6.0.0 y agregar las librerías System.Web.Abstractions, System.Web.Mvc y System.Web.Routing

Agregado de nuevo archivo de Web.Config en el directorio Views

  • Hay que agregar un Web.config en la carpeta views con el siguiente código:

<?xml version="1.0"?>
<
configuration
>
  <
system.web
>
    <
httpHandlers
>
      <
remove verb="*" path
="*.aspx"/>
      <
add path="*.aspx" verb
="*"
         
type
="System.Web.HttpNotFoundHandler"/>
    </
httpHandlers
>
  </
system.web
>
 
  <
system.webServer
>
    <
validation validateIntegratedModeConfiguration
="false"/>
    <
handlers
>
      <
remove name
="PageHandlerFactory-ISAPI-2.0"/>
      <
remove name
="PageHandlerFactory-ISAPI-1.1"/>
      <
remove name
="PageHandlerFactory-Integrated"/>
      <
add name="BlockViewHandler" path="*.aspx" verb
="*"
         
preCondition
="integratedMode"
         
type
="System.Web.HttpNotFoundHandler"/>
    </
handlers
>
  </
system.webServer
>
</
configuration>

Cambios en el archivo Web.config

Cambio de versión de Web.Extensions v3.6.0.0 a v3.5.0.0

  • Cambiar en el web.config todas las versiones de la librería web.extensions (donde dice 3.6.0.0 hay que poner 3.5.0.0

Remover Bindings y Dynamic Data and Routing Modules and Handlers

  • Remover las dependetAssembly que mapeaba las versiones anteriores de Web.Extensions a la versión 3.6.0.0 (esto está dentro del tag
  • Remover de  los tags con namespace System.Web.DynamicData y tagName ~/App_Shared/DynamicDataFields/FilterUserControl.ascx
  • Remover de el tag de System.Web.DynamicData.DynamicDataControlSessions
  • Remover la sección bajo
  • Remover de la sección los modulos de DynamicDataModule y UrlRoutingModule
  • Remover de el módulo UrlRoutingModule.

Nuevo ruteo usando System.Web.Routing

  • En  agregar el siguiente código en la sección : <add name="UrlRoutingModule" type="System.Web.Routing.UrlRoutingModule, System.Web.Routing, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />

  • En  agregar el siguiente código en la sección : <add name="MvcScriptMap" preCondition="classicMode,bitness32" verb="*" path="*.mvc"modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll" />

    <add name="MvcScriptMap64" preCondition="classicMode,bitness64" verb="*" path="*.mvc" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v2.0.50727\aspnet_isapi.dll" />

    <add name="UrlRoutingHandler" preCondition="integratedMode" verb="*" path="UrlRouting.axd" type="System.Web.Routing.UrlRoutingHandler, System.Web.Routing,Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />

  • En agregar el siguiente código:<add namespace="System.Web.Routing"/>

  • En httpModules agregar el siguiente código: <add name="UrlRoutingModule" type="System.Web.Routing.UrlRoutingModule, System.Web.Routing, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />

Nuevos modulos de MVC

  • Agregar el siguiente código en : <add assembly="System.Web.Abstractions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
    <
    add assembly
    ="System.Web.Routing, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
    <
    add assembly
    ="System.Web.Mvc, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>

Cambios en Global.asax

Nueva alta de rutas

  • Se genera un nuevo método que es llamado por Application_Start: protected void Application_Start(object sender, EventArgs e)
    {
        RegisterRoutes(
    RouteTable
    .Routes);
    }

  • El método agrega rutas en una collection: private static void RegisterRoutes(RouteCollection routes)
    {
       
    // Note: Change the URL to "{controller}.mvc/{action}/{id}" to enable
        //       automatic support on IIS6 and IIS7 classic mode
     
        routes.Add(new Route("{controller}/{action}/{id}", new MvcRouteHandler
    ())
        {
            Defaults =
    new RouteValueDictionary(new { action = "Index"
    ,
                id =
    ""
    }),
        });

    Cambio de identificación de los parámetros (cambio de [] a {})

Cambio de identificación de los parámetros (cambio de [] a {})

  • Verificar que los parámetros en las rutas estén declarados entre llaves {} y no entre corchetes []: "{controller}/{action}/{id}"

Cambios en Controllers

Remover los tags ControllerAction de los métodos y agregar los tags NonAction

  • Todos los métodos públicos de un controller (a excepción de los constructores) son considerados actions. Hay que remover los tags [ControllerAction] porque no sirven más

  • Todos los métodos públicos de un controller (a excepción de los constructores) que no quieran ser considerados actions deben etiquetarse con el tag [NonAction]


Cambios en Views

Cambios en HtmlHelper y UrlHelper

  • El método ActionLink de HtmlHelper no conserva la firma (string linkText, object values). Estos métodos deben reemplazarse por la firma (string linkText, string actionName, object values) quitando la property Action del objecto values.

  • El método Action de UrlHelper no conserva la firma (object values). Estos métodos deben reemplazarse por la firma (string actionName, object values) quitando la property Action del objecto values.

One Response to “Migrando MVC preview v1 a v2 – Cambios Generales”

  1. Casino 491c9dcf5b Says:

    Casino 491c9dcf5b…

    Casino 491c9dcf5b…

Leave a Reply