<?xml version="1.0" encoding="UTF-8"?>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:wx="http://ilps.science.uva.nl/WikiXML/wx" xml:lang="it" lang="it">
<head>
<title>ASP.NET</title>
<meta name="wx_namespace" content="0"/>
<meta name="wx_pagename" content="ASP.NET"/>
<meta name="wx_page_id" content="108289"/>
</head>
<body>
<div id="wx_article">
<wx:section level="1" title="ASP.NET" id="wxsec1"><h1 class="pagetitle" id="wx1">ASP.NET</h1>

<p id="wx2"><b id="wx3">ASP.NET</b> è un insieme di <a href="/wit/Tecnologia_di_programmazione" title="Tecnologia di programmazione" wx:linktype="known" wx:pagename="Tecnologia_di_programmazione" wx:page_id="1187141" id="wx4">tecnologie di sviluppo</a> di <a href="/wit/Software" title="Software" wx:linktype="known" wx:pagename="Software" wx:page_id="3889" id="wx5">software</a> per il <a href="/wit/Web" title="Web" wx:linktype="known" wx:pagename="Web" wx:page_id="4567" id="wx6">web</a>, commercializzate dalla <a href="/wit/Microsoft" title="Microsoft" wx:linktype="known" wx:pagename="Microsoft" wx:page_id="1596894" id="wx7">Microsoft</a>. Utilizzando queste tecnologie gli sviluppatori possono realizzare <a href="/wit/Applicazione_Web" title="Applicazione Web" wx:linktype="known" wx:pagename="Applicazione_Web" wx:page_id="24114" id="wx8">applicazioni Web</a> e <a href="/wit/Web_Service" title="Web Service" wx:linktype="known" wx:pagename="Web_Service" wx:page_id="714420" id="wx9">servizi Web</a> (<i id="wx10">Web Service</i>).</p>

<div id="wx_toc"/>

<a id="Principi_su_cui_si_basa_ASP.NET" name="Principi_su_cui_si_basa_ASP.NET"/>
<wx:section level="2" title="Principi su cui si basa ASP.NET" id="wxsec2"><h2 id="wx11">Principi su cui si basa ASP.NET</h2>

<p id="wx12">Sebbene il nome ASP.NET derivi da <a href="/wit/Active_Server_Pages" title="Active Server Pages" wx:linktype="known" wx:pagename="Active_Server_Pages" wx:page_id="34843" id="wx13">ASP</a> (<i id="wx14">Active Server Pages</i>) (la vecchia tecnologia per lo sviluppo web di <a href="/wit/Microsoft" title="Microsoft" wx:linktype="known" wx:pagename="Microsoft" wx:page_id="1596894" id="wx15">Microsoft</a>), esistono sostanziali differenze fra le due. Infatti ASP.NET si basa, come tutte le applicazioni della famiglia <a href="/wit/Microsoft_.NET" title="Microsoft .NET" wx:linktype="known" wx:pagename="Microsoft_.NET" wx:page_id="57949" id="wx16">Microsoft .NET</a>, sul <a href="/wit/Common_Language_Runtime" title="Common Language Runtime" wx:linktype="known" wx:pagename="Common_Language_Runtime" wx:page_id="225464" id="wx17">CLR</a> (<i id="wx18">Common Language Runtime</i>).</p>

<p id="wx19">Gli sviluppatori possono scrivere codice utilizzando uno qualsiasi dei linguaggi di alto livello supportati dal <a href="/wit/Framework_.NET" title="Framework .NET" wx:linktype="known" wx:pagename="Framework_.NET" wx:page_id="113328" id="wx20">Framework .NET</a> (libreria di classi) <a href="/wit/Microsoft_.NET" title="Microsoft .NET" wx:linktype="known" wx:pagename="Microsoft_.NET" wx:page_id="57949" id="wx21">.NET</a>, come, ad esempio, <a href="/wit/Visual_Basic_.Net" title="Visual Basic .Net" wx:linktype="known" wx:pagename="Visual_Basic_.Net" wx:page_id="152524" id="wx22">Visual Basic .Net</a> (proprietario Microsoft), <a href="/wit/C_sharp" title="C sharp" wx:linktype="known" wx:pagename="C_sharp" wx:page_id="26842" id="wx23">C#</a> (pronunciato <i id="wx24">C sharp</i>, linguaggio soggetto a una specifica di standardizzazione), <a href="/wit/J_sharp" title="J sharp" wx:linktype="known" wx:pagename="J_sharp" wx:page_id="232095" id="wx25">J#</a> (<i id="wx26">J sharp</i>, derivato da Java), ma anche, cosa particolarmente interessante e innovativa per Microsoft, linguaggi <a href="/wit/Open_source" title="Open source" wx:linktype="known" wx:pagename="Open_source" wx:page_id="3114" id="wx27">open source</a>, come <a href="/wit/Perl" title="Perl" wx:linktype="known" wx:pagename="Perl" wx:page_id="3227" id="wx28">Perl</a> e <a href="/wit/Python" title="Python" wx:linktype="known" wx:pagename="Python" wx:page_id="3366" id="wx29">Python</a>. Le applicazioni ASP.NET sono significativamente più veloci e performanti rispetto a quelle realizzate utilizzando altre tecnologie di <a href="/wit/Scripting" title="Scripting" wx:linktype="known" wx:pagename="Scripting" wx:page_id="4150" id="wx30">scripting</a>, in quanto l'intero codice del sito web è pre-compilato in pochi file <a href="/wit/Dynamic-link_library" title="Dynamic-link library" wx:linktype="known" wx:pagename="Dynamic-link_library" wx:page_id="99422" id="wx31">dll</a> (spesso in un unico file) gestiti da un <a href="/wit/Server_Web" title="Server Web" wx:linktype="known" wx:pagename="Server_Web" wx:page_id="97873" id="wx32">server Web</a>.</p>

