Un evento Intel in collaborazione con le community .NET italiane

spacer | More

Posted by qmatteoq in Windows Phone , Events Developers on Monday 09 January 2012 at 10:00 AM

Intel, con l’obiettivo di promuovere AppUp, lo store per applicazioni Windows  da loro ideato, ha organizzato due eventi dedicati alle tecnologie Microsoft in collaborazione con le community .NET italiane, nello specifico con DotNetLombardia per la tappa di Milano e con DotDotNet per la tappa di Bologna.

Ecco la presentazione della tappa di Milano a cura di Roberto Freato, fondatore di DotNetLombardia:

Non è propriamente un evento community per due motivi: è in co-organizzazione con Intel che vuole parlare del suo store di applicazioni per Windows e ci sarà un buffet offerto. Per il resto ha una agenda al 100% Microsoft e con tecnologie di punta.

Vi invito ad andare sul sito ufficiale dell’evento: appday-intel.dotnetlombardia.org/ e dare una occhiata alle sessioni… tra gli speakers ci saranno anche Ugo Lattanzi, Matteo Pagani, Renato Marzaro e Roberto Freato più Intel. Il focus della giornata saranno le applicazioni: non solo per Windows Phone ma anche cross-platform e per Windows.

L’evento si terrà Martedì 24 Gennaio presso la sede di Intel ad Assago (MI) e l’agenda è fitta di sessioni sulle più recenti tecnologie Microsoft e non: cloud, Windows Phone, HTML5 e Kinect sono alcuni degli argomenti che verranno trattati.

Io farò la mia parte parlando di Windows Phone con una sessione intitolata Windows Phone 7 Technologies: sarà una sessione un po’ diversa dal solito in quanto non affronterò un argomento preciso; mi limiterò a introdurre i partecipanti alla piattaforma, per poi lasciare a voi la scelta della tematica da affrontare con demo ed esempi di codice (dal multitasking all’uso dei sensori, passando per i launchers & choosers e il ciclo di vita delle applicazioni).

Ci vediamo il 24!

Aggiornamento: all'indirizzo www.iadp.it/appupday/2401-milano/ trovate le indicazioni precise su come raggiungere il luogo dell'evento.

This entry was posted on Monday, 09 January, 2012 and is filed under Windows Phone Events , Developers . You can follow any responses to this entry through here . You can leave a response.


Windows Phone , Microsoft , DotNetLombardia , DotDotNet , Intel

0 comments

Rinnovato e spostato :-) Windows Phone Development MVP

spacer | More

Posted by qmatteoq in Various Windows Phone on Tuesday 03 January 2012 at 10:00 AM

spacer

Con qualche giorno di ritardo (causa breve vacanza per l’ultimo dell’anno) mi accingo a scrivere due righe con la stessa emozione che ho provato, esattamente un anno fa, annunciando la mia nomina a MVP nella categoria Device Application Development.

Il 1° Gennaio ho infatti ricevuto la tanto attesa mail con la conferma del rinnovo dell’MVP anche per l’anno 2012! In più, è per me un onore essere entrato a far parte della famiglia degli MVP su Windows Phone: da quest’anno infatti non appartengo più alla categoria Device Application Development, bensì a quella Windows Phone Development.

Un grazie di cuore a tutte le persone che mi supportano (e sopportano) in questa bellissima esperienza: dagli amici ai colleghi, passando per gli altri MVP, gli evangelist di Microsoft e tutte le meravigliose persone delle community che ho incontrato durante quest’anno.

E ora, sotto con un altro anno ricco di impegno, passione e soprattutto… community!

Buon anno a tutti!

This entry was posted on Tuesday, 03 January, 2012 and is filed under Various Windows Phone . You can follow any responses to this entry through here . You can leave a response.


Windows Phone , MVP , Windows Phone Development , Microsoft

4 comments

NuGet e source control: la nuova funzionalità Package Restore

spacer | More

Posted by qmatteoq in Developers on Friday 30 December 2011 at 10:00 AM

