2009-03-02 3 views
5

Stiamo per iniziare la ricostruzione di uno dei nostri progetti ASP.NET e mi piacerebbe provare a svilupparlo senza viestate attivato (disabilitato in web.config).Esecuzione di ASP.NET senza viewstate attivato

Conosco i pregi e svantaggi di ViewState e in generale quello che registra rispetto al controllo dello Stato, però mi piacerebbe sapere:

  1. Quali sono le principali differenze processo di sviluppo? Cioè quanto strutturate diversamente il vostro Page_Load ecc.?

  2. Esiste qualche funzionalità nei controlli standard di ASP.NET che in realtà non funzioneranno senza il viewstate attivato?

Inoltre, ci sono articoli dettagliati sulle differenze del flusso di lavoro tra lavorare con e senza VS?

risposta

2

La maggior parte dei controlli come TextBox e DropDownLists funzioneranno perfettamente senza viewstate.

Non conosco alcun problema relativo ai processi di sviluppo, a parte eventuali controlli o proprietà create o modificate tramite codice non persistono senza viewstate, quindi è necessario ricrearli/modificarli in un postback.

Ho alcune pagine molto grandi con grandi viewstate. Ho fatto un esperimento per disabilitare il viewstate per l'intero progetto e ho scoperto (inizialmente) nessuna perdita evidente di funzionalità. Poi sono emersi alcuni piccoli problemi nei test, quindi l'abbiamo reintegrato. Ma la nostra app web di 300 pagine era probabilmente funzionante al 99% senza viewstate. I problemi che avevamo riguardavano i datagrids: il paging principalmente e i controlli creati dinamicamente e altre cose modificate dal codice e quindi non persistevano senza viewstate.

Questo è un ottimo articolo su Viewstate:

http://msdn.microsoft.com/en-us/library/ms972976.aspx

2

Disattivo viewstate sui miei progetti. Uso i metodi scatter/gather per popolare e ottenere valori dalle pagine aspx ai/dai miei oggetti di accesso ai dati. È molto più pulito e semplice rispetto all'utilizzo di viewstate.

+0

Grazie ocdecio, che cosa si intende per scatter/gather metodi? Utilizzi il resto del modello di pagina/evento ASP.NET? –

+0

Sì, utilizzo il normale modello di eventi della pagina. Raccogli = raccoglie i valori dagli elementi della pagina nei miei oggetti; scatter = popola gli elementi della pagina con i valori dei miei oggetti. –

3

Se si è contro il viewstate, perché non provare a utilizzare il framework MVC? Potrebbe essere un aggiustamento più semplice.

+0

Questa era sicuramente un'opzione, ma sfortunatamente quella che ci ha superato in quel momento. Se dovessimo ricominciare oggi, MVC sarebbe sicuramente la strada da percorrere. –