27 votos

Puedo usar ASP.NET MVC junto con regular ASP.NET los formularios Web

Tengo a petición de un cliente de construir un gran sitio con ASP.NET los formularios Web. El problema es que me voy encontrando ASP.NET los formularios Web para ser algo poco intuitivo (a mi gusto personal). Así que lo que me gustaría hacer es el uso de MVC, pero realmente no puedo esperar que mi cliente a pagar por mi tiempo en una reescritura completa (ni no iba a tener el tiempo).

Así que lo que estoy preguntando es, ¿puedo usar ASP.NET MVC y Web forms, al mismo tiempo, y poco a poco el uso de MVC más y más? Algún consejo?

14voto

lko Puntos 1062

Actualización 2014:

Visual Studio 2013 nos trae más cerca de Uno ASP.NET. No hay MVC tipo de proyecto o en la Web de proyectos de Formas más, sólo hay ASP.NET. Si quieres mezclar Web Forms y Web API, o MVC y SignalR, ¡adelante! Usted está animado y apoyado. Las nuevas características y la funcionalidad son con NuGet sin romper aplicaciones existentes.

VS 13

Así que la mezcla de Formularios Web forms y MVC (que ha sido bastante estado trabajando a la perfección) es ahora anima y los límites son confusos. Supongo que MS se reconoció la necesidad de permitir a los proyectos lentamente a migrar a MVC, o simplemente migrar partes como sea necesario, y obtener lo mejor de ambos mundos.


Proyecto de MVC:

Después de haber utilizado MVC con los formularios Web para bastante tiempo es ciertamente posible, y una excelente opción. Nueva funcionalidad y páginas pueden ser fácilmente añadidos en MVC páginas con un buen diseño arquitectónico, tales como DDD (Servicio de Repositorio, la Inyección de Dependencia, etc.) y las cosas viejas pueden permanecer como está. La combinación de MVC dentro de una página de formularios web también funciona bien, aunque puede haber algunos problemas menores con JS de validación. Yo se lo recomiendo.

Su muy fácil para empezar con la creación de una aplicación MVC (5 atm) y, a continuación, después de obtener el modelo básico y ejecución de añadir la vieja webforms dentro de una carpeta. De esta manera se consigue el nuevo MVC configurar correctamente y mantiene compatibilidad hacia atrás.

  • Usted puede crear un proyecto de MVC y simplemente copia de todos los Formularios de las páginas por ejemplo, en una carpeta. (es posible actualizar un proyecto demasiado, me imagino)
  • Configuración de enrutamiento para ignorar las solicitudes con el nombre de la carpeta en la dirección URL. De esta manera webforms y MVC puede utilizarse juntos sin problemas en la Url.
  • Asp.net WebForms aspx páginas pueden residir dentro de MVC, siempre que no se coloca dentro de la /carpeta Vistas.
  • Ir con maquinilla de Afeitar sobre la vieja sintaxis, usted puede personalizar HTML ayudantes fácilmente y es mucho más limpio.
  • Compruebe en MVC normas y convenciones, el controlador debe ser muy ligero. No es el código-detrás de la cual puede contener tanto la lógica como usted necesita.
  • Puntos de vista no debe contener más de la lógica de presentación (ninguna lógica de negocio)
  • Todo lo nuevo => MVC
  • Recursos web.config etc. son utilizables por ambos
  • Los menús no utilizar el viejo sitemaps en MVC

El uso de MVC dentro de un webforms .página aspx:

El texto a continuación es la intención de demostrar cómo se puede utilizar MVC desde el interior de una página de formularios web. (Por ejemplo en el interior de MyPage.aspx) puede utilizar MVC acciones/vistas dentro de webforms, por ejemplo, con ajax para llenar una parte de la página o ciertos div.

Webforms que contiene MVC funciona bien, al menos cuando la adición de una llamada ajax dentro del HTML para llenar un div de MVC.

Dentro de una .aspx

..html & webforms code

<div id="fillMeFromMVC">
  <script type="text/javascript">
   $.ajax(... call an MVC action to fill 
      the "fillMeFromMVC" div that this script sits inside of);
 </script>
</div>

Este va a llenar una parte de la página a través de MVC y puede limpiamente hacer tu MVC sin tener que preocuparse acerca de lo que se hace en webforms.

WebForms vs MVC:

Por este punto, usted está probablemente muy consciente de las diferencias entre las dos tecnologías, sin embargo, aquí es un poco de comparación entre ellos. Ambos tienen sus propósitos y usos. Yo personalmente prefiero MVC para las cosas que tenía que hacer, sin embargo es probable que depende de lo que usted está tratando de lograr.

Si usted use, por ejemplo, un SOA detrás de ellos tanto los webforms y MVC páginas puede utilizar la misma lógica de negocio. Webforms puede ser perjudicial cuando el código está todo en la página de atrás y está ligado a la interfaz de usuario (no hay separación de preocupaciones). Con una arquitectura sólida y un poco de esfuerzo que pueden ser reducidos a través de.

Leer más:

Webforms vs MVC (Código del proyecto)

La diferencia entre ASP.NET WebForms y ASP.NET MVC (un blog)

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by: