mercoledì 12 dicembre 2012

Microsoft Embedded Conference : La prima conference dedicata a Microsoft Embedded

Il 26 gennaio 2013 l’associazione DotNetCampania organizza la prima conferenza interamente dedicata alle tecnologie Embedded di Microsoft. Con tinyCLR.it sarò presente con una sessione dedicata a .NET Gadgeteer. Questi sono gli argomenti delle varie sessioni proposte:

  • Intelligent Systems
  • Windows Embedded Compact 7
  • Windows Embedded Standard 2009 e 7
  • Cosa vuol dire “Embedded”?
  • Metti il .Net Framework nel micro!
  • Are you a Gadgeteer?
  • Internet-of-Things : un mondo di device interconnessi
  • Natural User Interface with Kinect for Windows

Per l’agenda completa e per l’iscrizione questo è il link. Vi aspettiamo numerosi!

sabato 8 dicembre 2012

Slide della sessione: “A deep dive into Windows Runtime”

Ho reso disponibili on line le slide del XeDotNet community meeting che ho tenuto il 06 dicembre 2012 dal titolo “A deep dive into Windows Runtime”.

“In questa sessione vedremmo di capire gli aspetti che stanno dietro le quinte e che compongono WinRT. Vedremmo come scrivere componenti che estendono WinRT stesso e che siano consumabili tra vari linguaggi tramite RCW (Runtime Callable Wrapper), esploreremo le extensions registration che compongono il WinRT registration catalogs e vedremmo come si è evoluta la parte COM. Esploreremo i meccanismi di attivazione delle estensioni e i meccanismi del RPCSS (Remote Procedure Call Services).”

Il meeting si è svolto in coda all’evento Microsoft DevCamp a cui ho partecipato, evento sicuramente ben riuscito visto il numero di partecipanti e la valanga di domande uscite durante il suo svolgimento. Personalmente è stata una bella occasione per approfondire e soprattutto per confrontarmi con gli altri partecipanti.

Volevo porgere un ringraziamento particolare a tutte le numerose persone presenti al meeting ed allo staff di XeDotNet per il supporto tecnico, morale ed organizzativo e per l’opportunità che mi è stata data.

mercoledì 5 dicembre 2012

NETMF 4.3 Released

Ieri è stato annunciato il rilascio di .NET MF 4.3, queste le novità più importanti:

  • Supporto per VS2012
  • Miglioramento delle informazioni di diagnostica
  • Incremento delle performance in fase di boot
  • Inclusione delle QFEs presenti nella 4.2 (PWM enhancements, lwIP and network driver reliability improvements, Analog Output, WinUSB and latest GCC support)

martedì 4 dicembre 2012

DevCamp – Mestre 06.12.2012

Se giovedì 6 dicembre 2012 volete passare una giornata ad imparare a sviluppare applicazioni per Windows 8, Windows Phone e Windows Azure, volete testare le vostre applicazioni su dispositivi ARM e x86, con il touch e i sensori e siete dalle parti di Mestre questa è un’occasione da non lasciarvi sfuggire. Questo è il link per maggiori informazioni e, ovviamente, per le inscrizioni.

In coda all’evento ci saranno le sessioni presentate da XeDotNet, in dettaglio:

  • XAML/C# vs HTML5/Javascript: Quale strumento usare per sviluppare metro-style applications
  • WinRT - Under the hood
  • TFS Dashboard

Vi aspettiamo numerosi!

lunedì 19 novembre 2012

Introducing .NETCF 3.9–Windows Embedded Compact 2013

Come anticipato nei post precedenti inizia a prendere forma e a delinearsi i contorni della nuova versione del .NETCF in uscita con la prossima release di Windows Embedded Compact. Questa versione deriva direttamente da quella attualmente distribuita su Windows Phone 7.5. I punti saliente di questa nuova versione sono:

  • Incremento generali delle prestazioni.
  • Nuovo Garbage collector: incremento significativo delle performance del GC.
  • Runtime multicore: supporto per dispositivi multicore con supporto completo per istruzioni ARM VFP.
  • Sharing Server, condivisione del codice runtime tra varie applicazioni con conseguente incremento di prestazione dello statup delle stesse applicazioni.
  • Miglioramento della gestione della memoria.
  • Supporto completo in VS2012.
  • Supporto completo per C++.
  • Debugging di applicazioni con Hyper-V
  • Piena compatibilità con .NETCF 3.5 a livello sorgente, non compilato!

La nuova release sarà disponibile con l’uscita di Windows Embedded Compact 2013 con il relativo SDK integrato in VS2012.

L’articolo originale lo potete trovare in questo link.

