2008-12-10 12 views
8

Estoy tratando de enseñar ASP.NET MVC a estudiantes (estudiantes de licenciatura) que han estado estudiando ASP.NET durante las últimas 8 semanas (sé que no parece mucho tiempo, pero la clase es de 4 horas por día, 5 días por semana con Labs, Exámenes, Exámenes y Lucha).ASP.NET MVC - ¿Cómo explicarlo?

no han conseguido todavía la pregunta ... pero sé que se acerca ...

Cuándo se debe utilizar MVC en lugar de ASP ??

que no tienen ninguna experiencia real con ASP MVC y no puedo encontrar ningún tipo de respuesta clara en la web. Argumentos como "... la web no tiene estado y ASP MVC es una coincidencia más cercana, etc." no significan mucho para ellos. Están empezando a notar que ASP tiene muchos controles que parecen simplificar su marcado en comparación con MVC.

Estoy tratando de dar un giro honesto, y cualquier comentario sería muy apreciado! TIA

+1

Esta pregunta parece ser fuera de tema, ya que no está dentro de los límites de la discusión como se describe en el centro de ayuda. – Will

Respuesta

6

Apatridia es una buena palabra para explicar como ya han destacado los miembros. Aparte de esto, haga las siguientes preguntas a los estudiantes?

Si tienen que hacer lo siguiente con ASP.NET (sin MVC), ¿qué tan fácil será?

  1. prueba sus puntos de vista
  2. objetos HTTP Mock.
  3. reducción Viewstate (por diseño) (
  4. viewengine ligera Sustituto de .aspx.
  5. separación minuciosa de las preocupaciones.
  6. Limpiar HTML
  7. etc etc ..

Ahora explique asp .net mvc en el contexto anterior. Puede haber más. Por lo menos, creo que captarán el punto, pensaron que esto podría no ser aplicable a todo el proyecto, pero ¿cuál es el daño si solo estamos obteniendo esto?

4

Para mí, el enfoque MVC es un paradigma muy diferente de la API de ASP Forms. Creo que la idea de ser "apátrida" es una buena forma de explicar un tema muy amplio en una palabra en realidad.

Una de las principales ventajas que he visto es que el marco MVC da mucho control sobre el diseño y la salida de su página. Para proyectos pequeños, puede que este no sea el mejor uso, pero para proyectos grandes, se escala muy bien porque puedes elegir diferentes arquitecturas que (personalmente) considero mejores, como la forma en que el marco MVC separa la lógica desde la vista.

Además, si está diseñando un sitio que tiene mucho Javascript, el control que obtenga sobre la salida en el marco MVC puede ser muy útil porque no tiene que preocuparse demasiado acerca de cómo las ID y otras marcas. se puede representar, como suele ocurrir en el marco de formularios de ASP.

El framework MVC es realmente una manera totalmente diferente de diseñar sitios web. Personalmente, creo que es más beneficioso para proyectos grandes, pero también comencé en los idiomas web donde MVC era una opción de diseño más popular para empezar.

Eso es solo mis 2 centavos.

1

Para alguien con experiencia (y dolores) en Winforms - la mayor diferencia es no más de Viewstate. El estado de los controles en el formulario se mantiene en el cliente, en el navegador y se envía al servidor para cada solicitud.

Si usa Javascript, es más fácil hacer cambios en el lado del navegador, mientras que el lado del servidor obtiene una manera fácil de ver el formulario como un todo sin tener que volver a crear controles vinculantes.

Más allá de todas las cosas buenas que proporciona MVC - separación de vista/código, capacidad de prueba - este fue para mí el punto clave para pasar a MVC.

4

Siempre pensé que ASP.NET MVC Framework era una mala reputación ya que es un Patrón de diseño.

La pregunta debería ser:

Cuándo se debe utilizar ASP.NET MVC Framework sobre formularios Web ASP.NET?

El desarrollador Experiencia

a) Formularios Web ASP.NET intenta abstraer la naturaleza sin estado de HTTP desde el desarrollador. El estado de los elementos de GUI y/o los datos se almacenan en Viewstate/Session. Everyone Form hace una devolución de datos a sí mismo, básicamente imitando el comportamiento de un diseño impulsado por eventos de WinForm.

b) Los elementos de la GUI HTML son extraídos por Controles que pueden ser reutilizados y comprados a proveedores de terceros. Esto ayuda a los desarrolladores a pegar una aplicación HTML juntos sin tener mucho conocimiento de JavaScript y HTML/HTTP. Básicamente similar a la forma en que desarrollaría VB/WinForms

c) Puede hacer un buen trabajo implementando el patrón MVC/MVP en formularios web ASP.NET. Mire la fábrica de software Web Client de Patterns and Practices para ver cómo lo hicieron.

d) Desarrollando usando WebForms generalmente está cambiando el HTML (Vista) basado en los comentarios de los usuarios en el servidor. La mayoría de los eventos (el usuario hace clic en un botón, edita un campo) se manejan en el servidor en un ciclo de devolución de datos continuo ejecutando lo que se llama ASP.NET Page Lifecycle.

VS

vista

navegador controlado (no sé qué otra cosa lo llaman). Todos los cambios al HTML basados ​​en la entrada del usuario se manejan en el navegador. Estarás manipulando el DOM con Javascript.

Nota: Me basando esta en el hecho de que ASP.NET MVC es más probable impulsado por el HTML básico + Ajax

Cómo yo elegiría personalmente entre ellos (sin haber usado MVC, sólo leer sobre él)

1) Si tuviera que construir una interfaz frontal sin estado puro usando Ajax, Jquery, las bibliotecas de tipos EXT JS ASP.NET MVC parecerían ser las más adecuadas. Aunque podría compilarlo en Webforms de ASP.NET, parece inútil ya que no aprovecha el modelo de Postback y los controles de servidor.

2) Si me pidieran que construyera una nueva aplicación web básica, me quedaría con las Webforms de ASP.NET porque ya estoy familiarizado con ella y conozco toda la página lifecylce.

3) Si me pidieran que construyera un Web 2.0 (odio ese término) para tener una experiencia de usuario de próxima generación, probablemente iría con ASP.NET MVC y usaría controles de cliente JQuery/ASP.NET Ajax.

4) Muchas compañías han creado un conjunto sólido de controles de WebForm para usar. Sería costoso reconstruirlos todos de una manera ajaxy sin estado puro :)

1

Aparte de todas las otras respuestas excelentes ya enumeradas. Webforms es una abstracción lejos de HTML.

Cuando se desea una tabla HTML de los datos, se pone un control "gridview" en una página - lo que usted termina con html es "gridview", y muy posiblemente no exactamente lo que buscábamos.

El zapato se ajusta el 90% del tiempo, pero muchas veces, especialmente cuando las cosas se mueven más allá de un sitio básico que los controles no caben. El uso de Webforms a menudo significa que no tiene control total sobre el resultado final que se representa en el navegador.

Puede extender, por supuesto, o escribir su propio control de cuadrícula. Pero, ¿no preferirías simplemente escribir el html que quieres?

Según mi experiencia, los proyectos se vuelven más complejos, y las IU se vuelven más complicadas que terminan peleando cada vez más.