2011-12-15 19 views
5

He leído muchas preguntas y artículos que indican que la conversión de formularios web de ASP.NET a MVC es casi imposible. Sin embargo, creo que mi situación es diferente.Migración de WebForms de ASP.NET a MVC

Empecé tontamente a trabajar en un proyecto hace aproximadamente un año en Webforms, pero el enfoque que adopté (hasta donde yo entiendo) es muy similar a MVC. He desactivado la validación de formularios, no uso ninguna devolución de datos, uso la reescritura de URL y todos los cambios de página son solicitudes AJAX que cargan el contenido de la página de ContentPlaceHolders (utilizando un pequeño hack, anulando el método RenderControl). También utilicé mi propia API de servicio de ORM y RESTful en proyectos separados, a los que se hace referencia en el sitio web.

Ahora el sistema funciona muy bien, las páginas se actualizan parcialmente bien y las URL se cambian cuando se realizan las llamadas ajax, por lo que cuando la página se actualiza, se ve exactamente igual.

Ahora me acaban de decir que necesito aprender MVC para un nuevo gran proyecto (pero tengo que terminar otro proyecto primero), pero he leído un poco sobre el tema y empecé unos Hello World aplicaciones, y parece que la idea de ASP.NET MVC es más o menos exactamente lo que ya he creado.

¿No recomendaría StackOverflow evitar la conversión de la aplicación Webforms a MVC? ¿Hay otros beneficios de convertir a MVC, además de las mejores prácticas?

+0

Sin duda puede "convertir" WebForms a MVC, pero el proceso implicará una gran cantidad de copiar/pegar/reescribir. – jrummell

+0

Me parece la pregunta de "¿Hay algún otro beneficio de la conversión a MVC, además de las mejores prácticas?" es una lata de frijoles entera del resto de esta pregunta. –

+5

Si funciona de maravilla como está, no lo reescriba. – Erix

Respuesta

3

Tengo una aplicación ASP.NET WebForms muy grande y vieja (¡que fue escrita originalmente para .NET 1.1!) Y he habilitado MVC para trabajar en ella, lado a lado. He estado escribiendo nuevas funciones usando MVC y convirtiendo funciones antiguas de WebForms en controladores y vistas de MVC.

Me encontré con algunos pequeños problemas relacionados con la autorización de URL y la ejecución en modo integrado de IIS, pero una vez que entendí los problemas, fueron bastante fáciles de resolver. ¿Tan casi imposible? ¡Ciertamente no!

No puedo decirle si merece la pena su tiempo para convertirlo, ya que no conozco el tamaño, alcance o naturaleza de su aplicación, ni ninguna restricción de negocios. Sin embargo, pasar a MVC ha sido una gran ayuda para la facilidad de desarrollo y calidad (ya que es más fácil compartimentar y probar unidades). Sin mencionar que las funciones que he escrito (o reescrito) en MVC son mucho más limpias, rápidas y receptivas que los equivalentes de WebForms.

Estoy emocionado de moverlo de MVC v2 a v3, y convertir a vistas Razor. Yo también? Si fuera tú y tuviese tiempo, lo haría.

Aquí hay una pregunta que publiqué que describe el proceso y uno de los problemas más importantes que tuve en la conversión. Migrating legacy ASP.NET to MVC 2 (RC): HttpApplication events not firing, User principal is null

+0

Este proyecto es un proyecto personal que es una red bastante grande, que ha sido la mayor curva de aprendizaje de mi carrera. Todo lo que aprendí en el trabajo, me he ido a casa e implementado o incluso rediseñado este proyecto para ser mejor. El tiempo no es un problema en este caso, ya que no hay fechas límite ni me pagan por ello. Una cosa que (¡por una vez!) Pareció beneficiarme aquí es que me suele gustar volver a escribir la rueda, así que uso mi propio ORM (¿este sería el modelo?), UserControls (¿Vistas y Controladores?), Inicio de sesión/Marco de registro, marco API RESTful. – Connell

+1

Disfrutarás trabajando con MVC, creo. Es en serio una explosión. Odiaba WebForms desde el principio (pero me encanta la arquitectura de ASP.NET), y te siento en la situación de "reinventar la rueda". – HackedByChinese

3

He convertido recientemente un proyecto de tamaño medio de WebForms a MVC. No recomendaría hacer eso en su primer proyecto de MVC, pero una vez que lo domina, realmente no hay nada que le impida (gradualmente) convertir una aplicación de WebForms a MVC.

Uno de los mayores beneficios que he notado es velocidad. Al eliminar el estado de visualización, el enlace de datos y la rareza del control web, terminarás con una aplicación mucho más rápida.

Por supuesto, también existen los beneficios más conocidos, como la capacidad de prueba y el control total sobre el html generado.

WebForms y MVC comparten la misma plataforma ASP.NET básica, por lo que realmente no son tan incompatibles como las que ha leído.

+0

El control completo del usuario sobre el HTML generado sería agradable. Estoy cansado de poner 'override string ClientID {get {return ID; }} 'en mis UserControls! – Connell

Cuestiones relacionadas