<p id="wx33">ASP.NET si propone di semplificare la migrazione degli sviluppatori dalle applicazioni <a href="/wit/Windows" title="Windows" wx:linktype="known" wx:pagename="Windows" wx:page_id="734976" id="wx34">Windows</a> alle applicazioni web mettendoli in grado di generare pagine composte da tanti controlli <a href="/wit/Widget" title="Widget" wx:linktype="known" wx:pagename="Widget" wx:page_id="554763" id="wx35">widget</a>, del tutto simili a quelli usati dall'<a href="/wit/Interfaccia_utente" title="Interfaccia utente" wx:linktype="known" wx:pagename="Interfaccia_utente" wx:page_id="57545" id="wx36">interfaccia utente</a> di Windows.</p>

<p id="wx37">Un controllo web, come ad esempio un <i id="wx38">pulsante</i> o un <i id="wx39">etichetta</i> (label), funzionano in modo molto simile a quello delle loro controparti Windows: il codice ad essi associato può assegnare loro determinate <i id="wx40">proprietà</i> ed eseguire azioni in risposta ad <a href="/wit/Eventi" class="new" title="Eventi" wx:linktype="unknown" wx:pagename="Eventi" id="wx41">eventi</a> 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 <a href="/wit/HTML" title="HTML" wx:linktype="known" wx:pagename="HTML" wx:page_id="2226" id="wx42">HTML</a> che si vanno ad inserire automaticamente nella pagina che deve essere inviata al <a href="/wit/Browser" title="Browser" wx:linktype="known" wx:pagename="Browser" wx:page_id="638" id="wx43">browser</a> dell'utente finale.</p>

<a id="Paradigma_di_programmazione_di_ASP.NET" name="Paradigma_di_programmazione_di_ASP.NET"/>
</wx:section><wx:section level="2" title="Paradigma di programmazione di ASP.NET" id="wxsec3"><h2 id="wx44">Paradigma di programmazione di ASP.NET</h2>

<p id="wx45">ASP.NET è progettato in modo da incoraggiare lo sviluppatore ad usare in modo sistematico il <a href="/wit/Paradigma_di_programmazione" title="Paradigma di programmazione" wx:linktype="known" wx:pagename="Paradigma_di_programmazione" wx:page_id="97167" id="wx46">paradigma</a> dell' <a href="/wit/Interfaccia_grafica" title="Interfaccia grafica" wx:linktype="known" wx:pagename="Interfaccia_grafica" wx:page_id="28028" id="wx47">interfaccia grafica</a> (<i id="wx48">GUI, per Graphical User Interface</i>) abbinato alla cosiddetta <a href="/wit/Programmazione_guidata_dagli_eventi" class="new" title="Programmazione guidata dagli eventi" wx:linktype="unknown" wx:pagename="Programmazione_guidata_dagli_eventi" id="wx49">programmazione guidata dagli eventi</a> (<i id="wx50">event-driven</i>), cioè allo stile di programmazione in cui i vari blocchi di codice vengono eseguiti in risposta a determinati <i id="wx51">eventi</i>, od azioni, su controlli dotati di rappresentazione grafica sul <a href="/wit/Desktop" title="Desktop" wx:linktype="known" wx:pagename="Desktop" wx:page_id="82892" id="wx52">desktop</a>.</p>

<p id="wx53">Lo stile convenzionale dei linguaggi per lo sviluppo di applicazioni web si era invece finora basato sulla tecnica dello <a href="/wit/Scripting" title="Scripting" wx:linktype="known" wx:pagename="Scripting" wx:page_id="4150" id="wx54">scripting</a>. Le classi della libreria Framework. NET si propongono, inoltre, di combinarsi ed interagire con le tecnologie esistenti, come ad esempio <a href="/wit/Javascript" title="Javascript" wx:linktype="known" wx:pagename="Javascript" wx:page_id="40288" id="wx55">Javascript</a>, in modo da attribuire un carattere di <i id="wx56">persistenza</i> ad oggetti software, anche nell'ambito di un ambiente come il web, che è intrinsecamente privo di stato (<i id="wx57">stateless server</i>).</p>

