HowTo – Guida ASP.NET (Parte 1)


Inizio con questo post una serie di interventi con cui cercherò di dare una sommaria introduzione al mondo di ASP.NET in C# (v4.0) dal punto di vista di un “apprendista in corso d’opera”. Al termine di questa serie di interventi pubblicherò il PDF conclusivo. A proposito, sto inaugurando la categoria “Programmazione” 😉

INTRODUZIONE

A scrivere di ASP.NET ci si sente un po’ come chi inizia a dettagliare le primissime voci di una enciclopedia. Il tema da trattare è così vasto e la mia esperienza talmente breve che sperare di produrre qualcosa di veramente utile a qualcuno è già di per sé una impresa. Ma io ci provo. Ho iniziato ad addentrarmi in questo nuovo mondo all’incirca un anno fa. Leggendo libri (in Inglese, soprattutto), documentandomi su Internet (in particolare MSDN) e attingendo all’immenso sapere dei miei colleghi più “Skillati”. Ma, in fin dei conti, si impara ad utilizzare qualcosa solamente con la pratica. Ecco quindi che vi lascio con una sorta di mini (ma molto mini) guida al mondo di ASP.NET in C#, realizzata al tempo della mia formazione teorica “mixando” conoscenze provenienti dalle fonti sopra citate. Se avete voglia di spendere qualche ora della vostra vita date una lettura a questo documento e iniziate a fare qualche esperimento sulla vostra copia Trial di Visual Studio 2010. Vi ricordo che questa è la primissima edizione e pertanto sarà piena di errori 😉 Se avete voglia, segnalatemeli in qualche modo. Ricordo inoltre che la guida è liberamente distribuibile a patto di non modificarla (se ci sono cose da cambiare fatemelo sapere e le cambieremo insieme!) e di citare sempre la fonte. Eventuali marchi registrati (o cose simili) citati in queste pagine appartengono ai relativi proprietari.
Detto questo..
Buona lettura 😉

PARTE 1 – CAPITOLO 1 – ASP.NET

