ASP.NET: Server Roundtrip e ViewState – Codice sorgente dell’esempio

Sorgenti: viewState.aspx

Scarica i sorgenti: aspnet03.zip

Articolo a cui si riferisce il codice: ASP.NET: Server Roundtrip e ViewState

viewState.aspx – Prova l’esempio [nuova finestra]

  1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  2   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  3 
  4 <%@Page Language="VB"%>
  5 <%@Register TagPrefix="ANet" TagName="Footer" Src="includes/footer.ascx"%>
  6 
  7 <!
  8 # nome: ViewState.aspx
  9 # scritto da: Antonio Volpon
 10 # data creazione: 22 Novembre 2001
 11 # ultima modifica: 22 Novembre 2001
 12 # copyright: Antonio Volpon
 13 >
 14 
 15 <script language="vb" runat="server">
 16 Sub Page_Load(sender as Object, e as EventArgs)
 17   
 18   If ViewState("colore") = "<font color=‘red’><b>Rosso</b></font>" Then
 19     colore.InnerHtml = "<font color=‘black’><b>Nero</b></font>"
 20     ViewState("colore") = "<font color=‘black’><b>Nero</b></font>"
 21   Else
 22     colore.InnerHtml = "<font color=‘red’><b>Rosso</b></font>"  
 23     ViewState("colore") = "<font color=‘red’><b>Rosso</b></font>"
 24   End If
 25   
 26   If IsNothing(ViewState("count")) Then
 27     ViewState("count") = 1            
 28   Else
 29     ViewState("count") += 1
 30   End If
 31   
 32 End Sub
 33 </script>
 34 
 35 <html>
 36   <head>
 37     <link rel="stylesheet" href="css/aspnet.css" type="text/css">
 38     </link>
 39     <title>ViewState</title>
 40   </head>
 41   <body>
 42   
 43     <div class="titolo">
 44       ViewState
 45     </div>
 46     
 47     <hr noshade="true" size="1" width="100%">
 48 
 49     <center>    
 50     
 51     <div id="colore" runat="server" class="risposta"></div>
 52     
 53     <br /><br />
 54     <span class="txt">Il contatore segna <span id="contatore" runat="server" class="txtb"><%=ViewState("count")%></span> volte.</span>
 55     
 56     <form runat="server">
 57       <input type="submit" value="Riprova">
 58     </form>
 59 
 60     </center>
 61 
 62  <ANet:Footer id="Menu" runat="server" />
 63     
 64   </body>
 65 </html>
 66   
 67   

Il web cambia con ASP.NET

ASP.NET (chiamato in una prima versione ASP+) è più di un semplice upgrade di Active Server Pages, la soluzione Microsoft per la realizzazione di siti dinamici.

Chi ha esperienza di sviluppo con questa tecnologia ne ha già ben chiaro i vantaggi e le lacune. A fronte di una elevata semplicità nella stesura del codice (un programmatore Visual Basic è produttivo con ASP dopo pochi giorni), esiste una difficoltà quasi cronica nella correzione degli errori (debugging). I documenti ASP, inoltre, sono tutt’altro che prestazionali, poiché richiedono l’esecuzione di un interprete di comando ad ogni accesso.

Microsoft ha lavorato tre anni per questa nuova versione, riscrivendo completamente il codice originario di ASP: il risultato è una piattaforma di lavoro più efficiente e decisamente più orientata agli oggetti, tanto che in ASP.NET i tag possono essere generati lato server piuttosto che lato client.

Le Web Forms

Fino ad oggi, chi ha intrapreso la programmazione Web migrando da un ambiente di sviluppo tradizionale qual è Visual Basic, ha dovuto rinunciare a malincuore a molte opportunità.

Come prima cosa, i tag HTML non sono dei veri controlli, e come tali non dispongono di un puro modello di programmazione ad oggetti. Inoltre, il codice HTML è molto spesso “amalgamato” con il contenuto della pagina: una modifica alla struttura del sito comporta anche una ristrutturazione dell’informazione.

