2009-08-07 14 views
5

Trabajo en aplicaciones asp.net 'en casa' y me encantaría utilizar asp.net mvc, pero no puedo, ya que nuestras aplicaciones se implementan en servidores web que no están en nuestro control y actualmente solo tenemos .net framework v2 e IIS6. Además de no haber posibilidad de tener tiempo/dinero gastados en la conversión de aplicaciones actuales de WebForms ...Mejores WebForms inspirados en asp.net MVC

Así que cualquier información que me ayude a crear mejores aplicaciones WebForms asp.net sería muy apreciada ... He leído el lista "qué apesta" sobre WebForms de la gente MVC para la cual seguramente hay soluciones/soluciones para hacer que WebForms sea "menos sucky" ...

cosas que entiendo que podrían mejorarse (pero necesito ayuda en):

  • estado de vista para quitar las páginas que no devolución de datos (quitar la etiqueta runat = "server")
  • ?
  • minimizar el uso de estado de vista - utilizando <span><asp:literal /></span> en lugar de un asp: label (nunca usamos las propiedades de estilo de los controles del lado del servidor, pero usamos los CssClass atribuyen principalmente para mantener CSS en los archivos CSS)
  • manipuladores uso ASHX para peticiones Ajax (¿puede esto ser más lejos? p.ej. una devolución de datos a un controlador?)
  • ¿se puede eliminar viewstate por completo y todavía se puede devolver? (¿está leyendo las variables de formulario en lugar de leer los valores de control?)
  • ¿Puede desactivar viewstate mediante programación si sabe que el usuario tiene javascript? p.ej. entonces una solicitud ajax puede enviar el formulario, pero ¿funcionará si JavaScript está desactivado?
  • ya mantenemos toda nuestra lógica comercial en una capa BR/BL y tenemos una capa DAL similar para el acceso a la base de datos ... por lo que el código aspx es generalmente bastante claro ... (la validación también está en BR/BL, que responder a una solicitud ajax o una devolución de datos para la misma tarea requiere poca (o ninguna) duplicación de código)
  • uso de menos componentes ... (menos controles de servidor ... en cierto grado esto también significa usar controles que ganaron 't tiene el ID de basura)

i no me importa para las direcciones URL perfectamente formateados como su intranet basa (y así más o menos irrelevante) y SEO no es una preocupación ... a pesar de que las direcciones URL MVC ven brillante ...

Una vez más, cualquier ayuda, recursos, muestras de código o lo que sea sería increíble. gracias montones.

Respuesta

1

Para las preguntas de ViewState, asegúrese de entender la diferencia entre ViewState y ControlState. These articles me ayudó con eso. Desactivo ViewState en el archivo web.config para mis aplicaciones existentes de Webforms y no tengo ningún problema. También evito cualquiera de los * Controles de vista y me adhiero principalmente a PlaceHolder, Literal, Repeater, Button, TextBox, DropDownList (puede actuar peculiar sin ViewState, pero nada se detiene) y otros controles básicos. Puede realizar una devolución de datos con ViewState desactivado.

ASHX funciona muy bien para las solicitudes de Ajax. Sin embargo, no lo tomaría más allá.

Creo que estás en el camino correcto. Ya estás separando las capas y poniendo las cosas donde debería estar y parece que sabes a dónde deberían ir las cosas, y saber que es la mitad de la batalla.

+0

lee ese artículo y te sientes dudoso por toda la contaminación de viewstate que sin duda he causado ... ¡EXCELENTE enlace! También que aclaró que el viewstate no es necesario para obtener valores de forma durante la devolución de datos (lo que ahora sé que es un mito) – davidsleeps

3

posible añadir a este

manipuladores uso ASHX para Ajax pide

Uso Jayrock para manejar las peticiones Ajax. Esto es muy parecido a MVC con solo JsonResult.

puede usted desactivar el estado de vista mediante programación saber si el usuario tiene javascript

Puede detectar si JS está activado el uso de este approach. Por lo tanto, es bastante fácil deshabilitar ViewState. Puede manejarse fácilmente en la página base si tiene tal. Así que la cantidad de código repetitivo -> 0.

Additinaly usted podría encontrar WebFormsMVP útil.

+0

Sí, iba a agregar MVP. No es realmente tan bueno como MVC, pero para WebForms, es todo lo que tienes. – Martin

+0

MVP parece útil, pero: Requiere ASP.NET 3.5 SP1 – davidsleeps

0

que me gustaría añadir a este post (para cuando alguien viene a través de ella) en el siguiente enlace, que es bastante útil cuando se utiliza jQuery (o Javascript para el caso):

del blog de Rich Strahl: Formulario de serialización jQuery sin ASP.NET ViewState:
http://www.west-wind.com/weblog/posts/472329.aspx

Cuestiones relacionadas