Redazione
a- a+

Programmazione ASP.NET: consigli

Consigli su come programmare in ASP.NET . Codici ed esempi.

Fondamentalmente una pagina ASP.NET funziona come una pagina HTML.
Una pagina HTML ha come estensione .htm. Se il browser richiede una pagina HTML al server, questo la invia senza alcuna modifica.
Una pagina ASP.NET ha come estensione .aspx. Se un browser richiede una pagina aspx, il server processa gli eseguibili della pagina prima di inviare i risultati al client.
La pagina appena vista non contiene codice lato server, e quindi non c’è nulla da eseguire. Nei prossimi esempi vedremo delle pagine con del codice e le differenze con le pagine statiche.

Pagine dinamiche in ASP.NET

Il codice seguente è una pagina ASP.NET:

<html>
<body bgcolor="yellow">
    <center>
      <h2>Hello world</h2>
      <p><%Response.Write(now())%></p>
    </center>
</body>
</html> 

Salvate la pagina come test.aspx ed eseguitela dal browser.

Il codice dentro i tag <% e %> viene eseguito sul server, l’istruzione respose.write è il codice ASP per inviare qualcosa allo stream di output HTML. Now() è una funzione che restituisce la data ed ora corrente.
Salvate la pagina come test.asp ed eseguitela dal browser

L’esempio precedente non mostra alcuna differenza con ASP classico in quanto è un esempio abbastanza semplice che però serve a far capire come uno script lato server sia differente da una pagina HTML pura. Adesso consideriamo invece qualcosa che è solo di ASP.NET che ci fa capire quanto sia potente e innovativo questo linguaggio.

Un gestore di eventi è una subroutine che esegue del codice per un determinato evento.
Prendiamo in esame il seguente codice:

<%lbl1.Text="data e ora: " & now()%>
<html>
<body>
    <form runat="server">
      <h3><asp:label id="lbl1" runat="server"/></h3>
    </form>
</body>
</html> 

Così facendo non sappiamo in che momento verrà eseguito il codice.

Evento Page_Load

L’evento Page_Load viene scatenato quando la pagina viene caricata, ed ASP.NET richiamando la routine Page_Load, ne esegue il codice:

<script runat="server">

Sub Page_Load
  lbl1.Text="The date and time is " & now()
End Sub

</script>

<html>
<body>
    <form runat="server">
      <h3><asp:label id="lbl1" runat="server"/></h3>
    </form>
</body>
</html> 

L’evento Page_Load viene scatenato ogni volta che la pagina viene caricata. Se vogliamo che il codice venga eseguito SOLO la prima volta che la pagina viene caricata, possiamo utilizzare la proprietà Page.IsPostBack property. Se la proprietà è false, la pagina è caricata per la prima volta, altrimenti vuol dire che è stata reinviata al server (ad esempio dopo un click su un bottone di una form).

script runat="server">

Sub Page_Load
   if Not Page.IsPostBack then
      lbl1.Text="data ed ora " & now()
   else 
      lbl1.Text="la pagina è stata già caricata" 
   end if
End Sub

Sub submit(s As Object, e As EventArgs)
   lbl2.Text="Hello World!"
End Sub

</script>

<html>
<body>
    <form runat="server">
      <h3><asp:label id="lbl1" runat="server"/></h3>
      <h3><asp:label id="lbl2" runat="server"/></h3>
      <asp:button text="Submit" onclick="submit" runat="server" />
    </form>
</body>
</html> 

L’esempio mostra data ed ora soltanto la prima volta che la pagina viene caricata. Altrimenti mostra un altro messaggio.

Separazione del codice dal contenuto (il codebehind)

In questi esempi che abbiamo visto, le pagine ASP.NET vengono scritte come le pagine ASP, ovvero, codice ASP.NET e codice HTML insieme. Uno dei vantaggi che offre ASP.NET e che lo rende un linguaggio innovativo e potente è la possibilità di separare il codice ASP.NET da quello HTML con notevoli vantaggi per i programmatori che avranno pagine più pulite ed ordinate. Dividendo HTML dalle istruzioni ASP.NET, otterremo due file il file con estensione .aspx che conterrà esclusivamente il codice HTML e il file .vb o .cs (a  secondo se si utilizza per programmare le pagine in ASP.NET, visual basic.Net o C# rispettivamente) che conterrà la programmazione in linguaggio VB.NET (oppure C#). Per poter eseguire la separazione dei due codici dobbiamo inserire all’interno delle pagine .aspx come prima riga la seguente istruzione:

<% Page Language="vb" AutoEventWireup="false" Codebehind="hello.aspx.vb"%>

la quale, oltre ad identificare il linguaggio (nel nostro caso "VB" , Language=”C#” se si utilizzava C#) accetta anche altri attributi come codebehind (utilizzato per includere un file di solo codice, ad esempio hello.aspx.vb), ValidateRequest (booleano, accetta come valori true o false per la gestione degli errori sui moduli).

In genere in ASP.NET non si utilizzano i Tag di render <% e %> ma si usa includere tutto il codice (in questo caso VB) al di sopra del codice HTML della pagina in una coppia di Tag <script> e </script> con l'attributo obbligatorio runat="server" e l'attributo facoltativo language. Altra caratteristica di ASP.NET è l'utilizzo dei namespace, ovvero inclusione di riferimenti a classi e librerie messe a disposizione degli sviluppatori dal Framework stesso. La sintassi per l'inclusione è:

<%@ Import Namespace="..." %> 

La classe più comune è System che possiede una serie di interessanti sottoclassi quali Web, Xml, IO Altro importante evento oltre al page è l'evento control, usato per inserire gli user control (controlli utente).



Ti potrebbe interessare anche

commenta la notizia

C'è 1 commento
Marcello
Ti è piaciuto l'articolo?