<p id="wx58">La libreria di classi Framework. NET, implementa la struttura del CLR (Common Language Runtime), la cui base è formata da un compilatore <a href="/wit/Just_in_time_%28programmazione%29" class="new" title="Just in time (programmazione)" wx:linktype="unknown" wx:pagename="Just_in_time_(programmazione)" id="wx59"><i id="wx60">just in time</i></a>. Ciò significa che il codice intermedio prodotto, chiamato IL (Intermediate Language) ed identico per tutti i linguaggi di alto livello impiegati, viene compilato in <a href="/wit/Linguaggio_macchina" title="Linguaggio macchina" wx:linktype="known" wx:pagename="Linguaggio_macchina" wx:page_id="92714" id="wx61">linguaggio macchina</a> al momento della prima esecuzione. Utilizzando diversi compilatori <i id="wx62">just in time</i> è possibile riutilizzare lo stesso IL intermedio su <a href="/wit/Microprocessore" title="Microprocessore" wx:linktype="known" wx:pagename="Microprocessore" wx:page_id="23197" id="wx63">processori</a> diversi. Questa tecnica viene definita <i id="wx64">Jitting</i>. Questo tipo di compilazione è ben diverso da linguaggi come ad esempio <a href="/wit/Java_%28linguaggio%29" title="Java (linguaggio)" wx:linktype="known" wx:pagename="Java_(linguaggio)" wx:page_id="26747" id="wx65">Java</a>, nei quali invece tutto il codice gira su una vera e propria <a href="/wit/Macchina_virtuale" title="Macchina virtuale" wx:linktype="known" wx:pagename="Macchina_virtuale" wx:page_id="26702" id="wx66">macchina virtuale</a>, mentre in. Net al momento dell' esecuzione il programma è effettivamente in linguaggio macchina come tutti gli altri linguaggi.</p>

<p id="wx67">Come tutti gli altri linguaggi della suite. NET, anche ASP.NET utilizza il meccanismo di disallocazione automatica della memoria denominato <a href="/wit/Garbage_collection" title="Garbage collection" wx:linktype="known" wx:pagename="Garbage_collection" wx:page_id="115853" id="wx68">garbage collection</a>.</p>

<a id="Punti_di_forza_di_ASP.NET_rispetto_ad_ASP" name="Punti_di_forza_di_ASP.NET_rispetto_ad_ASP"/>
</wx:section><wx:section level="2" title="Punti di forza di ASP.NET rispetto ad ASP" id="wxsec4"><h2 id="wx69">Punti di forza di ASP.NET rispetto ad ASP</h2>

<p id="wx70">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 <a href="/wit/Database" title="Database" wx:linktype="known" wx:pagename="Database" wx:page_id="1589" id="wx71">database</a>.</p>

<p id="wx72">Altri vantaggi sono:</p>

<ul id="wx73">
<li id="wx74">
<p id="wx75">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.</p>
</li>

<li id="wx76">
<p id="wx77">I controlli definiti dall'utente consentono di implementare facilmente controlli molto comuni, come ad esempio, i <a href="/wit/Men%C3%B9" title="Menù" wx:linktype="known" wx:pagename="Menù" wx:page_id="1192627" id="wx78">menù</a>.</p>
</li>

<li id="wx79">
<p id="wx80">I componenti addizionali COM e. NET non devono essere registrati sul server operando da console, ma vengono inizializzati a <a href="/wit/Run-time" title="Run-time" wx:linktype="known" wx:pagename="Run-time" wx:page_id="26836" id="wx81">run-time</a> dall'applicazione. In questo modo i clienti di host <a href="/wit/Provider" title="Provider" wx:linktype="known" wx:pagename="Provider" wx:page_id="358077" id="wx82">provider</a> non hanno bisogno di richiedere la registrazione di alcuna libreria lato server.</p>
</li>

<li id="wx83">
<p id="wx84">ASP.NET può <i id="wx85">impersonare</i> qualsiasi <a href="/wit/Utente" title="Utente" wx:linktype="known" wx:pagename="Utente" wx:page_id="1066567" id="wx86">utente</a> del server Windows dove è in esecuzione, <a href="/wit/Ereditariet%C3%A0" title="Ereditarietà" wx:linktype="known" wx:pagename="Ereditarietà" wx:page_id="277698" id="wx87">ereditandone</a> tutti i privilegi sul <a href="/wit/File_system" title="File system" wx:linktype="known" wx:pagename="File_system" wx:page_id="24325" id="wx88">file system</a>.</p>
</li>

<li id="wx89">
<p id="wx90">L'affinità con lo stile grafico e di programmazione delle applicazioni Windows rende il passaggio da una all'altra più intuitivo per i programmatori.</p>
</li>

<li id="wx91">
<p id="wx92">La disponibilità di un set di controlli e librerie di classi molto ricco consente il rapido sviluppo di applicazioni.</p>
</li>

<li id="wx93">
<p id="wx94">La possibilità di eseguire una copia <a href="/wit/Cache" title="Cache" wx:linktype="known" wx:pagename="Cache" wx:page_id="45007" id="wx95">cache</a> di intere pagine, di parte delle pagine o dei dati dell'applicazione migliora notevolmente le performance complessive.</p>
</li>

<li id="wx96">
<p id="wx97">Se un'applicazione ASP.NET non riesce ad allocare la memoria di cui necessita (<i id="wx98">memory leakage</i>), 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 <i id="wx99">AppDomain</i>.</p>
</li>

