2009-05-21 13 views
8

Le pido esto para que no comience nada negativo. Más bien, después de mirar ASP.NET MVC, me di cuenta (duh) de que no estoy usando controles como en webforms, pero codificando el marcado html a mano (jadeo)¿ASP.NET MVC es un paso atrás de alguna manera?

¿Es esto un movimiento hacia atrás? Recuerdo venir del asp clásico a asp.net y arrastrar y soltar controles, crear un bll, etc. ahora parece que estoy haciendo todo eso a mano, de nuevo, como clásico, excepto que tengo un buen diseño de mvc.

Supongo que estoy tratando de descubrir por qué este es un movimiento hacia adelante de lo que era un entorno de desarrollo rápido a lo que parece ser más tedioso.

EDIT:

siempre pensé Visual Studio .NET fue una gran razón para ir con ASP.NET con todos sus controles y automatización. Ahora con MVC me hace pensar que es como cualquier otro MVC con un IDE decente, ya que estoy haciendo todo a mano ahora.

+0

Interesante. Me gusta MVC, pero es lo único que he usado en ASP.NET. Así que me gustaría leer algunas respuestas aquí ... Aunque, si mal no recuerdo, todavía puedes usar formularios regulares de ASP.NET con ASP.NET MVC. –

+0

No puede usar ninguno de los controles que ofrecen la mayor ganancia, como GridView. Todo lo que dependa de ViewState/ControlState y/o devoluciones de datos no funcionará. – x0n

+0

Además de tener que usar IIS y tener que usar C# u otro lenguaje .net, no puedo encontrar un motivo por el que ASP.NET MVC tenga alguna ventaja sobre cualquier otro framework MVC. Tal vez porque Microsoft está detrás y madurará y recibirá soporte. Aparte de que Microsoft está detrás de esto.No sé por qué no usaría RoR, Django o CakePHP (o Code Igniter). – johnny

Respuesta

19
  • "Classic" ASP.NET no ha ido a ninguna parte - que todavía se puede utilizar si eso es lo que quiere o necesita
  • A pesar de que puede o no puede obtener la funcionalidad de "arrastrar y soltar", entre Autocompletar y los diversos ayudantes de renderizado puede obtener fácilmente una vista de trabajo en minutos
  • Crear las vistas es solo una pequeña fracción del proyecto total
  • Incluso en ASP.NET raramente utilicé el editor visual. Siempre sentí que se puso en mi camino y tomó decisiones por mí, erróneamente.
+2

+1 en la última línea de pedido. Cualquier página que he creado que ha salido de las líneas de lo que el diseñador pone allí suele estar terriblemente desfigurada si la modifico en el diseñador mis cambios. –

+0

+1 para su última viñeta. diseñar una página en el diseñador con arrastrar y soltar es una manera terrible de diseñar html. Siempre termino haciéndolo a mano para que funcione como yo quiero. – Geoff

+0

No es solo que sea arrastrar y soltar y lo puedes ver en el diseñador. Es que es un control, completamente hecho. Puedes verlo en el código, sin editor visual, y usarlo. – johnny

0

Creo que es un paso en la dirección correcta, pero no está tan maduro como WebForms. Espero ver bibliotecas comerciales de "control" en poco tiempo, aunque no será algo de "arrastrar y soltar".

Además, si está utilizando WebForms para su motor de vista, no tiene sentido, en mi opinión.

3

Hábleme sobre ello. Todavía estoy tratando de descubrir por qué me estoy sometiendo a esto. En última instancia, el número # 1 de venta es Prueba Unitaria. Para aquellos de nosotros que no se suscriben a esto, las ventajas son pocas, si las hay, en mi humilde opinión.

Dicho esto, estoy abierto para convencerse de lo contrario. Creo que MVC es una buena base, pero como dices, a veces es muy tedioso. El sistema RAD de controles de arrastrar/soltar de la caja de herramientas solía ser terrible, pero desde el año 2008 ha sido todo un placer. Espero que los principales proveedores de juegos de herramientas como Telerik, Infragistics, ComponentOne y otros pronto envíen toolkits amistosos de MVC (¡espero!).

sólo estoy aprendiendo porque estoy actualmente en un proyecto que fue construido en el mismo (no es mi diseño). No olvides que NO TIENES QUE UTILIZARLO. Classic ASP.NET no desapareció. :)

-Oisin

+0

Gracias. Sé que el clásico no desapareció y sé que no hay una sola manera adecuada para cada trabajo, pero realmente quiero usar MVC, ya que parece ser la norma fuera de un mundo de Microsoft y una muy buena manera de hacer las cosas. – johnny

+1

Jaja, cuando escucho a la gente decir Classic ASP, pienso en ASP anterior como en no .NET :-) Pero realmente solo te refieres a ASP.NET sin MVC :-) – 7wp

+0

No me di cuenta de que lo hice. Gracioso. Siempre pienso en Class ASP también, pero aquí quise decir con webforms. – johnny

15

es un paso adelante:

  1. el código es totalmente comprobable
  2. a obtener el control completo de lo que el servidor está generando
  3. estado de vista no más!
  4. aumento de la velocidad de respuesta del servidor
  5. menos carga de la CPU del servidor sin lifecicle página del formulario Web
  6. un modelo de programación que es más cercano a la web (formularios web destinado a llevar a la web el modelo de programación de escritorio).
  7. ....
+0

Sí y no, estoy de acuerdo con todos sus puntos positivos, pero en el lado negativo, es mucho más trabajo, también, y por ahora no tiene el mismo ecosistema de controles que los formularios web ASP.NET "clásicos", lo que supone una carga adicional en los equipos de desarrollo para hacerlo todo ellos mismos. –

+1

Probablemente tampoco lo hará. La mayor parte de lo que publicas es HTML simple. Puede crear vistas parciales que funcionan como controles. La idea era, sin embargo, que Internet no tiene controles como las aplicaciones de escritorio. A ASP.NET le gustaba fingir que era una aplicación de escritorio. ASP.NET MVC te recuerda que no es así. – Sekhat

+0

solo unas pocas líneas de código y puede crear sus propios controles o sus ayudantes html. Y si puede usar jQuery, existen más controles que WebForms; y la expreriencia global del usuario es mejor. El tiempo extra dedicado a desarrollar sus propios controles reutilizables es increíblemente inferior al tiempo que obtendrá en depuración y mejoras a mediano y largo plazo. MVC es solo una nueva opción para nosotros y se puede usar junto con classi WebForms si lo desea (= si necesita absolutamente un control de terceros pero aún puede usar el clásico WebFormPage) –

1

pensé que parte de la punta de la MVC Framework ASP.Net estaba dando el desarrollador más control sobre el código HTML. Algo que los controles de arrastrar y soltar hacen un lío.

7

Es curioso que debe mencionar esto - Acabo de leer un capítulo en "Professional ASP.NET MVC 1.0" que responde exactamente a esta pregunta.

En el libro se compara la diferencia entre Web Forms y MVC como la diferencia entre dirigir una orquesta y componer una canción. MVC no le ofrece el mismo nivel de respuesta inmediata que los formularios web, sin embargo, le ofrece un nivel de granularidad que muchos desarrolladores web de esperan. Es bien sabido que los controles ASP.NET, incluso en sus versiones posteriores, inyectan más HTML del deseado.

Por lo tanto, funcionalmente sí, es un paso atrás, pero solo porque se le ha dado un control completo sobre lo que se pone en la página. Como siempre, elija el idioma correcto para el trabajo.

+3

¡Woot! - shanselman –

+1

¡Jaja! ¡Qué meta! ¡Me encanta el libro, buen trabajo! –

+0

Vamos a ver esto pronto. :) –

5

Es un paso hacia los lados, en lugar de hacia delante o hacia atrás; solo otra forma de hacer lo mismo, con un énfasis diferente. Con los formularios ASP.NET, es fácil "dibujar" la página para que se vea más o menos como usted quiere que se vea, pero es difícil hacer que se comporte como una aplicación web adecuada. Con ASP.NET MVC, no es fácil simular su apariencia, pero en realidad es más fácil hacer que se comporte como un sitio web, con URL que describen el contenido que se devuelve de manera predecible.

+0

Curiosamente, nunca "dibujo" en la página con formularios web. Apenas uso el editor visual ya que es engañoso y a menudo está roto. Me pregunto si ese soy solo yo. –

