do more with less
news, esperienze, esempi da condividere e qualcosa su di me

domenica 31 marzo 2013

Utilizzare Windows Phone 8 SDK con Parallels 8 Desktop per Mac

Grazie all’aiuto di Andrea Dottor e del team di supporto di Parallels ora ho un quadro completo della configurazione richiesta per poter usare in modo proficuo il Windows Phone 8 SDK in Parallels. Ecco gli step da seguire.

1. Configurare la Virtual Machine

Prima di iniziare a installare l’SDK è necessario configurare la macchina virtuale. Farlo come primo passo ha il vantaggio di ridurre i problemi di configurazione successivi all’installazione dell’SDK.

Avviare la schermata di configurazione della macchina virtuale e selezionare Optimization dal tab Options. Assicurarsi che i checkbox Enable Adaptative Hypervisor e Nested Virtualization siano selezionati.

Parallels-Nested

Spostarsi nel tab Hardware e selezionare la voce Video. Qui impostate l’opzione 3D Acceleration a Disable. Ora siete in grado di avviare la macchina virtuale senza eseguire nessuna altra impostazione anche se diversamente specificato dalla seguente KB 115211 di Parallels.

Parallels-3D

2. Attivare la funzionalità Hyper-V in Windows 8

Avviare il pannello di controllo di Windows 8 e selezionare la voce Programs

image

Ora selezionare la voce Turn Windows features on or off

image

Dalle funzionalita disponibili assicurarsi di selezionare: Hyper-V; Hyper-V Management Tools e Hyper-V Platform come indicato in figura e quindi confermare cliccando sul pulsante OK.

image

Attendere l’installazione delle funzionalità e riavviare il sistema operativo quando richiesto.

3. Installare il Windows Phone 8 SDK

Ora non resta che installare l’SDK per Windows Phone 8 che potete scaricare da qui.

6663_wp8_yes_png-550x0

Seguite le istruzioni riportate (ci vuole un pò di tempo quindi armatevi di pazienza). Al termine dell’installazione e dopo il riavvio richiesto sarà possibile utilizzare l’emulatore per sviluppare le vostre applicazioni per Windows Phone OS 7.1 e Windows Phone OS 8.0.

sabato 30 marzo 2013

Parallels Desktop 8 for Mac vs VMWare Fusion 5: questa volta un punto va a Fusion

Per chi come me utilizza un Mac anche per lo sviluppo in ambiente Microsoft, affidarsi a un buon virtualizzatore èWP8_Video_Issue_1 fondamentale per non perdere produttività rispetto a un computer reale. Ciò premesso, veniamo alla questione che mi ha portato a fare questo post. Da molti anni, dalla versione 3 per l’esattezza, io utilizzo Parallels per la virtualizzazione nei miei MacBook Pro. Ho ovviamente considerato anche VMWare Fusion, si dalla versione 1.0, ma ho sempre trovato Parallels Desktop for Mac più di un gradino avanti alla sua concorrenza. Purtroppo oggi ho dovuto ricredermi almeno per una specifica funzionalità che però mi sta seriamente facendo pensare di spostarmi verso Fusion. La differenza di prestazioni è legata alla virtualizzazione interna alla macchina virtuale nota in Paralles come Nested Virtualization. Fino a qualche mese fa non avevo avuto la necessità di attivare questa funzionalità ma poi, con l’arrivo del Windows Phone 8 SDK, le cose sono cambiate. L’SDK installa l’emulatore per Windows Phone 8 che altro non è che una virtual machine di Hyper-V. Di conseguenza si deve installare la funzionalità in Windows 8 e abilitare la virtualizzazione annidata di Parallels. Qui nascono i problemi. Facendolo ho degli effetti collaterali video come mostrato nell’immagine presente in questo post. Disturbi che rendono impossibile lo sviluppo oltre che l’uso delle altre funzionalitàWP8_Video_Issue_3 del sistema operativo. Questo non accade con VMWare Fusion che sembra supportare alla grande la nested virtualization. Quindi che fare? Al momento sto ancora decidendo. Se vi trovate anche voi in questa situazione ecco cosa potete fare:

Scelta 1: attendere una fix da Parallels

In questi giorni sto collaborando con il supporto tecnico di Parallels per risolvere il problema. Sono molto reattivi e disponibili e quindi credo che nel breve si possa avere una soluzione funzionante. Si può quindi decidere di aspettare la patch e, in caso si debba sviluppare per WP8, utilizzare un device fisico e lasciare stare l’emulatore.

Scelta 2: creare una VM solo per lo sviluppo per Windows Phone 8

Se, come me, avete già un bel numero di macchine virtuali per Parallels e non volete doverle rifarle (purtroppo la promessa conversione da Parallels a VMWare Fusion non funziona con VM di grandi dimensioni) potete installare Windows 8, i tool di sviluppo e l’SDK in una macchina virtuale dedicata allo sviluppo per WP8.

Scelta 3: passate a VMWare Fusion

Scelta drastica e forse non la migliore, almeno per chi ha molte macchine virtuali. In questo caso dovrete ricreare le VM che vi interessano e abbandonare Parallels.

Personalmente io attenderò gli esiti delle attività di indagine che sto facendo con Parallels prima di fare una scelta finale. Quindi per il momento opterò per la Scelta 2 o la Scelta 1. Poi, se Parallels non risolverà il problema, non mi resterà che la terza scelta.

giovedì 28 marzo 2013

Alla scoperta di scenari nuovi per le metodologie agile

Circa sei anni fa, documentandomi sulla metodologia SCRUM, mi sono imbattuto in alcune whitepaper che descrivevano come, questa metodologia, fosse stata applicata con successo anche in scenari estranei al mondo dell’ICT. Sono sempre stato attratto da questo aspetto e ho più volte cercato di propormi a realtà che necessitavano di un nuovo approccio per governale al meglio il loro business; estranee al mondo dello sviluppo software. Fino a qualche settimana fa, questi miei tentativi si sono sempre limitati a interessanti chiaccherate senza produrre un’applicazione concreta. Pare però che nel corso dei prossimi mesi, avrò la possibilità di tenere una sessione formativa in cui evidenzierò i risultati di un Proof Of Concept che sto realizzando per dimostrare come SCRUM e Team Foundation Server, possano essere utilizzati per pianificare e gestire processi diversi dallo sviluppo software.

Non appena il tutto si concretizzerà non mancherò di aggiornarvi.

Visual Studio 2012 Update 2 e i testing tools

Alcune novità riguardanti i testing tools saranno introdotte con l’Update 2 di Visual Studio 2012. Il video che segue offre una panoramica di queste novità che aprono a nuovi scenari di test sia verso applicazioni non Windows sia per il fatto che non sarà più necessario, per i tester, installare tool dedicati.

Illumishare per condividere con la luce

IllumiShare è un nuovo progetto di Microsoft research che permette a chiunque di condividere in remoto un oggetto fisico o digitale su qualsiasi superficie, sia che si tratti di un appunto scritto a mano sia che si tratti di una foto digitale. Il video che segue ne è una dimostrazione. Buona visione.

mercoledì 27 marzo 2013

Formazione per contagio o virale

Introdurre in una software house una nuova tecnologia porta con se alcune criticità che possono scoraggiare il management. Quello che in genere frena l’adozione di una nuova tecnologia è la curva di apprendimento (learning curve) a cui devono sottostare i membri del team di sviluppo. Una possibile tecnica per ridurre i costi sottointesi dalla learning curve è rappresentata dalla tecnica della formazione virale. Proviamo a chiarire il concetto con un esempio.

Ipotizziamo di trovarci davanti a un team di sviluppo composto da 9 membri con seniority differenti. Pensare di affrontare la formazione su tutto il team nel medesimo periodo genererebbe una paralissi del sistema produttivo dell’area di sviluppo. Per ovviare a questo si può applicare questa checklist:

image

  1. Individuare, nell’esempio ipotizzato, le 3 risorse con la maggior seniority e costituire un mini team interno al team di sviluppo principale;
  2. Utilizzando una metodologia (e.g. Scrum) affrontare la formazione suddividendola in interazione successive di dimensioni contenute (e.g. 10 gg lavorativi)
  3. Nella prima iterazione si può affrontare una formazione di tipo tradizionale finalizzata all’apprendimento teorico/pratico della nuova tecnologia da adottare.
  4. Nella seconda, ed eventualmente nella terza, utilizzare la formazione teorica acquisita per applicarla in un caso reale da implementare con la tecnica del training on the job. Lo scopo deve essere quello di realizzare un componente o una funzionalità rilasciabile al termine dell’iterazione. Questo stimola il mini team a produrre al meglio delle proprie possibilità massimizzando la formazione ricevuta nella precedente iterazione.
  5. Al termine della seconda iterazione, applicare gli eventuali correttivi formativi e metodologici necessari a migliorare la qualità dell’iterazione succesiva. Quindi procedere con la terza iterazione se prevista.
  6. Nella terza iterazione procedere come fatto nella seconda applicando gli eventuali correttivi identificati nello step precedente.
  7. Terminata la fase formativa del mini team si può procedere con l’applicazione della formazione “per contagio” o “virale”. Per farlo andranno costituiti, nell’ipotesi di questo esempio, 3 mini team composti ognuon da 3 persone. In ogni team deve essere presente uno dei membri del primo mini team, formato in precedenza, in modo da garantire il contagio formativo.

image

  1. Il membro “infetto” fungerà da formatore e tutor degli altri 2 membri per un numero di iterazioni da definire in base alla seniority dei 2 sviluppatori da formare. Minore sarà la seniority maggiore sarà il numero di iterazioni da eseguire per garantire il successo della formazione virale.
  2. La prima iterazione dei 3 mini team dovrà essere in parte teorico/pratica e in parte basata sul training on the job. In questa seconda parte il membro senior, già formato, dovrà prodigarsi come tutor per garantire che gli altri membri da formare colmino il loro gap formativo possibilmente senza tralasciare gli obiettivi di sviluppo previsti. Ricordo che l’inserimento degli obiettivi di sviluppo dell’iterazione nasce dalla necessità di tenere il team focalizzato su obiettivi reali che lo rendono più produttivo rispetto a sterili scenari formativi di tipo tradizionale.
  3. Nelle iterazioni successive si dovrà consolidare la formazione continuando con il training on the job producendo funzionalità o componenti che abbiano valore per il business attenuando così i costi formativi con il rilascio di elementi utilizzabili e “rivendibili”.

In questi anni di attività ho potuto provare con successo questo sistema in diversi team di dimensioni diverse e su tecnologie eterogenee. Il vantaggio percepito dal business è quello di una formazione più efficace in grado di rendere i membri del team produttivi in tempi più rapidi rispetto agli approcci tradizionali. In realtà i vantaggi sono dati da cosa viene prodotto nella fase di training on the job (cosa che cambia la percezione del management) e dal fatto che gli sviluppatori sono stimolati dagli obiettivi assimilando così meglio i nuovi concetti tecnologici.

Il tempo complessivo non cambia ma cambiano i risultati formativi che potremmo riassumere in:

  1. rilascio di valore per il business (percezione di maggior efficacia del sistema formativo);
  2. assimilazione delle tecnologie più rapida da parte dei membri del team .

Sinergie per combattere la crisi

Il bicchiere è mezzo pieno o mezzo vuoto? Per qualcuno è mezzo pieno e mi fa piacere affermare che sono tra quelli che lo vede così. In questo periodo sto collaborando con alcune aziende che hanno deciso di investire nel futuro cercando sinergie di sviluppo condiviso. In questo caso la crisi ha il pregio di far emergere quelle realtà guidate da chi sa guardare oltre al periodo depressivo; agendo e innovando con intelligenza.

I vantaggi, oltre alle scontate economie di scala, si manifestano nella condivisione di know how tecnologico, architetturale e gestionale in grado di generare soluzioni tali da garantire un livello di qualità superiore a quello generabile in periodi di elevato carico di lavoro. Assurdo? Direi di no. In questi periodi di crisi, sapere investire per il futuro, senza sprechi, condividendo il rischio imprenditoriale e sfruttando la conoscenza di tutti gli attori, produce soluzioni avanzate e ottimizzate che formeranno le fondamenta delle soluzioni software future.

Mi auguro vivamente che quanto innescato dalla collaborazione tra queste aziende continui e raggiunga il traguardo desiderato potendo così dimostrare la veridicità di quanto sostenuto in questo post e diventando, se possibile, un modello replicabile in altre realtà del settore ICT.

// Build / 2013 - ecco le date

La Microsoft Build Developer Conference 2013 ha ora una calendario definito. L’evento si terrà a San Francisco dal 26 al 28 giugno 2013. Con un post dedicato all’annuncio, Steve Guggenheimer, Microsoft's Corporate Vice President e Chief Evangelist, Developer & Platform Evangelism introduce l’evento che si presenta con un sito in linea con le tendenze del momento e che guida il visitatore attraverso le milestone che hanno posto i fondamenti degli argomenti che si tratteranno nella Build 2013.

image

Fissiamo l’agenda?

ASP.NET Web API e il supporto per CORS

Le nostre applicazione e i nostri servizi web sempre di più interagiscono tra loro e spesso ci troviamo davanti a situazioni che i browser non consento, per tutelare la nostra sicurezza, come le richieste cross domain. Per superare questo attuale limite senza inficiare la sicurezza, ci viene in soccorso il meccanismo Cross-Origin Resource Sharing (CORS) in grado di permettere a una pagina web di effettuare una richiesta XMLHttpRequest a un altro dominio. Normalmente questo tipo di richieste viene impedito dai browser nel rispetto della same origin security policy. CORS definisce un modo con il quale il browser e il server possono interagire per determinare se permettere o meno l’esecuzione di una richiesta cross-origin. Questo offre una maggior potenzialità alle nostre applicazioni web senza ridurre la sicurezza della soluzione.

Nel video che segue si parla di ASP.NET Web API e del supporto per il meccanismo CORS proposto per queste API.

sabato 23 marzo 2013

Team Foundation Service Update - Sprint 45

Gli impegni di lavoro mi hanno fatto saltare il post sul rilascio della sprint 44 i cui contenuti potete leggere nell’articolo: Team Foundation Service updates - Mar 4.

Per quanto riguarda la sprint 45 il cui rilascio è avvenuto ieri, le novità principali riguardano:

- l’introduzione della Branch View per i progetti basati su Git
- la gestione dei test case

Un dettaglio completo delle novità è riportato nelle note di rilascio che trovate nel post: Team Foundation Service updates - Mar 22.

ALM Ranges Guidance per Microsoft Fakes

Il mocking è una delle componenti fondamentali di un buon Unit Test. I framework o i tool che permettono di agevolare questa fase sono svariati e spesso non riescono a coprire tutte le possibili casistiche. Con l’uscita di Visual Studio 2012, è stato introdotto Microsoft Fakes, evoluzione di un prodotto di mocking, “Moles - Isolation framework for .NET”, precedentemente gestito da Microsoft Research. Grazie al lavoro degli infaticabile ALM Rangers ora  possiamo contare sulla prima versione di una guida che ci aiuta nell’utilizzo di questo “nuovo” strumento al fine di rendere migliori i nostri unit test. La guida “Better Unit Testing with Microsoft Fakes v1 eBook” è scaricabile da qui.

venerdì 22 marzo 2013

Entity Framework Tips & Tricks

Entity Framework, o lo si ama o lo si odia ma se lo si usa non si può fare a meno di conoscere i trucchi che permettono di risparmiare tempo e ridurre la possibilità di introdurre bug nel nostro software. In questo video, Robert Green e Julie Lerman ne svelano alcuni tra cui:

- Sovrascivere il metodo SaveChanges del DBContext
- Evitare l’aggiunta accidentale di record
- Configurare relazioni 1:1
- …e molto altro

Personalizzare le impostazioni di Git in Visual Studio

Come noto, Team Foundation Server supporta ora anche l’integrazione con Git per la gestione del codice sorgente. Se avete optato per Git allora non potete non approfondire come si possano cambiare le impostazioni per questo repository in Visual Studio. L’articolo “Customize Git settings in Visual Studio” che si trova nel blog del team di Visual Studio ALM + Team Foundation Server vi guiderà per imparare a:

- Specificare come identificare i cambiamenti da voi effettuati
- Specificare la posizione di default per i repository di Git
- Usare immagini per identificare gli autori dei commit
- Usare un file .gitignore
- Usare il file .gitattributes per assicurarsi che i cambiamenti siano correttamente riconosciuti dal sistema
- Modificare le impostazioni di Git dal command prompt

A ognuno il proprio Process Template

Per chi non fosse convinto che si possono personalizzare e/o creare Process Template personalizzati in grado di gestire processi eterogenei, in questo post potete trovare il link di download a un esempio molto particolare realizzato appositamente per dimostrare quanto sia duttile il sistema utilizzato da Team Foundation Server.

Service Bus Messaging–il film

Un film per approfondire il Windows Azure Service Bus e il Service Bus per Windows Server. Clemens Vasters consiglia di munirsi di pop-corns e di sedersi comodamente e lasciarsi trasportare nei meandri più reconditi di queste tecnologie. 112 minuti di approfondimento… dovete realmente amare questo argomento per vedere tutto il video.

Cosa c’è di nuovo in ASP.NET e Web Tools 2012.2

ASP.NET e Web Tools 2012.2 è un aggiornamento agli strumenti di Visual Studio 2012 che estende il runtime di ASP.NET esistente con nuove funzionalità senza compromettere il funzionamento delle applicazioni esistenti. Si installa in pochi minuti senza alterare i componenti del runtime presenti nel sistema. Le novità introdotte da questo aggiornamento sono:

  • Potenziamento del Web Publishing
    Una nuova funzionalità denominata Web API
    Nuovi template per applicazioni Facebook e Single Page
    Comunicazioni Real-time tramite ASP.NET SignalR
    Extensionless Web Forms con ASP.NET Friendly URLs

