2011-12-29 18 views
5

L'utilizzo di jQueryMobile nell'applicazione Web Form di ASP.Net rappresenta un approccio corretto?
Quali sono i pro e i contro dell'utilizzo di jQueryMobile o di un'altra libreria Mobile JS in Web Form ASP.NET?jQueryMobile in ASP.NET WebForm

risposta

11

ASP.NET Web Forms è una struttura fine, ma non è necessario la maggior parte di esso per lo sviluppo mobile con i framework dell'interfaccia utente JavaScript. Elencherò prima i contro, seguito da un'alternativa e infine fornirò alcuni suggerimenti quando è necessario utilizzare Web Form nonostante i contro.


Il problema con Web Form ASP.NET è che non si ha sempre il pieno controllo dell'HTML. Questo può essere mitigato da using control adapters, evitando l'uso di certain controls e utilizzando le proprietà EnableViewState su controlli e pagine. ASP.NET Web Forms 4.0 riduce anche alcuni dei problemi come unpredictable client IDs. Ma tutto ciò si aggiunge al lavoro extra solo per aggirare la natura dei Web Form di ASP.NET.

Inoltre, la maggior parte dei controlli Web comporterà il emit JavaScript nella pagina per il funzionamento del modello di postback di Web Form di ASP.NET. Ad esempio con <asp:DropDown AutoPostBack="true">, <asp:TextBox OnTextChanged="..." > o <asp:Panel DefaultButton="...">. Questo è veramente bello se il tuo stile di sviluppo è per lo più lato server e sei felice di non doverti preoccupare dei dettagli di far funzionare tutto sul lato client.

Il <asp:UpdatePanel> è un altro buon esempio: lo aggiungi alla pagina e hai magicamente abilitato AJAX per la pagina. Ma rende un bel po 'di JavaScript, tutto lo stato della vista è ancora inviato avanti e indietro tra client e server, e anche per un piccolo aggiornamento la pagina completa viene elaborata lato server.

Ma per lo sviluppo mobile si desidera ottimizzare le pagine per schermi più piccoli e tempi di caricamento rapidi. Generalmente i framework JavaScript mobili si prendono cura di mantenere lo stato sul lato client, inviando e ricevendo messaggi in modo asincrono e aggiornando la visualizzazione tramite JavaScript. Ciò significa che tutta l'infrastruttura in Web Form ASP.NET per il mantenimento dello stato tra i postback (stato di visualizzazione, ciclo di vita della pagina) è spesso abbastanza inutile e talvolta persino controproducente.


Credo che nel complesso ASP.NET MVC è una misura migliore per lo sviluppo mobile in generale, e per jQuery Mobile.


Se must uso ASP.NET Web Forms, quindi utilizzare i comandi come il <asp:ListView> per il rendering HTML che si intende utilizzare per gli elementi della lista jQuery Mobile UI. Questo controllo ti dà un buon controllo sull'HTML.

Cerca di non utilizzare il controllo <asp:UpdatePanel>, perché in questo modo stai definitivamente mescolando le metafore. In generale, non fare troppo affidamento sui postback.

Invece, è possibile use web methods sulla tua pagina che è possibile chiamare direttamente da JavaScript. I metodi di pagina statici con l'attributo [WebMethod] restituiranno dati formattati JSON, che è un bel adattamento per la maggior parte dei framework JavaScript oggi. Il fatto che questi metodi significhi che non partecipano al ciclo di vita della pagina. Ciò significa anche che hanno caratteristiche di prestazione migliori.

Infine, anche quando si utilizza Web Form, è sempre possibile utilizzare Ashx file (di base IHttpHandler ed è cugino asincrono, IHttpAsyncHandler) o servizi web con l'attributo ScriptService.Queste opzioni migreranno anche se dovessi decidere di utilizzare ASP.NET MVC in futuro.

+0

grazie..michielvoo. Poiché devo utilizzare i moduli Web ASP.NET, sto pensando di utilizzare webmethods o utilizzare i gestori async, ma se possibile, vorrei evitare questo approccio. – Kai

+1

Se non ti dispiace chiederti, in che modo MVC si presta meglio per Jquery Mobile? Ho visto molte persone che dicono semplicemente "se stai usando .NET Web Forms passa a MVC" ma non forniscono alcun ragionamento dietro di esso. Sto lavorando a un progetto con Web Forms e ho avuto alcuni problemi con i Postback e ho provato ad andare su WebMethod o su UpdatePanels, ma mi stavo chiedendo questo. – avivas

1

Spero che questo non si trasformi in una festa bashing di ASP.NET WebForms.

La risposta è sia ASP.NET WebForms è buono, così come ASP.NET MVC. Che cosa stai usando oggi? Con cosa ti senti più a tuo agio? Quanto tempo hai? Qual è la scadenza del progetto?

Sì, gli ID di controllo generati dal Web Form sono poco fastidiosi, ma ci sono dei problemi. Sì, prova a stare lontano dallo UpdatePanel, ma non c'è nulla che ti impedisca di usare jQuery allo stesso tempo. Il UpdatePanel è stato storicamente abusato. Periodo. È un hogger di ViewState che non è l'ideale per le applicazioni mobili.

Alla fine della giornata, WebForms funziona perfettamente, ha il ciclo di vita della pagina e può eseguire una logica lato server solida. In un ambiente mobile tendo a stare lontano da qualsiasi controllo runat=server poiché voglio principalmente creare il mio Html ed evitare ViewState. Inoltre, il valore statico [WebMethod, ScriptMethod] a livello di pagina aiuta a organizzare il codice.

+0

Nota: abbiamo abbandonato UpdatePanel molto tempo fa in favore di chiamate jQuery ajax dirette (e più gestibili). –

+0

Sto provando ad indirizzo qui è jQuery mobile, non jQuery. – Kai

Problemi correlati