Essendo un ragazzo PHP, di recente ho dovuto scrivere un ragno su un sito di asp.net. Sono rimasto davvero sorpreso dal diverso approccio all'ajax e alla gestione dei moduli.
Ad esempio, nei siti PHP con cui ho lavorato, una cancellazione di una voce del database sarebbe qualcosa di simile:
GET delete.php?id=&confirm=yese ottenere un "successo" in qualche forma (nel caso Ajax, probabilmente una risposta JSON).
In questa applicazione asp.net dovresti invece pubblicare un modulo, inclusi tutti gli input sulla pagina, con un enorme __VIEWSTATE e __EVENTVALIDATION. Questo sarebbe più di 10 volte più grande di sopra.
La risposta sarebbe di nuovo il lato completo, con un piè di pagina che contiene alcuni dati strutturati per javascript per analizzare e visualizzare il risultato. Di nuovo, l'intera pagina viene inviata e quindi gettata via (?) Poiché è già visualizzata. Perché non inviare semplicemente il piè di pagina con i dati da analizzare (non è json né xml ma un elenco | separato).
Non riesco davvero a capire perché dovresti progettare un sistema in questo modo. Di solito hai un client veloce e un server un po 'veloce ma una connessione molto lenta. Perché non mantenere il trasferimento dati al minimo? Perché quegli enormi __VIEWSTATE e __EVENTVALIDATION?
Sembra che tutto sia fatto in modo da chiacchierare e complicato. Non riesco davvero a vedere il punto e questo di solito significa che mi manca qualcosa. Quindi, per favore dimmi, quali sono le ragioni di questo design e quali vantaggi (e punti deboli) ha?
(Sì, so che __VIEWSTATE è usato per dire quale tipo di form-konfiguration deve essere restituito al server, ma perché è necessario?)
Tieni questa discussione rigorosamente tecnica ed evita flamewar.
Aggiornamento:
Per favore scusa la domanda un po 'banale. Ho cercato di spiegare la mia opinione per essere in grado di ottenere una risposta migliore. Io sono non che dice che asp.net è cattivo, sto dicendo che I non capisco il significato di quei concetti. Di solito ciò significa che ho cose da imparare invece che i concetti stanno sbagliando.
Apprezzo le spiegazioni sul fatto che "non devi farlo in questo modo in asp.net", leggerò su MVC e altre tecnologie .net. Tuttavia, c'è un motivo per cui questo sito (quello a cui mi riferisco) deve essere scritto così com'è. È scritto da professionisti per una grande organizzazione con molta più esperienza di quello che ho. Qualsiasi spiegazione sulla loro (possibile) scelta di design sarebbe gradita.