Non ho mai dedicato un post a NuGet, ma se siete sviluppatori .NET credo conosciate già questa preziosa estensione di Visual Studio: si tratta di un package manager che vi permette di aggiungere librerie esterne al vostro progetto in maniera semplice e veloce. NuGet sta guadagnando una popolarità sempre più crecente anche tra gi sviluppatori Windows Phone, tanto che nei tool di sviluppo per Mango NuGet è stato incluso di default (mentre, teoricamente, NuGet non sarebbe disponibile perchè la versione Express di Visual Studio non supporta le estensioni).

In questo post vi voglio parlare di una funzionalità che è stata aggiunta nella versione 1.6 di NuGet, rilasciata recentemente, e che risulterà utilissima per chi ospita i propri progetti su sistemi di source control come TFS, SVN o Mercurial.

Tipicamente, quello che si fa quando si carica un progetto su un sistema di source control è includere non solo il codice sorgente (ovviamente), ma anche tutte le librerie esterne, in modo che chi scarica il progetto trovi tutte le dipendenze già soddisfatte e possa compilare una build senza problemi.

In alcuni casi, quando si usa NuGet, caricare l’intero contenuto della cartella packages (la cartella di default in cui vengono scaricate le librerie) può essere oneroso: questo perchè NuGet scarica sempre l’intera libreria in tutte le versioni disponibili, per poi aggiungere come reference al progetto solo quella corretta.

Prendete ad esempio la celebre libreria MVVM Light di Laurent Bugnion: se la installate in un progetto e andate a vedere i file scaricati nella cartella packages, vi accorgerete che ci sarà una cartella per ognuna delle tecnologie supportate da MVVM Light: .NET 3.5, .NET 4, Silverlight 3, Silverlight 4, Silverlight 5, Windows Phone 7.0 e Windows Phone 7.1.

E’ facile perciò che la cartella packages arrivi ad occupare una dimensione notevole, andando ad “appesantire” le operazioni di download del progetto dal sistema di source control che stiamo utilizzando.

NuGet 1.6 ha introdotto una nuova feature, chiamata Package Restore, che vi permette di risolvere brillantemente questo problema: in pratica, quello che andrete a caricare su source control è l’eseguibile di NuGet assieme ad un file di MsBuild. Grazie a questi file, al primo rebuild della soluzione verranno scaricate in automatico tutte le dipendenze necessarie nel caso non siano già presenti sul vostro disco.

Come funziona? Come spiegato in questo documento ufficiale ora è disponibile una nuova opzione nel menu contestuale di una soluzione, chiamata Enable NuGet Package Restore, che in automatico aggiunge la cartella .nuget (con i file di cui vi parlavo prima) e modifica tutti i progetti in modo che venga eseguito il task di MsBuild in fase di compilazione.

spacer

Una volta fatta questa modifica, potete eliminare la cartella packages dal vostro sistema di source control: l’importante è che vi ricordiate di fare commit della cartella .nuget, nonchè dei file di progetto (quelli con estensione .csproj o .vbproj) modificati. Nel momento in cui qualcuno scaricherà il vostro progetto e tenterà di ricompilarlo, il task di MsBuild si occuperà di lanciare NuGet e scaricare tutti i file necessari per soddisfare le dipendenze. Ovviamente, è richiesta una connessione ad Internet!

Attenzione! La versione 1.6 di NuGet ha un problema con il certificato digitale con cui è stata firmata l’estensione: il risultato è che, se cercherete di aggiornarlo tramite l’Extension Manager di Visual Studio, la procedura fallirà. In questo caso, la procedura corretta è quella di disinstallare NuGet (dovrete avviare Visual Studio con permessi amministrativi) e poi reinstallarlo, sempre tramite l’Extension Manager (raggiungibile dal menu Tools di Visual Studio).

This entry was posted on Friday, 30 December, 2011 and is filed under Developers . You can follow any responses to this entry through here . You can leave a response.


NuGet , Visual Studio , Microsoft , Source Control , TFS

0 comments

I primi passi con Windows 8 e WinRT: Listbox e collezioni di dati

spacer | More

Posted by qmatteoq in Windows 8 on Tuesday 27 December 2011 at 10:00 AM

