mercoledì 30 giugno 2010

Windows Embedded Compact 7 (CE 7)

Non è una notizia fresca, ma voglio solamente condividere con voi il fatto che Microsoft, agli inizi di giugno, ha annunciato ufficialmente la prossima versione di Windows Embedded CE, ora chiamato Windows Embedded Compact 7, e ne ha reso disponibile una technology preview. Se interessati, ulteriori informazioni sono disponibili sul sito Microsoft Windows Embedded CE. Un dispositivo equipaggiato con Compact 7 è già stato mostrato al Computex 2010, potete vederlo in questo video:

Sto iniziando in questi giorni a giocare un po’ con  la nuova piattaforma di sviluppo, quindi aspettatevi prossimamente articoli e aggiornamenti.

martedì 29 giugno 2010

EWF in Windows Embedded Standard 7

Durante lo sviluppo di una shell personalizzata per un progetto, ho incontrato uno strano comportamento abilitando/disabilitando la protezione EWF. Per lo sviluppo, ho creato un’immagine Windows Embedded Standard 7 thin client usando IBW, includendo la protezione EWF e utilizzando tutte le impostazioni default. Ha funzionato tutto fino a quando non ho iniziato a giocare con la protezione del disco. Secondo la documentazione MSDN, EWF può essere controllato tramite lo strumento EWF Manager (EWFMGR) da console (con diritti di Amministratore) o programmaticamente usando le API EWF.

Nella shell personalizzata che stavo sviluppando, avevo la necessità di controllare lo stato EWF a seguito di alcune procedure interne: in alcuni casi la protezione doveva venire abilitata ed in altri essere disabilitata. Non si sono verificati particolari problemi abilitando la protezione (sia tramite console e sia programmaticamente), mentre la cosa strana è capitata durante la disattivazione.

Mi aspettavo che la protezione potesse essere disabilitata allo stesso modo di come viene abilitata, semplicemente invocando il comando ewfmgr –disable da console o usando la funzione EwfMgrDisable, seguiti da un riavvio del dispositivo. Ma non era così. Dopo il riavvio, la protezione EWF era ancora abilitata. Inizialmente pensavo di non aver configurato correttamente la protezione EWF, installando l’immagine tramite IBW, così ho creato un answer file con ICE, configurato EWF con i parametri default e reinstallato nuovamente l’immagine. Di nuovo, nessun cambiamento: la protezione, una volta abilitata, non si poteva più disabilitare. Come risolvere il problema?

Dopo molti tentativi e tanta frustrazione, ho trovato la soluzione cercando dentro gli esempi d’uso delle API EWF (non ho trovato riferimenti alla cosa nella documentazione MSDN): un commento alla funzione EwfMgrDisable dichiara chiaramente che quando l’EWF è configurato in modalità RAM REG (default in Windows Embedded Standard 7), è necessario eseguire un’operazione di commit in seguito alla richiesta di disattivazione. Mentre quando EWF è configurato in modalità RAM, la sola operazione di disattivazione è sufficiente. In aggiunta, è possibile ottenere gli stessi risultati usando il comando ewfmgr –commitanddisable [–live] (con l’opzione –live non è necessario il riavvio del dispositivo) o, tramite le API, con la funzione EwfMgrCommitAndDisableLive.

Spero che questa piccola aggiunta alla documentazione MSDN vi possa far risparmiare tempo e problemi utilizzando EWF in Windows Embedded Standard 7.

venerdì 25 giugno 2010

Problemi di compatibilità tra answer files in Windows Embedded Standard 7 CTP/RC ed RTM

Questa mattina, durante la creazione di una immagine Windows Embedded Standard 7 per un progetto, la mia collega ed io abbiamo incontrato un subdolo ed inaspettato problema. In ufficio abbiamo alcune macchine di sviluppo equipaggiate con differenti versioni di Windows Embedded Studio 7 (che abbiamo installato per test appena rese disponibili da Microsoft, nei mesi scorsi – CTP, RC ed RTM). Abbiamo iniziato a migrare tutte le macchine alla versione RTM, e così ora abbiamo un certo numero di progetti creati con le versioni CTP ed RC (quando il prodotto era ancora chiamato Windows Embedded Standard 2011) e altri con la RTM. Non avevamo mai provato ad usare un answer file di una versione pre-release con la RTM finale, fino ad oggi. E sfortunatamente non ci sono buone notizie: ci sono volute un po’ di ore per risolvere un problema relativo a DISM durante la fase di installazione dell’immagine (i log di IBW riportavano solo un errore riguardo ad un file INF, senza informazioni aggiuntive).

La cosa era strana perché abbiamo creato due answer files praticamente identici (a parte le protezioni EWF e FBWF), uno con ICE RTM e l’altro con ICE CTP, che abbiamo installato sullo stesso dispositivo senza problemi. Quindi abbiamo dovuto apportare alcune modifiche ad entrambi i file ed abbiamo usato ICE RTM: con il file creato con ICE CTP, ci è stato segnalato un problema con la cartella della Distribution Share (e questo è ovvio, perché il prodotto ha cambiato il suo nome e la cartella di installazione da \Programmi\Windows Embedded Standard 2011 a \Programmi\Windows Embedded Standard 7), ma dopo aver sistemato la giusta DS, non risultavano più errori di validazione. Abbiamo quindi pensato che tutto fosse a posto e pronto per una nuova installazione. Ma non era vero! Durante l’installazione dell’answer file CTP aggiornato con la RTM, si è verificato il problema con DISM; mentre usando l’altro file, tutto ha funzionato perfettamente. Abbiamo cercato di risolvere il problema modificando i valori aggiornati, pensando di aver usato qualche valore errato, ma niente è cambiato. Alla fine abbiamo ricreato da zero l’answer file della CTP usando ICE RTM e, magicamente, tutto ha funzionato.

Quindi sembra che esistano alcuni problemi di compatibilità tra gli answer file creati con Windows Embedded Standard 7 CTP/RC ed RTM. Per evitare problemi con answer file creati con strumenti pre-release (magari avete ricevuto un evaluation kit promozionale), vi consigliamo di ricreare i vostri progetti usando la versione RTM.

mercoledì 23 giugno 2010

Novità sul concorso Embedded Spark

Finalmente ieri notte sono stati annunciati i vincitori della prima fase del concorso Embedded Sparks 2010 Summer Challenge: sono rimasto decisamente contento di scoprire che la mia proposta, eMMEC, è nuovamente tra di essi! Tornate nelle prossime settimane per aggiornamenti sugli sviluppi del prototipo (spero, questa volta, di avere abbastanza tempo libero in questo periodo per poter arrivare al termine della seconda fase).

sabato 12 giugno 2010

Nuovo concorso: embeddedSPARK 2010 SUMMER Challenge

Per il primo anno una nuova sfida si svolge durante l’estate, inizia quando l’originale embeddedSPARK Challenge finisce (Microsoft ha annunciato l’embeddedSPARK SUMMER Challenge alla fine di aprile, durante l’evento ESC Silicon-Valley), e termina con i finalisti a presentare sul palco all’ESC di Boston, a settembre.

Per quelli che non conoscono l’iniziativa Microsoft EmbeddedSpark, è una collezione di software Windows Embedded per hobbisti che consiste in versioni complete di strumenti di sviluppo Microsoft e una scheda SPARK-embedded di uno dei partner hardware di Microsoft. Di solito, la partecipazione al programma consiste nell’ottenere l’hardware e il software al solo costo della scheda.

Tra le molte iniziative (blog, documentazione, lezioni, forum della community, ecc.) Microsoft organizza anche un concorso per hobbisti embedded e fornisce un kit embeddedSpark gratuitamente a tutti quelli che superano la prima selezione del concorso.

Il concorso è basato sulle abilità dei partecipanti e la fortuna non gioca alcun ruolo  nella determinazione dei vincitori. L’obiettivo infatti è quello di fornire un forum per gli sviluppatori Windows Embedded e permettere loro di diffondere le loro abilità/conoscenze, costruire la community Windows Embedded e pubblicizzare il programma embeddedSpark.

Il nuovo concorso estivo è basato su Windows Embedded Standard 7, mentre l’originale embeddedSPARK Challenge (ora rinominato in embeddedSPARK WINTER Challenge) è basato su Windows Embedded CE. 

Non essendo stato in grado di continuare l’edizione invernale, ad inizio anno, ora ho deciso di provare a partecipare all’edizione estiva con una nuova proposta. Basato sulla eMMEC logonuova piattaforma Microsoft Embedded, il concorso rappresenta lo scenario ideale per consolidare le mie conoscenze e imparare cose nuove in vista dell’esame di certificazione Microsoft.

Il tema per la prima edizione è "Media Explosion". La mia idea è un’evoluzione del dispositivo presentato l’anno scorso, che prova a superare e risolvere molte delle limitazione e dei problemi di usabilità riscontrati nello sviluppo del prototipo per la mia tesi di laurea. Informazioni aggiuntive e dettagli, si hanno sulla pagina ufficiale della proposta: eMMEC.

Tra una decina di giorni saranno annunciati i vincitori del primo round…

venerdì 11 giugno 2010

Nuova comunità embedded

L’obiettivo primario del programma embeddedSPARK è quello di fornire un ambiente agli sviluppatori, di differenti regioni e con differenti conoscenze, per interagire, imparare e sfruttare le opportunità offerte da Windows Embedded. Vorrei condividere con voi il sito www.embedded101.com, che ho scoperto questa mattina mentre leggevo alcuni post nel forum ufficiale di embeddedSPARK. Il sito è stato creato per supportare una comunità online dedicata a Windows Embedded, per fornire un luogo agli sviluppatori in cui condividere esperienze, imparare, scambiare idee e suggerimenti ed evolvere come un gruppo. www.embedded101.com è completamente indipendente da Microsoft ed è organizzato per essere una comunità tecnica che possa aiutare gli sviluppatori a scoprire le tecnologie Windows Embedded. Attualmente il sito consiste delle seguenti sezioni:

  • Blogs
  • Forum
  • Articoli
  • Progetti

Se interessati, vi suggerisco di contribuire ai contenuti e invitare altre persone a diventare membri della community, con l’obiettivo di condividere conoscenza e imparare insieme le tecnologie Windows Embedded.