Paolo Pialorsi

SOA, Workflow Foundation (WF), Windows Communication Foundation (WCF) e le Architetture Distribuite

News

Archives

September 2011 - Posts

SingleWsdl in WCF 4.5

Questa mi era sfuggita … fino ad ora:

image

con WCF 4.5 hanno reso disponibile il WSDL in un file unico, come opzione. Si tratta di una modifica semplice ma importante, per andare a supportare meglio l’interoperabilità con piattaforme un po’ “rigide” (ad es. PHP) dove un WSDL su più file, benché tecnicamente valido e compatibile con WS-I BP 1.1a, non era supportato. Ottimo!

Blue Screen of Death in Windows 8 :-)

Tra le tante novità Smile c’è anche un nuovo BSOD. Sto provando ad usare una VM con VmWare 8 e ho messo i VmWare tools… è una preview… ci sta che i driver di VmWare non siano ancora “compatibili” però il BSOD è veramente carino!

image

La cosa importante da notare è che Windows 8 ha un sistema di restore che mi aiuta a risolvere il problema:

image

e che alla fine la mia VM è ritornata funzionante Smile.

Build Windows Conference 2011: prime impressioni

Ieri c’è stato il primo giorno della Build Conference 2011. Ho deciso di “somatizzare” le novità e scrivere un unico post riepilogativo oggi, dopo averci dormito e riflettuto sopra, anziché buttarmi a caldo sulle novità. Avremo poi modo di ragionarci insieme a brevissimo tramite gli eventi e le attività che con DevLeap andremo ad organizzare.

Le notizie più importanti sono:

  • Annuncio e presentazione del nuovo Windows 8: si sapeva e tutti lo aspettavano. Si tratta di una evoluzione veramente importante del sistema operativo. Le novità introdotte sono molte e non si può certo parlare di un refresh di Windows 7. Indubbiamente è un tentativo, che secondo me riuscirà nel suo intento, di recuperare una fetta di mercato che stava un po’ scappando. Parlo del mercato consumer, dove iPad, iPhone, Android, ecc. stavano iniziando a diventare “fastidiosi”. Di fatto è un salto avanti, rispetto a questi sistemi “concorrenti”, in termini di interfaccia, idee, fluidità e rapidità di utilizzo. Entro due o tre anni il touch sarà ovunque e forse il mouse sarà meno utile. L’interfaccia di Windows 8 è stata pensata per far sopravvivere il mouse, ma dare priorità all’approccio touch. Nella keynote hanno spiegato i ragionamenti e gli studi fatti per arrivare a questo risultato. Grazie al tablet con la beta di Windows 8 che ci hanno dato, abbiamo potuto sperimentare che lo sforzo è stato davvero enorme, ma il risultato è ottimo. Le novità del sistema operativo sono molte. A partire dall’interfaccia di start completamente rivista, basata sui tales, come in Windows Phone, con le charms a destra dello schermo per i comandi di sistema, sempre accessibili, e le funzioni dei singoli app in alto e in basso. La possibilità di avere applicazioni “full-screen” per la massima fruibilità dei contenuti e le guideline Metro-style per aiutarci (come sviluppatori) a produrre software consistenti e usabili in termini di interfaccia. Non ha senso che stia qua a fare l’elenco delle nuove funzionalità (la keynote è visibile in streaming su www.buildwindows.com), ma ha senso sottolineare che la svolta è davvero importante.
  • Annuncio di Windows Runtime: questa è la novità più importante per chi come me è sviluppatore. Di fatto hanno rivisto il modello architetturale dello sviluppo su Windows 8. Sarà possibile sviluppare, oltre alle “solite” applicazioni che ovviamente per compatibilità gireranno tutte anche su Windows 8, nuove App secondo una nuova filosofia di sviluppo. L’interfaccia potrà essere definita con codice XAML o HTML5/CSS. Il controller dell’interfaccia potrà essere scritto in C/C++ nel caso siano necessarie alte prestazioni (gaming o similari), oppure in C#/VB nel caso si vogliano utilizzare linguaggi .NET. In entrambi i casi il presentation sarà XAML. Nel caso invece di HTML5/CSS si potrà scrivere il codice in JavaScript. In tutti i casi si sfrutteranno delle nuove librerie WinRT (i.e. Windows Runtime) che offrono a C/C++, C#/VB, JavaScript un set di funzioni comuni e basate su una infrastruttura che sarà la stessa. WinRT è scritto in codice nativo e fortemente ottimizzato per supportare al meglio le applicazioni. Le funzionalità chiave offerte da WinRT sono in ottica di:
    • Communication & Media: servizi di comunicazione con l’esterno in ottica di App always connected e tra le App stesse, con un modello a contratti che vede WinRT come tramite della comunicazione tra N App che tra loro non si conoscono ma sfruttano WinRT come collante.
    • Graphics & Media: servizi di interfaccia e gestione della grafica e del multimedia pensati per supportare gli sviluppatori nel “riuso” di interfacce comuni.
    • Devices & Printing: classi di supporto alla interazione con device quali stampanti, videocamere, sensori vari di posizione, rotazione, ecc.