giovedì 15 novembre 2012

Windows Embedded Compact v.Next uncovered

Finalmente iniziano ad arrivare notizie ufficiali sul prossimo rilascio! Prima di tutto il nome ufficiale sarà Windows Embedded Compact 2013. Il supporto per VS2012 sarà completo, dall’ambiente di sviluppo, con i relativi tools, sino al Platform Builder. Questo comporta di non avere più versioni diverse di VS installate sulla PC per lo sviluppo embedded e non.

Assieme a questo arriverà una nuova versione del CRT con il pieno supporto per l’auto-parallelizzazione del codice e l’auto-vettorizzazione, sempre se il processore dispone di registri FP. Altro punto saliente è l’introduzione di molte delle funzionalità disponibili con il nuovo standard C++11.

Per quanto riguarda il .NET CF sarà aggiornato alla versione 3.9. Punti salienti di questa versione sono il notevole miglioramento  delle prestazioni generali, nonché l'allocazione di memoria e la sua gestione con la rivisitazione completa del GC. L'occupazione di memoria del runtime è stata ridotta tramite la nuova funzione di “sharing server” che permette di riutilizzare il codice caricato del runtime tra applicazioni diverse. Altra novità rilevante del runtime è il supporto del multi-core con il conseguente incremento di velocità.  

L’articolo originale è disponibile in questo link.

Se volete avere un’idea anche della road map dei prossimi rilasci questo è il link

Che dire, dopo anni di attesa forse hanno capito che il segmento embedded e soprattutto la parte compact merita una considerazione diversa!

lunedì 12 novembre 2012

Diplay CP7–WPF Touch Screen Manager

In queste ultime settimane ho iniziato il porting di un applicativo sviluppato su .NETMF verso .NET Gadgeteer. Oltre al cambi del HW con le inevitabili modifiche, al cambio delle librerie utilizzate, ecc. mi sono imbattuto in alcune problematiche relative all’utilizzo del display CP7. In dettaglio il driver del display, fornito con il relativo modulo Gadgeteer, non si integra minimamente con gli eventi WPF ma fornisce, in modo abbastanza raw, le varie funzionalità di touch. Il codice che sto convertendo ha una parte di interfaccia U,I scritta utilizzando il FW WPF del .NETMF, abbastanza corposa e ovviamente utilizza gli eventi di touch dei singoli controlli. A questo punto le possibilità sono due, riscrivere la parte di UI, magari utilizzando la libreria Glide, o scrivere un manager che catturi gli eventi del touch del display convertendoli in eventi gestibili da WPF e dai relativi controlli. Ovviamente ho scelto la seconda strada. Dopo alcune ore, spese a decompilare con dotpeek sial il driver del display ma soprattutto la parte di tinycore del .NETMF ho trovato la soluzione. Tutto ruota attorno alla classe TouchEventArgs. Di seguito riporto lo spezzone del codice saliente del manager che ho implementato.

private void OnDisplayScreenPressed(Display_CP7 sender, Display_CP7.TouchStatus touchStatus)
{
    try
    {
        if (_isTouchValid || SkipAllEvent)
            return;
 
        if (touchStatus.numTouches > 0)
        {
            _isTouchValid = true;
 
            int len = 0;
            for (int i = 0; i < touchStatus.touchPos.Length; i++)
                len += touchStatus.touchPos[i].bActive ? 1 : 0;
 
            _touchInputs = new TouchInput[len];
 
            for (int i = 0, idx = 0; i < touchStatus.touchPos.Length; i++)
            {
                if (!touchStatus.touchPos[i].bActive)
                    continue;
 
                _touchInputs[idx++] = new TouchInput()
                                            {
                                                X = touchStatus.touchPos[i].xPos,
                                                Y = touchStatus.touchPos[i].yPos
                                            };
 
                if (touchStatus.touchPos[i].bActive)
                {
                    _touchX = touchStatus.touchPos[i].xPos;
                    _touchY = touchStatus.touchPos[i].yPos;
                }
            }
 
            var control = _display.WPFWindow.ChildElementFromPoint((int)_touchX, (int)_touchY);
 
            if (control != null && control.IsVisible && control.IsEnabled)
            {
                var arg = new Microsoft.SPOT.Input.TouchEventArgs(null, DateTime.Now, _touchInputs);
 
                arg.RoutedEvent = TouchEvents.TouchDownEvent;
                control.RaiseEvent(arg);
            }
        }
        else
        {
            _isTouchValid = false;
        }
    }
    catch (Exception ex)
    {
        Debug.Print(ex.ToString());
    }
}