<li id="wx100">
<p id="wx101">Lo stato della <i id="wx102">sessione</i> ASP.NET può essere salvato in un database server <a href="/wit/SQL" title="SQL" wx:linktype="known" wx:pagename="SQL" wx:page_id="3882" id="wx103">SQL</a> 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'<a href="/wit/Internet_Information_Services" title="Internet Information Services" wx:linktype="known" wx:pagename="Internet_Information_Services" wx:page_id="26284" id="wx104">Internet Information Services</a> (IIS) viene resettato, oppure quando il processo attivo di ASP.NET è riciclato.</p>
</li>

<li id="wx105">
<p id="wx106">Con l'utilizzo di <a href="/wit/Visual_Studio_.NET" title="Visual Studio .NET" wx:linktype="known" wx:pagename="Visual_Studio_.NET" wx:page_id="123560" id="wx107">Visual Studio .NET</a> e IIS <a href="/wit/Server" title="Server" wx:linktype="known" wx:pagename="Server" wx:page_id="4006" id="wx108">Server</a> è possibile eseguire il debug lato server, con gli stessi strumenti passo-passo utilizzati nella maggior parte degli ambienti di sviluppo compilativi.</p>
</li>

<li id="wx109">
<p id="wx110">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.</p>
</li>
</ul>

<a id="Critiche_ad_ASP.NET" name="Critiche_ad_ASP.NET"/>
</wx:section><wx:section level="2" title="Critiche ad ASP.NET" id="wxsec5"><h2 id="wx111">Critiche ad ASP.NET</h2>

<p id="wx112">ASP e ASP.NET possono girare insieme nella stessa applicazione WEB. Questo approccio consente agli sviluppatori di migrare da un ambiente all'altro gradualmente invece che tutto in una volta. Con <a href="/wit/Internet_Information_Services" title="Internet Information Services" wx:linktype="known" wx:pagename="Internet_Information_Services" wx:page_id="26284" id="wx113">IIS</a> 6.0 e versioni precedenti, le pagine scritte usando versioni precedenti del framework ASP non possono condividere la stessa sessione senza l'uso di librerie di terze parti. Questa limitazione non esiste per applicazioni ASP.NET e ASP che girano insieme sotto <a href="/wit/Internet_Information_Services" title="Internet Information Services" wx:linktype="known" wx:pagename="Internet_Information_Services" wx:page_id="26284" id="wx114">IIS</a> 7. In alcuni casi durante il runtime ASP.NET ricicla il processo attivo, provocando l'occupazione di più del 60% della memoria disponibile. Si può configurarlo in modo che il riciclo avvenga solo dopo un certo numero di richieste, dopo un certo tempo, ecc. Tuttavia così facendo l'utilizzatore può perdere lo stato della sessione corrente. Se l'applicazione usa lo stato della sessione per caricare le informazioni di autenticazione (cattiva pratica poiché l'autenticazione basata sui cookie e membership è un'opzione disponibile già integrata nel framework) e se l'applicazione è configurata per usare sessioni in-process, l'utente può essere disconnesso se il processo viene riciclato.</p>

<a id="Esempio_di_codice" name="Esempio_di_codice"/>
</wx:section><wx:section level="2" title="Esempio di codice" id="wxsec6"><h2 id="wx115">Esempio di codice</h2>

<p id="wx116">Segue il codice sorgente che genera il classico messaggio minimo:</p>

<pre id="wx117">
 &lt;%@ Page Language="C#" %&gt;
 
 &lt;HTML&gt;
 &lt;HEAD&gt;
 &lt;TITLE&gt;
 Esempio di pagina ASPX
 &lt;/TITLE&gt;
 &lt;/HEAD&gt;
 &lt;BODY&gt;
 &lt;CENTER&gt;
 &lt;%

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

<p id="wx118">I nomi dei file ASP.NET hanno estensione <i id="wx119">.aspx</i>. La direttiva <i id="wx120">Page</i> 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 <i id="wx121">Page</i>. Notare, che le righe di codice di esempio che seguono la direttiva <i id="wx122">Page</i> sono normale codice HTML.</p>

<p id="wx123">Vengono dichiarate 2 variabili: l'intero <i id="wx124">mciclo</i> e la stringa denominata <i id="wx125">mstringa</i>, e viene definito un ciclo <i id="wx126">for</i> per visualizzare il messaggio con caratteri di dimensione crescente da 1 e 10. La variabile <i id="wx127">mstringa</i> memorizza il codice HTML da visualizzare. Al termine del ciclo viene settata la proprietà <i id="wx128">InnerHtml</i> dell'oggetto <i id="wx129">Message</i>.</p>

<p id="wx130">Il tag &lt;SPAN&gt; è dotato dell'attributo <i id="wx131">runat</i> che indica che l'elemento deve essere eseguito dal <i id="wx132">lato Server</i>, come avviene tipicamente nelle applicazioni sviluppate in ASP.NET</p>

<a id="Strumenti_di_sviluppo" name="Strumenti_di_sviluppo"/>
</wx:section><wx:section level="2" title="Strumenti di sviluppo" id="wxsec7"><h2 id="wx133">Strumenti di sviluppo</h2>

<p id="wx134">Sono disponibili svariati pacchetti software per sviluppare applicazioni ASP.NET:</p>