Per ridurre questi effetti collaterali, Microsoft ha introdotto in ASP.NET una libreria di oggetti, chiamata Web Forms, con lo scopo di agevolare e rendere più chiara la stesura di codice all’interno di una pagina dinamica. L’idea è molto semplice. E’ possibile specificare un tag nella forma:

<asp:textBox id="txtName" runat="server" Text="testo">
</asp:TextBox>

Quando il processore ASP.NET incontra il tag, lo trasforma nel corrispettivo HTML. Il vantaggio è che questi controlli dispongono di un certo numero di proprietà, metodi ed eventi che usano una nomenclatura coerente e modificabili da codice.

Inoltre, nel generare la pagina, il processore ASP.NET è in grado di riconoscere il browser dell’utente: può di conseguenza generare una pagina HTML che ne utilizzi solo le caratteristiche supportate.

Come ulteriore vantaggio, con questo modello ad oggetti è notevolmente semplificata la convalida dei dati provenienti dall’input degli utenti, che è così gestita sia lato client sia lato server. Con le Web Forms è anche possibile “simulare” il mantenimento di stato tra le pagine, con le cosiddette “postback form”.

Aumentano i linguaggi di sviluppo

La presenza del .Net Common Language Runtime consente allo sviluppatore l’utilizzo di una platea teoricamente infinita di linguaggi per la scrittura di pagine ASP.NET. Usare un linguaggio od un altro risulta indifferente, visto che si usano le classi presenti nelle librerie .NET. In questo modo è possibile adottare Visual Basic, C# oppure ad esempio Fortran: si userà il linguaggio con il quale si è più produttivi o quello che rappresenta lo standard aziendale. Il Common Language Runtime si comporta quindi da strato di interfaccia tra la complessità del sistema operativo (e delle sue API – Application Program Interfaces) e il linguaggio.

Con ASP.NET Microsoft da inoltre l’addio a Visual Basic Script, che è sostituito da un pieno supporto per Visual Basic, un suo sovrainsieme. Come conseguenza, Visual Studio .NET (il successore di Visual Studio 6) non contiene due ambienti di programmazione, uno per Visual Basic e uno per la stesura di codice ASP (Visual Interdev), ma un solo strumento integrato di sviluppo per tutti i linguaggi.

Le pagine ASP.NET sono compilate

L’unica soluzione all’inefficienza del codice interpretato è la sua compilazione. Una pagina ASP.NET è creata alla pari di una pagina ASP: quando è richiesta dall’utente viene processata dal parser di linguaggio.

A differenza di ASP, però, dove la pagina è successivamente interpretata, con ASP.NET un compilatore si preoccupa della sua trasformazione in codice binario. Questa operazione è eseguita al primo accesso della pagina, oppure quando lo sviluppatore ne avrà alterato il contenuto. Tutti gli altri utenti della pagina ne riceveranno la versione già compilata, diminuendo di gran lunga i tempi di risposta, ma soprattutto il carico elaborativo. In caso di riavvio del server, la pagina non deve essere nuovamente compilata, giacché è memorizzata in una cache privata.

Il nuovo concetto di sessione

Le sessioni di ASP sono un comodo strumento per guidare l’utente tra più pagine di un sito e portare con sè le informazioni inserite. Si pensi ad un sito di commercio elettronico dove l’utente può in ogni momento verificare il contenuto del carrello e provvedere al pagamento. Sfortunatamente, le sessioni ASP richiedono l’utilizzo di cookie per il funzionamento. Non solo: le sessioni non possono essere utilizzate in realtà di tipo “Web Farm”, dove cioè più server si suddividono il carico elaborativo.

Con ASP.NET l’oggetto sessione è eseguito al di fuori del processo che gestisce l’applicazione Web: il risultato è che è possibile utilizzare le sessioni tra più server, e memorizzarne il contenuto in fonti di dati esterne, quali un file di testo oppure un server SQL. In caso di arresto critico del server, inoltre, la sessione può essere mantenuta e ristabilita. Un’ulteriore miglioria consente la fruizione delle sessioni anche a browser che non gestiscono i cookies, aggiungendo le informazioni come Querystring nell’URL.

Cache

