Microsoft .NET
strati:
| Windows UI | ASP.NET |
| ADO.NET (data & XML) |
| .NET Framework class library |
| CLR (common language runtime) |
ci sono 2 tipi di interfaccia grafica, poi il resto è comune
CLR
composto da: Class Loader, MSIL (Microsoft Intermediate Language), Garbage Collector,
COM Marshaler (permette di eseguire codice esterno a .NET), sicurezza, debugging. ecc.
Trasforma il sorgente (con il relativo compilatore) in codice intermedio: Assembly IL code (Managed Code), poi lo rende eseguibile (Native Code) con il JIT (Just In Time) compiler: teoricamente rende il sorgente indipendente dalla piattaforma.
ADO.NET
2 namespaces: System.Data, System.Xml
Realizza l'accesso ai dati in modo disconnesso. L'oggetto fondamentale è il Table Adapter, che deve essere istanziato per poterne utilizzare i metodi.
ASP.NET
namespaces: System.Web
Contiene: Services (le Web Services), HtmlControls (tag HTML), WebControls (molto potente perchè rimappa sul server lo stato del client)
Assembly
contiene codice eseguito dal CLR; è l'unità minima e ha le sue regole di sicurezza.
Superano le DLL. Possono stare nella dir da cui viene lanciato l'eseguibile o nella cartella GAC (Global Assembly Cache), dove le assembly hanno anche la versione, per poter coesistere. Nella GAC stanno ovviamente le librerie di sistema.
processo di sviluppo con Visual Studio .NET
Creare il progetto, creare le interfacce (pagine HTML), scrivere il codice, debug e deploy
Visual Studio 2005 ha un web server interno senza necessità di configurazione (Catalina), che in realtà è IIS chiuso nella macchina, utilissimo per lo sviluppo
file di soluzione (.sln, .suo), file di progetto (.vbproj, .cdproj), file dell'applicazione
2.0 ha un nuovo meccanismo di compilazione (Non ricompia tutto) per cui occorre mettere i file di risorsa nelle dir giuste.
code behind
Il codice si può mettere nella pagina, con <script language="vb" runat="server">,
ma NON è consigliabile, meglio tenere separati pagina e codice.
Per ogni pagina esistono 3 files: pagina HTML (.aspx) , pagina VBNET (.aspx.vb), pagina grafica di VisualStudio
Web Server Control
Tutte le pagine devono contenere una form di tipo post: sono pagine .aspx
con dichiarazione @ Page Language=… e form di tipo post con runat="server" (Web Form)
Un controllo lato server contiene:
- un namespace (es.: asp:Button),
- un id per referenziarlo
- un Text per visualizzarlo
- e infine runat="server" che interpreta gli eventi e conserva il ViewState
ViewState salva lo stato della pagina (campo hidden __VIEWSTATE con tutto il testo)
HTML Server Control
Esistono anche gli HTML Server Control, ma sono semplici mappature dei tag HTML e quindi non vengono usati.
User Control
NON sono Web Controls, sono fatti da noi per consentire il riuso di codice.
Vengono memorizzati nel server, possono essere utilizzati più volte, ma nella stessa applicazione (altrimenti non vengono compilati)
sono un file
.ascx che contiene tag HTML (tranne HTML, BODY, FORM, che sono già nella pagina)
e la direttiva <%@ Control Language="vb" %>
Si include come sempre, dichiarando prima il nostro namespace:
<%@ Register TagPrefix="demo" TagName="validNum" Src="numberbox.ascx" %>
<demo:validNum id="num1" runat="server"/>
Poi si setta o testa con num1.pNum = 5 'uses Set e x = num1.pNum 'uses Get
debug
Con l'utilizzo del tracing
possiamo visualizzare info aggiuntive: valori delle variabili, eventi e tempo di esecuzione:
ci sono 2 oggetti: Debug e Trace
Trace="true" in <%@ Page o in Web.config
Per visualizzare: Trace.Write ("category","message") o Trace.Warn