Il metodo riporta la gestione dell'evento di pressed del display. Nel metodo sono verificati i punti di touch, viene ricercato il controllo su cui è stato toccato il display e viene così costruito l’oggetto TouchEventArgs. Il tutto poi viene sparato come evento al controllo precedentemente ricercato tramite la RaiseEvent.




private void OnDisplayScreenReleased(Display_CP7 sender)
{
    try
    {
        if (!_isTouchValid || SkipAllEvent)
            return;
 
        _isTouchValid = false;
 
        var control = _display.WPFWindow.ChildElementFromPoint((int)_touchX, (int)_touchY);
 
        if (control != null && control.IsVisible && control.IsEnabled)
        {
            var arg = new Microsoft.SPOT.Input.TouchEventArgs(null, DateTime.Now, _touchInputs);
            arg.RoutedEvent = TouchEvents.TouchUpEvent;
            control.RaiseEvent(arg);
        }
    }
    catch (Exception ex)
    {
        Debug.Print(ex.ToString());
    }
}


La stessa cosa viene fatto anche nell’evento di release del display, ovviamente sempre ricercado il controllo su cui si rilascia il tocco dal display.


In questo link potete trovare l’intero esempio basato su una FEZ Hydra e relativo display CP7. Alla fine, con qualche ora di lavoro, sono riuscito a convertire l’intero progetto salvando interamente la parte UI WPF.


Nota: per l’utilizzo del codice si deve aver installato l’ultima versione del SDK di GHI (Release condidate 4.2 Oct. 26, 2012) , questo per problemi di risoluzione a runtime della classe TouchEventArgs !

lunedì 5 novembre 2012

FEZ Cobra II Preview

GHI ha pubblicato una preview sulla sua nuova scheda FEZ Cobra II nelle due versioni, con o senza WiFi a bordo. La disponibilità della scheda è all’incirca gennaio 2013. Da notare il cambio del core su cui si basa la scheda stessa passando dal collaudato modulo EMX al nuovo modulo G120. La scheda oltre ad offrire SD, USB Host, USB Client e power connect è dotata di 6 socket Gadgeteer.e di una griglia di I/O sul lato posteriore.

domenica 14 ottobre 2012

Codice e slide della sessione: “Building the Internet of Things”

Ecco disponibili al download, il codice e le slide del XeDotNet community meeting che ho tenuto il 12 Ottobre 2012 dal titolo Building the Internet of Things

“In questa sessione vedremmo i concetti fondamentali di "Internet of Things" e come questa stia rapidamente cambiando il nostro mondo. La sessione si fonda sulla realizzazione di un esempio pratico utilizzando micro dispositivi basati su .NET Gadgeteer e Microsoft StreamInsight. Vedremmo in dettaglio come StreamInsight sia la proposta di Microsoft per l'analisi in tempo reale di flussi di dati senza la necessità di scriverli su disco.”

Volevo porgere un ringraziamento a tutte le numerose persone presenti al meeting ed allo staff di XeDotNet per il supporto tecnico, morale ed organizzativo della sessione e per l’opportunità che mi è stata data.

giovedì 11 ottobre 2012

XeDotNet - Building the Internet of Things

Venerdì 12.10.2012 terrò un meeting con XeDotNet su Internet of Things, In questa sessione vedremmo i concetti fondamentali di "Internet of Things" e come questa stia rapidamente cambiando il nostro mondo. La sessione si fonda sulla realizzazione di un esempio pratico utilizzando micro dispositivi basati su .NET Gadgeteer e Microsoft StreamInsight. Vedremmo in dettaglio come StreamInsight sia la proposta di Microsoft per l'analisi in tempo reale di flussi di dati senza la necessità di scriverli su disco.

L’incontro si terrà presso:

Novotel Castellana
Via Alfredo Ceccherini 21 - Venezia Mestre

Se siete interessati non potete mancare, per iscrizioni: clicca qui

domenica 7 ottobre 2012

NETMF 4.3 (Beta)

Da qualche ora è disponibile su codeplex la versione beta del .NETMF 4.3, le novità principali di questa versione sono:

  • Support for Visual Studio 2012 (Pro or higher) plus the Windows Desktop Express version.
  • All v4.2 QFEs features and bug fixes (PWM enhancements, lwIP and network driver reliability improvements, Analog Output, WinUSB and latest GCC support)
  • Improved diagnostic information for deployment
  • Decreased boot time

La lista completa dei bug fixed è disponibile in questo link

lunedì 1 ottobre 2012

Codice e slide sessioni Better Embedded 2012

Di seguito riporto i link delle slide e delle demo per le due sessioni che ho avuto il piacere di tenere a Better Embedded 2012. Con l’occasione volevo ringraziare sia gli organizzatori che tutto lo staff per l’impeccabile supporto fornito!

lunedì 17 settembre 2012

Better Embedded 2012

Quest’anno avrò il privilegio di avere due sessioni durante il Better Embedded 2012. Per chi fosse interessato e fosse nei paraggi di Firenze il 24-25 settembre è un’occasione da non perdere. In dettaglio le sessioni che terrò sono:
Oltre alle mie sessioni vorrei segnalare la sessione di Lorenzo Maiorfi:
Per le mie sessioni utilizzerò il seguente hw:

Vi aspetto numerosi!

giovedì 13 settembre 2012

VS2012 & Windows Embedded Compact

Ci siamo, Microsoft finalmente reintegra in VS2012 tutto quello che riguarda lo sviluppo per il mondo embedded! Tutti gli strumenti per lo sviluppo su Windows Embedded Compact saranno disponibili compreso l’aggiornamento al Compact Framework 3.9, supporto a C++ 11, ecc. L’annuncio ufficiale è contenuto in questo video di Andrew Pardoe e David Campbell. Finalmente l’attesa sta per terminare.

mercoledì 12 settembre 2012

.NETMF & VS2012

Con l’uscita ufficiale di VS2012 si inizia ad avere qualche notizia in più sul rilascio della nuova versione del .NETMF e del .NET Gadgeteer. In questo link Colin Miller descrive il supporto per VS2012 e lo stato di avanzamento, non ci resta che aspettare :)

sabato 8 settembre 2012

GHI – New Prices and New Gadgeteer Modules

In questi ultimi mesi GHI ha rilasciato una raffica di moduli e di aggiornamenti. Questo è il link dell’ultimo rilascio. Da notare la nuova scheda G120HDR basata sul modulo G120, la scelta delle maiboard per il .NET Gadgeteer è sempre più ampia!, di seguito una breve lista dei moduli rilasciati:

Che dire, bene così!

XeDotNet – Meeting 2° semestre 2012

Di seguito riporto i prossimi meeting di XeDotNet, in dettaglio:

Come sempre vi aspettiamo numerosi!

venerdì 17 agosto 2012

Updating .NET MF VS2010 Help

Durante l’installazione del .NET MF SDK viene installato il relativo help che però non viene aggiunto a VS2010 nella cache locale. Di seguito viene riportato come aggiungere la documentazione del SDK al sistema di help di VS2010.

Migrazione

Il file di help installato con SDK non è compatibile con il formato previsto da VS2010. Per questo motivo occorre migrare questo file. Tramite l’utility mshcMigrate è possibile eseguire questo step. Dopo aver installato eseguire il programma (Start -> Programs -> Helpware ->mshcMigrate –> mshcMigrateUtility). Aprire il file PSDK.hxs di help del SDK (C:\Program Files (x86)\Microsoft .NET Micro Framework\v4.2\Documentation\NET MicroFramework Docs) ed impostare il percorso che conterrà i file convertiti:

Impostare le opzioni come riportato:

Attenzione: Non usare Microsoft come Vendor altrimenti durante la fase di importazione verrà sollevata l’eccezione Microsoft.Help.CacheLib.CacheLibNonCabPackageFoundForMSFTException !!!

Ritornare su Migrate e premere il pulsante “Migrate”. Dopo qualche minuto il programma crea il file helpcontentsetup.msha nel folder specificato come “Output staging folder”.

Installazione

Dopo aver concluso la fase di migrazione ora si procede con l’installazione del file .mhsc. Selezionare “Help Library Manager” sul programma di utility:

Selezionare l’opzione Install e specificare il file da installare. Eseguire Help Library Manager tramite l’apposito pulsate. Una vota partito viene proposta la lista dei file da importare:

Selezionare Add e poi update. Dopo l’update viene visualizzato un messaggio di avvertimento di sicurezza, continuare confermando l’installazione del file. Una volta terminata l’importazione sarà disponibile help di .NET MF all’interno di VS2010:

.NET MF 4.2 RTM (QFE2)

Qualche giorno fa è stato rilasciato l’aggiornamento QFE2 del .NET MF 4.2. Al seguente link è possibile effettuare il download. Le novità principali di questo rilascio sono:

  • supporto per driver USB WinUSB (basta schermate blu!)
  • Analog Output
  • Supporto a GCC per il Porting Kit
  • Miglioramento della performance del File System
  • Miglioramento della performance di Microbooter and TouchScreen

Inoltre sono presenti le seguenti correzioni:

- Work Item: 1590 - Decrease boot time
- Work Item: 1636 - File.Exists returns true for unexisting file
- Work Item: 1656 - Problems with bad blocks handling in Wear Leveling Driver
- Work Item: 1701 - StreamReader.cs – IndexOutOfRangeException
- Work Item: 1109 - FAT32 File System issue with filenames
- Work Item: 1721 - VolumeInfo.Format() locks volume.
- Work Item: 1633 - SerialPort.Read's behaviour is different from .Net
- Work Item: 1580 - Negative array index issue
- Work Item: 1585 - Issue in Microbooter prevents usage in Cortex M3 STM32 port
- Work Item: 1586 - Broken firmware on device reset during Microbooter FW update
- Work Item: 1635 - Substring issue in 4.2 RC4
- Work Item: 1659 - Bug in StringBuilder.Append (thanks to Julius Friedman)
- Work Item: 1672 - Wrong long to hex conversion
- Work Item: 1373 - MDK targets problems

Per una lista completa dei dettagli contenuti in questo rilascio è disponibile l’apposito documento

lunedì 30 luglio 2012

The FEZ Story

Interessante articolo che spiega come da un’idea possa nascere un’intera linea di prodotti. Buona lettura.

lunedì 18 giugno 2012

Codice e slide della sessione: “Are you a Gadgeteer?”

Ecco disponibili al download, il codice e le slide del XeDotNet community meeting che ho tenuto il 15 Giugno 2012 dal titolo Are you a Gadgeteer

“In questa sessione vedremmo l'evoluzione del .NET MF verso questo nuovo toolkit e come cambia l'approccio sia costruttivo che implementativo verso i micro dispositivi. Durante la sessione saranno esplorati i nuovi strumenti messi a disposizione, il cambi di paradigma per l'accesso all' hw e vedremmo poi come sia possibile integrare nuove componenti sia hardware che software all'interno di Visual Studio e di .NET Gadgeteer. Volevo porgere un ringraziamento a tutte le numerose persone presenti al meeting ed allo staff di XeDotNet per il supporto tecnico, morale ed organizzativo della sessione e per l’opportunità che mi è stata data.


domenica 10 giugno 2012

Are you a Gadgeteer?

Hey there! Are you ready to create something awesome?

Venerdì 15.06.2012 terrò un meeting con XeDotNet su .NET Gadgeteer, In questa sessione vedremmo l'evoluzione del .NET MF verso questo nuovo toolkit e come cambia l'approccio sia costruttivo che implementativo verso i micro dispositivi. Durante la sessione saranno esplorati i nuovi strumenti messi a disposizione, il cambi di paradigma per l'accesso all' hw e vedremmo poi come sia possibile integrare nuove componenti sia hardware che software all'interno di Visual Studio e di .NET Gadgeteer, vi aspetto numerosi. Questo è un’anticipazione dei moduli hw che saranno utilizzati durante il meeting

L’incontro si terrà presso:

Novotel Castellana
Via Alfredo Ceccherini 21 - Venezia Mestre

Se siete interessati non potete mancare, per iscrizioni: clicca qui

giovedì 31 maggio 2012

GHI - Open DaisyLink Project

Indubbiamente DaisyLink è una delle funzionalità più accattivanti introdotte con il .NET Gadgeteer. Tramite questo protocollo è possibile collegare in cascata più moduli sullo stesso socket della mian board. Il protocollo è implementato direttamente su un microcontrollore a bordo del modulo che permette il disaccoppiamento dalla main board stessa. Come risultato finale abbiamo il funzionamento in real-time della stessa main board e del modulo essendo la comunicazione demandata all’apposito microcontrollore. Questo costa un po' di ingegneria sia lato software che lato hardware. Per questo motivo GHI sta rilasciando il tutto come open-source. Il progetto Open DaisyLink include tutto ciò che uno sviluppatore ha bisogno per la costruzione e lo sviluppo di un modulo DaisyLink. Per maggiori informazioni questo è il link dell’annuncio.

sabato 12 maggio 2012

.NETMF on STM32 by Mountaineer Group

Mountaineer Group ha annunciato la prima versione beta del porting di .NET MF su STM32 F4. Il porting è basato sul lavoro fatto da Oberon per STM32 F1 già incluso nella version 42. di .NETMF. Il porting verso questo nuova edizione non porta solamente una CPUpiù performante e con più RAM ma soprattutto la possibilità di include stack TCP e le librerie Gadgeteer. Il porting è disponibile come delta alla versione 4.2 direttamente a questo link su CodePlex. L’articolo originale invece è disponibile a questo link.

giovedì 10 maggio 2012

The future of Windows Embedded Compact and the .NET Compact Framework

Questo è un articolo che mi ha cambiato decisamente l’umore della giornata! Chi come me ha investito parecchia della sua professionalità nel mondo embedded di Microsoft negli ultimi anni si sarà sentito decisamente abbandonato a se stesso. Aggiornamenti al .NET CF che non arrivavano, legati al palo di VS2008 l’orizzonte non era dei più felici, anzi! Anche se non c’è ancora l’annuncio ufficiale dall’articolo si iniziano a vedere quali saranno le prossime novità in merito, in dettaglio:

  • Nel primo quarto del 2013 è previsto il rilascio di Windows Embedded Compact v. Next
  • Hard real-time e small footprint
  • Supporto per le CPU x86, ARM v6T2 e ARM v7
  • Sviluppo in C# e C++ nativo in VS2011
  • Fast boot (2s dal power on)
  • Kernel update: increased file system performance
  • Novità per quanto riguarda lo sviluppo di UI con Silverlight con Expression Blend

Aspettando la notizia ufficiale, Microsoft fa intravedere di non aver abbandonato il segmento e gli OEM che non sviluppano solo per Phone!!!

mercoledì 11 aprile 2012

.NET Gadgeteer – New modules from GHI Electronics

La scorsa settimana GHI ha reso disponibili dodici nuovi moduli per la famiglia Gadgeteer, in questo post trovate la lista completa.

Netduino Go

State cercando una Netduino più veloce, con più flash e con più ram ? Questa è la risposta! Da leggere sicuramente anche il post di presentazione.

Getting Started With .NET Gadgeteer

Il primo libro interamente dedicato allo sviluppo di .NET Gadgeteer è disponibili per il pre-ordine.

mercoledì 4 aprile 2012

Microsoft MVP – Device Application Development

Durante il mio percorso professionale ho avuto la fortuna di trovare persone che mi hanno incoraggiano, supportato, sopportato, spronato e sostenuto, con le quali ho capito il vero valore della condivisione e del confronto. Con queste persone ho e sto percorrendo un “pezzo di strada” che sicuramente mi ha maturato sia sul piano professionale che umano. Il ricevimento del award da parte di Microsoft come MVP sicuramente lo dedico a queste persone e ai miei figli, sempre pazienti e debitori del tempo gli sottraggo. Ringrazio pubblicamente Microsoft e gli amici Andrea Boschin, Davide Vernole, Andrea Dottor, Davide Senatore ed Alessandro Teglia (MVP Lead) che mi hanno sempre spronato e per quello che hanno saputo insegnarmi. Infine un ringraziamento di cuore a tutti i partecipanti ed inscritti alle community XeDotNet e TinyCLR.it senza le quali non avrei appreso il senso del confronto e dello scambio.

REST & .NET Micro FW - A Real Case

Volevo porgere un ringraziamento a tutte le numerose persone presenti al meeting, allo staff di XeDotNet ed in particolare a Andrea Boschin, per il supporto tecnico, morale ed organizzativo della sessione e per l’opportunità che mi è stata data. Come vi avevo anticipato durante la sessione non posso pubblicare ne le slide ne tanto meno il codice visto che il caso trattato è un prototipo avanzato in via di realizzazione. Come sempre rimango comunque a disposizione per eventuali chiarimenti sugli argomenti trattati. Grazie ancora a tutti !

giovedì 22 marzo 2012

REST & .NET Micro FW - A Real Case

Venerdì 30.03.2012 terrò un meeting con XeDotNet su questo argomento, in questa sessione verrà illustrato un caso reale di integrazione tra device e servizi REST. Questi sono i devices che utilizzerò nella presentazione. Alla fine della stessa ci sarà anche una piccola sorpresa, vi aspetto numerosi.

L’incontro si terrà presso:

Novotel Castellana
Via Alfredo Ceccherini 21 - Venezia Mestre

Se siete interessati non potete mancare, per iscrizioni: clicca qui

domenica 4 marzo 2012

Windows XP Mode – Starting errror

Utilizzo Microsoft Money 2000 ormai da quasi 10 anni e per farlo girare sul mio pc Win7 64 ho dovuto installare Windows XP Mode. Peccato che Microsoft non abbia più aggiornato il suo prodotto, almeno per il mercato italiano, ma come sempre questa è un’altra storia. Alcuni giorni fa avvio il programma e ottengo il seguente errore: “The requested operation cannot be completed because the terminal connection is currently busy processing a connect”. Spenta e riaccesa la macchina virtuale non voleva saperne di ripartire. Cercando in giro scopro che basta cancellare il file “Windows XP Mode.vsv” sito in C:\Users\[UserName]\AppData\Local\Microsoft\Windows Virtual PC\Macchine virtuali. Il file contiene le informazioni del salvataggio di stato della virtual machine. Cancellato e riavviata la virtual machine tutto è ritornato a funzionare come prima!