<ul id="wx135">
<li id="wx136"><a href="/wit/Visual_Studio_.NET" title="Visual Studio .NET" wx:linktype="known" wx:pagename="Visual_Studio_.NET" wx:page_id="123560" id="wx137">Visual Studio .NET</a></li>

<li id="wx138"><a href="/wit/ASP.NET_Web_Matrix" title="ASP.NET Web Matrix" wx:linktype="known" wx:pagename="ASP.NET_Web_Matrix" wx:page_id="1515131" id="wx139">ASP.NET Web Matrix</a></li>

<li id="wx140"><a href="/wit/Macromedia_Dreamweaver_MX_2004" class="new" title="Macromedia Dreamweaver MX 2004" wx:linktype="unknown" wx:pagename="Macromedia_Dreamweaver_MX_2004" id="wx141">Macromedia Dreamweaver MX 2004</a></li>

<li id="wx142"><a href="/wit/Macromedia_Dreamweaver_8" class="new" title="Macromedia Dreamweaver 8" wx:linktype="unknown" wx:pagename="Macromedia_Dreamweaver_8" id="wx143">Macromedia Dreamweaver 8</a></li>

<li id="wx144"><a href="/wit/Visual_Web_Developer_2005_Express_Edition" title="Visual Web Developer 2005 Express Edition" wx:linktype="known" wx:pagename="Visual_Web_Developer_2005_Express_Edition" wx:page_id="1516712" id="wx145">Visual Web Developer 2005 Express Edition</a>
<p id="wx146">(per ASP.NET 2.0)</p>
</li>

<li id="wx147"><a href="/wit/Visual_Web_Developer_2008_Express_Edition" class="new" title="Visual Web Developer 2008 Express Edition" wx:linktype="unknown" wx:pagename="Visual_Web_Developer_2008_Express_Edition" id="wx148">Visual Web Developer 2008 Express Edition</a>
<p id="wx149">(per ASP.NET 3.5)</p>
</li>

<li id="wx150"><a href="/wit/Visual_Studio_2005" title="Visual Studio 2005" wx:linktype="known" wx:pagename="Visual_Studio_2005" wx:page_id="1516716" id="wx151">Visual Studio 2005</a></li>

<li id="wx152"><a href="/wit/Visual_Studio_2008" class="new" title="Visual Studio 2008" wx:linktype="unknown" wx:pagename="Visual_Studio_2008" id="wx153">Visual Studio 2008</a></li>
</ul>

<a id="ASP.NET_3.5" name="ASP.NET_3.5"/>
</wx:section><wx:section level="2" title="ASP.NET 3.5" id="wxsec8"><h2 id="wx154">ASP.NET 3.5</h2>

<p id="wx155">Per prima cosa viene da chiedersi: "che fine ha fatto ASP.NET 3.0?". Semplicemente non è mai esistito. Microsoft ha infatti usato il nome ".NET Framework 3.0" per rilasciare un insieme di nuove tecnologie: WPF (<a href="/wit/Windows_Presentation_Foundation" title="Windows Presentation Foundation" wx:linktype="known" wx:pagename="Windows_Presentation_Foundation" wx:page_id="122926" id="wx156">Windows Presentation Foundation</a>), WCF (<a href="/wit/Windows_Communication_Foundation" title="Windows Communication Foundation" wx:linktype="known" wx:pagename="Windows_Communication_Foundation" wx:page_id="122913" id="wx157">Windows Communication Foundation</a>) e WF (<a href="/wit/Windows_Workflow_Foundation" class="new" title="Windows Workflow Foundation" wx:linktype="unknown" wx:pagename="Windows_Workflow_Foundation" id="wx158">Windows Workflow Foundation</a>). Tuttavia. NET Framework 3.0 non include una nuova versione della CLR o di ASP.NET. Rispetto a alla versione 2.0, la versione 3,5 di ASP.NET può essere considerata una graduale evoluzione; in particolare le nuove funzionalità si concentrano in tre aree: <a href="/wit/LINQ" title="LINQ" wx:linktype="known" wx:pagename="LINQ" wx:page_id="1559258" id="wx159">LINQ</a>, <a href="/wit/AJAX" title="AJAX" wx:linktype="known" wx:pagename="AJAX" wx:page_id="118547" id="wx160">Ajax</a> e <a href="/wit/Silverlight" title="Silverlight" wx:linktype="known" wx:pagename="Silverlight" wx:page_id="1387592" id="wx161">Silverlight</a>.</p>

<a id="Voci_correlate" name="Voci_correlate"/>
</wx:section><wx:section level="2" title="Voci correlate" id="wxsec9"><h2 id="wx162">Voci correlate</h2>

<ul id="wx163">
<li id="wx164"><a href="/wit/Microsoft_.NET" title="Microsoft .NET" wx:linktype="known" wx:pagename="Microsoft_.NET" wx:page_id="57949" id="wx165">Microsoft .NET</a></li>

<li id="wx166"><a href="/wit/Visual_Basic_.Net" title="Visual Basic .Net" wx:linktype="known" wx:pagename="Visual_Basic_.Net" wx:page_id="152524" id="wx167">Visual Basic .Net</a></li>