Con ASP.NET è possibile costruire una cache per velocizzare la comunicazione con il browser e ridurre il consumo di risorse da parte del server. In base ad un discriminante la pagina è memorizzata in un’apposita cache e restituita al browser fino al verificarsi di una condizione che impone l’eliminazione e ricostruzione della cache. È una caratteristica molto versatile e potente. Una pagina può risiedere in memoria ad esempio fino allo scadere di un intervallo stabilito o fino a quando non cambia un file da cui dipende.

Debugging e tracing

Fino ad oggi mancavano delle tecniche efficienti per la correzione degli errori e l’analisi del codice, se non utilizzando le estensioni lato server rese disponibili da Visual Interdev. ASP.NET include un vero debugger (una versione più completa è distribuita con Visual Studio .NET) che è possibile configurare con i “breakpoint” e i “watches”, come se ci trovassimo in Visual Basic. Il file config.web (che si affianca a global.asax) può essere invece modificato per consentire il tracing del codice: informazioni rese disponibili sono tra le altre il dettaglio di richiesta della pagina, l’albero di generazione dei controlli, il contenuto delle variabili lato server e delle intestazioni HTTP.

Convivenza di ASP e ASP.NET

ASP e ASP.NET possono essere installati sullo stesso server senza interferire le une con le altre. Per ASP.NET l’estensione da utilizzare è solitamente .aspx (a differenza di .asp utilizzato per i documenti .ASP). E’ importante sottolineare che non è garantita la compatibilità 100% tra ASP e ASP.NET e che le due tecnologie non condividono lo spazio di memoria degli oggetti session e application: la comunicazione tra pagine ASP e ASP.NET sullo stesso server deve basarsi su componenti scritti ad hoc o sul passaggio di parametri “nascosti”.

Riscrivere il codice da zero

Se state valutando la possibilità di migrare un progetto ASP verso ASP.NET, dovete sapere che tutto il codice deve essere riscritto per poter sfruttare appieno le potenzialità di questa tecnologia. L’uso di controlli lato server e di form postback, unito alla possibilità di separare il codice dallo strato di presentazione, rende praticamente impossibile il riutilizzo del codice precedente.
Sarà improbabile che vengano realizzati in futuro dei tool di conversione automatici per la migrazione del codice (come invece è avvenuto con “l’upgrade wizard” di Visual Basic): le differenze sono di concetto più che di sintassi.

Conclusione

Molte le novità che distinguono ASP.NET dal predecessore, dal modello ad oggetti alle caratteristiche migliorate o completamente nuove.

Se siete incuriositi, siete pronti per il nostro corso online di ASP.NET!

ASP.NET svelato – Intervista a Alex Homer e Dave Sussman

Intervista a Alex Homer e Dave Sussman, autori del miglior manuale oggi disponibile per ASP.NET: Professional ASP.NET 1.0 Special Edition

Vedi anche:

  1. A seguito del successo di Professional ASP.NET beta 2, edito da Wrox, sta per uscire Professional ASP.NET 1.0 Special Edition. In cosa differisce dal precedente? Uno sviluppatore ne ha davvero bisogno se ha già acquistato il primo? [Risposta 1]
  2. ASP.NET non è semplice come ASP e lo stesso si può dire del .NET Framework. Il codice ASP dovrebbe essere riscritto per ottenere i benefici delle nuove caratteristiche di ASP.NET. Quali sono le vostre previsioni per il successo di questa piattaforma? [Risposta 2]
  3. Qual è secondo voi la migliore caratteristica di ASP.NET ? E cosa invece si sarebbe potuto migliorare o aggiungere in ASP.NET ? [Risposta 3]
  4. ASP.NET e il .NET Framework sembrano molto simili a JSP e alla piattaforma Java, ma forse mi sbaglio, vero ? [Risposta 4]
  5. Molti sviluppatori credono che sviluppare applicazioni ASP.NET con VB.NET o con C# sia praticamente lo stesso. Che cosa ne pensate? C’era davvero bisogno di un nuovo linguaggio come C#? [Risposta 5]
  6. ASP.NET è composta di molti componenti, primo fra tutti il controllo DataGrid. Sono controlli veramente potenti o è necessario scrivere un bel po’ di codice nelle situazioni reali? [Risposta 6]