In questo modo gli sviluppatori C++ non dovranno più sudare sangue Smile per scrivere la UI e potranno sfruttare al massimo le prestazioni del loro linguaggio, dove serve. Gli sviluppatori HTML/CSS di oggi potranno diventare sviluppatori Windows 8 ad un costo contenuto di apprendimento, giusto quello di apprendere come chiamare le nuove librerire. Gli sviluppatori .NET di oggi dovranno solo imparare come usare le nuove librerie di WinRT e poi il resto del modello di programmazione resta uguale. Anche le applicazioni esisteni potranno essere “facilmente” convertite, se presentano un’architettura ben fatta e pulita basterà rivedere lo strato di presentation mantenendo il backend inalterato.

  • Annuncio di Windows Store: anche questa è una novità attesa ma importante. Con Windows 8 le App che andremo a sviluppare potranno essere vendute tramite uno store specifico che aprirà letteralmente un nuovo mercato e un nuovo business. Ci sono milioni di utenti che usano Windows e ci saranno milioni di potenziali acquirenti per le nostre applicazioni. La vetrina tramite cui venderle sarà il Windows Store. Il paradigma di utilizzo è il “solito” ma il potenziale è enorme.
  • Annuncio di Visual Studio 11 e Blend 5: per supportare WinRT e lo sviluppo in ottica di Windows 8 avremo anche una nuova versione di Visual Studio. Qui troveremo numerosi template già pronti, nei vari linguaggi, per sviluppare più in fretta le App. L’investimento da parte di Microsoft è consistente perché i tre mondi (C/C++, C#/VB, HTML5/CSS) sono stati equiparati e i template di codice sono presenti per tutti e tre gli ambienti indifferentemente. Inoltre a corollario ci sarà Blend 5 per il design di fino delle interfacce, anche qui sia XAML che HTML5/CSS. Finito di sviluppare una App con VS11 potremo direttamente pubblicarla sul Windows Store sfruttando apposite e nuove funzionalità di VS11 e un nuovo modello di packaging dei setup, pensato in ottica di manifest XML e non più di MSI, ClickOnce o altro.

Ci sono certamente mille altre novità (Windows Server 8, il supporto per processori ARM in .NET, i nuovi BIOS EUFI, Hyper-V Client su Windows 8, il nuovo Task Manager, il nuovo paradigma di programmazione asincrona, le App “sospendibili”, ecc.), ma queste sono quelle che mi hanno lasciato “il segno”. E da qui voglio partire con qualche considerazione e osservazione:

  • Ormai .NET framework, quello che noi tutti conosciamo, resterà come strumento per sviluppare il backend e gli application server. I servizi WCF/REST restano come sono e sfruttano tutto l’attuale potenziale. Tra le tante cose è stato annunciato anche Windows 8 Server, che servirà proprio per ospitare con un sistema pensato in ottica IaaS gli application server che andremo a sviluppare.
  • Lato presentation il modello è stato rivisto, la svolta è importante e si allarga il bacino di potenziale utenza. Resta da capire come reagiranno determinati settori. Mi viene in mente chi sviluppa il “software gestionale” - che spesso sono nostri clienti – e deve ora decidere se sia meglio tenere un modello applicativo “classico” basato su MDI, menu, ribbon, finestre modali. Oppure se non sia meglio fare un “FORMAT C:\” Smile della sola interfaccia utente, se il backend è già pensato bene, e riscrivere la UI dopo averla ripensata in ottica Metro-style. Forse ha senso rivedere almeno le interfacce per la forza vendita e/o per i clienti finali, perché certamente potrebbero fruire delle novità di Windows 8. Magari invece in prima istanza il modulo di inserimento fatture – tanto per fare un esempio - può restare in stile “old” … oppure qualcuno potrebbe scommettere completamente su Windows 8 e fare il grande salto di tutto. In fin dei conti anche il passaggio da main-frame a PC è stato “duro” ma c’è stato. Fra un po’ di anni gli utenti saranno quelli che oggi usano un device touch (iPhone, Android, WP7, iPad, ecc.) e quindi per loro sarà naturale usare le dita e non il mouse, forse anche per inserire una fattura.
  • Mi chiedo se Microsoft stessa ha intenzione di rivedere Office 20xx in quest’ottica, rifacendola in Metro-style, oppure se anche loro in realtà ci andranno cauti.
  • Mi chiedo se SharePoint 20xx – di cui vedremo forse qualcosa fra 20/30gg sempre ad Anaheim (anche se non ci conto più di tanto di vedere già le prime beta) - avrà una UI in ottica Metro-style e Windows 8, oppure se anche lì dovremo uscire dal modello per andare in browsing con IE10 e basta. In ogni caso si apre certamente un mercato per sviluppare UI “on-top of SharePoint” basate su WinRT e con interfaccia Metro-style per fornire a utenti finali i contenuti di SharePoint 2010 o superiore, sfruttando i servizi WCF/REST e il Client Object Model di SP2010.
  • In generale in un mondo che ragiona a servizi potrebbe aver senso sviluppare il “guscio” che li presenta come App e il resto – il backend – come insieme di servizi in hosting su Azure.
  • In tutto questo credo che Microsoft abbia giocato molto bene le sue carte, perché offrirà Azure da un lato e il Windows Store dall’altro, di fatto facendo il mercato, traendo profitto da entrambi i lati dell’architettura (non sono noti i modelli di business del Windows Store, ma sono intuibili …) e offrendo una piattaforma matura e pronta per il futuro.

Adesso tocca a noi che ci occupiamo di tecnologia e innovazione tecnologica … diamoci dentro e facciamo sì che tutte queste novità diventino fonte di lavoro e innovazione anche per noi. La strada è segnata … dobbiamo solo percorrerla.

Se avete letto fin qui … complimenti per la pazienza Smile … ma l’evento è importante e merita delle riflessioni adeguate.

Build Conference: da domani la verità!

Sto per imbarcarmi alla volta di Anaheim per seguire, insieme a RoB, la Build Windows Conference.

Domattina in keynote scopriremo le novità più importanti che ci attendono per i prossimi anni. I rumors parlano di (tutto teorico, nulla di confermato/confermabile):

  • Nuova versione di .NET Framework (forse la 5.0?) che “rimane” service-side
  • Silverlight 5.0 (vabbé questo si sa) che va avanti per la sua strada in ottica di supporto a Windows Phone e forse al marketplace per Windows 8
  • Nuovo ambiente di sviluppo per il presentation layer (aka Jupiter) per realizzare le nuove UI markup based e orientate sia a Windows Phone che a Windows 8
  • Ovviamente … presentazione di Windows 8 e delle sue nuove funzionalità multi-touch-oriented e della nuova user experience che introduce

Mi aspetto comunque qualcosa di molto importante anche sul fronte hardware e/o dell’integrazione con l’hardware. Vediamo se – di nuovo – Microsoft riuscirà a stupirmi come ha fatto nel 2000 con NGW (Next Generation Windows –> .NET 1.0)

Da domani stiamo in contatto, abbiamo in arrivo anche noi di DevLeap delle novità importanti … ci risentiamo a breve!

Posted: Sep 12 2011, 07:02 AM by paolo | with 2 comment(s)
Filed under: ,
Agile Alliance board of Directors a Roma

Segnalo che settimana prossima a Roma ci sarà un incontro molto interessante sul tema dell'Agile Development: http://www.beyondagile.com/agile-alliance-in-rome/ .
Se siete in zona ... fateci un salto!

Posted: Sep 08 2011, 08:42 AM by paolo | with no comments
Filed under: