2011-12-29 14 views
5

¿Está utilizando jQueryMobile en la aplicación Web Form ASP.Net un enfoque correcto?
¿Cuáles son los pros y los contras del uso de jQueryMobile u otra biblioteca de Mobile JS en el formulario web de ASP.NET?jQueryMobile en ASP.NET WebForm

Respuesta

11

ASP.NET Web Forms es un marco fino, pero no necesita la mayor parte para el desarrollo móvil con marcos de interfaz de usuario JavaScript. Voy a enumerar los contras primero, seguidos de una alternativa y, finalmente, dar algunos consejos cuando debe utilizar Formularios web a pesar de los contras.


El problema con ASP.NET Web Forms es que no siempre se tiene control total sobre el HTML. Esto se puede mitigar con using control adapters, evitando el uso de certain controls y utilizando las propiedades EnableViewState en controles y páginas. ASP.NET Web Forms 4.0 también mitiga algunos de los problemas como unpredictable client IDs. Pero todo eso se suma al trabajo adicional solo para evitar la naturaleza de los formularios web de ASP.NET.

Además, la mayoría de los controles web serán emit JavaScript en la página para que el modelo de post-impresión de ASP.NET Web Forms funcione. Por ejemplo, con <asp:DropDown AutoPostBack="true">, <asp:TextBox OnTextChanged="..." > o <asp:Panel DefaultButton="...">. Esto es realmente agradable si su estilo de desarrollo es principalmente del lado del servidor y está contento de no tener que preocuparse por los detalles de hacer que todo funcione en el lado del cliente.

El <asp:UpdatePanel> es otro buen ejemplo: lo agrega a la página y tiene habilitada mágicamente AJAX para la página. Pero genera bastante JavaScript, todo el estado de su vista se envía y recibe entre el cliente y el servidor, e incluso para una pequeña actualización, la página completa se procesa en el servidor.

Pero para el desarrollo móvil, desea optimizar sus páginas para pantallas más pequeñas y tiempos de carga más rápidos. En general, los marcos móviles de JavaScript se encargan de mantener el estado en el lado del cliente, enviar y recibir mensajes de forma asincrónica y actualizar la vista a través de JavaScript. Eso significa que toda esa infraestructura en ASP.NET Web Forms para mantener el estado en las publicaciones posteriores (estado de visualización, ciclo de vida de la página) a menudo es bastante inútil y, a veces, hasta contraproducente.


Creo que en general ASP.NET MVC es una mejor opción para el desarrollo móvil en general, y para jQuery Mobile.


Si mosto uso de formularios Web ASP.NET, a continuación, utilizar controles como el <asp:ListView> para la representación HTML que se va a utilizar para elementos de la lista de IU jQuery Mobile. Este control le da un buen control sobre el HTML.

Trate de no utilizar el control <asp:UpdatePanel>, porque entonces definitivamente está mezclando metáforas. En general, no confíe demasiado en los respaldos de los correos. En su lugar, puede use web methods en su página que puede llamar directamente desde JavaScript. Los métodos de página estática con el atributo [WebMethod] devolverán datos con formato JSON, lo cual es una buena opción para la mayoría de los marcos de JavaScript actuales. El hecho de que estos métodos must be declared as static significa que no participan en el ciclo de vida de la página. Eso también significa que tienen mejores características de rendimiento.

Por último, incluso cuando está usando formularios web, siempre se puede utilizar .ashx archivos (IHttpHandler básicas y es primo asíncrono, IHttpAsyncHandler) o en un servicio web con el atributo ScriptService.Estas opciones también migrarán bien si decide usar ASP.NET MVC en el futuro.

+0

gracias..michielvoo. Como debo usar formularios web ASP.NET, estoy pensando en utilizar webmethods o utilizar gestores async, pero si es posible, me gustaría evitar este enfoque. – Kai

+1

Si no te importa que pregunte, ¿cómo se presta MVC para Jquery Mobile? He visto a muchas personas que simplemente dicen "si estás usando .NET Web Forms cambia a MVC" pero no proporcionan ningún razonamiento detrás de esto. Estoy trabajando en un proyecto con Formularios web y he tenido algunos problemas con las transferencias postales e intenté ir a la ruta WebMethod o UpdatePanels, pero me preguntaba sobre esto. – avivas

1

Espero que esto no se convierta en una fiesta de ataques WebForms de ASP.NET.

La respuesta es que ASP.NET WebForms es bueno, al igual que ASP.NET MVC. ¿Qué estás usando hoy? ¿Con qué te sientes más cómodo? ¿Cuánto tiempo tienes? ¿Cuál es la fecha límite del proyecto?

Sí, los identificadores de control generados por WebForm son un poco molestos pero existen soluciones alternativas. Sí, trate de mantenerse alejado del UpdatePanel, pero no hay nada que le impida usar jQuery al mismo tiempo. El UpdatePanel ha sido abusado históricamente. Período. Es un hogger ViewState que no es ideal para aplicaciones móviles.

Al final del día, WebForms funcionará bien, tendrá el ciclo de vida de la página y puede realizar una lógica sólida del lado del servidor. En un entorno móvil, tiendo a alejarme de cualquier control runat=server ya que quiero crear mi propio HTML y evitar ViewState. Además, estático [WebMethod, ScriptMethod] en el nivel de página ayuda a organizar su código.

+0

Nota: abandonamos UpdatePanel hace mucho tiempo a favor de llamadas directas (y más manejables jQuery ajax). –

+0

Estoy intentando abordar aquí jQuery mobile, no jQuery. – Kai

Cuestiones relacionadas