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:
codice:
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
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=8
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 ?