Articles, tips and tricks, news and other little things to do better our job!

venerdì, ottobre 16, 2009

Recensione Pro ASP.NET MVC Framework


Il libro, scritto da Steven Sanderson, si propone lo scopo di approfondire nei dettagli il nuovo framework Microsoft ASP.NET MVC.
MVC è un pattern che permette di disaccoppiare il codice tra il Model, il Controller e le View rendendo la nostra applicazione più facile da modificare e manutenere.

Come si legge nell'introduzione il libro è indirizzato a chi già conosce C# e ha lavorato con ASP.NET, o con tecnologie equivalenti quali PHP 5 o Ruby on rails.
Inoltre non vuole essere una mera guida ad ASP.NET MVC ma una guida approfondita evitando esempi perfetti per un libro ma inapplicabili in applicazioni reali.



Il libro è stato diviso in due parti per sedici capitoli.
La prima parte,composta da sei capitoli da leggere in successione, si occupa di far conoscere il pattern MVC, le sue applicazioni, i suoi pro e contro, l'implementazione Microsoft.
La seconda, di dieci capitoli, approfondisce e sviscera nel dettaglio ogni aspetto visto in carrellata nella prima parte.

Nel primo capitolo ci viene presentata,in chiave Microsoft, la storia della pagine web dinamica dall'inizio ad oggi e il perché si è arrivati a ASP.NET MVC.
Il secondo capitolo ci aiuta nella configurazione della macchina, nell'installazione di tutto il necessario per iniziare. Vi è un tutorial per creare la nostra prima applicazione, un form, che ci permette di capire la potenza e la velocità di sviluppo del nuovo framework. Interessante il fatto che nonostante MVC abbia dei template pronti l'autore faccia eliminare i file superflui per non confondere il lettore e "costringerlo" a focalizzarsi su ogni singolo passo.

Il capitolo tre si occupa dei requisiti necessari per utilizzare MVC partendo da una carrellata sull'evoluzione delle architetture web nel corso degli anni. Nel capitolo si parla anche delle novità introdotte in .NET 3.5 e C# 3.0 come LINQ e Lambda Expressions per passare all'inversione di controllo (IOC) con Castle e finire con i test automatici, presenti su tutto il codice del libro, con Nunit e Moq.

Con il capitolo quattro iniziamo a vedere davvero MVC con un'applicazione reale per il commercio elettronico. Come da premessa, il capitolo seppure introduttivo non è per nulla banale.
L'analisi e l'architettura dell'applicazione partono dalla definizione delle classi e delle funzioni che la nostra applicazione dovrà utilizzare, continuando alla struttura del database, alla configurazione di LinqToSql per il mapping tra le tabelle e le nostri classi, alla creazione delle viste, dei controller e di specifici percorsi di routing per utilizzarli.
Nella pagine con lo sfondo grigio abbiamo poi tutto il codice di test per essere sicuri che quanto previsto nell'analisi sia stato implementato correttamente.
Ci ritroviamo così nel capitolo cinque per dare alla nostra applicazione uno stile, una navigazione e un carrello ponendo l'accento al Model, la M di MVC. Chiudiamo la prima parte del libro con il sesto capitolo occupandoci della parte di autenticazione ed autorizzazione, modifica del catalogo su database e l'upload dell'immagine dei prodotti.

Questa prima parte seppur definita introduttiva è così completa da poter quasi essere un libro separato. La realizzazione degli esempi ci regala uno spaccato di come il modo di vedere un'applicazione WEB sia radicalmente cambiata negli ultimi anni ponendo al primo posto dell'architettura la fase di test e su questa vengono posti gli altri frammenti del puzzle. Rendere l'applicazione già pronta per essere estesa con dei plugin e l'interfacciamento al database tramite ORM sono un must.

Con il settimo capitolo entriamo nella seconda parte del libro, quella più tecnica. Qui troviamo una dettagliata spiegazione di come funziona ASP.NET MVC.
Viene sezionato un progetto standard cartella per cartella, vi è inoltre la spiegazione e la sequenza di esecuzione degli eventi che intercorrono da una richiesta fino alla visualizzazione della pagina.

L'ottavo capitolo tratta della gestione dell' url e conseguente routing. MVC utilizza l'url della pagina per sapere a quale controller dobbiamo lasciare l'elaborazione della richiesta e quali parametri sono stati passati alla stessa. L'autore ci mostra non solo come cambiare le regole di routing ma anche come creare nuove regole e nuovi gestori di routing nel caso in cui avessimo bisogno di personalizzare completamente il motore di MVC.
Il nono capitolo di conseguenza si occupa dei controller e delle action. Come detto i controller si occupano di ricevere i dati della richiesta, elaborarli e inviare i dati risultanti ad una view. In questa carrellata di possibilità vengono prese in considerazioni anche le opzioni aggiuntive come i filtri, la cache e le risposte di dati in formato JSON per le operazione AJAX.

Il capitolo dieci espone le diverse tecniche che MVC mette a disposizione per le View. Vengono analizzati pro e contro del codice inline, dei nuovi HTML Helpers, dei server controls, delle Partial views e di Html.RenderAction(). E se nessuna di queste dovesse soddisfare le nostre esigenze vediamo come implementare un motore di view custom, nello specifico un render XSLT, e come utilizzare altri motori di view (NVelocity, Brail, Spark, NHaml).

Arriviamo quindi a parlare di Model e Binding nel capitolo undici. L'autore dopo qualche pagina di esempio sul bind di oggetti custom e collezioni passa alla validazione del nostro modello dati sia lato client che lato server. Mostra come creare un form multistep (wizard) implementando anche un captcha e un sistema di anti-tampering.

Il capitolo dodici riprende in parte il capitolo dieci per parlarci di Ajax e Javascript. Nel capitolo si fa uso di JQuery per gestire dati in formato JSON e XML oltre al supporto nativo per AJAX incluso nel framework.

In un libro così completo non poteva mancare un capitolo, il tredicesimo, sulla sicurezza. Il capitolo mostra sia le tecniche di attacco che quelle di difesa per testare la sicurezza delle nostre applicazioni e per meglio difenderle. Gli esempi sono chiari e possono essere applicate a qualsiasi applicazione esistente sia esso MVC o meno.

Una volta finito il nostro lavoro non ci resta che pubblicarlo. Il capitolo quattordici ci guida alla diverse impostazione per i diversi IIS a nostra disposizione.
Nel capitolo quindici ci viene ricordato che MVC è comunque basato su ASP.NET e quindi possiamo continuare ad usare tutte le classi messe a disposizione da quest'ultimo. Rivediamo quindi le membership per l'autenticazione e l'autorizzazione, i cookie, la cache, le performance con i trace, l'internalizzazione etc..
Chiudiamo con il capitolo sedici facendo convivere ASP.NET classico, basato su WebForm, con ASP.NET MVC con uno sguardo al porting di applicazioni preesistenti al nuovo framework di sviluppo.

Il libro appare ben rilegato e adatto a farci compagnia sulla scrivania per essere consultato spesso senza problemi, è inoltre presente un indice analitico chiaro e di facile consultazione.
Fin dalle prime battute se ne comprende lo spessore. Non ho trovato un solo capitolo in cui qualcosa sia data per scontata, per questo vengono presi in esame un alto numero di possibile migliorie, domande ed obiezioni. Trovo molto proficuo, nel modo di esporre il contenuto, l'assenza di prese di posizione rigide sostituite con analisi chiare e motivate dei possibili modi di procedere, criticando le cose che non funzionano quando presenti, lasciando così al lettore la completa libertà di scelta.

1 commenti:

cevugown 8:24 AM  

Your site article is very intersting as well as fanstic,at the same time your blog theme is exclusive and ideal,great job.To your success.

cialis

Cerca nel blog

Caricamento in corso...

About This Blog

Mauro Bennici è Software Architect specializzato in .NET.

Back to TOP