corso 2008

organizzazione del codice

.NET

Il codice si organizza così:

  1. classe
  2. variabili (private)
  3. proprietà
  4. costruttori
  5. metodi

accesso ai dati

  1. accesso ai dati
    • connessione al db
    • data set
      • trasciniamo tutte le tabelle
      • rimuoviamo le relazioni
      • aggiungiamo ai data adapter i metodi che ci servono (ne potremo aggiungere altri)
        • le viste per le decodifiche
        • la query che restutuisce un utente
        • le query per le ricerche che vogliamo fare
    • data helper
      • per ottimizzare l'accesso al db e non interrogarlo per eseguire le decodifiche, creiamo una classe con variabile privata statica che dura per tutta la vita della pagina: (si guarderà se è popolata, altrimenti si legge il db)

la pagina

la pagina master


E' un contenitore ove conviene mettere template, header, footer e anche la grafica comune a tutte le pagine, che noi possiamo inserire nell'Origine della pagina, racchiudendo il placeholder:
	<div style="display:block; border: 1px solid black;" >
	<asp:contentplaceholder id="ContentPlaceHolder1" runat="server">
	</asp:contentplaceholder>
	</div>

Aggiungi nuovo elemento/Pagina master

Quando si creerà una nuova pagina, verrà proposta la pagina master creata.


la nostra pagina

facciamo una classe ereditata da Page e dalla quale erediteranno tutte le nostre pagine
Inherits System.Web.UI.Page
Public Sub New()
   ' si eredita tutto, tranne il costruttore, quindi lo facciamo, uguale a quello di Page
    MyBase.New()
End Sub
La logica la mettiamo in un nostro metodo privato
Private Sub InitClass()

End Sub
e lo mettiamo nel costruttore: InitClass()

Le nostre pagine ereditano TUTTE da questa nostra classe
Ma alla creazione della pagina non abbiamo nulla, quindi ridefiniamo il metodo OnLoad, ove abbiamo le variabili di sessione

login

occorrono 2 pannelli (pnlLogin, pnlWelcome) la logica è: chiamo il datahelper per avere l'utente leggo Session("user") poi visualizzo il pannello corretto:
        If Session("user") Is Nothing Then
            pnlLogin.Visible = True
            pnlWelcome.Visible = False
        Else
            pnlLogin.Visible = False
            pnlWelcome.Visible = True
            lblUtente.Text = CType(Session("user"), Dati.UtentiRow).Ute_Nome
        End If
Nota la conversione di CType, perchè in Session("user") abbiamo messo un oggetto di tipo riga

riservata

Facciamo una pagina riservata: override della proprietà (scriviamo override intellisense fa tutto: cerchiamo riservata, poi Tab)
Partial Class Libri
    Inherits BasePage

    Protected Overrides ReadOnly Property Riservata() As Boolean
        Get
            Return True
        End Get
    End Property

End Class

home