Il blog di Sandro Rizzetto

Nasce Rizzetto.com 2.0

 

Il precedente layout del sito Il capostipite di questo sito nasce nel 1996 appoggiato ad un sottodominio (sandrorizzetto.center.it) e con una grafica a dir poco oscena (nera come andava di moda a quei tempi). Ma è a metà del 1997, quando comincio ad occuparmi di internet al 100%, che nasce il vero e proprio www.rizzetto.com.

All’inizio era quasi interamente un sito statico html, poi si è trasformato nella mia palestra di training per i primi passi nel mondo della programmazione con la tecnologia ASP (Active Server Pages) e dei database Ms-Sql Server.Nel 2002/2003 ha avuto un restyling grafico (dal blu al grigio/acciaio stile Itunes) e tutte le pagine ASP 3.0 sono state riscritte in ASP.NET. Dopo qualche anno al sito si è aggiunto un blog (per testare la piattaforma Community Server) e una Intranet, con qualche pagina pubblica, in ASP.NET 2.0 e AJAX.

La struttura di base (fondata sui vetusti frames) però rimaneva sempre quella, ed ecco che a distanza di 10 anni, a fine 2007 ho deciso di riscriverlo completamente da zero.

Il giorno stesso dell’uscita della RTM di Visual Studio 2008 e del .Net Framework 3.5 ( il 19 novembre) ho piantato la “prima pietra” (ovvero File, New Project…) e dopo qualche dozzina di sere/notti e di week end, ecco il risultato.

Il sito ovviamente è scritto con le moderne tecnologie HTML tableless e con ampio uso di DIV e CSS e il template doveva rispettare alcuni miei desiderata ben precisi (menu orizzontali e verticali, un posto per i google ads, ampio spazio per le foto, ecc).

Trovato un layout che mi soddisfaceva (come grafico sono un cane e mai mi sarei messo lì a inventarne uno), sono passato alla (ri)modellazione del database (in Visio Enterprise) con la nomenclatura rigida che uso da qualche anno e successivamente allo sviluppo dei 3 layer (Entities, Data Access Layer e Business Layer) che da sempre compongono l’architettura n-tier dei miei progetti.

Il modello del DB in Visio E’ vero che in molti casi è meglio partire dalla modellazione del Domain Model e poi da questo passare al database che lo persiste, ma in questo caso trattandosi solo di una quarantina di tabelle (tra l’altro la maggior parte già esistenti) e con pochi join tra di loro, secondo me ha senso anche partire dal DB.

La grossa novità ha riguardato il DAL (Data Access Layer) che in questo caso è stato modellato con LINQ e più precisamente con il suo flavour “Linq to Sql” (il Db attualmente è ospitato su MS-Sql Server 2005). Sinceramente Linq potrebbe essere usato direttamente nel BIZ (Business Layer) o addirittura nella UI (Presentation Layer), magari con il nuovo controllo asp.net LinqDataSource, ma non sono un grande fan della programmazione dichiarativa dentro la pagina e preferisco dividere bene i layer applicativi ed avere poche righe nel code-behind della pagina aspx per fare il binding degli oggetti.

Il Domain model delle Business Entities Tutta la UI si basa fortemente su MasterPage (nidificate a 2 livellI) e per quanto riguarda la struttura di navigazione e gli elementi ricorrenti di una pagina (layout, titolo, meta description e keyword, immagine fotografica dello header sia fissa che random, ecc) ho basato tutto sul provider di Sitemap. Ho infatti esteso gli attributi di ogni nodo <sitemapNode> con quelli che mi interessavano e una classe base, da cui poi derivano tutte le pagine, carica il nodo della pagina corrente e leggendo gli attributi in più li usa scrivendo i meta, settando il css giusto, l’immagine di header, ecc. Ovviamente il file della sitemap viene cachato con una CacheDependency che si basa sul cambiamento del file.

Uno dei grossi problemi è stato poi il mantenimento dei vecchi url per non perdere posizionamenti nei motori di ricerca. I nuovi url sono quasi tutti “parlanti” (per ottimizzazioni di tipo SEO) e il reindirizzamento di tipo “301 Permanently Moved” è stato effettuato con un httpHandler che legge un file Xml (cachato anch’esso ovviamente) che contiene le coppie vecchio-url -> nuovo-url.

Infine l’intranet per gestire le varie tabelle (news, film visti, guestbook, ecc): essendo la vecchia intranet già basata su ASP.NET 2.0 e MasterPage si è trattato di cambiare poche righe dei contentPlaceHolder e cambiare qualche Theme & Skin per uniformare il look & feel. Per le nuove pagine che prima non esistevano ho usato e sperimentato il nuovo template “ASP.NET Dynamic Data Support” delle ASP.NET 3.5 Extensions CTP.

Ecco qui… tanti paroloni e acronomi per un semplice sito; ma alla fine la cosa più importante è che mi sono divertito moltissimo !

Aggiungi Commento

Copyright © 1997-2017 Sandro Rizzetto | All Rights Reserved | Riproduzione delle fotografie vietata | Powered by me