<li id="wx168"><a href="/wit/C_sharp" title="C sharp" wx:linktype="known" wx:pagename="C_sharp" wx:page_id="26842" id="wx169">C sharp</a></li>

<li id="wx170"><a href="/wit/Visual_Studio.NET" title="Visual Studio.NET" wx:linktype="known" wx:pagename="Visual_Studio.NET" wx:page_id="285265" id="wx171">Visual Studio.NET</a></li>

<li id="wx172"><a href="/wit/Framework_.NET" title="Framework .NET" wx:linktype="known" wx:pagename="Framework_.NET" wx:page_id="113328" id="wx173">Framework .NET</a></li>
</ul>

<a id="Collegamenti_esterni" name="Collegamenti_esterni"/>
</wx:section><wx:section level="2" title="Collegamenti esterni" id="wxsec10"><h2 id="wx174">Collegamenti esterni</h2>

<ul id="wx175">
<li id="wx176"><wx:template id="wx_t1" pagename="Template:En" page_id="121878"/>
<p id="wx177">(<span style="font-weight:bolder; font-size:80%" id="wx178"><a href="/wit/Lingua_inglese" title="Lingua inglese" wx:linktype="known" wx:pagename="Lingua_inglese" wx:page_id="2523" id="wx179">EN</a></span>) <wx:templateend start="wx_t1"/> <a href="http://www.asp.net/" class="external text" wx:linktype="external" rel="nofollow" id="wx180">Sito ufficiale ASP.NET</a></p>
</li>

<li id="wx181"><wx:template id="wx_t2" pagename="Template:En" page_id="121878"/>
<p id="wx182">(<span style="font-weight:bolder; font-size:80%" id="wx183"><a href="/wit/Lingua_inglese" title="Lingua inglese" wx:linktype="known" wx:pagename="Lingua_inglese" wx:page_id="2523" id="wx184">EN</a></span>) <wx:templateend start="wx_t2"/> <a href="http://msdn.microsoft.com/vstudio/express/vwd/" class="external text" wx:linktype="external" rel="nofollow" id="wx185">Visual Web Developer Express Edition 2005</a></p>
</li>

<li id="wx186"><a href="http://aspnet.html.it/" class="external text" wx:linktype="external" rel="nofollow" id="wx187">aspnet.HTML.it</a>
<p id="wx188">Guide, articoli di approfondimento, script, FAQ e forum dedicati alla tecnologia Microsoft per il Web</p>
</li>

<li id="wx189"><a href="http://www.aspitalia.com/" class="external text" wx:linktype="external" rel="nofollow" id="wx190">ASPItalia.com: storica community su ASP e ASP.NET, dal 1998</a></li>

<li id="wx191"><a href="http://www.ugidotnet.org/" class="external text" wx:linktype="external" rel="nofollow" id="wx192">UGIdotNET: User Group italiano su .NET</a></li>

<li id="wx193"><a href="http://www.webmasterpoint.org/asp/net/home.asp" class="external text" wx:linktype="external" rel="nofollow" id="wx194">Tutorial Asp.NET e Script pronti e gratuiti Asp.Net</a></li>

<li id="wx195"><wx:template id="wx_t3" pagename="Template:En" page_id="121878"/>
<p id="wx196">(<span style="font-weight:bolder; font-size:80%" id="wx197"><a href="/wit/Lingua_inglese" title="Lingua inglese" wx:linktype="known" wx:pagename="Lingua_inglese" wx:page_id="2523" id="wx198">EN</a></span>) <wx:templateend start="wx_t3"/> <a href="http://www.dotnetspace.com/" class="external text" wx:linktype="external" rel="nofollow" id="wx199">DotNetSpace articoli su ASP.NET 2.0</a></p>
</li>

<li id="wx200"><wx:template id="wx_t4" pagename="Template:En" page_id="121878"/>
<p id="wx201">(<span style="font-weight:bolder; font-size:80%" id="wx202"><a href="/wit/Lingua_inglese" title="Lingua inglese" wx:linktype="known" wx:pagename="Lingua_inglese" wx:page_id="2523" id="wx203">EN</a></span>) <wx:templateend start="wx_t4"/> <a href="http://en.csharp-online.net/" class="external text" wx:linktype="external" rel="nofollow" id="wx204">C# Online.NET</a> - C# e .NET enciclopedia.</p>
</li>

<li id="wx205"><wx:template id="wx_t5" pagename="Template:En" page_id="121878"/>
<p id="wx206">(<span style="font-weight:bolder; font-size:80%" id="wx207"><a href="/wit/Lingua_inglese" title="Lingua inglese" wx:linktype="known" wx:pagename="Lingua_inglese" wx:page_id="2523" id="wx208">EN</a></span>) <wx:templateend start="wx_t5"/> <a href="http://www.aspdev.org/asp.net/" class="external text" wx:linktype="external" rel="nofollow" id="wx209">articoli su ASP.NET</a></p>
</li>

