• Raffaele Fanizzi su LinkedIn

Archives

Archives / 2011 / gennaio
  • DotNetSide Community Tour @ SMAU Bari 2011

    Il prossimo 10 Febbraio, in collaborazione con Microsoft, DotNetSide terrà l'evento Community Tour @ SMAU Bari 2011, nel quale sarò presente anche io in veste di speaker.

    L'evento si terrà presso la Fiera del Levante e verranno trattati i seguenti argomenti: ASP.NET MVC 3, WCF, Windows Phone 7, Silverlight e ADO.NET Entity Framework. E' una bella occasione per apprendere, discutere e confrontarsi con altri professionisti del settore e pertanto vi invito tutti a partecipare attivamente.

    Per maggiori informazioni vi invito a visitare la pagina dedicata della community DotNetSide.

    altro

  • Installare Microsoft Forefront Security 2010

    Anche se da sempre dal punto di vista professionale ho lavorato nel mondo dello sviluppo software, non ho mai disprezzato la controparte sistemistica. Anzi, come ogni buon informatico che si rispetti, ho la mia cerchia di amici e parenti che sovente mi chiedono aiuto e consigli. Qualche volta mi capita anche di assemblare qualche PC, un'attività che trovo sempre interessante perché mi consente di mantenermi al passo con i tempi anche dal punto di vista hardware.

    E' capitato, tuttavia, che nella mia azienda, in questi giorni si è deciso di affidare la sicurezza al nuovo prodotto Microsoft Forefront Security 2010. Molti potrebbero pensare che quest'attività sia semplice e banale, magari basata su un classico setup del tipo "Avanti, Avanti, Avanti.... Fine". Beh ho potuto constatare con mano che non sempre è così e che il lavoro del sistemista sia un lavoro che meriti moltissimo rispetto, se non altro per l'enorme pazienza di cui bisogna armarsi quando ci si agginge a fare un'operazione come quella che ho fatto io.

    Per installare Forefront Security 2010 è necessario, infatti, installare prima Windows Update Services e System Center Configuration Manager, due strumenti che consentono di centralizzare gli aggiornamenti di Windows all'interno di un dominio e di gestire tutta una serie di operazioni tra le quali, la più importante per chi, come me, voleva installare Forefront Security 2010, deployare sulle macchine appartenenti al dominio un'applicazione.

    Inutile dirvi che c'è da perdersi nell'elenco di prerequisiti dei prerequisiti che sono necessari, oltre a tutta una serie di operazioni più o meno ufficiali, ma di fondamentale importanza al fine di raggiungere il risultato atteso.

    Morale della favola: dopo tre giorni di duro lavoro tra Group Policy, aggiornamenti, impostazioni varie, regole del firewall e quant'altro, e dopo che un mio carissimo collega, in un attimo di smarrimento, mi ha ricordato con una domanda retorica ("ma non doveve installare solo un antivirus?") quale era il mio obiettivo, sono riuscito a raggiungerlo :-)

    La più grande soddisfazione l'ho ottenuta a seguito della prima scansione schedulata sui client: due virus trovati, uno dei quali pensavamo di essere riusciti a debellare completamente nel corso dell'estate :-D

    altro

  • Silverlight e la sua asincronicità

    Avete mai lavorato ad un progetto Silverlight con un backend fatto con il .NET Framework 4? Se lo avete fatto, vi renderete conto che una volta abituati a tutta una serie di comodità come, ad esempio, Parallel FX, ma anche semplici classi per la compressione degli stream, vorrete ben presto convincere il responsabile del progetto ad abbandonare l'idea di un sistema client fatto in Silverlight per ripiegare su WPF.

    La realtà è che noi siamo informatici e che il nostro lavoro è per buona parte quello di risolvere problemi. Possiamo scegliere di farlo ad alto livello, risolvendo un problema ad un cliente, o a basso livello, risolvendo un problema di programmazione, ma in fin dei conti sempre di ideare/trovare/scopiazzare soluzioni stiamo parlando.

    Nella fattispecie sto trovando molto stimolante l'ultimo progetto a cui sto lavorando, perché lavorare con Silverlight mi ha posto di fronte sfide nuove e la ricerca delle soluzioni non è mai stata noiosa e banale. Vi faccio qualche esempio di una serie di situazioni che mi hanno coinvolto.

    Se sviluppate un'applicazione business in Silverlight, prima o poi vi scontrerete con l'accesso ai dati e vi renderete ben conto che ovviamente non esiste uno straccio di ADO.NET. Questo può essere un grande problema per chi è abituato a lavorare a botte di DataSet e DataTable, ma oggi esistono gli strumenti per andare oltre ADO.NET grazie ad ORM come l'Entity Framework 4 e al supporto dei POCO.

    Chiaramente l'accesso ai dati da parte di Silverlight non viene fatto direttamente mediante connessione a database, ma solo tramite WCF. Poco male diranno i molti che conoscono WCF e che sanno bene quanto è semplice esporre servizi (e quindi dati) con questa potente API.

    Ciò che però molti ignorano è che utilizzare WCF da Silverlight non è esattamente uguale ad usarlo da altre applicazioni .NET per una semplicissima ragione: Silverlight richiede necessariamente l'uso di chiamate asincrone.

    I pattern asincroni sono ben noti fin dalle prime versioni del .NET Framework, ma diciamoci la verità: ragionare e progettare un sistema in modo asincrono non viene naturale quanto lo è farlo in modo sincrono e, pertanto, la realtà è che pochissimi hanno utilizzato questo tipo di pattern nella progettazione di un'applicazione standard.

    Inizialmente ho provato a forzare il sistema tentando di de-asincronizzare le chiamate utilizzando un AutoResetEvent, un trucco meschino devo ammetterlo, che tra l'altro è fallito miseramente perché se mettete in attesa il thread della UI, bloccate automaticamente la vostra applicazione e non riceverete neanche la vostra response dal servizio WCF.

    A questo punto ho preso la decisione di fermarmi, di sedermi a tavolino e di riprogettare le componenti client utilizzando pattern asincroni a go go. Bene, sapete che vi dico? Che sono molto soddisfatto del risultato che sto raggiungendo insieme al mio team di sviluppo. Non è semplice effettuare questo cambio di prospettiva, ma è bastato fare di necessità virtù e lavorare sodo per ottenere risultati più che ragguardevoli.

    Il consiglio che posso dare a tutti coloro che hanno riscontrato difficoltà di questo tipo con Silverlight, è di non arrendervi, ma anzi di cogliere l'occasione per approfondire approcci meno canonici ai nostri problemi.

    altro