DevExperience

.Net Framework, Internet of Things & M2M, Embedded Systems, Design Patterns Paolo Patierno's Blog

MVP Award

I'm Microsoft MVP for Windows Embedded

Recent Posts

Apps & Articles

Progetti

Pubblicazioni

Tags

My Profiles

 

My Embedded101 Blog

My YouTube Channel

Windows Embedded CE 6.0

Building Embedded Devices using Windows Embedded CE 6.0 R2

Archives

Sto leggendo...

Windows Embedded

.Net Micro Framework

.Net Framework & CLR

Email Notifications

Open Source Hardware

RSS Blog Post

giugno 2011 - Post

Per gli sviluppatori WP7….è arrivato il Mango !

Mango-windows-phone-7

Sul blog ufficiale di Windows Phone 7 è stata finalmente data la notizia che tutti gli sviluppatori attendevano con ansia….è arrivato il Mango !

E’ stata infatti rilasciata la ROM in Beta della nuova versione di Windows Phone (ormai imminente 7.1) ovviamente solo per coloro che sono iscritti al Marketplace. Finalmente, sarà possibile testare le nuove funzionalità non solo sull’emulatore fornito con i tools (anch’essi in Beta) ma anche sul device fisico che ovviamente va aggiornato.

Si raccomanda di fare molta attenzione alla procedura di aggiornamento del firmware; si corre il rischio di rendere il proprio dispositivo inutilizzabile se qualcosa va storto. E’ importante eseguire una copia di backup di tutti i dati.

Tutti i dettagli li trovate qui.

Posted: 29 giu 2011 22:48 da Paolo | con no comments
Inserito sotto:
XElement.Descendants() versus XElement.Elements()

Le classi XDocument e XElement forniscono due metodi che, a prima vista, sembrano dover fornire un risultato molto simile ma nei fatti così non è. I metodi in questione sono :

  • Descendants() : ritorna tutti i “discendenti” del document root/elemento oppure quelli con uno specifico nome (se passato come parametro);
  • Elements() : ritorna i “figli” diretti del document root/elemento oppure quelli con uno specifico nome (se passato come parametro);

Consideriamo la seguente stringa XML :

   1: string xmls = @"
   2:     <root>
   3:         <node>
   4:             <id>1</id>
   5:         </node>
   6:         <node>
   7:             <id>2</id>
   8:         </node>
   9:         <node>
  10:             <id>3</id>
  11:             <innernode>
  12:                 <id>3.1</id>
  13:             </innernode>
  14:             <innernode>
  15:                 <id>3.2</id>
  16:             </innernode>
  17:         </node>
  18:         <node>
  19:             <id>4</id>
  20:         </node>
  21:     </root>";

ed il seguente frammento di codice che utilizza la classe XDocument.

   1: XDocument xdoc = XDocument.Parse(xmls);
   2:  
   3: XElement[] app1 = xdoc.Root.Descendants().ToArray<XElement>();
   4: XElement[] app2 = xdoc.Root.Elements().ToArray<XElement>();

In entrambi i casi facciamo ritornare un array con i nodi individuati dai due metodi.

Di seguito uno screenshot del loro contenuto

XDocument_1

Con il metodo Descendants() vengono recuperati tutti i discendenti a qualsiasi livello e quindi per esempio, considerando il nodo più complesso, anche il nodo con id = 3 (posizione 4 nell’array) ma successivamente tutti i suoi discendenti a tutti i livelli (dalla posizione 5 alla posizione 9 nell’array).

XDocument_2

Viceversa, con il metodo Elements() otteniamo solo i figli diretti del nodo root del documento. Per poter ricavare i loro corrispondenti ulteriori nodi figli, dovremo necessariamente eseguire un’ulteriore interrogazione su ciascuno di essi.

Posted: 25 giu 2011 12:31 da Paolo | con no comments
Inserito sotto: , ,
DotNetCampania : finalmente socio !

logo

Ieri, all’evento “Silverlight Everywhere” tenutosi a Salerno , ho compiuto il “grande” passo….sono diventato anche io socio del DotNetCampania !

Spero di poter dare il mio contributo per la crescita della community, così come cerco di tenere costantemente aggiornato il mio blog nonostante gli impegni di lavoro e di famiglia.

Nokia Developer Site : compare Windows Phone 7.1 !

nokia_wp7

A seguito dell’accordo raggiunto da Microsoft e Nokia nei mesi passati e nell’attesa di vedere sul mercato i primi terminali Nokia con Windows Phone 7.1 (codename “Mango”), la casa finlandese ha già aggiornato il proprio sito dedicato agli sviluppatori : Nokia Developer.

Oltre alle sezioni dedicate allo sviluppo con Qt, Java e le Web Apps, è stata aggiunta la sezione dedicata a Windows Phone 7.1 con una serie di link relativi ad una panoramica generale sul sistema operativo di casa Microsoft, ai tools di sviluppo, alla documentazione ed alla community.

nokia_wp7_2