Per un panoramica vi consiglio la visione di questo video:

Testare mobile apps in the cloud

Lo sviluppo di applicazioni mobile per diverse tipologie di device amplifica le problematiche legate al testing delle soluzioni realizzate. In particolare l’impossibilità di disporre di tutti o della magior parte dei device su cui si intende rilasciare la propria applicazione ha spinto il mercato a offrire soluzioni interessanti. Esistono servizi on the cloud a cui è possibile sottomettere le proprie applicazioni per il testing. In questo post elenco alcune soluzioni (probabilmente molte altre esistono o arriveranno nel tempo) che ho incontrato cercando la soluzione al problema del testing su device reali.

DeviceAnywhere

Questa piattaforma offre una tecnologia proprietaria, denominata Direct-to-Device® che rappresenta, a detta loro, lo stato dell’arte per il mobile testing. I servizi offerti permettono di avere una completa interazione con il device, incluso il controllo completo del hardware, immagini perfette a livello di pixel e molto altro. I piani offerti sono 3:

  • DeviceAnywhere Free
  • DeviceAnywhere Testing Center Developer
  • DeviceAnywhere Testing Center Enterprise

Il video che segue fornisce maggiori informazioni sulla piattaforma:

La lista dei device è veramente corposa e visibile qui.

Perfecto Mobile's MobileCloud

Orientato a facilitare il mobile ALM è stato scelto da Microsoft come partner per l’integrazione in Team Foundation Server. MobileCloud è una soluzione Software-as-a-Service (SaaS), 100% web-based, che permette a tester e developer di accedere facilmente a una moltitudine di mobile device reali connessi a reti mobili distribuite in diversi punti del globo. I servizi offerti da questa piattaforma permettono alle aziende di sviluppare, tesatare, supportare e monitorare processi; eseguire più test su ogni device e assicurarsi la compatibilità ottimale delle loro applicazioni, siti o servizi su più apparati e con differenti reti mobili. I benefici di questo approccio garantiscono una miglior qualità nei test, minor tempo per raggiungere il mercato e una complessiva riduzione dei costi e degli investimenti logistici. Come per la precedente soluzione anche questa offre piani differenti destinati a fasce di clienti con complessità di distribuzione eterogenee (sicuramente più orientato a strutture di dimensioni medio grandi). Il video che segue aiuta ad avere una visione d’insieme della soluzione.

Per chi fosse interessato all’integrazione con TFS consiglio la lettura di questo post: “Testing devices made easier with Perfecto Mobile's MobileCloud™ platform and Team Foundation Server”.

TestFlight

Un’alternativa agli approcci di testing sopra descritti viene offerto da TestFlight per applicazioni realizzate per iOS (in arrivo anche il supporto per Android apps). Il concetto sposato in questa soluzione è quello di inviare la propria applicazione a una community di beta tester in grado di fornire dei feedback al produttore dell’applicazione prima che questa venga distribuita nell’App Store. A supporto della soluzione è in fase di test un’applicazione desktop in grado di facilitare la gestione della public beta delle proprie applicazioni (caricamento agevolato, definizione liste di beta tester, selezione dei beta tester, ecc). Il video che segue fornisce un’idea del sistema offerto da questo fornitore.

Valentino Rossi interview - 2013 Yamaha Factory Racing Team Launch

Sorseggiando un buon caffé, in un momento di pausa di questa intensa giornata, ho smaltito un pò di email arretrate. Tra queste ho trovato la newsletter del Yamaha Factory Ranging Team con l’intervista a Vale. Non potevo non spendere qualche minuto per il mio campione preferito in attesa che inizi la stagione del MotoGP. Se siete anche voi fans del #46, gustatevi il video.

venerdì 8 marzo 2013

XE Community Meeting - Marzo 2013

Model View ViewModel per Windows Store Apps
L'implementazione attuale delle Windows Store Apps in ambiente XAML non supporta pienamente il pattern MVVM. Tuttavia è possibile arrivare a una implementazione efficace del pattern grazie ad alcuni semplici strumenti che colmano tali lacune. In questa sessione affronteremo i vari aspetti del pattern e come implementarli in una applicazione per Windows Store.
Speaker: Andrea Boschin 

Estendere Team Explorer con Visual Studio 2012
Team Explorer in Visual Studio 2012 offre opzioni multiple per estendere la user experience. In questa sessione esploreremo alcuni di questi punti di estendibilità con degli esempi pratici.
Speaker: Davide Vernole 

Venerdi 08/03/2013 ore 20:00 Novotel Castellana Via Alfredo Ceccherini 21 - Venezia Mestre