corso 2008

intro

.NET

Microsoft .NET

strati:
Windows UIASP.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.

Microsoft.NET Framework

files in C:\Windows\Microsoft.NET\Framework\una cartella per ogni versione del Framework\
GAC già visto sopra
CONFIG contiene il file di configurazione machine.config, che contiene i comportamenti default sovrascrivibili dal web.config della singola applicazione.

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: 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

home