I fan della Nokia, se non l’avessero già fatto, possono iniziare da subito a realizzare applicazioni per i nuovi terminali !

Posted: 21 giu 2011 13:21 da Paolo | con no comments
Inserito sotto:
Introduzione al .Net Micro Framework

Sono disponibili le slide e la demo della sessione “Introduzione a .Net Micro Framework” tenuta da Mirco Vanini al community meeting di XeDotNet tenuto il 10 Giugno 2011.

Mirco ha anche anticipato la nascita della nuova community italiana TinyCLR, completamente dedicata al mondo del .Net Micro Framework, alla quale spero di poter dare anche io il mio piccolo contributo, così come per il DotNetCampania.

tinyclrit

Posted: 16 giu 2011 21:43 da Paolo | con no comments
Inserito sotto:
HTML5 e CSS3 : supporto per Visual Studio 2010 SP1

vs2010_web_upd

La Microsoft ha ufficialmente rilasciato un aggiornamento per Visual Studio 2010 SP1 per aggiungere il supporto per i nuovi standard in ambito Web : HTML5 e CSS3. Il pacchetto di aggiornamento è scaricabile qui.

Tutte le nuove funzionalità aggiunte attraverso questo update sono ampiamente approfondite al seguente link.

Posted: 16 giu 2011 13:23 da Paolo | con no comments
Inserito sotto: ,
Diventare programmatori di Windows Phone 7

Posto questi due interessantissimi link relativi ad un’esperienza di vita di uno sviluppatore e che può tornare utile a tutti coloro che volessero intraprendere la medesima strada. Io avevo iniziato a pensarci ma dopo aver capito che le cose sono praticamente “impossibili”….sto pensando di desistere…vedremo.

Diventare programmatori di Windows Phone 7 – Burocrazia e ITIN – Parte 1

Diventare programmatori di Windows Phone 7 – Burocrazia e ITIN – Parte 2

Posted: 12 giu 2011 16:02 da Paolo | con no comments
Inserito sotto:
Devexpress.com : Webinars gratuiti su WP7 tra Giugno e Luglio

Sul sito Devexpress.com, tra Giugno e Luglio ci sarà una serie di Webinars su Windows Phone 7 presentati da Chris Williams che è un XNA MVP. Di seguito vi riporto l’elenco delle sessioni che sono tutte alle ore 19.00 ed il link alla pagina per registrarvi.

16 Giugno
Deeper Dive Into XNA on Windows Phone

This webinar covers using the phone specific features in more depth with XNA. Topics covered include touch input and gestures, the accelerometer, accessing the camera and more.

7 Luglio
Building a pathfinding system using waypoints with XNA on WP7