giovedì 23 febbraio 2012

TinyCLR.it a Hack Reality 2012

Anche se con qualche giorno di ritardo volevo ringraziare tutti per la splendida giornata trascorsa in quel di Bologna all’hackathon “Hack Reality 2012” organizzato dai ragazzi di Whymca.  Il team composto da Lorenzo Maiorfi, Gianluca Ruta, Mario Vernari ed il sottoscritto ha fatto la sua parte per la buona riuscita dell’evento. Come prima uscita di TinyCLR.it mi ritengo soddisfatto sia per l’esperienza che per la curiosità ed i contatti che abbiamo avuto. L’occasione è stata sicuramente un’ottima palestra per lo scambio di idee, esperienze ed il confronto con le più disparate tecnologie. In questo post potete trovare alcune foto dell’evento. Esperienza sicuramente da ripetere!

martedì 21 febbraio 2012

Windows Virtual PC & Microsoft Device Emulator

In questi giorni ho ripreso in mano un progetto basato su Windows Mobile 6.x e con mia sorpresa ho scoperto che l’emulatore di WM6 non riusciva più a riconoscere la scheda di rete (NE2000 PCMCIA). L’errore riportato era il seguente:

The required Virtual Machine Network Driver could not be found. Make sure that Virtual PC 2007 is installed. You can install Virtual PC 2007 from http://go.microsoft.com/fwlink/?linkid=46859.

Pensando un po' ho fatto mente locale ricordando che l’installazione di Windows Virtual PC richiedeva la disinstallazione di Virtual PC2007. Morale: l’emulatore non funziona con i nuovi drivers di  Windows Virtual PC. Cercando in rete ho trovato diverse soluzioni al caso molto simili ma quella che mi ha risolto il problema è la seguente:

  • Download Virtual PC 2007 SP1
  • Rinominare l’eseguibile setup.exe in vpc.exe
  • Aprire una shell dos ed eseguire il comando vpc.exe /c
  • Questo comando estrae il file MSI nel folder %temp%
  • Posizionarsi nel folder ed eseguire il comando msiexec /a Virtual_PC_2007_Install.msi /qb TARGETDIR=c:\vpc
  • Questo estrae i files del MSI nel folder c:\vpc
  • Aprire “Centro connessioni di rete e condivisione” e selezionare “Modifica Impostazioni scheda”

  • Selezionare la scheda di rete con cui ci si connette ad internet e aprire le proprietà della stessa
  • Premere il pulsante “Installa”

  • Selezionare “Servizio”

  • Selezionare “Disco Driver…”

  • Navigare in C:\vpc\Program Files\Microsoft Virtual PC\Utility\VMNetSrv\ per i sistemi x86 e in C:\vpc\Program Files\Microsoft Virtual PC\Utility\VMNetSrv\x64  per i sistemi a x64
  • Selezionare il file “VMNetSrv.inf”
  • Selezionare Virtual Machine Network Services e confermare

  • A questo punto il driver è installato e collegato alla scheda selezionata, se si vuole installare lo stesso driver su più schede si deve ripetere la procedura dal punto 8 per ogni singola scheda.

giovedì 16 febbraio 2012

Hack Reality, ci siamo quasi

Dopo il rinvio di due settimane fa causa abbondante nevicata e conseguenti disagi, sabato 18 febbraio si terrà a Bologna l’incontro di Hack Reality, l’evento di hackathon targato WhyMCA orientato all'interazione tra mobile e realtà. Io sarò presente con gli altri colleghi di TinyCLR.it con cui presenteremo dei brevi workshop inerenti il mondo .NET MicroFW, sicuramente ci sarà da divertirsi! Vi aspetto numerosi.

mercoledì 25 gennaio 2012

TinyCLR.it a HACK REALITY

Il prossimo 4 febbraio si terrà a Bologna “Hack Reality”, il nuovo hackathon targato WhyMCA, orientato all'interazione tra mobile e realtà. Fra le varie tecnologie utilizzabili ci sarà spazio anche per .NET Micro Framework quindi per gli appassionati del genere sarà una bella occasione per mettersi alla prova e creare qualcosa di originale sia con il .NET MF che con le altre interessanti tecnologie disponibili. Ci vediamo a Bologna per “interagire con la realtà”.

.NETCF: ResolveAssemblyReferences warnings

Durante lo sviluppo di un progetto per .NET CF mi è capitato di incontrare diversi warning del tipo:

ResolveAssemblyReferences: Consider app.config remapping of assembly "System.Windows.Forms, Culture=neutral, PublicKeyToken=969db8053d3322ac, Retargetable=Yes" from Version "2.0.0.0" [] to Version "3.5.0.0" [C:\Program Files\Microsoft.NET\SDK\CompactFramework\v3.5\ WindowsCE\System.Windows.Forms.dll] to solve conflict and get rid of warning.

Questo avviso viene visualizzato quando il compilatore ha caricato le librerie BCL del .NET Compact Framework 3.5, ma i metadati contenuti nei assembly referenziati fanno riferimento alle librerie BCL del .NET Compact Framework 2.0.

Per rimuovere questi warning è possibile aggiungere un file app.config al progetto e reindirizzare le associazioni degli assembly della 2.0 a gli equivalenti della 3.5. Di seguito è riportato un esempio di XML per reindirizzare la versione 2.0 di System.dll alla versione 3.5:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <runtime>
    <assemblybinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentassembly>
        <assemblyidentity name="System" culture="neutral" publickeytoken="969db8053d3322ac" />
        <bindingredirect  newVersion="3.5.0.0" oldVersion="2.0.0.0" />
      </dependentassembly>
    </assemblybinding>
  </runtime>
</configuration>

Sarà necessario aggiungere un elemento dependentassembly per ognuno dei warning ResolveAssemblyReferences che si ricevono dal compilatore.


In fine, assicurarsi che la proprietà Build Action del file app.config sia impostata su Content e la proprietà di Copy To Output Directory sia impostata su Only if newer

mercoledì 11 gennaio 2012

XeDotNet – Prossimi meeting

Anno nuovo, nuovo calendario di sessioni per il primo semestre 2012 di XeDotNet.

10/02/2012 - HTML5 e lo sviluppo mobile
  • Andrea Dottor - ASP.NET e lo sviluppo mobile?
  • Davide Senatore - Packaging HTML5 application with PhoneGap
09/03/2012 - Sviluppo client side
  • Andrea Boschin - What's new in Silverlight 5.0
  • Andrea Dottor - Il mondo è sempre più client. ASP.NET e lo sviluppo Client Side
30/03/2012 - Real world experience
  • Cristiano Simionato - Ma quanto costa Windows Azure?
  • Mirco Vanini - REST & .NET Micro FW - A Real Case
04/05/2012 - Uno sguardo a futuro
  • Davide Vernole - Visual Studio vNext - Application Lifecycle Management
  • Andrea Boschin - Sviluppare applicazioni Metro con Windows 8 e WinRT
15/06/2012 - Playing with gadgets
  • Mirco Vanini - Are you a Gadgeteer?
  • Davide Vernole - Playing with Team Foundation Server

In questo semestre avrò il piacere di tenere due sessioni su argomenti ed esperienze che mi vedono impegnato in prima persona sia nell’ambito lavorativo sia nell’ambito di community. La prima sessione sarà basata su un caso reale mentre la seconda riguarderò il .NET Gadgeteer.

    sabato 7 gennaio 2012

    NETMF Extension Methods

    Una delle caratteristiche più accattivanti di C# sono gli extension methods, peccato che per il .NET MicroFW non siano disponibili. Infatti tentando di utilizzarli si ottiene il seguente errore:

    Cannot define a new extension method because the compiler required type 'System.Runtime.CompilerServices.ExtensionAttribute' cannot be found. Are you missing a reference to System.Core.dll?

    Cercando una possibile soluzione ho trovato questo post che riporta la soluzione al problema:

    using System;
    using System;
    using System.Threading;
     
    using Microsoft.SPOT;
    using Microsoft.SPOT.Hardware;
     
    // Required for NETMF to recognized extension methods
    namespace System.Runtime.CompilerServices
    {
        [AttributeUsage(AttributeTargets.Assembly | AttributeTargets.Class | AttributeTargets.Method)]
        public sealed class ExtensionAttribute : Attribute { }
    }
     
    // Extension methods for byte[] - typically would be put in a separate file
    public static class ByteArrayExtensions
    {
        // Method to create a string from UTF8-encoded bytes - be careful about null "this" being passed in
        public static string ToStringFromUTF8(this byte[] bytes)
        {
            return null == bytes ? String.Empty : new String(System.Text.Encoding.UTF8.GetChars(bytes));
        }
    }


    Come si vede dal codice riportato il trucco è definire l’attributo ExtensionAttribute.