<li id="wx210"><wx:template id="wx_t6" pagename="Template:En" page_id="121878"/>
<p id="wx211">(<span style="font-weight:bolder; font-size:80%" id="wx212"><a href="/wit/Lingua_inglese" title="Lingua inglese" wx:linktype="known" wx:pagename="Lingua_inglese" wx:page_id="2523" id="wx213">EN</a></span>) <wx:templateend start="wx_t6"/> <a href="http://www.developerfusion.co.uk/aspnet/" class="external text" wx:linktype="external" rel="nofollow" id="wx214">Developer Fusion; tutorial e codice sorgente ASP.NET</a></p>
</li>

<li id="wx215"><wx:template id="wx_t7" pagename="Template:En" page_id="121878"/>
<p id="wx216">(<span style="font-weight:bolder; font-size:80%" id="wx217"><a href="/wit/Lingua_inglese" title="Lingua inglese" wx:linktype="known" wx:pagename="Lingua_inglese" wx:page_id="2523" id="wx218">EN</a></span>) <wx:templateend start="wx_t7"/> <a href="http://www.w3schools.com/aspnet/" class="external text" wx:linktype="external" rel="nofollow" id="wx219">W3Schools tutorial</a></p>
</li>

<li id="wx220"><wx:template id="wx_t8" pagename="Template:En" page_id="121878"/>
<p id="wx221">(<span style="font-weight:bolder; font-size:80%" id="wx222"><a href="/wit/Lingua_inglese" title="Lingua inglese" wx:linktype="known" wx:pagename="Lingua_inglese" wx:page_id="2523" id="wx223">EN</a></span>) <wx:templateend start="wx_t8"/> <a href="http://www.mono-project.com" class="external text" wx:linktype="external" rel="nofollow" id="wx224">Mono: implementazione open source del Framework .NET compatibile con molte piattaforme</a></p>
</li>

<li id="wx225"><wx:template id="wx_t9" pagename="Template:En" page_id="121878"/>
<p id="wx226">(<span style="font-weight:bolder; font-size:80%" id="wx227"><a href="/wit/Lingua_inglese" title="Lingua inglese" wx:linktype="known" wx:pagename="Lingua_inglese" wx:page_id="2523" id="wx228">EN</a></span>) <wx:templateend start="wx_t9"/> <a href="http://www.aspalliance.com" class="external text" wx:linktype="external" rel="nofollow" id="wx229">ASPAlliance: Tutorial ASP e ASP.NET</a></p>
</li>

<li id="wx230"><wx:template id="wx_t10" pagename="Template:En" page_id="121878"/>
<p id="wx231">(<span style="font-weight:bolder; font-size:80%" id="wx232"><a href="/wit/Lingua_inglese" title="Lingua inglese" wx:linktype="known" wx:pagename="Lingua_inglese" wx:page_id="2523" id="wx233">EN</a></span>) <wx:templateend start="wx_t10"/> <a href="http://www.visualbuilder.com/aspnet/tutorial/" class="external text" wx:linktype="external" rel="nofollow" id="wx234">VisualBuilder: Tutorial ASP.NET</a></p>
</li>
</ul>

<a id="Bibliografia" name="Bibliografia"/>
</wx:section><wx:section level="2" title="Bibliografia" id="wxsec11"><h2 id="wx235">Bibliografia</h2>