This webinar builds on the previous webinar (#4) to provide a degree of artificial intelligence for the creatures in your game by creating a system of waypoints they can use to navigate the terrain on your map.

23 Giugno
Deeper Dive Into Silverlight on Windows Phone

This webinar covers using the phone specific features in more depth with Silverlight. Topics covered include touch input and gestures, the accelerometer, accessing the camera and more.

14 Luglio
Using the Push Notifications Service in your apps or games

This webinar explains the Microsoft Push Notification Service and how to use it to create Tile, Toast and Raw (in-app) updates.

30 Giugno
Building a Scrolling Tile Engine with XNA on Windows Phone

This webinar shows basic techniques for creating games that use a scrolling tiled map. Displaying sprites (2D graphics) is also covered.

21 Luglio
Making Money From Free Apps with the Microsoft Ad SDK

This webinar covers the concepts behind ad supported software and includes setting up an account in Microsoft PubCenter, setting up applications and ad units in Pubcenter, and finally using the Ad SDK to show ads in your apps and games.

Posted: 11 giu 2011 12:46 da Paolo | con no comments
Inserito sotto: ,
Template SketchFlow per Windows Phone 7

Sul sito CodePlex al seguente link, è disponibile un nuovissimo template SketchFlow per la realizzazione di applicazioni per Windows Phone 7. Questo template non può, però, essere utilizzato con l’Expression Blend 4 fornito con Visual Studio 2010 Express per Windows Phone 7ma può essere utilizzato solo dopo aver installato Expressione Blend 4 con SketchFlow (attraverso Expression Studio 4 Ultimate oppure Visual Studio 2010 Ultimate). Sono ovviamente necessari anche i developer tools per Windows Phone 7.

wp7_sketchflow

wp7_sketchflow2

wp7_sketchflow3

wp7_sketchflow4

wp7_sketchflow5

 
Posted: 11 giu 2011 8:28 da Paolo | con no comments
Inserito sotto: ,
Windows For Devices : un nuovo look !!
wfd-logo

Il sito Windows For Devices, una delle più importanti community sulle tecnologie embedded di casa Microsoft, ha rinnovato il suo look …. sicuramente molto più accattivante rispetto il look and feel precedente. I contenuti, come sempre, sono di ottima fattura.

Posted: 9 giu 2011 8:41 da Paolo | con no comments
Inserito sotto: , ,
DebuggerDisplayAttribute : object inspection durante il debug

Durante una sessione di debug, Visual Studio ci offre la possibilità di ispezionare lo stato di un oggetto visualizzando i valori che assumono i campi e le proprietà dell’oggetto stesso. Quando una classe è molto complessa, però, è tedioso analizzarne singolarmente tutti i membri per valutare se lo stato dell’oggetto è coerente con le nostre attese. Visual Studio ci offre una feature che possiamo sfruttare per ovviare a questo inconveniente.

Comportamento base Object.ToString()

Consideriamo una banalissima classe Person …

   1: class Person
   2: {
   3:     public string FirstName { get; set; }
   4:     public string LastName { get; set; }
   5: }

… ed un’applicazione che istanzia un oggetto di questa classe e lo utilizza in qualche modo.

   1: static void Main(string[] args)
   2: {
   3:     Person person = new Person() { FirstName = "Paolo", LastName = "Patierno" };
   4:     ...
   5:     ...
   6:     ...
   7:     Console.ReadLine();
   8: }

Se eseguiamo l’applicazione in modalità debug e ci posizioniamo con il puntatore del mouse sull’oggetto person, Visual Studio visualizzerà la seguente informazione.

dd_1

Esso rappresenta il nome della classe (nella forma <Namespace>.<Class>) di cui l’oggetto ne è un’istanza. Come si riesce ad ottenere questo comportamento ?

Ebbene, Visual Studio non fa nient’altro che eseguire il metodo ToString(), che come sappiamo fa parte della classe Object che è base di tutte le altre classi. Se una classe, non esegue l’override di questo metodo, il suo comportamento base è quello di visualizzare il nome della classe stessa.

Override del metodo ToString()

E’ possibile quindi sfruttare questa potenzialità eseguendo l’override del metodo ToString() nella classe Person per far visualizzare in debugging una sorta di summary informativo dello stato dell’oggetto.

   1: public override string ToString()
   2: {
   3:     return String.Format("FirstName = {0}, LastName = {1}", this.FirstName, this.LastName);
   4: }

Eseguendo nuovamente l’applicazione, l’output sulla variabile person sarà il seguente.

dd_2

In questo modo, abbiamo sott’occhio lo stato complessivo dell’oggetto (o almeno le informazioni che più ci interessano).

L’attributo DebuggerDisplay

Dal .Net Framework 3.5 è stato introdotto l’attributo DebuggerDisplayAttribute (nel namespace System.Diagnostics) da applicare ad una classe, che ci permette di ottenere il medesimo risultato senza la necessità di eseguire l’override del metodo ToString().

   1: [DebuggerDisplay("FirstName = {FirstName}, LastName = {LastName}")]
   2: class Person
   3: {
   4:     public string FirstName { get; set; }
   5:     public string LastName { get; set; }
   6: }

Esso prevede una stringa in ingresso che definisce la formattazione delle informazioni che vogliamo visualizzare (in maniera del tutto simile al String.Format() utilizzato precedentemente all’interno del metodo ToString()). Attraverso una sintassi del tipo {identificatore} è possibile accedere ad un campo, proprietà o addirittura un metodo della classe stessa.

Nel nostro caso, il risultato sarà del tutto analogo al precedente

dd_2

Se avessimo addirittura un metodo che esegue una computazione e ritorna un valore, Visual Studio lo eseguirebbe in fase di debug visualizzandoci il risultato.

   1: [DebuggerDisplay("FirstName = {FirstName}, LastName = {LastName}, Computation = {SomeMethod()}")]
   2: class Person
   3: {
   4:     public string FirstName { get; set; }
   5:     public string LastName { get; set; }
   6:  
   7:     public override string ToString()
   8:     {
   9:         return String.Format("FirstName = {0}, LastName = {1}", this.FirstName, this.LastName);
  10:     }
  11:  
  12:     public int SomeMethod()
  13:     {
  14:         int result;
  15:         ...
  16:         ...
  17:         return result;
  18:     }
  19: }

Ottenendo il seguente risultato

dd_3

Posted: 9 giu 2011 8:34 da Paolo | con no comments
Inserito sotto: ,
Windows Phone 7 Recipes : grazie al DotNetCampania !

wp7_recipes_book

Un paio di mesi fa, precisamente il 15 Aprile, ho partecipato come sempre ad uno degli eventi tenuti dal DotNetCampania team ed era dedicato al “Web Development”. Come ogni evento c’è sempre l’estrazione di un premio ed in quell’occasione erano in palio tre copie in formato elettronico (ebook) del libro “Windows Phone 7 Recipes” in uscita a fine Maggio. Indovinate un pò …. sono stato uno dei tre fortunati ! Ieri ho ricevuto da parte della Apress la disponibilità a poter scaricare dal loro sito il file in formato pdf. Grazie DotNetCampania !

Ovviamente ho già iniziato a leggerlo…

Per chi volesse reperire maggiori informazioni sul libro, posto il link sul sito della Apress.

Posted: 8 giu 2011 9:26 da Paolo | con no comments
Inserito sotto: