Migrando MVC preview v1 a v2 – Cambios Generales
April 25th, 2008
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]
November 14th, 2008 at 12:20 am
Casino 491c9dcf5b…
Casino 491c9dcf5b…