Salve a tutti, volevo porvi questo quesito, rivisto molte volte, ma mai focalizzato sull'ottimizzazione.
Premetto che ogni utente prima ti poter operare nel portale deve autenticarsi.
Abbiamo questi elementi :
1) Classe "Nominativo" creata da me
2) Pagina "default.aspx"
3) Un bottone "Carica" in default.aspx, carica un nominativo dal database
4) Un bottone "Aggiorna" in default.aspx aggiorna il nominativo caricato precedentemente
La classe "Nominativo" contiene le sub:
A) CaricaNominativo (ByVal ID as integer)
B) Aggiorna
Nella pagina default.aspx si ha il seguente codice:
Se si clicca sul bottone "Carica", dove viene creata una nuova istanza della classe, la sub carica un record, in questo caso il record con ID=8codice:Imports Nominativi Partial Public Class _Default Inherits System.Web.UI.Page Dim Nomin As Nominativo Protected Sub carica_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles carica.Click Nomin = New Nominativo Nomin.CaricaNominativo(8) End Sub Protected Sub Aggiorna_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Aggiorna.Click With Nomin .Nome = "Mario" .Cognome = "Rossi" .Aggiorna() End With End Sub End Class
Come ben sappiamo se successivamente si va a cliccare sull'altro bottone "Aggiorna", il compilatore ci restituisce un errore che ci dice: "Riferimento a un oggetto non impostato su un'istanza di oggetto."Perxhè Asp.net nativamente non tiene in memoria lo stato precedente di una pagina che ha effettuato un PostBack.
La soluzione migliore è utilizzare la SESSION ? nel momento in cui si hanno molti utenti loggati che operano insieme, il server ne risente in prestazioni? ci sono altre valide alternative ?

Rispondi quotando