<ul id="wx236">
<li id="wx237"><i id="wx238">ASP.NET 2.0 per tutti</i>
<p id="wx239">(2006) <a href="/wit/index.php?title=Speciale:Booksources&amp;isbn=8895143000" class="internal" id="wx240">ISBN 8895143000</a> - Daniele Bochicchio, Cristian Civera, Riccardo Golia, Stefano Mostarda</p>
</li>
</ul>
</wx:section></wx:section></div>
<div id="wx_categorylinks">
<a href="/wit/index.php?title=Speciale:Categories&amp;article=ASP.NET" title="Speciale:Categories" wx:linktype="known" wx:pagename="Speciale:Categories" id="wx241">Categoria</a>: <span dir="ltr" id="wx242"><a href="/wit/Categoria:.NET" title="Categoria:.NET" wx:linktype="known" wx:pagename="Categoria:.NET" wx:page_id="674417" id="wx243">.NET</a></span></div>
<div id="wx_languagelinks">
Altre lingue: <a href="http://ar.wikipedia.org/wiki/%D8%A5%D9%8A_%D8%A5%D8%B3_%D8%A8%D9%8A.%D9%86%D8%AA" class="external" wx:linktype="interwiki" wx:pagename="ar:إي_إس_بي.نت" id="wx244">العربية</a> | <a href="http://ca.wikipedia.org/wiki/ASP.NET" class="external" wx:linktype="interwiki" wx:pagename="ca:ASP.NET" id="wx245">Català</a> | <a href="http://cs.wikipedia.org/wiki/ASP.NET" class="external" wx:linktype="interwiki" wx:pagename="cs:ASP.NET" id="wx246">Česky</a> | <a href="http://da.wikipedia.org/wiki/ASP.NET" class="external" wx:linktype="interwiki" wx:pagename="da:ASP.NET" id="wx247">Dansk</a> | <a href="http://de.wikipedia.org/wiki/ASP.NET" class="external" wx:linktype="interwiki" wx:pagename="de:ASP.NET" id="wx248">Deutsch</a> | <a href="http://en.wikipedia.org/wiki/ASP.NET" class="external" wx:linktype="interwiki" wx:pagename="en:ASP.NET" id="wx249">English</a> | <a href="http://es.wikipedia.org/wiki/ASP.NET" class="external" wx:linktype="interwiki" wx:pagename="es:ASP.NET" id="wx250">Español</a> | <a href="http://fa.wikipedia.org/wiki/%D8%A7%DB%8C_%D8%A7%D8%B3_%D9%BE%DB%8C_%D8%AF%D8%A7%D8%AA_%D9%86%D8%AA" class="external" wx:linktype="interwiki" wx:pagename="fa:ای_اس_پی_دات_نت" id="wx251">فارسی</a> | <a href="http://fr.wikipedia.org/wiki/ASP.NET" class="external" wx:linktype="interwiki" wx:pagename="fr:ASP.NET" id="wx252">Français</a> | <a href="http://gl.wikipedia.org/wiki/ASP.NET" class="external" wx:linktype="interwiki" wx:pagename="gl:ASP.NET" id="wx253">Galego</a> | <a href="http://he.wikipedia.org/wiki/ASP.NET" class="external" wx:linktype="interwiki" wx:pagename="he:ASP.NET" id="wx254">עברית</a> | <a href="http://id.wikipedia.org/wiki/ASP.NET" class="external" wx:linktype="interwiki" wx:pagename="id:ASP.NET" id="wx255">Bahasa Indonesia</a> | <a href="http://is.wikipedia.org/wiki/ASP.NET" class="external" wx:linktype="interwiki" wx:pagename="is:ASP.NET" id="wx256">Íslenska</a> | <a href="http://ja.wikipedia.org/wiki/ASP.NET" class="external" wx:linktype="interwiki" wx:pagename="ja:ASP.NET" id="wx257">日本語</a> | <a href="http://lt.wikipedia.org/wiki/ASP.NET" class="external" wx:linktype="interwiki" wx:pagename="lt:ASP.NET" id="wx258">Lietuvių</a> | <a href="http://ms.wikipedia.org/wiki/ASP.NET" class="external" wx:linktype="interwiki" wx:pagename="ms:ASP.NET" id="wx259">Bahasa Melayu</a> | <a href="http://nl.wikipedia.org/wiki/ASP.NET" class="external" wx:linktype="interwiki" wx:pagename="nl:ASP.NET" id="wx260">Nederlands</a> | <a href="http://no.wikipedia.org/wiki/ASP.NET" class="external" wx:linktype="interwiki" wx:pagename="no:ASP.NET" id="wx261">Norsk (bokmål)</a> | <a href="http://pl.wikipedia.org/wiki/ASP.NET" class="external" wx:linktype="interwiki" wx:pagename="pl:ASP.NET" id="wx262">Polski</a> | <a href="http://pt.wikipedia.org/wiki/ASP.NET" class="external" wx:linktype="interwiki" wx:pagename="pt:ASP.NET" id="wx263">Português</a> | <a href="http://ro.wikipedia.org/wiki/ASP.NET" class="external" wx:linktype="interwiki" wx:pagename="ro:ASP.NET" id="wx264">Română</a> | <a href="http://ru.wikipedia.org/wiki/ASP.NET" class="external" wx:linktype="interwiki" wx:pagename="ru:ASP.NET" id="wx265">Русский</a> | <a href="http://sq.wikipedia.org/wiki/ASP.NET" class="external" wx:linktype="interwiki" wx:pagename="sq:ASP.NET" id="wx266">Shqip</a> | <a href="http://sv.wikipedia.org/wiki/ASP.NET" class="external" wx:linktype="interwiki" wx:pagename="sv:ASP.NET" id="wx267">Svenska</a> | <a href="http://th.wikipedia.org/wiki/%E0%B9%80%E0%B8%AD%E0%B9%80%E0%B8%AD%E0%B8%AA%E0%B8%9E%E0%B8%B5%E0%B8%94%E0%B8%AD%E0%B8%95%E0%B9%80%E0%B8%99%E0%B9%87%E0%B8%95" class="external" wx:linktype="interwiki" wx:pagename="th:เอเอสพีดอตเน็ต" id="wx268">ไทย</a> | <a href="http://tr.wikipedia.org/wiki/ASP.NET" class="external" wx:linktype="interwiki" wx:pagename="tr:ASP.NET" id="wx269">Türkçe</a> | <a href="http://zh.wikipedia.org/wiki/ASP.NET" class="external" wx:linktype="interwiki" wx:pagename="zh:ASP.NET" id="wx270">中文</a> | <a href="http://zh-min-nan.wikipedia.org/wiki/ASP.NET" class="external" wx:linktype="interwiki" wx:pagename="zh-min-nan:ASP.NET" id="wx271">Bân-lâm-gú</a></div>
</body>
<wx:templatearguments for="wx_t1"/>
<wx:templatearguments for="wx_t2"/>
<wx:templatearguments for="wx_t3"/>
<wx:templatearguments for="wx_t4"/>
<wx:templatearguments for="wx_t5"/>
<wx:templatearguments for="wx_t6"/>
<wx:templatearguments for="wx_t7"/>
<wx:templatearguments for="wx_t8"/>
<wx:templatearguments for="wx_t9"/>
<wx:templatearguments for="wx_t10"/>
</html>