Che cos’è ASP.NET? Il modo migliore di iniziare una guida è quello di partire dai concetti essenziali. ASP.NET è la soluzione offerta da Microsoft nell’ambito dello sviluppo di applicazioni Web, a partire dal classico sito “statico” (o “sito-vetrina”) fino alla più complessa soluzione. Ma cos’è una applicazione Web? Tutti noi abbiamo chiaro il concetto di “Programma”: riferendoci in particolare al sistema operativo Microsoft Windows un programma (o applicazione) è un prodotto, spesso identificato dall’estensione *.exe, che si trova sul nostro PC, che si installa sul nostro sistema e che si richiama ogni volta che ce n’è la necessità cliccando sul comodo collegamento presente sul desktop. Spesso l’applicazione ha bisogno di altre risorse per funzionare correttamente, come ad esempio un file di testo, un database o una libreria. Se l’installazione è andata a buon fine, il programma sarà in grado di comunicare correttamente con queste risorse per svolgere al meglio il compito per cui è stato progettato. Bene, nell’era di Internet i classici programmi stanno velocemente cedendo il passo alle applicazioni web, che altro non sono che speciali “programmi” in esecuzione su un computer remoto e accessibili da più utenti contemporaneamente e da qualsiasi luogo. Anche le risorse di cui una applicazione web ha bisogno vengono spostate su computer remoti, in modo da essere universalmente accessibili. Una volta compreso cosa si intende con applicazione web torniamo all’argomento di questa guida: ASP.NET. Cos’è ASP? E cosa vuol dire il suffisso .NET? ASP, almeno fino a qualche anno fa, stava per Active Server Page e si trattava della prima soluzione proposta da Microsoft per creare delle pagine dinamiche che ampliassero le funzionalità dell’HTML. Il suffisso .NET invece fa riferimento al Framework (che si chiama appunto .NET) presentato da Microsoft agli albori del nuovo millennio e che si comporta come una sorta di macchina virtuale capace di astrarsi dal sistema operativo e di compilare applicazioni scritte anche in linguaggi diversi. Per fare un paragone, Microsoft .NET è qualcosa di molto simile a JAVA. Ok, quindi ASP.NET è la nuova versione di ASP in cui è stato integrato il Framework.NET? Assolutamente no. ASP.NET è qualcosa di totalmente nuovo, il tentativo di rendere indolore il passaggio da “Programma” a “Web Application”. La possibilità di utilizzare (quasi) gli stessi paradigmi e perfino gli stessi linguaggi che normalmente accompagnano lo sviluppo di una Windows Application anche mentre si progetta una applicazione Web. Dopo questa lunga ma doverosa introduzione proviamo a spiegare davvero quali sono i punti di forza di questa nuova soluzione: ASP.NET combina i pilastri del Web (HTML e XML, ma anche CSS e Javascript) con il paradigma Object Oriented (C#, VB.NET e gli altri linguaggi del .NET Framework). E qui risulta fin da subito chiaro che tra ASP.NET e il classico ASP non c’è davvero molto in comune: il primo, come abbiamo appena visto, è un linguaggio completamente orientato agli oggetti mentre il secondo no. ASP.NET, così come i programmi “fratelli” scritti in C# o VB.NET ed eseguibili sui nostri PC è un linguaggio compilato e non scriptato ed interpretato ad ogni richiesta come ASP. Questo significa che l’operazione di compilazione avviene una sola volta (alla prima richiesta) e le pagine vengono ricompilate solo in seguito ad una modifica. Con il “vecchio” ASP invece, la pagina veniva ricaricata ad ogni esecuzione e, in maniera lineare, tutto il codice veniva interpretato dal Server e “mischiato” al normale markup HTML. A differenza delle pagine ASP, dove codice e HTML dovevano per forza di cose “coesistere”, in ASP.NET il livello di presentazione e quello di codice sono separati sia logicamente che fisicamente: per ogni pagina della Web Application vengono infatti creati un file *.aspx che contiene il markup della pagina e un file *.aspx.cs che contiene il codice scritto in C# che reagisce agli eventi che occorrono sulla relativa pagina (l’estensione si modifica in *.aspx.vb nel caso in cui il linguaggio utilizzato sia VB.NET). In questo caso, come nel seguito di questa guida, si farà riferimento solamente al linguaggio C#. In ogni caso è ancora possibile inserire porzioni di codice C# in una pagina aspx racchiudendole tra i tag. Prendiamoci solo un minuto per fare una brevissima digressione sul funzionamento del .NET Framework, indipendentemente dal fatto che si parti di Windows o di Web Applications: Il primo passo è quello di scrivere il codice in ciò che viene definito “Managed Application”. Come più volte ripetuto, questo codice sarà diverso in base al linguaggio scelto. Il codice viene poi convertito in Intermediate Language dal relativo compiler, e questa volta è uguale a prescindere dal linguaggio scelto in precedenza. A questo punto il CLR si occupa di compilare l’IL in modo che possa poi essere eseguito. Abbiamo visto cosa si intende per pagina ASP.NET. Ora non resta che capire da dove iniziare. Per sviluppare una applicazione Web lo strumento in assoluto più versatile è sicuramente Microsoft Visual Studio, disponibile in varie edizioni e derivati (alcuni, limitati, in versione gratuita e altri a pagamento). Il perché di questa affermazione risiede nell’intrinseco legame esistente tra il prodotto di sviluppo e il Framework, capace di offrire in modo intuitivo funzioni davvero utili come Intellisense, che permette di segnalare in tempo reale gli errori e offrire suggerimenti sul completamento di una dichiarazione. In Visual Studio ci sono due modalità in cui è possibile sviluppare una applicazione: Project-Based Developement e Project-Less Developement, a seconda che sia presente o meno un file di progetto identificato dall’estensione *.csproj. Durante lo sviluppo di una applicazione è possibile creare diversi tipi di risorse. Le più comuni sono i WebForm (sono le pagine vere e proprie, caratterizzate dall’estensione *.aspx), gli User Control (sono porzioni di pagina, caratterizzate dall’estensione *.ascx, utili per racchiudere funzioni che verranno richiamate in pagine diverse) e i Web Services (con estensioni *.asmx o i più recenti *.svc). Ognuna di queste risorse avrà un file di codice correlato e identificato dallo stesso nome del file con l’aggiunta dell’estensione *.cs. Ci sono alti due file particolari: il Global.asax (e il suo file di codice) che serve per definire eventi globali a livello di applicazione e il file Web.Config che altro non è che un file di configurazione per la applicazione. Questo file risiede nella stessa cartella della applicazione, ma è possibile crearne altri nelle varie sottocartelle per definire configurazioni particolari valide solo per la relativa sezione. Il funzionamento di questi file di configurazione verrà spiegato nel capitolo dedicato. È possibile aggiungere ad una pagina o all’intera applicazione componenti (tipicamente assembly in formato *.dll) sviluppati da terzi. Se vi è la necessità di utilizzare questi componenti in una singola pagina è possibile registrarli direttamente nella pagina *.aspx con la direttiva Register (spiega come), mentre se li si vuole estendere a tutta l’applicazione è necessario registrarli direttamente nel file Web.Config principale. A questo proposito è utile aprire una parentesi: aggiungendo una “referenza” ad un file esterno all’interno di un file *.cs con la semplice direttiva “using *assembly name*” sarà possibile accedervi senza riscrivere l’intero percorso, ma non sarà èpossibile utilizzare le sue classi se l’assembly non viene prima correttamente registrato come spiegato in precedenza. Visual Studio, con la sua modalità di Debug, offre un’ottima soluzione per testare “passo per passo” l’applicazione osservando cosa accade in risposta ad ogni evento e, grazie all’uso dei Watch, come cambiano i valori assegnati alle variabili durante l’esecuzione dell’applicazione. Alla prossima 😉 [Omnia / Luca Zaccaro]


Una risposta a “HowTo – Guida ASP.NET (Parte 1)”

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *