• Raffaele Fanizzi su LinkedIn

Archives

Archives / 2011 / novembre
  • WPC 2011: WinRT e Cloud

    E' ormai il terzo anno di fila che frequento il WPC 2011: da quando il mio ex responsabile me lo fece conoscere nell'apparentemente vicino, ma incredibilmente lontano 2008, ho fatto di tutto per convincere, dapprima i miei datori di lavoro, ed oggi i miei soci, che partecipare a quest'evento è importante.

    Non è importante perché ciò di cui si parla al WPC è impossibile apprendere in altro modo, anzi mi è capitato più di una volta di seguire sessioni i cui contenuti mi erano già noti anche al 90%, ma è importante perché si tratta di un full immersion formativo e di confronto con altri professionisti del settore che, sia per mancanza di tempo, che di opportunità, è a dir poco impossibile replicare. Insomma, pensateci bene: quante volte vi è capitato di ascoltare per tre giorni di fila sessioni tecniche dalla mattina alla sera? Se escludiamo i pochi di voi che hanno avuto la fortuna di fare qualche corso di formazione, probabilmente la risposta è mai.

    Volendo fare un sunto degli argomenti trattati in questo WPC, posso dire che il 2012 è sicuramente l'anno del cloud e di Windows 8, un anno ricco di novità quindi, sia per quanto concerne lo sviluppo lato server, che lato client.

    Lato server sono ormai parecchi mesi che gli addetti al settore avvertono che la direzione intrapresa è quella del cloud e ne è una prova anche la nascita di diversi provider di servizi di cloud computing, non necessariamente legate al mondo Microsoft. E' chiaro che per chi, come il sottoscritto, si è specializzato nelle tecnologie Microsoft, Windows Azure rappresenta la naturale piattaforma di riferimento ed è curioso vedere come le cose stiano evolvendo rapidamente: un anno fa Windows Azure era quasi un'entità astratta, oggi c'è un SDK maturo ed un'integrazione con Visual Studio 2010 davvero notevole.

    Oltre a Windows Azure, ho seguito alcune sessioni anche sullo sviluppo lato client e, in particolare, su HTML5 e WinRT. Può sembrare curioso che io, che ho tenuto una sessione su HTML5 al Workshop Future Development, ne vada a seguire altre, ma nel campo dell'informatica, al di là degli appellativi attribuiti e/o guadagnati (junion, senior, technical lead, ecc....), non bisogna mai perdere l'umiltà e la voglia di apprendere e confrontarsi. Ed è proprio a tal proposito che vi racconto l'impressione che ho avuto seguendo le sessioni su WinRT e HTML5.

    Osservando le reazioni delle persone e discutendo con alcuni miei collegi ed amici, penso che si sia creata parecchia confusione in merito a questi due argomenti. Alcuni pensano che .NET sia destinato al macero e che HTML5 rappresenti il futuro dello sviluppo per Windows 8, beh non è così e vi invito a leggere con attenzione la seguente frase.

    WinRT è un'API nativa implementata in Windows 8 attraverso la quale è possibile sviluppare applicazioni Metro Style utilizzando come linguaggio di programmazione C++, C#, VB.NET e javascript e come linguaggio per la definizione della UI HTML5 e XAML.

    Ho evidenziato la frase precedente perché mettere in risalto l'errore che commettono coloro che accostano WinRT a HTML5 come modello di programmazione primario. In particolare mi permetto di sottolineare i seguenti aspetti

    • WinRT nasce per lo sviluppo di applicazioni Metro Style, quelle che, quindi, saranno accessibili dall'interfaccia Metro introdotta da Windows Phone e che sarà adottata anche in Windows 8. Quest'ultimo, tuttavia, consente di utilizzare anche la classica interfaccia di Explorer il che significa che si possono continuare a sviluppare applicazioni "vecchia maniera" senza problemi
    • Le applicazioni Metro Style sono simili alle App dei dispositivi mobile: sono installabili solo mediante il Market Place, funzionano in una sandbox e nascono con l'obiettivo di facilitare l'uso di Windows specie su dispositivi touch come i tablet
    • Programmare usando HTML5 e Javascript con le API WinRT, cioè per sviluppare applicazioni Metro Style, non consente nel modo più assoluto di poter riutilizzare lo stesso codice sia di markup, che javascript per fare un'applicazione web. Nel momento in cui si accede alle librerie WinRT (e lo si deve fare per forza perché altrimenti non si sta sviluppando un'applicazione Metro Style) l'applicazione risultante resta confinata al mondo WinRT
    • Analogamente all'accoppiata HTML5/javascript, programmare usando C++/C#/VB.NET e XAML non significa avere la medesima applicazione disponibile, sia in versione Metro Style, che classica perché cambia il target di compilazione e cambiano i namespace di moltissime classi (ad esempio quelle della UI rispetto a WPF), oltre al fatto che WinRT espone un subset del .NET Framework e non il framework completo

    .NET è, quindi, vivo e vegeto e nel 2012 uscirà la versione 4.5 che, tra le altre cose, porterà miglioramenti significativi proprio nello sviluppo di applicazioni WPF, oltre a tante altre novità che ne aumenteranno notevolmente la produttività (ad esempio la nuova gestione dei task asincroni).

    A mio parere con WinRT Microsoft ha semplicemente voluto mettere a disposizione del più ampio parco di programmatori possibile (C++, .NET e Javascript) uno strumento per lo sviluppo delle applicazioni Metro Style probabilmente con la speranza che in ambito desktop/notebook/tablet accada ciò a cui assistiamo ormai da qualche anno in ambito mobile: un market place, specie quello di Apple, con migliaia di applicazioni disponibili e migliaia di acquisti effettuati grazie ai bassi costi che mediante queste anno.

    Insomma, come avrete intuito, il tutto non ha la finalità di ottenere la pace nel mondo, ma le aspettative probabilmente sono quelle lecite di sempre: abbattimento della pirateria ed incremento dei profitti. E per noi programmatori cosa cambia? Fondamentalmente abbiamo l'occasione di sviluppare questo nuovo tipo di applicazioni, affrontando le sfide che esse ci porranno senza rinunciare al nostro linguaggio di programmazione preferito. Cosa possiamo chiedere di più? :-)

    altro

  • Vifani 3.0: si passa ad Orchard

    Prima o poi doveva accadere, era solo una questione di tempo. Chi mi conosce lo sa, ho un incontenibile passione per il mio lavoro, lo sviluppatore software, ma poiché in linea di principio è sempre bene allargare i propri orizzonti e non fossilizzarsi sempre sugli stessi aspetti, ho deciso di far evolvere il mio sito che, per la prima volta, invece di essere realizzato in toto dal sottoscritto, è basato su Orchard.

    Per chi non lo conoscesse Orchard è un CMS opensource basato su ASP.NET MVC 3 che sta riscutendo un discreto successo, sia perché è uno dei pochissimi CMS opensource basato su tecnologie .NET all'avanguardia, sia perché rispetto ad altri CMS analoghi (vedi DotNetNuke), non risulta essere legato ad un pesante passato fatto di plugin e moduli più o meno pesanti e basati su ASP.NET Web Form, ma utilizza le più recenti ed efficienti tecnologie web Microsoft. A dirla tutta mi risulta che DotNetNuke recentemente con la versione 6 si sia anch'esso svecchiato, ma, come spesso faccio, al faticosamente evoluto ho preferito scegliere il totalmente nuovo.

    Non posso chiaramente sottrarmi al classico confronto CMS vs "sito fatto a mano". Personalmente trovo che Orchard sia un CMS molto ordinato e preciso, ma è bene subito chiarire che l'idea secondo la quale affidarsi ad un CMS consenta di concentrarsi esclusivamente sui contenuti è una balla spaziale. Ho dedicato non poco tempo alla configurazione di Orchard, specie per quanto concerne l'aspetto grafico. Chiaramente esistono una serie di temi già preconfezionati, ma se uno ha un'idea ben precisa e vuole realizzarla, allora deve inevitabilmente mettere mano alle sue doti di programmatore o, se vogliamo, web designer per realizzare layout, stili CSS e quant'altro serva per dare corpo ad un tema di Orchard in maniera non molto dissimile da quanto ho già fatto con i miei siti web.

    In particolare la mia idea era quella di migrare ad Orchard conservando il tema precedente non perché mi faccia particolarmente impazzire, ma perché rappresentava per me una sfida. Nel complesso penso di esserci riuscito e di essere andato oltre: non solo ho fatto in modo di ottenere un tema il più possibile simile al prevedente sito, ma ho inoltre utilizzato alcune funzionalità tipiche del nuovo standard HTML5: i tag semantici e il border radius. Il tutto dovrebbe sia migliorare l'indicizzazione sui motori di ricerca (sperando che Google e company utilizzino effettivamente i tag semantici per meglio comprendere la struttura dei contenuti di un sito web), che ridurre la quantità di codice HTML presente nella pagina e, in particolare, tutta la sfilza di div e micro div necessari per realizzare bordi arrotondati alla vecchia maniera. Lo scotto da pagare è di aver definitivamente buttato nel cesso la retrocompatibilità con i browser più datati: Internet Explorer 6 e 7 potrebbero avere qualche problema nella visualizzazione della barra di navigazione e di ricerca, mentre tutti i browser che non supportano semplicemente il border radius dello standard CSS 3, vedranno le varie sezioni squadrate.

    Esistono chiaramente soluzioni per non imporsi tali limitazioni, ma innovare spesso significa anche tagliare i ponti col passato e questa è stata la mia scelta. Tra le nuove funzionalità del sito troverete il supporto all'open authentication e questo vi consentirà di accedere al mio sito ed utilizzare i vostri account di Facebook, Tweeter, ecc..., per autenticarvi e commentare il blog.

    altro