+0

@BrianMacKay el editor visual está roto cada vez que usa código para cargar sus datos, y no me hace hablar de controles creados dinámicamente (porque simplemente no se puede ver en el editor visual) –

2

Para mí, deshacerse de viewstate y el ciclo de vida de la página ha sido una adición por sustracción. :) Sin mencionar una bendición a mi conocimiento de la programación web debido a tener que "ensuciarme" las manos.

2

Algunas personas podrían decir que ASP.Net fue un paso atrás en el sentido de que puede limitar la flexibilidad de la aplicación al bloquear el uso de controles preconstruidos.

Classic ASP era inmaduro, pero le daba un control muy fino sobre el código de marcado, que muchos encuentran que falta en ASP.Net vainilla.

Según lo veo, el paradigma ASP.Net MVC le da al desarrollador un control más estricto sobre el margen de beneficio, al mismo tiempo que le da acceso a todas las ventajas de .Net Framework.

1

ASP.net MVC no es para todos o para cada aplicación (¡algunos pueden discutir esto hasta el final!). MVC es un marco que puede usar en su forma básica o extenderlo al contenido de su corazón. Le permite un control total sobre lo que se representa para el usuario.

MVC tiene una serie de ventajas:

Separación de las preocupaciones que resulta en una mejor capacidad de prueba, sin duda mejor diseño y más fácil de modificar la interfaz de usuario

Control total sobre lo que se rindió - que puede resultar en Cumplimiento de normas, más pequeña , páginas más rápidas

Clearn SEO friendly URL though ASP.net 4 tiene características de enrutamiento

En su forma más pura sin uso de saldos de carga de sesión muy bien.

también tiene algunas desventajas: Curva

aprendizaje y el cambio de pensamiento requiere

La falta de apoyo del partido tercero aunque esto cambiará

Páginas puede mirar desordenada

pueden ser más difíciles para desarrollar ciertos tipos de controles, por ejemplo algo así como una cuadrícula de datos reordenable o algo con muchos pasos como un asistente

2

Creo que fue un paso atrás o, mejor aún, retrocediendo unos pasos para avanzar.

La web había evolucionado en una dirección que divergía significativamente de la premisa de diseño central de ASP.NET.

Al final, comparando ASP.NET con otros frameworks web ágiles, creo que fue un caso de "no se puede llegar hasta aquí desde aquí".

+0

+1: forma interesante de poner eso. –

0

Una de las mayores diferencias es el ciclo de vida de la página. Este es para mí el principal cambio de paradigma. Muchos otros beneficios podrían abordarse siguiendo buenas prácticas, aunque ASP.NET no los hizo cumplir.

Si está acostumbrado a WebForms y ASP.NET, MVC puede parecer incómodo, pero si proviene de ASP clásico, PHP, Rails o cualquier otro entorno que respete la naturaleza del flujo HTTP, es una buena opción. Obtiene los beneficios de un gran IDE como Visual Studio, un marco completo y poderoso como .NET (ya sea que use C# o VB.NET) y todo funciona de una manera más o menos familiar.

Puede perder los controles ASP.NET y el diseñador visual, pero para muchas personas eso fue más una molestia que un beneficio, según el tipo de aplicaciones que estaba creando y su experiencia previa. ASP.NET fue una buena transición de Winforms, pero para las personas que siempre trabajaron en un entorno web parecía un poco "forzado".

0

¿No dijo Scott Hanselman en un momento dado que "MVC no es Web Forms 4.0"? He tomado de eso, que quiere decir que MVC no reemplazará a ASP .Net en absoluto, y es simplemente otra opción para ganar formularios y formularios web.

Estoy de acuerdo en que cuando comencé a buscar en MVC, me recordaba mucho más al ASP clásico (no a la versión .Net) de la forma en que no hay código detrás de la página, y hay más <% = lo que sea% > markup en las vistas, lo que me sorprendió por un tiempo, como cuando usé ASP .Net por primera vez, fue como si ASP .Net desalentara la necesidad de dicho marcado.

Personalmente, me gusta MVC; ¡Creo que es genial, pero también hay un poco de espacio para ASP .Net ..!

Cuestiones relacionadas