Privacy Policy Cookie Policy Terms and Conditions ASP.NET - Wikipedia

ASP.NET

Da Wikipedia, l'enciclopedia libera.

ASP.NET è un insieme di tecnologie di sviluppo di software per il web, commercializzate dalla Microsoft. Utilizzando queste tecnologie gli sviluppatori possono realizzare applicazioni WEB e servizi WEB (WEB Service).

Indice

[modifica] Principi su cui si basa ASP.NET

Sebbene il nome ASP.NET derivi da ASP (Active Server Pages) (la vecchia tecnologia per lo sviluppo web di Microsoft), esistono sostanziali differenze fra le due. Infatti ASP.NET si basa, come tutte le applicazioni della famiglia Microsoft .NET, sul CLR (Common Language Runtime).

Gli sviluppatori possono scrivere codice utilizzando uno qualsiasi dei linguaggi di alto livello supportati dal Framework .NET (libreria di classi) .NET, come, ad esempio, Visual Basic .Net (proprietario Microsoft), C# (pronunciato C sharp, linguaggio soggetto a una specifica di standardizzazione), J# (J sharp, derivato da Java), ma anche, cosa particolarmente interessante e innovativa per Microsoft, linguaggi open source, come Perl e Python. Le applicazioni ASP.NET sono significativamente più veloci e performanti rispetto a quelle realizzate utilizzando altre tecnologie di scripting, in quanto l'intero codice del sito web è pre-compilato in pochi file dll (spesso in un unico file) gestiti da un server Web.

ASP.NET si propone di semplificare la migrazione degli sviluppatori dalle applicazioni Windows alle applicazioni web mettendoli in grado di generare pagine composte da tanti controlli widget, del tutto simili a quelli usati dall'interfaccia utente di Windows.

Un controllo web, come ad esempio un pulsante o un etichetta (label), funzionano in modo molto simile a quello delle loro controparti Windows: il codice ad essi associato può assegnare loro determinate proprietà ed eseguire azioni in risposta ad eventi ad essi associati (ad esempio alla pressione di un pulsante). La differenza sta nel fatto che, mentre i controlli Windows disegnano sé stessi sullo schermo, i controlli web producono blocchi di codice HTML che si vanno ad inserire automaticamente nella pagina che deve essere inviata al browser dell'utente finale.

[modifica] Paradigma di programmazione di ASP.NET

ASP.NET è progettato in modo da incoraggiare lo sviluppatore ad usare in modo sistematico il paradigma dell' interfaccia grafica (GUI, per Graphical User Interface) abbinato alla cosiddetta programmazione guidata dagli eventi (event-driven), cioè allo stile di programmazione in cui i vari blocchi di codice vengono eseguiti in risposta a determinati eventi, od azioni, su controlli dotati rappresentazione grafica sul desktop.

Lo stile convenzionale dei linguaggi per lo sviluppo di applicazioni web si era invece finora basato sulla tecnica dello scripting. Le classi della libreria Framework .NET si propongono, inoltre, di combinarsi ed interagire con le tecnologie esistenti, come ad esempio Javascript, in modo da attribuire un carattere di persistenza ad oggetti software, anche nell'ambito di un ambiente come il web, che è intrinsecamente privo di stato (stateless server).

La libreria di classi Framework .NET, analogamente a quanto avviene per la piattaforma di sviluppo Java, implementa una macchina virtuale (chiamata Framework .NET) che si avvale di un compilatore just in time. Ciò significa che il codice intermedio prodotto, chiamato IL (Intermediate Language) ed identico per tutti i linguaggi di alto livello impiegati, viene compilato in linguaggio macchina al momento della prima esecuzione. Utilizzando diversi compilatori just in time è possibile riutilizzare lo stesso IL intermedio su processori diversi. Questa tecnica viene definita Jitting.

Come tutti gli altri linguaggi della suite .NET, anche ASP.NET utilizza il meccanismo di disallocazione automatica della memoria denominato garbage collection.

[modifica] Punti di forza di ASP.NET rispetto ad ASP

La vasta disponibilità di controlli, classi e strumenti di sviluppo consente di ridurre sensibilmente i tempi di sviluppo dei moduli software, e mette lo sviluppatore in condizione di riutilizzare facilmente uno stesso codice in applicazioni differenti. ASP.NET ha inoltre semplificato significativamente le funzionalità di accesso ai dati rispetto ad ASP. Ad esempio, è molto più semplice ed immediato generare una pagina contenente una lista di dati prelevati da un database.

Altri vantaggi sono:

  • Il codice pre-compilato consente alle applicazioni di girare più velocemente, con un maggior numero di errori di programmazione rilevati ed eliminati già in fase di sviluppo, nonché permette di distribuire un'applicazione web senza dover necessariamente allegarne il sorgente.
  • I controlli definiti dall'utente consentono di implementare facilmente controlli molto comuni, come ad esempio, i menù.
  • I componenti addizionali COM e .NET non devono essere registrati sul server operando da console, ma vengono inizializzati a run-time dall'applicazione. In questo modo i clienti di host provider non hanno bisogno di richiedere la registrazione di alcuna libreria lato server.
  • ASP.NET può impersonare qualsiasi utente del server Windows dove è in esecuzione, ereditandone tutti i privilegi sul file system.
  • L'affinità con lo stile grafico e di programmazione delle applicazioni Windows rende il passaggio da una all'altra più intuitivo per i programmatori.
  • La disponibilità di un set di controlli e librerie di classi molto ricco consente il rapido sviluppo di applicazioni.
  • La possibilità di eseguire una copia cache di intere pagine, di parte delle pagine o dei dati dell'applicazione migliora notevolmente le performance complessive.
  • Se un'applicazione ASP.NET non riesce ad allocare la memoria di cui necessita (memory leakage), allora il modulo runtime scarica dalla memoria l'intero ambiente isolato in cui gira l'applicazione critica, e lo ricarica in un un'altra area appositamente creata. Per eseguire queste operazioni di caricamento/ scaricamento, (ed altre che riguardano l'applicazione nel suo complesso), il Framework .NET mette a disposizione la classe AppDomain.
  • Lo stato della sessione ASP.NET può essere salvato in un database server SQL o in un processo separato residente sulla stessa macchina del Server web, oppure su quello di un'altra macchina. I dati e le proprietà della sessione non sono persi quando l'IIS (Internet Information Services) viene resettato, oppure quando il processo attivo di ASP.NET è riciclato.
  • Con l'utilizzo di Visual Studio .NET e IIS Server è possibile eseguire il debug lato server, con gli stessi strumenti passo-passo utilizzati nella maggior parte degli ambienti di sviluppo compilativi.
  • La capacità della piattaforma .NET CLR di supportare molti linguaggi, permette ai programmatori di scrivere codice per pagine Web in VB.NET, C#, J#, ecc.

[modifica] Esempio di codice

Segue il codice sorgente che genera il classico messaggio minimo:

 <%@ Page Language="C#" %>
 
 <HTML>
 <HEAD>
 <TITLE>
 Esempio di pagina ASPX
 </TITLE>
 </HEAD>
 <BODY>
 <CENTER>
 <%

 int mciclo;
 String mstringa = "";
 for (mciclo = 1; mciclo <= 10; mciclo++)
 {
    mstringa = mstringa + String.Format(
            "FONT SIZE = {0}> Ciao a tutti in ASP.NET </FONT><BR>, mciclo;
 }
 Message.InnerHtml = mstringa;
 %>
 <SPAN id = "Message" runat=server/>
 </CENTER>
 </BODY>
 </HTML>
 

I nomi dei file ASP.NET hanno estensione .aspx. La direttiva Page consente di specificare il linguaggio utilizzato (nell'esempio C#), e numerosi altri attributi che consentono di descrivere le proprietà e l'aspetto della pagina. Ogni pagina aspx può contenere una sola direttiva Page. Notare, che le righe di codice di esempio che seguono la direttiva Page sono normale codice HTML.

Vengono dichiarate 2 variabili: l'intero mciclo e la stringa denominata mstringa, e viene definito un ciclo for per visualizzare il messaggio con caratteri di dimensione crescente da 1 e 10. La variabile mstringa memorizza il codice HTML da visualizzare. Al termine del ciclo viene settata la proprietà InnerHtml dell'oggetto Message.

Il tag <SPAN> è dotato dell'attributo runat che indica che l'elemento deve essere eseguito dal lato Server, come avviene tipicamente nelle applicazioni sviluppate in ASP.NET

[modifica] Strumenti di sviluppo

Sono disponibili svariati pacchetti software per sviluppare applicazioni ASP.NET:

  • Visual Studio .NET
  • ASP.NET Web Matrix
  • Macromedia Dreamweaver MX 2004
  • Visual Web Developer 2005 Express Edition (per ASP.NET 2.0)

[modifica] Versione attuale

Attualmente Microsoft distribuisce la versione 2.0. Per realizzare pagine ASP.NET si possono usare vari strumenti. L'unico vero requisito è avere il framework installato su una macchina con un web server in grado d'interfacciarsi con esso. Microsoft consiglia di utilizzare Visual Studio Web Express come strumento di sviluppo, gratuito per tutto il 2006, e poi forse a pagamento ma a prezzo contenuto dal 2007 in avanti. Per sviluppi professionali invece raccomanda l'utilizzo della piattaforma Visual Studio.

[modifica] Voci correlate

[modifica] Collegamenti esterni

[modifica] Bibliografia

THIS WEB:

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - be - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - closed_zh_tw - co - cr - cs - csb - cu - cv - cy - da - de - diq - dv - dz - ee - el - eml - en - eo - es - et - eu - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gd - gl - glk - gn - got - gu - gv - ha - haw - he - hi - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mg - mh - mi - mk - ml - mn - mo - mr - ms - mt - mus - my - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - rm - rmy - rn - ro - roa_rup - roa_tara - ru - ru_sib - rw - sa - sc - scn - sco - sd - se - searchcom - sg - sh - si - simple - sk - sl - sm - sn - so - sq - sr - ss - st - su - sv - sw - ta - te - test - tet - tg - th - ti - tk - tl - tlh - tn - to - tokipona - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu

Static Wikipedia 2008 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Static Wikipedia 2007:

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - be - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - closed_zh_tw - co - cr - cs - csb - cu - cv - cy - da - de - diq - dv - dz - ee - el - eml - en - eo - es - et - eu - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gd - gl - glk - gn - got - gu - gv - ha - haw - he - hi - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mg - mh - mi - mk - ml - mn - mo - mr - ms - mt - mus - my - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - rm - rmy - rn - ro - roa_rup - roa_tara - ru - ru_sib - rw - sa - sc - scn - sco - sd - se - searchcom - sg - sh - si - simple - sk - sl - sm - sn - so - sq - sr - ss - st - su - sv - sw - ta - te - test - tet - tg - th - ti - tk - tl - tlh - tn - to - tokipona - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu

Static Wikipedia 2006:

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - be - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - closed_zh_tw - co - cr - cs - csb - cu - cv - cy - da - de - diq - dv - dz - ee - el - eml - en - eo - es - et - eu - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gd - gl - glk - gn - got - gu - gv - ha - haw - he - hi - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mg - mh - mi - mk - ml - mn - mo - mr - ms - mt - mus - my - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - rm - rmy - rn - ro - roa_rup - roa_tara - ru - ru_sib - rw - sa - sc - scn - sco - sd - se - searchcom - sg - sh - si - simple - sk - sl - sm - sn - so - sq - sr - ss - st - su - sv - sw - ta - te - test - tet - tg - th - ti - tk - tl - tlh - tn - to - tokipona - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu