Cursos
Ruta de aprendizaje
Use advance techniques in canvas apps to perform custom updates and optimization - Training
Use advance techniques in canvas apps to perform custom updates and optimization
Este explorador ya no se admite.
Actualice a Microsoft Edge para aprovechar las características y actualizaciones de seguridad más recientes, y disponer de soporte técnico.
En este documento se describe la versión de ASP.NET MVC 4.
Nuevas características de ASP.NET MVC 4
Actualización de un proyecto de ASP.NET MVC 3 a ASP.NET MVC 4
Cambios desde la versión candidata para lanzamiento de ASP.NET MVC 4
ASP.NET MVC 4 para Visual Studio 2010 se puede instalar desde la página principal de ASP.NET MVC 4 mediante el Instalador de plataforma web.
Para instalar ASP.NET MVC 4, se recomienda desinstalar las versiones preliminares instaladas anteriores. Puede actualizar ASP.NET MVC 4 Beta y la versión candidata para lanzamiento de ASP.NET MVC 4 sin desinstalarlas.
Esta versión no es compatible con ninguna versión preliminar de .NET Framework 4.5. Debe actualizar por separado las versiones preliminares instaladas de .NET Framework 4.5 a la versión final antes de instalar ASP.NET MVC 4.
ASP.NET MVC 4 se puede instalar y ejecutar en paralelo con ASP.NET MVC 3.
La documentación de ASP.NET MVC está disponible en el sitio web de MSDN en la siguiente dirección URL:
https://go.microsoft.com/fwlink/?LinkID=243043
Hay disponibles tutoriales y otra información sobre ASP.NET MVC en la página de MVC 4 del sitio web de ASP.NET (https://www.asp.net/mvc/mvc4).
ASP.NET MVC 4 es totalmente compatible. Si tiene alguna pregunta sobre cómo trabajar con esta versión, también puede publicarla en el foro de ASP.NET MVC (https://forums.asp.net/1146.aspx), donde los miembros de la comunidad de ASP.NET a menudo pueden proporcionar soporte informal.
Los componentes de ASP.NET MVC 4 para Visual Studio requieren PowerShell 2.0 y, además, Visual Studio 2010 con Service Pack 1 o Visual Web Developer Express 2010 con Service Pack 1.
En esta sección se describen las características que se han introducido en la versión ASP.NET MVC 4.
ASP.NET MVC 4 incluye ASP.NET Web API, un nuevo marco para crear servicios HTTP que pueden llegar a una amplia gama de clientes, incluidos exploradores y dispositivos móviles. ASP.NET Web API es una plataforma ideal para desarrollar también servicios de RESTful.
ASP.NET Web API incluye compatibilidad con las siguientes características:
Para obtener más información sobre ASP.NET Web API, visite https://www.asp.net/web-api.
La plantilla que se usa para crear nuevos proyectos de ASP.NET MVC 4 se ha actualizado para crear un sitio con una apariencia más moderna:
Además de las mejoras estéticas, hay una funcionalidad mejorada de la nueva plantilla. La plantilla emplea una técnica denominada representación adaptable para tener una buena apariencia exploradores de dispositivos de escritorio y móviles sin ninguna personalización.
Para ver la representación adaptable en acción, puede usar un emulador móvil o simplemente intentar cambiar el tamaño de la ventana del explorador de escritorio para que sea más pequeña. Cuando la ventana del explorador sea lo suficientemente pequeña, cambiará el diseño de la página.
Si va a iniciar un nuevo proyecto y quiere crear un sitio específicamente para exploradores en móviles y tabletas, puede usar la nueva plantilla de proyecto para aplicaciones móviles. Se basa en jQuery Mobile, una biblioteca de código abierto para crear una interfaz de usuario optimizada para entrada táctil:
Esta plantilla contiene la misma estructura de aplicación que la plantilla de aplicación de Internet (y el código del controlador es prácticamente idéntico), pero adquiere su estilo mediante jQuery Mobile para que obtenga una buena apariencia y funcione adecuadamente en dispositivos móviles basados en la entrada táctil. Para obtener más información sobre cómo se estructura y se aplica un estilo a la interfaz de usuario móvil, consulte el sitio web del proyecto jQuery Mobile.
Si ya tiene un sitio diseñado para escritorio al que quiere agregar vistas optimizadas para dispositivos móviles, o si busca crear un único sitio que sirva vistas de estilo diferente en exploradores móviles y de escritorio, puede usar la nueva característica Modos de visualización. (Consulte la sección siguiente).
La nueva característica Modos de visualización permite a una aplicación seleccionar vistas en función del explorador que hace la solicitud. Por ejemplo, si un explorador de escritorio solicita la Página principal, la aplicación puede usar la plantilla Views\Home\Index.cshtml. Si un explorador en un dispositivo móvil solicita la Página principal, la aplicación puede devolver la plantilla Views\Home\Index.mobile.cshtml.
Los diseños y las vistas parciales también se pueden invalidar para determinados tipos de explorador. Por ejemplo:
Si quiere crear vistas, diseños o vistas parciales más específicas para otros dispositivos, puede registrar una nueva instancia DefaultDisplayMode para especificar qué nombre se busca cuando una solicitud cumple condiciones concretas. Por ejemplo, podría agregar el código siguiente al método Application_Start en el archivo Global.asax para registrar la cadena "iPhone" como modo de presentación que se aplica cuando el explorador del iPhone de Apple hace una solicitud:
DisplayModeProvider.Instance.Modes.Insert(0, new
DefaultDisplayMode("iPhone")
{
ContextCondition = (context => context.GetOverriddenUserAgent().IndexOf
("iPhone", StringComparison.OrdinalIgnoreCase) >= 0)
});
Después de ejecutar este código, cuando un explorador de iPhone de Apple hace una solicitud, la aplicación usará el diseño Views\Shared\_Layout.i Teléfono.cshtml (si existe). Para obtener más información sobre el modo de presentación, consulte Características para móviles de ASP.NET MVC 4. Las aplicaciones que usan DisplayModeProvider deben instalar el paqueteNuGet DisplayModes corregido. La actualización de otoño de 2012 de ASP.NET incluye el paquete corregido de NuGet DisplayModes en las nuevas plantillas de proyecto. Consulte ASP.NET MVC 4 Mobile Caching Bug Fixedd, (Error de almacenamiento en caché de dispositivos móviles de MVC 4 ASP.NET corregido), para obtener más información sobre la corrección.
Para obtener información sobre cómo crear aplicaciones móviles con ASP.NET MVC 4 mediante jQuery Mobile, consulte el tutorial Características para móviles de ASP.NET MVC 4.
Ahora puede escribir métodos de acción asincrónicos como métodos únicos que devuelven un objeto de tipo Tarea o Tarea< ActionResult>.
Para obtener más información, consulte Usar métodos asincrónicos en ASP.NET MVC 4.
ASP.NET MVC 4 admite las versiones 1.6 y las más recientes del SDK de Windows Azure.
Los proyectos de ASP.NET MVC 4 ahora incluyen Entity Framework 5. Una de las excelentes características de Entity Framework 5 es la compatibilidad con las migraciones de bases de datos. Con esta característica se puede desarrollar fácilmente el esquema de la base de datos mediante una migración centrada en el código mientras conserva los datos de la base de datos. Para obtener más información sobre las migraciones de bases de datos, consulte Agregar un nuevo campo a la tabla y modelo de películas (C#) en el tutorial Información general de ASP.NET MVC 4.
La plantilla de proyecto vacía de MVC ahora lo está realmente para que pueda empezar desde una pizarra completamente despejada. Se ha cambiado el nombre de la versión anterior de la plantilla de proyecto vacía a Básica.
Ahora puede hacer clic con el botón derecho y seleccionar Agregar controlador en cualquier carpeta del proyecto de MVC. Con esto gana más flexibilidad para organizar los controladores independientemente de lo que quiera, incluido mantener los controladores de MVC y API web en carpetas independientes.
El marco de agrupación y minificación le permite reducir el número de solicitudes HTTP que una página web necesita hacer mediante la combinación de archivos individuales en un único archivo agrupado para scripts y CSS. Después puede reducir el tamaño general de esas solicitudes mediante la minificación del contenido de la agrupación. La minificación puede incluir actividades como eliminar espacios en blanco para acortar los nombres de variables a incluso contraer selectores CSS en función de su semántica. Los conjuntos se declaran y configuran en código y se hacen referencia fácilmente a ellas en vistas a través de métodos auxiliares que pueden generar un único vínculo a la agrupación o, al depurar, varios vínculos al contenido individual del lote. Para obtener más información, consulte Unión y Minificación.
Las plantillas predeterminadas de las plantillas de proyecto ce Internet de ASP.NET MVC 4 ahora incluyen compatibilidad con el inicio de sesión de OAuth y OpenID mediante la biblioteca DotNetOpenAuth. Para obtener información sobre cómo configurar un proveedor de OAuth u OpenID, consulte OAuth/OpenID Support for WebForms, MVC and WebPages (Compatibilidad de OAuth/OpenID con WebForms, MVC y WebPages) y la documentación de características OAuth y OpenID en ASP.NET Web Pages.
ASP.NET MVC 4 se puede instalar en paralelo con ASP.NET MVC 3 en el mismo equipo, lo que le ofrece la flexibilidad para elegir cuándo actualizar una aplicación ASP.NET MVC 3 a ASP.NET MVC 4.
La manera más sencilla de actualizar es crear un nuevo proyecto de ASP.NET MVC 4 y copiar todas las vistas, controladores, código y archivos de contenido del proyecto MVC 3 existente en el nuevo proyecto y después actualizar las referencias de ensamblado en el nuevo proyecto para que coincidan con cualquier plantilla que no sea de MVC, incluida la que esté usando. Si ha hecho cambios en el archivo Web.config del proyecto MVC 3, también debe combinar esas alteraciones en el archivo Web.config del proyecto MVC 4.
Para actualizar manualmente una aplicación existente de ASP.NET MVC 3 a la versión 4, haga lo siguiente:
En todos los archivos Web.config del proyecto (hay uno en la raíz del proyecto, uno en la carpeta Views y otro en la carpeta Views de cada área del proyecto), reemplace todas las instancias del texto siguiente (tenga en cuenta que System.Web.WebPages, Version=1.0.0.0.0 no se encuentra en los proyectos creados con Visual Studio 2012):
System.Web.Mvc, Version=3.0.0.0
System.Web.WebPages, Version=1.0.0.0
System.Web.Helpers, Version=1.0.0.0
System.Web.WebPages.Razor, Version=1.0.0.0
con el texto correspondiente siguiente:
System.Web.Mvc, Version=4.0.0.0
System.Web.WebPages, Version=2.0.0.0
System.Web.Helpers, Version=2.0.0.0
System.Web.WebPages.Razor, Version=2.0.0.0
En el archivo raíz Web.config, actualice el elemento webPages:Version a "2.0.0.0" y agregue una nueva clave PreserveLoginUrl que tenga el valor "true":
<appSettings>
<add key="webpages:Version" value="2.0.0.0" />
<add key="PreserveLoginUrl" value="true" />
</appSettings>
En el Explorador de soluciones, haga clic con el botón derecho en Referencias y seleccione Administrar paquetes NuGet. En el panel izquierdo, seleccione Origen del paquete oficial Online\NuGet y después actualice lo siguiente:
En el Explorador de soluciones, haga clic con el botón derecho en el nombre del proyecto y luego seleccione Descargar proyecto. Después, vuelva a hacer clic con el botón derecho en el nombre y seleccione Editar ProjectName.csproj.
Busque el elemento ProjectTypeGuids y reemplace {E53F8FEA-EAE0-44A6-8774-FFD645390401} por {E3E379DF-F4C6-4180-9B81-6769533ABE47}.
Guarde los cambios, cierre el archivo del proyecto (.csproj) que estaba editando, haga clic con el botón derecho en el proyecto y después seleccione Volver a cargar proyecto.
Si el proyecto hace referencia a bibliotecas de terceros que se compilan con versiones anteriores de ASP.NET MVC, abra el archivo web.config raíz y agregue los tres elementos bindingRedirect siguientes en la sección configuración :
<configuration>
<!--... elements deleted for clarity ...-->
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Web.Helpers"
publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0" newVersion="2.0.0.0"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.Mvc"
publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="4.0.0.0"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.WebPages"
publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0" newVersion="2.0.0.0"/>
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>
Las notas de la versión candidata para lanzamiento de ASP.NET MVC 4 se pueden encontrar aquí:
Los principales cambios de la versión candidata para lanzamiento de ASP.NET MVC 4 en esta versión se resumen a continuación:
La versión RC y RTM de ASP.NET MVC 4 devolvió incorrectamente las vistas de escritorio almacenadas en caché cuando se deberían devolver vistas móviles.
Cambios importantes en el motor de vistas de Razor. Los siguientes tipos se quitaron de System.Web.Mvc.Razor:
También se quitaron los métodos siguientes:
Cuando WebMatrix.WebData.dll se incluye en el directorio /bin de una aplicación de ASP.NET MVC 4, toma la dirección URL para la autenticación de formularios. Al agregar el ensamblado de WebMatrix.WebData.dll a la aplicación (por ejemplo, al seleccionar "ASP.NET Web Pages con sintaxis Razor" en el cuadro de diálogo Agregar dependencias implementables) se invalidará la redirección de inicio de sesión de autenticación a /account/logon en lugar de /account/login según lo previsto por el controlador de cuenta predeterminado de ASP.NET MVC. Para evitarlo y usar la dirección URL especificada ya en la sección de autenticación de web.config, puede agregar un appSetting denominado PreserveLoginUrl y establecerlo en true:
<appSettings>
<add key="PreserveLoginUrl" value="true"/>
</appSettings>
El administrador de paquetes NuGet produce error al intentar instalar ASP.NET MVC 4 para instalaciones en paralelo de Visual Studio 2010 y Visual Web Developer 2010. Para ejecutar Visual Studio 2010 y Visual Web Developer 2010 en paralelo con ASP.NET MVC 4, debe instalar ASP.NET MVC 4 una vez instaladas ambas versiones de Visual Studio.
Si ya se han desinstalado los requisitos previos, se produce un error al desinstalar ASP.NET MVC 4. Para desinstalar completamente ASP.NET MVC 4, debe desinstalar ASP.NET MVC 4 antes de hacerlo con Visual Studio.
La instalación de ASP.NET MVC 4 interrumpe las aplicaciones de ASP.NET MVC 3 RTM. Las aplicaciones de ASP.NET MVC 3 creadas con la versión RTM (no con la versión de actualización de herramientas de ASP.NET MVC 3) requieren los siguientes cambios para poder trabajar en paralelo con ASP.NET MVC 4. La compilación del proyecto sin estas actualizaciones produce errores de compilación.
Actualizaciones necesarias
En el archivo raíz Web.config, agregue una nueva entrada <appSettings> con la clave webPages:Version y el valor 1.0.0.0.
<appSettings>
<add key="webpages:Version" value="1.0.0.0"/>
<add key="ClientValidationEnabled" value="true"/>
<add key="UnobtrusiveJavaScriptEnabled" value="true"/>
</appSettings>
En el Explorador de soluciones, haga clic con el botón derecho en el nombre del proyecto y luego seleccione Descargar proyecto. Después, vuelva a hacer clic con el botón derecho en el nombre y seleccione Editar ProjectName.csproj.
Busque las siguientes referencias de ensamblado:
<Reference Include="System.Web.WebPages"/>
<Reference Include="System.Web.Helpers" />
Reemplácelas por lo siguiente:
<Reference Include="System.Web.WebPages, Version=1.0.0.0,
Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL "/>
<Reference Include="System.Web.Helpers, Version=1.0.0.0,
Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL" />
Guarde los cambios, cierre el archivo del proyecto (.csproj) que estaba editando, haga clic con el botón derecho en el proyecto y después seleccione Volver a cargar.
Con el cambio del destino en un proyecto de ASP.NET MVC 4 de 4.5 a 4.0. no se actualiza la referencia del ensamblado EntityFramework: Si cambia un proyecto de ASP.NET MVC 4 a 4.0 de destino después de establecer como destino 4.5, la referencia al ensamblado EntityFramework seguirá apuntando a la versión 4.5. Para corregir este problema, desinstale y vuelva a instalar el paquete EntityFramework NuGet.
403 Forbidden al ejecutar una aplicación de ASP.NET MVC 4 en Azure después de cambiar al destino 4.0 desde 4.5: Si cambia un proyecto de ASP.NET MVC 4 a 4.0 como destino después de tener 4.5 y luego hace una implementación en Azure, puede ver un error 403 Forbidden en runtime. Para solucionar este problema, agregue lo siguiente a su web.config: <modules runAllManagedModulesForAllRequests="true" />
Visual Studio 2012 se bloquea al escribir " en un literal de cadena en un archivo de Razor. Para solucionar el problema, escriba primero la comilla de cierre del literal de cadena.
La exploración a "Account/Manage" en la plantilla de Internet produce un error en runtime con los idiomas CHS, TRK y CHT. Para corregir el problema, modifique la página para separar @User.Identity.Name poniéndolo como el único contenido dentro de la etiqueta <segura>.
Los proveedores de Google y LinkedIn no se admiten en sitios web de Azure. Use proveedores de autenticación alternativos al implementar en sitios web de Azure.
Al usar UriPathExtensionMapping con IIS 8 Express/IIS, recibirá el error 404 Not Found al intentar usar la extensión. El controlador de archivos estático interferirá con las solicitudes a las API web que usan UriPathExtensionMappings. Establezca runAllManagedModulesForAllRequests=true en web.config para solucionar el problema.
Ya no se llama al método Controller.Execute. Todos los controladores MVC ahora siempre se ejecutan de forma asincrónica.
Cursos
Ruta de aprendizaje
Use advance techniques in canvas apps to perform custom updates and optimization - Training
Use advance techniques in canvas apps to perform custom updates and optimization