I 7 pilastri di ASP.NET - Solo quello che ti interessa

Solo quello che ti interessa | ELEMENTI DI BASE - I 7 pilastri di ASP.NET
Copyright admin [email protected]
http://www.belloma.it/elementi-di-base-i-7-pilastri-di-net/
ELEMENTI DI BASE - I 7 pilastri di ASP.NET
1) Integrazione con .NET Framework
Il NET Framework è composto da una raccolta di parti funzionali, con decine di
classi, strutture, interfacce, ed altri elementi core di programmazione. Ognuno delle
migliaia di classi NET Framework è raggruppato secondo una logica di contenitori
gerarchici chiamati spazio dei nomi. Spazi dei nomi diversi forniscono
caratteristiche diverse e offrono funzionalità per quasi ogni aspetto dello sviluppo
distribuito dall' accodamento messaggi alla sicurezza. Questo massiccio toolkit si
chiama la libreria di classi.
Il modo in cui utilizzare le classi .NET è lo stesso che in qualsiasi tipo di
applicazione. NET (stand-alone di Windows, servizio di Windows, una riga di
comando, e così via). Anche se ci sono specifiche classi per Windows e per il web, le interfacce utente di costruzione e la stragrande maggioranza del .NET
Framework (dall'accesso al database alla programmazione multithread) è
utilizzabile in qualsiasi tipo di applicazione. In altre parole, .NET fornisce gli stessi
strumenti per sviluppatori web, windows o altro.
Su http://tinyurl.com/2d42w5e la biblioteca del .NET Framework
2) ASP.NET è compilato, non interpretato Nella prima fase, il codice (C#, VB o altro) viene compilato in un linguaggio
intermedio chiamato Microsoft Intermediate Language (MSIL), o semplicemente IL.
Questa prima fase la compilazione può avvenire automaticamente quando la pagina
viene richiesta per la prima volta, oppure è possibile effettuarla in anticipo (un
page 1 / 7
Solo quello che ti interessa | ELEMENTI DI BASE - I 7 pilastri di ASP.NET
Copyright admin [email protected]
http://www.belloma.it/elementi-di-base-i-7-pilastri-di-net/
processo noto come precompilazione). Il file compilato con il codice IL è un
assembly.
Il secondo livello di compilatione si ha poco prima che la pagina venga
effettivamente eseguita. In questo punto, il codice IL viene compilato in codice di
basso livello (codice macchina nativo). Questa fase è nota come just-in-time (JIT).
Naturalmente, la compilazione JIT non sarebbe che utile se si dovesse esguire ogni
volta che un utente ha richiesto una pagina. Fortunatamente, le applicazioni
ASP.NET non hanno bisogno di essere compilate ogni volta che viene fatta una
richiesta di una pagina: il codice IL viene generato una sola volta e rigenerato solo
quando la sorgente viene modificata. Allo stesso modo, i file nativi di codice
macchina vengono memorizzati in una directory di sistema che ha un percorso
simile a C:\ Windows \ Microsoft.NET \ Framework \ [versione] \ Temporary ASP.NET
Files.
ll punto effettivo in cui viene compilato il codice che genera l'IL, dipende da come si
crea ed si effettua il deploy dell'applicazione web. Se si sta costruendo un
progetto/applicazione web in Visual Studio, il codice viene compilato in IL quando si
compila il progetto. Ma se si sta costruendo un sito web più leggero, il codice per
ogni pagina viene compilata la prima volta si richiede la pagina (questa è la
differenza tra progetto web e sito web). In entrambi i casi, il codice passa poi
attraverso la sua seconda fase di compilazione (da IL in codice macchina).
3) ASP.NET è multilinguaggio
La scelta del liguaggio di programmazione non ha importanza, in quanto il codice
viene sempre compilato nello stesso codice IL. IL è un trampolino di lancio per ogni
applicazione gestita (un'applicazione gestita è un'applicazione che è scrittoa in
.NET e viene eseguita all'interno dell'ambiente gestito del Common Language
Runtime). In un certo senso, IL è l'unico linguaggio che il CLR riconosce.
Se si vuole visionare il codice IL di un'applicazione, basta usare l'IL Disassembler. Il
programma si chiama ildasm.exe e si trova in una directory come C: \ Program
Files \ Microsoft SDK \ Windows \ v7.0A \ bin. Eseguire Ildasm.exe, e quindi utilizzare
il comando File --> Apri, e selezionare una DLL o un EXE che è stato creato con.
NET. Uno strumento più potente per effettuare il controllo del codice IL è in
http://www.red-gate.com/products/reflector.
page 2 / 7
Solo quello che ti interessa | ELEMENTI DI BASE - I 7 pilastri di ASP.NET
Copyright admin [email protected]
http://www.belloma.it/elementi-di-base-i-7-pilastri-di-net/
Con un po' di logica e pazienza, è possibile decostruire il codice IL abbastanza
facilmente e capire cosa sta succedendo, ricostruendo il codice originalle. Il fatto
che l'IL sia così facile da smontare può porre problemi di controllo della privacy, ma
questi problemi di solito non sono di alcuna preoccupazione per gli sviluppatori
ASP.NET. Questo perché tutto il codice ASP.NET è memorizzato ed eseguito sul
server. Il client riceve solo il file di codice compilato, e quindi il client non ha alcuna
possibilità di decompilare. Se, però questo è fonte di preoccupazione, è possibile
utilizzare uno obfuscator che rendere più difficile capire il codice. Visual Studio
include una versione ridotta del uno obfuscator, chiamato Dotfuscator.
Esiste il porgetto Mono ( http://www.mono-project.com) che consente di creare
applicazioni ASP.NET per qualunque piattafarma (ricordiamo che IL è uno standard
ISO): Android, Linux, Apple, ecc.
Il CLR si aspetta che tutti gli oggetti aderiscano ad uno specifico insieme di regole..
Questo set di regole si chiama CLS (Common Language Specification). Il CLS
definisce molte leggi che devono seguire tutti i linguaggi. Ogni compilatore che
genera il codice IL, che deve essere eseguito dal CLR, deve rispettare tutte le regole
definite all'interno dei CLS. Un elenco di linguaggi compatibili si trovano su
http://dotnetpowered.com/languages.aspx.
I programmatori che hanno amato, nel suo periodo di massimo splendore COBOL,
possono ora utilizzare la propria base di conoscenze per creare web applicazioni!
4) ASP.NET è ospitato dal Common Language Runtime
L'aspetto più importante del motore di ASP.NET è che funziona all'interno
dell'ambiente runtime del CLR. L'intero .NET Framework (cioè , tutti i namespace, le
applicazioni e le classi) si riferisce al codice gestito. Alcuni dei vantaggi sono i
seguenti:
- Gestione automatica della memoria e Garbage Collection: Ogni volta che
l'applicazione istanzia un riferimento a un tipo oggetto, il CLR alloca spazio sul
page 3 / 7
Solo quello che ti interessa | ELEMENTI DI BASE - I 7 pilastri di ASP.NET
Copyright admin [email protected]
http://www.belloma.it/elementi-di-base-i-7-pilastri-di-net/
-
-
-
-
heap gestito per quell'oggetto. Non appena il riferimento a un oggetto esce
dallo scope delle applicazione, l'oggetto diventa disponibile per la garbage
collection e quindi per essere eliminato in modo automatico.
Tipo di sicurezza:. Quando si compila un'applicazione, NET aggiunge
informazioni alla nostro assembly che indica i dettagli come, le classi
disponibili, i loro membri, i loro tipi di dati e così via. Come risultato, il
compilatore può verificare la validità di ogni chiamata in fase di runtime.
Extensible Metadata: Le informazioni sulle classi e i membri sono solo alcuni
dei tipi di metadati che ASP.NET memorizza in un assembly compilato. I
metadati descrivono il codice e consentono di fornire informazioni aggiuntive
per il runtime o altri servizi. Ad esempio, potrebbe dire a Visual Studio come
visualizzare un controllo personalizzato in fase di progettazione.
Gestione strutturata degli errori: .NET offre la gestione delle eccezioni
strutturata, che consente di organizzare il codice di gestione degli errori in
modo logico e conciso. È possibile creare blocchi separati per trattare diversi
tipi di errori. È inoltre possibile nidificare i gestori di eccezioni strati più
profondi.
Multithreading: Il CLR fornisce un pool di thread che possono essere utilizzati
da diverse classi. Ad esempio, è possibile chiamare metodi, leggere i file, o
comunicare con i servizi web in modo asincrono, senza la necessità di creare
nuovi thread esplicitamente.
5) ASP.NET Is Object-Oriented
ASP.NET è veramente objectoriented. Non solo il codice ha il pieno accesso a tutti
gli oggetti del .NET Framework, ma è anche possibile sfruttare tutte le convenzioni
dell'OOP (programmazione orientata agli oggetti) . Ad esempio, è possibile creare
classi riutilizzabili, standardizzare codice con le interfacce, estendere classi esistenti
con l'ereditarietà, ecc.
Uno dei migliori esempi di pensiero object-oriented si trova nei controlli server.
Questi sono un emblema dell'incapsulamento. Gli sviluppatori possono manipolare
tali oggetti utilizzando il codice di programmazione per personalizzare il loro
aspetto, fornire i dati da visualizzare, e persino reagire eventi. Il markup HTML che
questi controlli generano durante il rendering è nascosto dietro le quinte: invece di
costringere lo sviluppatore a scrivere codice HTML raw manualmente, gli oggetti
verranno renderizzati e quindi trasformati in codice HTML, poco prima che il server
Web invii la pagina al client. In questo modo, i controlli server ASP.NET offrono un
page 4 / 7
Solo quello che ti interessa | ELEMENTI DI BASE - I 7 pilastri di ASP.NET
Copyright admin [email protected]
http://www.belloma.it/elementi-di-base-i-7-pilastri-di-net/
modo, per astrarre i dettagli di basso livello di programmazione HTML e HTTP.
Ecco un esempio come è possibile definire una casella di testo HTML standard in
una pagina ASP.NET web:
<input type="text" id="myText" runat="server" />
Con l'aggiunta del attributo runat = "server", questo pezzo di codice HTML statico
diventa completamente controllabile sul lato server attraverso codice C# (diventa
un oggetto HtmlInputText). Ad esempio, è possibile impostare il testo di questo
campo durante il primo caricamento della pagina, con il seguente codice C #:
void Page_Load (object sender, EventArgs e) { myText.Value = "Ciao Mondo!"; }
Tecnicamente, questo codice imposta la proprietà Value di un oggetto
HtmlInputText. Il risultato finale è che stringa viene visualizzata in una casella di
testo HTML, che viene creata durante il rendering prima dell'invio al client.
Ci sono gli HTML Control che praticamente corrispondono alla versione server dei
tipici contrtolli HTML, ma che possono essere gestiti sul lato server in modo OOP
(grazie alla proprietà runat="server"). Questi possono essere generati
dinamicamente sul lato server e le loro classi sono quelle che hanno Html come
primi caratteri del nome (HtmlAnchor, HtmlButton, ecc.)
Altri controlli più complessi sono i Web Control che invece sono renderizzati in più
controlli HTML standard e che quindi espongono funzionalità più complesse (e non
solo il mapping delle proprietà lato server/lato client), come Calendar, TreeView,
page 5 / 7
Solo quello che ti interessa | ELEMENTI DI BASE - I 7 pilastri di ASP.NET
Copyright admin [email protected]
http://www.belloma.it/elementi-di-base-i-7-pilastri-di-net/
ecc..
6) ASP.NET supporta tutti i browser
Normalmente quando si sviluppa un'applicazione Web, o si sceglie l'insieme minimo
di funzionalità valide per tutti i browser e si utilizzano solo quelle, o si creano
versioni diverse dell'applicazione per browser diversi.
ASP.NET risolve questo problema in un modo molto intelligente. Anche se è
possibile recuperare informazioni relative al browser client, ASP.NET in realtà
incoraggia gli sviluppatori a ignorare queste considerazioni e utilizzare la ricca suite
di controlli server web. Questi controlli server rendono il loro markup adattivo in
base alle capacità del client. In pratica il codice generato durante il rendering (che
utilizza JavaScript e DHTML) viene già generato in modo che si possa adattare al
Browser che ha fatto la richiesta.
7) ASP.NET è facile da distribuire (deploy) e da configurare
ASP.NET semplifica notevolmente il processo di deploy (assenza di registrazione di
componenti e facilità di configurazione). Sostanzialmente basta che ogni client
abbia il .NET Framework.
In pratica portare in produzione un'applicazione ASP.NET è relativamente semplice:
page 6 / 7
Solo quello che ti interessa | ELEMENTI DI BASE - I 7 pilastri di ASP.NET
Copyright admin [email protected]
http://www.belloma.it/elementi-di-base-i-7-pilastri-di-net/
è sufficiente copiare tutti i file in una directory virtuale su un server di produzione.
Distribuire i componenti utilizzati dall'applicazione è altrettanto facile. Tutto quello
che occorre fare è copiare i componenti assembly insieme ai file del sito web .
Poiché tutti le informazioni sui componenti sono memorizzate direttamente nei
metadati del file assembly, non c'è bisogno lanciare un programma di registrazione
o modificare il Registro di Windows. Questi componenti si collocano nella
sottodirectory Bin della directory dell'applicazione web, in questo modo il motore
ASP.NET li rileva automaticamente e li rende disponibili alla pagina web del codice.
La configurazione è un'altro aspetto importante della distribuzione delle
applicazioni, soprattutto se è necessario trasferire informazioni di sicurezza, come
gli account utente e i privilegi degli utenti. ASP.NET rende però questo processo di
distribuzione più semplice, riducendo al minimo la dipendenza da impostazioni di
IIS. Infatti la maggior parte delle impostazioni di ASP.NET sono memorizzate in un
file web.config dedicato che si trova nella stessa directory delle pagine web. Esso
contiene un insieme gerarchico di impostazioni memorizzate in forma facilmente
leggibile formato XML che è possibile modificare utilizzando nient'altro che un editor
di testo come Notepad. Quando si modifica un'impostazione, ASP.NET se ne accorge
e riavvia l'applicazione in una nuovo AppDomain (dominio di applicazione),
mantenendo il dominio applicazione esistente in vita abbastanza a lungo per
completare l'elaborazione qualsiasi richieste in sospeso.
page 7 / 7