A seguito del successo di Professional ASP.NET beta 2, edito da Wrox, sta per uscire Professional ASP.NET 1.0 Special Edition. In cosa differisce dal precedente? Uno sviluppatore ne ha davvero bisogno se ha già acquistato il primo?

Alex Homer

Quello che cambia è che abbiamo preso il testo e il codice e li abbiamo controllati e adattati per la versione 1.0 di ASP.NET e del .NET Framework.

Ci sono anche alcune novità. Ho aggiunto un nuovo esempio su ADO.NET per illustrare i vantaggi di una nuova caratteristica del DataAdapter.

Poco prima del rilascio finale sono cambiate le specifiche di sicurezza, così il capitolo 14 è stato modificato in più punti. Anche altri capitoli sono stati aggiornati per riflettere le ultime modifiche al Framework. Abbiamo infine rivisto accuratamente tutti i capitoli per includere le correzioni degli errori e i suggerimenti ricevuti.

Se avete la versione beta 2 del libro, vi accorgerete che quasi tutto funzionerà egregiamente (anche se dovete scaricare l’ultima versione dell’errata corrige [nuova finestra] da o direttamente da http://www.wrox.com/). Inoltre, usando il servizio online di Wrox, sarete in grado di acquistare la nuova versione del libro in formato elettronico a prezzo speciale.

Va comunque detto che per gli sviluppatori il libro vale il suo prezzo e recupereranno il costo non appena gli verrà richiesto di realizzare soluzioni ASP.NET.

Dave Sussman

Abbiamo sostanzialmente allineato il libro con la versione 1 di ASP.NET. Siamo infatti rimasti in stretto contatto con il gruppo di sviluppo ASP.NET (non a caso uno degli autori lavora in questo gruppo) e sebbene Microsoft non avesse pianificato dei cambiamenti nella versione definitiva, inevitabilmente qualcuno ce n’è stato.

Complessivamente non ci sono stati degli stravolgimenti tra la beta 2 e la versione finale, ma ci sono state alcune modifiche che hanno avuto un certo impatto. Un’area di grandi cambiamenti è stata ad esempio la sicurezza.

La maggior parte degli esempi presenti nel vecchio manuale dovrebbe funzionare, ma ce ne potrebbero essere alcuni di inaccurati. Ho sensibilmente migliorato gli esempi della nuova edizione, tanto che sono ora disponibili sia in Visual Basic .NET sia in C# e sono installati con un apposito programma di setup. Potete probabilmente continuare ad usare la vecchia versione del libro, ma scaricare i nuovi esempi è sicuramente qualcosa che vale la pena fare.

Un’altra cosa che ci eravamo ripromessi era di correggere i diversi errori che sono finiti nel libro, soprattutto di ortografia e di grammatica. Sotto questo aspetto l’edizione 1.0 dovrebbe mostrare un sensibile miglioramento.

Top

ASP.NET non è semplice come ASP e lo stesso si può dire del .NET Framework. Il codice ASP dovrebbe essere riscritto per ottenere i benefici delle nuove caratteristiche di ASP.NET. Quali sono le vostre previsioni per il successo di questa piattaforma?

Alex Homer

La mia opinione è sicuramente di parte, visto che mi sono occupato di ASP.NET per un lungo periodo, anche se il suo sviluppo si è protratto principalmente nel corso degli ultimi due anni. Mi piace ASP.NET, e odio dever tornare a lavorare con ASP 3.0. Questo succede a tutti gli sviluppatori con cui ho modo di parlare.

Inoltre, non c’è nessun rischio nell’installare ASP.NET e nel provarlo, visto che coesiste con ASP 3.0 senza problemi. Il nostro sito (mio e di Dave, consultabile all’indirizzo http://www.daveandal.com/ [nuova finestra]) include sia pagine ASP 3.0 sia ASP.NET. Se avete Windows 2000 (o XP) potete provare ad installare ASP.NET, visto che è stato anche rimosso con successo senza sconvolgere il sistema operativo.

Quindi, perché non usare ASP.NET? Penso che il livello di adozione aumenterà in breve tempo da parte di sviluppatori web Microsoft. Non escludo che si potrebbero verificare delle “conversioni” anche da chi oggi usa altre piattaforme.

Riguardo alla piattaforma .NET in generale (invece che solo ASP.NET), non sono più così sicuro. Avrà certamente successo, ma in quanto tempo dipende dalla velocità con la quale gli sviluppatori installeranno il Framework .NET sulle loro macchine. Anche in questo caso, visto che non cambia il sistema operativo e il .NET Framework sarà disponibile in service pack o installato con le prossime versioni dei prodotti, potremmo assistere ad una veloce adozione.

Dave Sussman

Penso che la tecnologia ASP.NET sia eccezionale, in quanto è decisamente migliore rispetto alle versioni precedenti. Ogni cosa è molto più semplice da fare. La class library fornisce praticamente tutto quello che prima era necessario gestire via codice e la nuova architettura rende il codice manutenibile.

Sono però d’accordo: riscrivere il codice è l’unico modo per ottenere il meglio da ASP.NET. Alcuni si sono lamentati di questa necessità, ma personalmente sono convinto che siamo rimasti legati fin troppo a lungo a prodotti di qualità inferiore solo per garantire la “backward compatibility” (compatibilità verso il basso). Arriva un giorno in cui bisogna stringere i denti e abbracciare il futuro e io sono convinto che .NET sia il futuro per gli sviluppatori Microsoft.

Top

Qual è secondo voi la migliore caratteristica di ASP.NET? E cosa invece si sarebbe potuto migliorare o aggiungere in ASP.NET?

Alex Homer

Penso che la caratteristica più importante sia il fatto che le pagine sono compilate come file di classi, invece di essere semplicemente interpretate ed eseguite ad ogni richiesta. Questo è quello che ci permette di usare tutte le altre funzionalità, come l’architettura orientata agli oggetti e gli ottimi controlli lato server.

Se non ci fossero la compilazione e il caching del codice eseguibile, sarebbe impensabile usare ASP.NET. Il processore ASP.NET impiegherebbe infatti troppo tempo a costruire pagine complesse con un’enormità di controlli e oggetti ogni volta che la pagina è richiesta.
Tutto questo dipende naturalmente dallo strato sottostante, il .NET Framework, senza il quale ASP.NET non esisterebbe.

E’ difficile dire cosa manca o pensare a qualche cosa che si sarebbe potuta realizzare meglio. Penso che stiamo ancora cercando di capire cosa è possibile fare, e quale è il modo migliore di usare ASP.NET per soddisfare le nostre necessità. Con il passare del tempo ogni lacuna, debolezza e difetto diventeranno ovvi.

L’unica area nella quale ho trovato qualcosa di migliorabile è ADO.NET: a volte ho difficoltà a ottenere ciò che voglio. Probabilmente questo è causato dal fatto che mi aspetto troppo, visto che si tratta di una tecnologia molto potente e generale.

Diciamo che potrei essere più critico fra un anno?

Dave Sussman

Uhm…domande difficili. La cosa migliore è probabilmente l’architettura. Mi piace avere un modello di programmazione basato sugli eventi, che rende il codice molto più pulito.

Non riesco a trovare nessun grosso difetto ad ASP.NET, penso sia una tecnologia eccezionale.
L’unica cosa che ho notato (il gruppo di sviluppo non ha avuto il tempo di cambiarla) è che la funzionalità di tracing è “chiusa”. Mi sarebbe piaciuto avere la possibilità di estenderla, magari scrivendo su un database e un monitor tcp invece di usare un sistema di default.
Un meccanismo cioè simile al .NET Trace Listeners, dove è possibile estendere o rimpiazzare lo schema di tracing esistente.

Ho anche qualche problema con le class library. Sarebbe interessante avere qualche altra classe ereditabile invece che chiusa.

Avrei infine piacere di poter usare un modello di database connesso. È infatti un approccio ancora largamente diffuso: avere a che fare con un modello disconnesso può a volte essere scomodo.

Top

ASP.NET e il .NET Framework sembrano molto simili a JSP e alla piattaforma Java, ma forse mi sbaglio, vero?

Alex Homer

Dipende da cosa si intende con “simili”. L’idea di avere una virtual machine o un runtime non è nuova. Visual Basic aveva un runtime, che compilava il P-code in codice binario per l’esecuzione. Sotto questo punto di vista si può dire che Visual Basic è simile a Java (e quindi che ASP è simile a JSP).

Lo scopo di avere una virtual machine, specialmente nel caso di Java, è di rendere indipendente il codice del programma dal sistema operativo. Un problema è dato però dalla velocità e dall’efficienza: le virtual machine provocano sempre un calo di performance se vogliono essere indipendenti dalla piattaforma.

.NET non è una virtual machine, ma è invece un vero runtime. Si posiziona sempre tra il codice del programma e il sistema operativo, ma il codice che .NET esegue è prima compilato in un file binario di tipo Microsoft Intermediate Language (MSIL). Il runtime è in grado di eseguire il codice MSIL in modo molto efficiente, con una minima conversione. Il runtime usa inoltre tutta una serie di funzionalità, dalla compilazione just-in-time alle tecniche di caching, per massimizzare le prestazioni: un’area che Java deve ancora prendere in considerazione.

Per questo ASP.NET e la piattaforma .NET all’oggi si avvicinano di più all’esecuzione di codice nativo di quanto facciano JSP e Java.

Dave Sussman

Così dicono, ma non so praticamente nulla di JSP, così non sono nella condizione di dare un giudizio. ASP.NET è frutto della volontà da parte del gruppo ASP di migliorare il loro prodotto, indipendentemente da Java. Anche se fosse realmente simile a Java, non ci trovo alcun problema. I sostenitori di Java si lamentano con Microsoft perché secondo loro la casa di Redmond non è in grado di realizzare prodotti alla stregua di Java. Poi però si lamentano nuovamente quando i prodotti ci sono. C’è abbastanza posto per tutti e due. Vorrei che entrambe le parti se ne rendessero conto e lavorassero per l’interoperabilità tra i due mondi.

Top

Molti sviluppatori credono che sviluppare applicazioni ASP.NET con VB.NET o con C# sia praticamente lo stesso. Che cosa ne pensate? C’era davvero bisogno di un nuovo linguaggio come C#?

Alex Homer

È praticamente la stessa cosa, perché generalmente si usano le classi delle librerie .NET: i metodi e le proprietà sono le stesse indipendentemente dal linguaggio usato. La sintassi è comunque alquanto diversa e passare da un linguaggio all’altro (specialmente da VB.NET e C#) non è banale.

Per uno sviluppatore Java e C++, C# è sicuramente più facile da imparare, mentre gli sviluppatori VB (e anche quelli VBScript) avranno presto la padronanza per lavorare con VB.NET.

Una cosa su cui porre l’accento è che entrambi i linguaggi hanno la loro sintassi “privata”. Visual Basic NET, per esempio, consente ancora l’uso di funzioni come Instr. Bisognerebbe cercare di usare le librerie che sono comuni a tutti i linguaggi, invece di quelle private. In questo caso è meglio usare IndexOf (un metodo della classe System.String), invece di InStr.

Tutti i linguaggi sono simili in .NET (con alcune piccole eccezioni), e il linguaggio che si sceglie dovrebbe essere quello con cui si è più produttivi. Non c’è niente di male nell’imparare altri linguaggi (volete forse provare a usare COBOL?), ma non c’è nessun obbligo.

Ci sono molte ragioni che giustificano la creazione di un “nuovo” linguaggio come C#. Né C++ né JScript sono la soluzione ideale per .NET. Era inoltre poco probabile che Microsoft potesse offrire Java. J++ è invece la “versione” Microsoft di Java e poteva sembrava allettante. Sebbene C# non sia semplicemente J++ con un nome diverso, ci sono delle similitudini che fanno sentire a casa i programmatori J++. C# è anche uno standard aperto (traguardo a cui nessun altro linguaggio può aspirare), e così potrà essere portato su altri sistemi operativi se e quando necessario.

Dave Sussman

Non hai idea di quanto sono stanco di queste questioni relative ai linguaggi. Ho lavorato per molti anni come programmatore assembler e C prima di avvicinarmi a Visual Basic, semplicemente perché erano più adatti ai miei scopi. Ho passato anni ad essere guardato “dall’alto al basso” dai programmatori C++. Adesso che abbiamo un ambiente dove il linguaggio usato è irrilevante, c’è ancora chi si preoccupa di queste cose.

In ASP.NET non c’è nessuna differenza sostanziale tra C# e VB.NET. Ci sono alcune cose che non si possono fare con VB.NET (come il codice unsafe), ma penso che pochi avranno bisogno di usare queste funzionalità. Fino a che si sviluppano applicazioni ASP.NET, potete usare quello che volete: VB.NET, C# o addirittura COBOL.NET. Dovreste programmare con il linguaggio che preferite o che vi viene richiesto. Non è un buon approccio usare C# se il resto del vostro gruppo di sviluppo usa VB: la manutenzione del codice è importante.

Allora, direte voi, perché un nuovo linguaggio? Microsoft sarebbe stata sicuramente contenta se avesse potuto continuare con lo sviluppo del loro J++. Volevano un C++ senza le complessità di C++, ma le questioni di licenza Java e le seguenti battaglie legali da parte di Sun hanno messo una pietra sopra ogni possibile sviluppo futuro.

Hanno così creato un nuovo linguaggio che non fosse però totalmente diverso, anche se è sicuramente complesso da imparare. C# ha uno stile di programmazione molto più pulito rispetto a C++.

Personalmente mi piace il C# e lo uso quando posso per il mio codice. Dopo molti anni di programmazione VB è piacevole ritornare allo stile del linguaggio C: Visual Basic è troppo prolisso (e ho sempre odiato la lineetta che si usa per continuare il codice su un’altra riga).

Top

ASP.NET è composta di molti componenti, primo fra tutti il controllo DataGrid. Sono controlli veramente potenti o è necessario scrivere un bel po’ di codice nelle situazioni reali?

Alex Homer

Alcuni di questi controlli sono “semplici”, nel senso che non fanno nient’altro che rendere disponibile un tag al lato server, perché sia usato nel codice. Un esempio è dato dai controlli di tipo <input runat=”server”>. Anche se sono semplici, questi controlli (presenti nel namespace System.Web.UI.WebControls) hanno già alcuni sensibili vantaggi: usano ad esempio una nomenclatura chiara e standard per le proprietà, facilitando la creazione di pagine. Il RadioButton include un’etichetta di testo, così non è necessario usare degli <span> o altre tecniche come si farebbe con l’Html.

Ci sono anche dei controlli raffinati, tra i quali i più famosi sono il controllo calendar, i validation control e i list control (come per esempio la DataGrid). Anche questi risparmiano la scrittura di molto codice lato server. I validation control, in particolare, riconoscono il browser e creano codice lato client, che riduce la comunicazione client/server e migliora l’esperienza degli utenti con Internet Explorer 5 e successivi. Saranno aggiunti senza dubbio altri controlli in futuro: non dimenticate che ci sono molti controlli di terze parti attualmente in sviluppo, se non già disponibili. Stanno per arrivare nuovi controlli di tipo DataGrid che sono molto più potenti del controllo standard incluso nel .NET Framework.

Dave Sussman

Sfortunatamente, non puoi cavartela senza scrivere codice. La quantità di codice da scrivere è comunque decisamente ridotta.
Il controllo DataGrid semplifica senza dubbio le cose, e anche se non fa tutto quello che vorresti, lo puoi sempre personalizzare. Non solo c’è un alto grado di flessibilità se si usano i template, ma puoi anche estendere la classi con le tue funzionalità.

Anche il resto dei controlli è estremamente ricco, tanto che oggi disponiamo di controlli per Internet Explorer che usano il Dhtml e consentono di incorporare “tab” e “tree view” nelle pagine, migliorando l’esperienza degli utenti.
Questi controlli si adattano automaticamente per gli altri browser, così da poter essere applicati nei casi reali.

Anche la possibilità di scrivere i propri controlli e usarli come parte dell’architettura .NET è una caratteristica alquanto flessibile.

Top