ASP.NET Web Forms è cattivo o cosa mi manca? [chiuso]

0

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=yes
e 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.

    
posta iveqy 22.10.2013 - 07:45
fonte

3 risposte

6

Please keep this discussion strictly technical and avoid flamewars.

Vedremo;) (Come sottolinea Bart van Ingen Schenau , la tua domanda è un po 'scarsa, che potrebbe non aiutare la situazione)

In realtà ti stai riferendo a Webforms ASP.NET . ASP.NET non succhia affatto; MVC è ottimo (e non condivide il problema che hai menzionato)

Hai ragione che ViewState è grande e sembra una seccatura con cui lavorare. In un certo senso può essere anche per gli sviluppatori. Perché è stato sviluppato in questo modo? Beh, può essere utile - sospetto in particolare per gli sviluppatori provenienti da Winforms; il web si comporta fondamentalmente in modo diverso dalle applicazioni desktop, ma Microsoft ha cercato di imitare il comportamento con astrazioni come ViewState (un grande oggetto per tenere traccia di dove è tutto). Il grande Viewstate che viene passato in giro è anche meno un problema con cose come Intranet (dove le Webform possono essere abbastanza comuni).

In questa domanda viene data una grande discussione e un confronto tra i due: Quando privilegiare i WebForm ASP.NET su MVC . Perché è stato progettato in questo modo è anche menzionato.

    
risposta data 22.10.2013 - 07:58
fonte
7

Le Webform sono state progettate in un momento in cui le persone desideravano che le applicazioni Web assomiglino alle applicazioni Windows. Questo è stato un momento oscuro su Internet in cui gli sviluppatori sono stati costretti ad apprendere i cicli di vita delle pagine e ad affrontare stati di visualizzazione orribili e controlli di terze parti che causerebbero un tale aumento della struttura stessa di Internet sarebbe scossa ...

Questo è Webforms, una tecnologia arcaica che è meglio dimenticare, e anche le persone che dicono il contrario dovrebbero essere dimenticate.

Come un'altra risposta dice, MVC è l'ultimo modo di MS (anche se è stato praticamente generato da Ruby on Rails che penso) per progettare buoni siti web.

Ad ogni modo, "Why is MVC great" è un altro argomento, ma per questo la risposta è.

SÌ WEBFORMS È FANTASTICO NON USARLO PER NUOVI PROGETTI

    
risposta data 22.10.2013 - 09:00
fonte
0

Penso che ci sia una risposta semplice a questo, dal mio punto di vista non tanto perché è male che le scelte - compromessi - che hanno fatto per produrre un quadro produttivo non sono quelli con cui sei d'accordo.

Detto questo, la facilità con cui puoi fare (e ho fatto) cose davvero stupide e la quantità di bloat che puoi aggiungere banalmente a una pagina sono buoni argomenti per spiegare perché è difettosa.

Il rovescio della medaglia è che puoi fare un sacco di cose intelligenti con non molto sforzo - e se stai mirando a un sito focalizzato per uso interno per un'azienda piuttosto che a un sito web pubblico più ampio, allora il guadagni di produttività possono essere una grande vittoria.

Con lo sviluppo in corso del framework webforms e con gli sviluppatori che hanno la minima idea non devi più produrre pagine povere e gonfie (anche se molte persone lo faranno ancora).

    
risposta data 22.10.2013 - 16:28
fonte

Leggi altre domande sui tag