Negli ultimi tempi, grazie anche ai preziosi consigli appresi a WPC seguendo le sessioni di Raffaele Rialdi e Corrado Cavalli, ho iniziato a fare qualche esperimento con WinRT, ovvero il nuovo runtime messo a disposizione da Windows 8 per lo sviluppo di applicazioni Metro style. Se ricordate il post introduttivo che ho pubblicato un po’ di tempo fa WinRT, pur ricalcando l’architettura di vecchie tecnologie come COM, è una novità per chi è cresciuto a pane e .NET: WinRT, al contrario del framework .NET, è un insieme di librerie native, le quali, grazie alle projections, possono essere utilizzate con linguaggi moderni e familiari: C#, VB.NET con XAML o HTML e Javascript.

Pur presentando una nuova architettura, l’approccio e i linguaggi dovrebbero essere famigliari ad uno sviluppatore .NET: è con questa idea in mente che ho iniziato a fare qualche esperimento. Il mio obiettivo era quello di realizzare una semplice applicazione che consentisse di inserire degli elementi all’interno di una lista, con lo scopo di:

  • Ricreare l’approccio con cui sono abituato a sviluppare applicazioni per Windows Phone, grazie al pattern MVVM
  • Sperimentare con il binding e verificare quante delle potenzialità offerte da questa feature del mondo Silverlight / WPF siano disponibili in WinRT

La struttura dell’applicazione è molto semplice:

  • La UI contiene una TextBox, in cui inserire un nome; un pulsante, che aggiunge il nome alla lista; una ListBox, che visualizza l’elenco dei nomi inseriti.
  • Nel codice (nel mio caso, il ViewModel ma poteva essere tranquillamente il code behind) la lista è definita come ObservableCollection<string>. Se ricordate un mio vecchio post sulla ObservableCollection, si tratta di un tipo di collezione speciale che implementa l’interfaccia INotifyCollectionChanged. Questo significa che ad ogni cambiamento nella collezione (nel mio caso, l’aggiunta di un nuovo elemento) il controllo con cui è in binding (la nostra ListBox) si aggiorna automaticamente.

Non sto qui a mostrarvi lo XAML o il codice, perché non è lo scopo di questo post e perché potete guardarli con calma nell’esempio che trovate allegato a questo post.

Il concetto è che un’applicazione apparentemente banale come questa non funzionava: alla pressione del pulsante, non succedeva niente; la ListBox non si aggiornava per mostrare i nuovi elementi inseriti. Un po’ di sano debugging ha rivelato che quello che succedeva dietro le quinte era corretto: la collezione People (di tipo ObservableCollection<string> per l’appunto) conteneva gli elementi inseriti, anche se questi non venivano poi mostrati.

Con un po’ di indagini ho scoperto, grazie a questo post, che WinRT fa uso di un altro meccanismo per gestire queste casistiche, ovvero l’interfaccia IObservableVector<T>. L’applicazione che avevo scritto era perciò corretta: stavo usando però il tipo di collezione sbagliato.

Il problema è che, al momento, non esiste un’implementazione concreta di questa interfaccia: a rimediare a questo inconveniente ci viene incontro Cocoon, una delle prime librerie disponibili su Codeplex per Windows 8. Tale libreria contiene la classe ObservableVector<T>, che non è nient’altro che l’equivalente della ObservableCollection<T> di Silverlight / WPF.

E’ bastato perciò aggiungere una reference a questa libreria nel progetto, impostare il tipo della collezione People a ObservableVector<string> e… ancora l’applicazione non funzionava!

Questa volta la colpa è di bug della Developer Preview, per cui il binding funziona solamente con collezioni generiche di tipo object e non fortemente tipizzate. E’ bastato sostituire perciò ObservableVector<string> con ObservableVector<object> e… questa volta ha funzionato spacer

Questo post vuole essere solamente una dritta se, come me, state iniziando a fare esperimenti con Windows 8 e vi trovate bloccati in questa situazione: non consideratelo un workaround definitivo, stiamo parlando comunque di una Developer Preview e sicuramente questi bug e questi limiti verranno corretti prima del rilascio della versione finale.

Qui sotto trovate il link per scaricare il progetto di esempio di cui vi ho parlato in questo post: per aprirlo e provarlo avete bisogno ovviamente della Developer Preview di Windows 8 con installati i tool di sviluppo (la versione Express di Visual Studio 11, nello specifico).

Scarica il codice sorgente

This entry was posted on Tuesday, 27 December, 2011 and is filed under Windows 8 . You can follow any responses to this entry through here . You can leave a response.


Windows 8 , Microsoft , WinRT , ObservableCollection , ObservableVector

0 comments

Due grandi eventi per il 2012: Community Days e DotNetCampus

spacer | More

Posted by qmatteoq in Developers Events on Thursday 22 December 2011 at 10:00 AM

Nelle ultime settimane sono state aperte le iscrizioni per due importanti eventi per gli sviluppatori che si terranno nel 2012. Vediamo qualche dettaglio.

Community Days 2012

I Community Days sono il frutto della collaborazione tra Microsoft e le community italiane, caratterizzati negli anni passati da una serie di appuntamenti sparsi per l’Italia. Quest’anno si è deciso di rinnovare la formula, proponendo un unico appuntamento di due giorni organizzato da ASPItalia e UgiDotNet in collaborazione con le community italiane. L’appuntamento è per il 16 e 17 Febbraio presso il nuovo Innovation Campus di Microsoft a Peschiera Borromeo (Milano). L’agenda è già stata pubblicata sul sito ufficiale e tanti sono i temi che verranno trattati, sia di sviluppo (Windows 8, Web, Windows Phone, ec.) che IT Pro (Azure, Windows 8 Server, virtualizzazione, ecc.)

Con immenso piacere farò parte anche io della squadra, proponendo una sessione dal titolo SQL CE e Windows Phone 7.5: un nuovo approccio per la gestione dei dati, in cui vi parlerò (e vi mostrerò con esempi di codice) delle nuove possibilità di memorizzazione dati offerte da Mango grazie al supporto a SQL CE.

Durante l’evento verranno proposti anche dei laboratori, dove mettere in pratica quello che imparerete e ricevere aiuto e supporto da parte di esperti.

Trovate tutte le informazioni e i link per iscrivervi (occhio che i laboratori hanno un form di iscrizione diverso) sul sito ufficiale www.communitydays.it/events/communitydays-2012/

DotNetCampus

Anche il prossimo anno torna DotNetCampus, l’evento per sviluppatori e studenti organizzato da DevLeap, celebre gruppo di consulenza nel mondo Microsoft. Quest’anno le tappe saranno ben tre: Roma, Benevento e Cosenza, in modo da coprire anche la parte meridionale dell’Italia che di solito viene un po’ bistrattata dato che la maggior parte degli eventi viene organizzata nel centro – nord Italia.

Anche per questo evento sono state aperte le iscrizioni ed è disponibile l’agenda: trovate tutto sul sito ufficiale che, per rimanere in tema, è completamente Metro style spacer L’indirizzo è www.dotnetcampus.it/

This entry was posted on Thursday, 22 December, 2011 and is filed under Developers Events . You can follow any responses to this entry through here . You can leave a response.


Community Days , DotnetCampus , Microsoft , SQL CE , Windows Phone

0 comments

Nuova versione della libreria WP7nl

spacer | More

Posted by qmatteoq in Windows Phone Devs on Tuesday 20 December 2011 at 10:00 AM

Recentemente vi ho parlato della libreria WP7nl, realizzata e mantenuta dal mio amico Joost Van Schaik, MVP olandese su Windows Phone. Questa libreria contiene una serie di utility che semplificano lo sviluppo di applicazioni per Windows Phone: nello specifico, vi avevo parlato di una serie di attached properties che andavano a estendere la BindableApplicationBar facente parte della libreria Phone7.Fx.

Questa nuova versione introduce due modifiche molto importanti:

  • La libreria Phone7.Fx.Preview (usata in precedenza) era una versione “ridotta” della libreria completa Phone7.Fx contenente solamente la BindableApplicationBar. Il problema è che questa “sottolibreria” contiene un bug tale per cui non è possibile utilizzare la proprietà Visibility delle varie icone inserite nella barra: il risultato è che non era possibile far si, ad esempio, che una determinata icona appaia solo in determinate condizioni. La nuova versione di WP7nl si appoggia invece alla libreria completa Phone7.Fx, dove questo bug è stato risolto, dandoci la possibili
gipoco.com is neither affiliated with the authors of this page nor responsible for its contents. This is a safe-cache copy of the original web site.