Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Soluzioni Ajax per ASP.Net

Come Ajax entra nella tecnologia di ASP.NET: una carrellata ed un confronto tra i principali framework
Come Ajax entra nella tecnologia di ASP.NET: una carrellata ed un confronto tra i principali framework
Link copiato negli appunti

Cosa sia Ajax ormai non dovrebbe essere più un segreto per nessuno, e chi avesse ancora dubbi può trovare soddisfazione con qualche buona lettura.

In questo articolo invece iniziamo ad esaminare le diverse librerie nate per sfruttare questa tecnica con ASP.NET e proiettare le nostre applicazioni verso il WEB 2.0.

Come funziona Ajax con .NET?

L'esperienza di programmazione ASP.NET, soprattutto quella visuale che sfrutta componenti precostituiti, da un approccio di 'alto livello' e se è vero che è molto comune iniettare JavaScript all'interno di controlli e Web Form, non sempre un buon programmatore ASP.NET conosce davvero a fondo anche lo scripting lato client.

Inoltre bisogna considerare che piattaforma stessa rende problematico implementare funzionalità Ajax.

Per risolvere tutto questo Ajax viene programmato indirettamente, ovvero programmando componenti che incapsulano il "difficile" motore Ajax;

Questi componenti intercettano il tipico postback (o nel caso di .NET 2 anche il cross postback) delle Web Form e lo manipolano attraverso specifici metodi e proprietà;

Gli strumenti

Prendiamo quindi in esame alcune delle librerie più importanti che forniscono componenti o soluzioni per creare applicazioni in stile RIA senza dover modificare troppo il nostro modo di lavorare con ASP.NET.

Queste librerie vengono anche denominate Hijax, ennesimo termine informatico coniato dall'ennesimo guru, Jeremy Keith, che fonde i termini "hijack" (in inglese: "intercettare") ed appunto Ajax.

Possiamo dividere le librerie Hijax in due categorie:

  1. librerie con cui è più semplice per effettuare un restyling di applicazioni già esistenti oppure per una programmazione più 'soft' rivolta a quegli sviluppatori che non hanno tempo da perdere. Ad esempio:
    • ComfortAsp
    • MagicAjax
  2. librerie più indicate per la creazione di applicazioni ex-novo ovvero partendo da zero. Ad esempio:
    • Ajax.net
    • ASP.NET Ajax (Atlas)
    • Anthem.net

Per fornire un paragone più attento tra i diversi framework abbiamo ripreso gli elementi della tabella comparativa di Daniel Zeiss l'autore di ComfortAsp.

Nome ComfortASP.NET MagicAJAX.NET Ajax.net Anthem.net ASP.NET Ajax
(Atlas)
Versione V 0.69 V0.3.0 (5.7.25.1) Beta per ASP.NET 2
(5.7.22.2) per ASP.NET 1.1
V1.3.2 Beta 2
Autore / Software House Daniel Zeiss Argiris Kirtzidis David Schwarz Jason Diamond Microsoft
Home Page link link link link link
Licenza d'uso Demo / Gratuita (richiesta registrazione) Gratuita / Open Source Gratuita / Open Source Gratuita /Open Source Gratuita
Versioni ASP.NET supportate 1.1/2.0 1.1/2.0 1.1/2.0 1.1/2.0 2.0
Browser Supportati IE 6/7
Mozilla
Opera
IE 6/7
Mozilla
Opera (non ufficialmente)
IE 6
Mozilla
IE 6/7
Mozilla
Opera
IE 6/7
Mozilla
Come funziona? Usa un 'Control Manager' per creare un postback invisibile all'utente Utilizza un "MagicPanel" per l'aggiornamento AJAX Utilizza XmlHttpRequest tramite un proxy creato a runtime Nuovi controlli con funzionalità AJAX Diversi approcci:

* Diretta programm. AJAX

* Nuovi controlli con funzionalità AJAX

Interventi minimi richiesti sul codice 1) Aggiungere HttpHandler e sezione di Configurazione nel web.config

2) (opzionale) Componente Manager Control programmabile in maniera dichiarativa

1) Aggiungere MagicAjaxModule in web.config

2) inserimento di determinate aree della pagina nel controllo "AjaxPanel"

1) aggiungere un HttpHandler

2)Marcare ogni metodo web come <Ajax.AjaxMethod()>

Utilizzo dei controlli Anthem 1) Componente Script Manager programmabile in maniera dichiarativa

2) inserimento di determinate aree della pagina nel controllo "UpdatePanel"

Il benchmark

Come supporto alla scelta della soluzione più adeguata ho messo sul banco di prova tre dei framework citati, sottoponendoli ad un "test di Tracing". Ho calcolato il tempo impiegato nel caricare il GridView ed il DetailView.

Il tracing che ho utilizzato è 'fatto in casa' perché i componenti Ajax che abbiamo preso in esame intercettano il postback e non lo rendono disponibile al Tracing implementato nativamente da .NET 2.0

Naturalmente è un test solo indicativo perché non calcola il volume dei dati manipolato dall'applicazione, la complessità totale delle pagine etc.

Il test è stato effettuato con Internet Explorer 7 su Windows XP Pro Services Pack 2, Server IIS 6 ed il carico di lavoro era medio.

Anthem.net

Nei tre tentativi effettuati Anthem.net mediamente impiega 30/40 ms per caricare il GridView ed il DetailsView (vedi immagini).

Rispetto alla versione senza Ajax l'incremento è notevole è generalmente il componente si rivela non velocissimo, nel primo test ad esempio il caricamento ha impiegato più di un secondo.

ComfortAsp

Questo componente impiega circa 200 ms per caricare risultando il più lento tra quelli presi in esame e non viene supportato il tipico Tracing di Asp.net (vedi immagini).

MagicAjax

Non mi è stato possibile scrivere il tipico esempio nel quale un bottone popola il GridView che, ha sua volta, popola il DetailsView perché il postback Ajax viene perso quando viene premuto il link Select del GridView.

Questo componente si è rivelato il più veloce di tutti impiegando circa 20 ms (vedi immagini).

Ti consigliamo anche