Roberto Brunetti

Developing in the cloud

.NET Programming

Windows Phone 7 Capability

Ogni applicazione deve indicare “cosa” vuole usare sul telefono. Questa tabella contiene la spiegazione di ogni voce da indicare.

ID_CAP_NETWORKING

Applications with access to network services. This must be disclosed because services can incur cost when a phone is roaming.

ID_CAP_LOCATION

Applications with access to location services.

ID_CAP_SENSORS

Applications using the Windows Phone sensors.

ID_CAP_MICROPHONE

Applications that use the microphone. The application can record without visual indication that recording is taking place.

ID_CAP_MEDIALIB

Applications that can access the media library.

ID_CAP_GAMERSERVICES

Applications that can interact with Xbox LIVE APIs. This must be disclosed due to privacy issues since data is shared with Xbox.

ID_CAP_PHONEDIALER

Applications that can place phone calls. This may happen without visual indication for the end user.

ID_CAP_PUSH_NOTIFICATION

Applications that can receive push notifications from an Internet service. This must be disclosed as usage could incur roaming charges.

ID_CAP_WEBBROWSERCOMPONENT

Applications that use the web browser component. There are security risks with scripting.

Posted: ago 23 2010, 09:58 by rob | with no comments
Filed under:
Marketplace for Windows Phone

Post non tecnico, ma spero utile per chi ha iniziato a sviluppare applicazioni per Windows Phone 7 o sta per iniziare.

Il ciclo di vita di un software per Windows Phone 7, oltre alle classiche fasi e diverse metodologie che si possono seguire come per qualunque altra soluzione software, comprende, la pubblicazione dell’applicazione sul Marketplace, da dove, gli utenti potranno acquistare e scaricare (o solo scaricare nel caso di Trial e software gratuiti) l’applicazione stessa.

image

1) Il Windows Phone Developer Portal rappresenta il punto di partenza, da cui, con il proprio Windows Live ID ci si può registrare per utilizzare ai forum, scaricare documentazione, gli strumenti di sviluppo, e, in generale, il materiale di cui abbiamo parlato in più post su questo blog.

2) Se si ha un device e si vuole testare l’applicazione su di esso occorre registrare il telefono come hardware di test per poter debuggare le applicazioni direttamente da Visual Studio. Per farlo si utilizza lo strumento che si installa insieme al WP Developers Tool denominato Windows Phone Developer Registration

3) Scrivere e testare l’applicazione :-)

4) Create il package di installazione (con estensione .XAP) direttamente da Visual Studio tramite il menù contestuale sul progetto

5) Il package viene creato in automatico da Visual Studio e installato sull’emulatore o sul device ogni volta di esegue un debug, un run o un deploy da Visual Studio.

6) Pubblicare l’applicazione. Il package .xap deve essere inviato al Marketplace: il file contiene tutto quello che serve per l’applicazione stessa come il file di manifest, l’icona applicativa (e eventuali icone per i canali se si usano risorse locali), il tile di start, l’eventuale licenza.

7) L’applicazione viene controllata dal personale del marketplace per verificare che sia conforme alle linee guida sia dal punto di vista della user interface (ad esempio non deve contenere riferimenti a materiale pornografico) sia dal punto di vista del funzionamento sul device (ad esempio non deve bloccare una chiamata entrante), sia localizzata nella lingua dei mercati in cui viene proposta.

8) Se il processo di verifica si conclude positiviamente, si può pubblicare l’applicazione nel marketplace attraverso il portale.

9) Il portale offre la possibilità di vedere i feedback degli utenti, analizzare le vendite, controllare l’utilizzo e ovviamente gestire gli aggiornamenti

Poi, speriamo, si inizia a vendere :-)

Posted: ago 21 2010, 12:29 by rob | with no comments
Filed under:
Windows Phone 7 SDK Beta upgrade 1

Oggi giornata di upgrade dei vari progetti e demo creati con la versione di Aprile degli strumenti di sviluppo.

Il primo progetto, già pubblicato nella sezione media di ThinkMobile.it e oggetto di alcuni articoli usciti sul sito ThinkMobile.it, IoProgrammo e Html.it, presenta queste problematiche.

Aprendo il progetto che utilizzava il controllo WebBrowser il designer non si apre e alcune delle reference risultano “rotte”.

Proviamo a risolvere i problemi: nella versione Beta hanno modificato molti assembly e namespace spostando, come spesso accade, le classi durante il refactoring.

Reference

Il progetto April CTP si presentava così:

image

Per prima cosa i seguenti assembly sono stati unificati in un’unica dll denominata Microsoft.Phone:

Microsoft.Phone.Controls
Microsoft.Phone.Controls.Navigation
Microsoft.Phone.Controls.WebBrowser
Microsoft.Phone.Controls.WebBrowserInterop
Microsoft.Phone.Shell
Microsoft.Phone.Notification
Microsoft.Phone.Execution
Microsoft.Phone.Info
Microsoft.Phone.Tasks
Microsoft.Devices

Occorre quindi eliminare tutte le reference verso i vecchi assembly e aggiungere la reference verso i nuovi.

Sono stati notevolmente semplificate anche le dll sia come numero che come namespace. Questo l’elenco delle nuove librerie (da notare in versione 7.0.0.0):

image

Visto che l’applicazione presentava una semplice finestra con il controllo web browser abbiamo pochi errori nella parte XAML:

image

Il primo problema deriva ancora dai assembly referenziati nel file MainPage.xaml. Per risolvere a tappeto il problema consiglio di cercare le seguenti definizioni nei vari file xaml e rimpiazzarle con quanto segue:

Cercare:
clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone.Controls.Navigation
Rimpiazzare con:
clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone

Cercare:
clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone.Controls.WebBrowser
Rimpiazzare con:
clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone

Cercare:
clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone.Shell

Rimpiazzare con:
clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone

Cercare:
clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone.Controls

Rimpiazzare con:
clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone

Il terzo problema riguarda il file app.xaml in quanto le risorse nella versione di aprile erano state inserite direttamente nel file. In questa versione sono inserite come risorse nelle librerie. Per prima cosa occorre rimuovere la sezione <App.Resources> e poi occorre sostituire nei vari xaml delle pagine alcuni nomi di risorse.

Anche in questo caso, Jamie Rodriguez del team di sviluppo, come segnalato da Mighell nel suo post, conviene fare un find/replace:

PhoneTextPageTitle1Style   -> PhoneTextNormalStyle
PhoneTextPageTitle2Style –> PhoneTextTitle1Style
PhoneTextApplicationNameStyle –> PhoneTextNormalStyle
PhoneTextTitleNameStyle –> PhoneTextTitle1Style

Ci sono altre incompatiilità a cui dedicheremo un post non appena faremo l’upgrade reale.

Nel nostro primo progetto è sufficiente fare Reload Designer per ottenere il nuovo designer con il “vecchio” form:

image

F5 e via:

image

Ultimo punto che conviene fixare è il file di definizione del deploy WMAppManifest.xml. Visto che ci sono varie modifiche da fare il consiglio è ricreare il progetto con lo stesso nome in una directory temporanea e copiare il contenuto di questo file direttamente sul progetto reale.

Windows Phone 7 Beta SDK Tools

I primi due strumenti che saltano all’occhio dopo l’installazione dei nuovi strumenti di sviluppo sono sicuramente Developer Phone Registration e XAP Deployment. In entrambi i casi, alcune preview erano disponibili come prodotti separati su CodePlex o su altri siti (ci siamo capiti :-)).

Il primo strumento consente di sbloccare un telefono reale per lo sviluppo e necessità del nostro account Windows Live e della connessione fisica via Zune al device. Ricordo che è possibile sbloccare 3 telefoni per lo sviluppo per ogni Windows Live ID.

Lo strumento si presenta così

image

A meno che non mi sia perso qualcosa i servizi Zune non sono ancora disponibili per l’Italia (al termine del wizard via web infatti ci viene negato l’accesso), ma il software può essere ugualmente scaricato e istallato.

 

Il secondo strumento è molto comodo per installare una applicazione sul device o sull’emulatore partendo da un file .xap senza ricorrere a Visual Studio: nella nostra azienda (ThinkAhead, azienda del gruppo DevLeap) ad esempio le due persone che lavorano nel marketing non hanno installato Visual Studio (o comunque, giustamente non lo sanno usare), ma possono testare e verificare l’applicazione sull’emulatore installando semplicemente installando lo XAP che arriva dal reparto sviluppo.

Ad esempio prendendo l’interfaccia di esempio dell’accelerometro la cui libreria è stata postata anche su http://thinkmobile.it/media/p/6977.aspx e premendo il tasto deploy lasciando nella combo l’emulatore come target si effettua il deploy:

image

Una volta completato il deploy, il nuovo emulatore si presenta con l’applicazione installata:

image

New Beta Dev Tools for Windows Phone 7

Sono stati appena rilasciati i nuovi strumenti di sviluppo per Windows Phone 7.

Il download è pubblico a partire da questo link: http://www.microsoft.com/express/Downloads/#2010-Visual-Phone.

Per adesso e probabilmente per il resto del periodo beta sono disponibili sono in lingua inglese.

Occorre disinstallare la beta precedente.

Come per la beta precedente, anche questa versione è compatiile con Visual Studio 2010 RTM: è possibile continuare ad usare la versione installata per sviluppare per il telefono sfruttando, ad esempio, il meccanismo di controllo sorgenti aziendale.

Questa versione è compatibile con Expression Blend 4, nel senso che è possibile isntallare la Beta di Expression Blend 4 side by side con Expression Blend 4.

Come giustamente accade in qualunque strumento in Beta, molte sono le modifiche ai namespace, alle classi e alle risorse rispetto alla April CTP.

L’elenco completo, su cui farò un post più preciso appena migrerò una nostra applicazione su N-layer è disponibile nelle release notes: http://download.microsoft.com/download/4/E/A/4EA52332-C6B1-476E-9938-C4F805146AF5/Release%20Notes%20-%20WPDT%20Beta.htm

Windows CE 7

Girando fra i forum di Windows Phone 7, oggi ho trovato questa notizia e, non so per quale motivo mi è apparsa direttamente tradotta in italiano.

Lascio il testo tradotto, tanto è decisamente chiaro, e, come sempre, divertente:

Microsoft ha ufficialmente inaugurato WinCE7 che ampiamente si crede per essere il nucleo del telefono di Windows 7. Non solo quello, ma hanno fatto un CTP download disponibili. A afferrilo andare a https://connect.microsoft.com/directory/non-feedback, trovare il prodotto "Windows Embedded Compact" e fare clic su Applica (esso verrà automaticamente accettare si). Questo è solo una CTP e RTM quarto trimestre di quest'anno si prevede che il prodotto.
Speriamo che questo aiuterà il processo di porting di hacking WP7.

Ovviamente il “telefono di Windows 7” non è il dispositivo con cui Windows telefona, ma è proptio “Windows Phone 7” :-).

Posted: lug 09 2010, 12:33 by rob | with no comments
Filed under:
SQL CE 4 e ASP.NET

A breve uscira la prima beta di SQL CE 4 come database in-process (come i precedenti) che non ha bisogno di un engine nativo per poter girare. In pratica basta portare dietro gli assembly .NET per far funzionare il tutto.

Altra novità riguarda il supporto per ASP.NET. In pratica diventa un database gratuito e in-process semplice da portare insieme alla applicazione su un hoster.

Info ufficiali: http://weblogs.asp.net/scottgu/archive/2010/06/30/new-embedded-database-support-with-asp-net.aspx

Nelle FAQ si mormora di una versione per Windows Phone 7

SQL Azure June update

Riporto as is:

Today, the following updates are broadly available:

1. SQL Azure Database size - We are expanding SQL Azure to support up to 50GB per database. With this update, SQL Azure now supports up to 5GB in the Web Edition, and up to 50GB in the Business Edition. SQL Azure can scale to multi-terabytes (across db instances) and is built from the ground up for scaling-out, high performance and high availability.

2. Spatial data support—Geography and Geometry types and query support in T-SQL are now supported in SQL Azure. Customers wanting to run location aware applications can now do so on the Windows Azure Platform.

3. Public preview of SQL Azure Data Sync Service (released at TechEd)— Expanding on the current ability to sync between SQL Server and SQL Azure, now you can also distribute and sync data across multiple datacenters and multiple SQL Azure instances around the globe.

4. Office 2010 Support for SQL Azure (released at TechEd) – This new feature offers native data connectivity support from Microsoft Office (e.g. Access, Excel and PowerPivot) to SQL Azure databases, providing more choices to connect rich Office Business Applications with databases, running either on-premises or in the cloud.

Windows Phone 7 info

Sul sito http://www.thinkmobile.it, ho pubblicato vari mini-articoli sul mio blog e alcune demo (nella sezione media).

Michele Locuratolo, con l’uscita di Windows Phone 7, tornerà a dare una mano alla community con una serie di blog e articoli. Molti di voi conosceranno Mighell e avranno letto i suoi numerosi post e articoli sullo sviluppo mobile. Tra parentesi, Mighell è l’autore del logo di ThinkMobile, creato nel 2005 quando venne pubblicato il sito della community.

Se siete interessati ad aprire un blog sulla community scrivetemi direttamente a roberto “chiocciola” devleap.com.

Articoli

Windows Phone 7 Trial Application
Fra i vari servizi esposti dal Markeplace (certification, advertising, cross-selling, etc.) esiste il “servizio” di prova di una applicazione. L’idea è molto semplice e nel contempo, molto potente. 1) Come sviluppatori indicheremo al Marketplace se vogliamo...
Windows Phone 7 SMS
Chiudiamo questa mini-serie sull’interazione fra codice e API applicative del device/emulatore con un esempio semplicissimo sull’emulatore. Direi che dopo i post precedenti non c’è bisogno di ulteriori spiegazioni sul flusso che stiamo creando: Il tasto...
Windows Phone 7 Camera…from Code
Come abbiamo avuto modo di segnalare in altri blog e articoli precedenti, l’emulatore attuale non espone attraverso il menù start tutte le applicazioni che è in grado di supportare. La fotocamera è una di queste applicazioni “nascoste”. Da codice possiamo...
Windows Phone 7 Email from code
Come abbiamo visto nell’ultimo post sulla fotocamera, l’emulatore attuale non espone attraverso il menù start tutte le applicazioni che è in grado di supportare. In questo mini-articolo vediamo come attivare la parte di “email” che comprende la composizione...
Windows Phone 7 Input Scope
Windows Mobile, iPhone e Android ci hanno abituato a semplificare la vita all’utente durante la digitazione di informazioni. Da sempre, su un device mobile occorre facilitare l’input all’utente agendo su vari fronti. Su Windows Phone 7 è possibile agire...
Windows Phone 7 Location Service
Il servizio “Location Service”, come indica il nome stesso, consente di notificare alle applicazioni che lo utilizzano la posizione corrente del device. Il servizio ottiene i dati da fonti diverse in base alle impostazioni (effettuabili da codice) che...
Esempi Windows Phone 7
Windows Phone 7 Isolated Storage
Come per le applicazioni Silverlight tradizionali, anche sui nuovi Windows Phone 7 sarà possibile utilizzare l’Isoltated Storage per memorizzare informazioni applicative. Vista la natura a Page dell’applicazione è quasi indispensabile salvare lo stato...
WPF 7: DevLeap mini-browser applications
Riprendendo una parte di workshop direttamente da MSDN ho ricreato questo piccolo esempio di applicazione client che sfrutta il controllo web browser presente su Windows Phone 7 Si faccia riferimento Windows Phone 7 Intro per una introduzione alla creazione...

Le mini-applicazioni/demo presenti nella sezione media sono:

Windows Phone 7: SMS from code

Esempio di invio di SMS via API
Tue, Jun 15 2010

Windows Phone 7 Camera from code

Esempio di attivazione della fotocamera da codice (funziona anche con l'emulatore)
Tue, Jun 15 2010

Email Chooser, Send, Contact

Esempio semplice di utilizzo delle API per interagire con Outlook.
Tue, Jun 15 2010

Input scope: esempio semplice

Esempio di gestione dei vari metodi di input dei dati (email, indirizzo web, numeri, etc)
Fri, May 28 2010

Location Service: esempio semplice

Esempio di geolocalizzazione: funziona anche sull'emulatore via Wi-Fi.
Fri, May 28 2010

Isolated Storage: esempio semplice

Esempio di accesso all'Isolated Storage per gestire dati e settaggi applicativi
Fri, May 28 2010

Application Bar: esempio semplice

Esempio di creazione e utilizzo del'Application Bar con icone e menù
Fri, May 28 2010

Accelerometro: esempio semplice

by rob
Esempio di utilizzo delle API dell'accelerometro.
Fri, May 28 2010

Formazione e informazioni

Il primo momento pubblico dove conoscere da vicino il device e le sue API è mercoledì prossimo: a Milano, infatti, si terrà Microsoft Remix che, o oltre a sessioni su Web e Hosting, presenta ben 5 sessioni su Windows Phone. Durante la conferenza verrà utilizzata una applicazione per la gestione delle valutazione che ha, oltre a interfaccia web e sms, un’interfaccia Windows Phone 7, sviluppata seguendo la nostra architettura applicativa.

L’agenda delle sessioni su Windows Phone 7 comprende:

1) Keynote: introduzione a HTML 5, Silverlight e Windows Phone 7

Keynote generale con la panoramica delle tecnologie presentate durante la giornata: sesisone importante per inquadrare il panorama tecnologico

2) Architettura di Windows Phone 7 e nuove opportunità del marketplace

Windows Phone 7 ha introdotto moltissime novità nell'architettura dei device e delle applicazioni realizzabili con Silverlight e XNA. In questa sessione affronteremo le basi dell'architettura dei nuovi device e capiremo come realizzare e distribuire, tramite il marketplace, applicazioni che sfruttino al meglio le funzionalità della nuova piattaforma dei telefoni programmabili con Visual Studio 2010.

Lorenzo Barbieri

3) Sviluppare applicazioni Windows Phone 7 con Silverlight

In questa sessione, rivolta anche a chi non conosce ancora Silverlight, creeremo un'applicazione per Windows Phone 7 utilizzando i tool, l'emulatore e le più importanti caratteristiche dell'API di Silverlight per Windows Phone 7. Capiremo come sfruttare le caratteristiche hardware e software dei dispositivi per creare applicazioni altamente interattive.

Lorenzo Barbieri

4) Migliorare le proprie applicazioni con i servizi "in the cloud" di Windows Phone 7

Windows Phone 7 introduce una serie di servizi (Push Notification, Location, integrazione con Xbox Live, notifiche sulla Start page tramite Tile custom, etc...) utilizzabili dalle applicazioni per aggiungere miglioramenti grazie a informazioni, eventi e molto altro, provenienti dal "cloud". In questa sessione capiremo, con esempi pratici, come usare efficacemente questi servizi per le nostre applicazioni e cosa cambiare nelle stesse per ridurre il carico sulla CPU, sulla rete e quindi sulla durata della batteria.

Michele Locuratolo

5) Windows Phone 7: "smart design & integrated experience"

Scopriremo insieme le principali novità introdotte dalla nuova "user interface" di Windows Phone 7. Un nuovo paradigma di interazione, in cui l'utente risulta sempre più sensibile alla fruizione di applicazioni e mash-up di contenuti e servizi in completa mobilità. Partendo da questi presupposti, nel corso della sessione mostreremo le principali linee guida da tenere in considerazione nella progettazione e nel design di un'applicazione per Windows Phone 7. Tutto questo utilizzando un esempio di progettazione e design di un'applicazione Silverlight per Windows Phone con Expression Blend.

Roberto Cavallini

5) XNA e lo sviluppo di giochi su Windows Phone 7

Nel corso della sessione mostreremo le potenzialità di XNA per lo sviluppo di giochi su Windows Phone 7. Capiremo come realizzare effetti grafici avanzati 2D e 3D attraverso le primitive di disegno e scopriremo come progettare e sviluppare con XNA 4.0 giochi e applicazioni per PC, Xbox e Windows Phone 7.

Giuseppe Maggiore

Ci vediamo a Milano

Posted: giu 18 2010, 11:56 by rob | with 1 comment(s)
Filed under:
Windows Azure 1.4

E’ disponibile Windows Azure Guest OS 1.4 (Release 201005-01). Le applicazioni configurate come “Automatic Upgrade” vengono automaticamente portate alla nuova versione.

Questo la maschera di una applicazione che stiamo con ThinkAheadDevLeap seguendo in questi giorni

image

Posted: giu 16 2010, 01:22 by rob | with no comments
Filed under:
SQL Azure a 50 GB

Riporto la notizia esattamente come mi è arrivata: dal 28 giugno SQL Azure cresce, dandoci la possibilità di utilizzare database fino a 50 GB.

“We are pleased to announce that starting on June 28, 2010, we will be increasing the size limit of a SQL Azure Business Edition database from 10 GB to 50 GB and that of a SQL Azure Web Edition database from 1 GB to 5 GB.  Please note that if you elect to increase your existing databases to take advantage of these new sizes, there are additional charges.  Please refer to our offer comparison table for more details by offer on our pricing.  To help familiarize you with SQL Azure pricing, we will also release the pricing preview on June 7th, 2010 on SQL Azure pricing.

Starting August 1, 2010, we will also release a new SQL Azure Development Accelerator Core promotional offer.  This new offer will give you the flexibility to purchase commitment quantities of SQL Azure Business Edition databases independent of other Windows Azure platform services at a deeply discounted monthly price.  The offer is valid only for a six month term.  You may purchase in 10 GB increments the amount of our Business Edition relational database that you require (each Business Edition database is capable of storing up to 50 GB). 

The offer price will be $74.95 per 10 GB per month.  This promotional offer represents 25% off of our normal consumption rates.  Monthly Business Edition relational database usage exceeding the purchased commitment amount and usage for other Windows Azure platform services for this offer will be charged at our normal consumption rates. 

Please click here for full details of our new SQL Azure Development Accelerator Core offer. “

Posted: giu 16 2010, 12:06 by rob | with 2 comment(s)
Filed under:
Windows Phone 7 SMS

Chiudiamo questa mini-serie sull’interazione fra codice e API applicative del device/emulatore con un esempio semplicissimo sull’emulatore.

Direi che dopo i post precedenti non c’è bisogno di ulteriori spiegazioni sul flusso che stiamo creando:

image

Il tasto SMSCompose utilizza le API per comporre un SMS:

Questo il codice autoesplicativo:

image

 

Alla pressione del pulsante il risultato è il seguente:

image

Si può continuare la conversazione inserendo altri messaggi dopo il Send

image

Con il tasto Back si torna all’applicazione.

Windows Phone 7 Email from code

Come abbiamo visto nell’ultimo post sulla fotocamera, l’emulatore attuale non espone attraverso il menù start tutte le applicazioni che è in grado di supportare. In questo mini-articolo vediamo come attivare la parte di “email” che comprende la composizione del testo, la scelta dei contatti e la possibilità di salvare gli indirizzi email.

Partiamo subito dall’esempio (che ho inserito nella sezione media di ThinkMobile.it) creando una nuova applicazione in cui inseriamo alcuni semplici pulsanti che ci serviranno per utilizzare le API dietro le quinte:

image

Il primo pulsante utilizzerà l’indirizzo indicato nel textbox per comporre una email.

Questo il codice XAML che ci ricorda come non sia importante nel nostro caso l’impaginazione :-)

image

Vediamo il codice, e il risultato del primo pulsante:

image

Il codice crea una classe EmailComposeTask che consente di attivare appunto l’attività di scrittura di una mail.

Stiamo usando tutte le proprietà che la classe espone e direi che non ci sono problemi di interpretazione del significato:

image

Attivando il codice otteniamo questo risultato:

image

Giustamente, prima di poter inviare una mail dobbiamo impostare un account. Impostato l’account otteniamo il risultato che ci eravamo prefissi.

Proviamo a scegliere il seocondo pulsante vedendo prima il codice relativo:

image

Anche in questo caso il risultato è quello che ci aspettiamo (la prima volta avremmo non avremmo contatti da cui scegliere)

 

image

Visto che il telefono simulato non espone una interfaccia per la gestione dei contatti, aggiriamo il problema invocando da codice il task di salvataggio di un indirizzo email…questa operazioni consente di arrivare dove vogliamo arrivare. Ecco il codice

image

Eseguiamo il codice e…sopresa…ecco la maschera di gestione dei contatti:

image

e premendo il tasto Add

image

Fatto il primo Accept ecco altre informazioni. Ho riempito il nome/cognome e azienda:

image

Posso aggiungere una foto (si veda il post relativo)

image

Una volta completato l’aggiunta del contatto si presenta la maschera seguente:

image

A questo punto possiamo riprovare il secondo pulsante e scegliere il contatto appena aggiunto:

image

Scelto il contatto la page si presenta così

image

Il risultato di una task, in questo caso la scelta dell’email di un contatto, ci viene restituito attraverso un metodo della pagina stessa denominato OnChooserReturn. Ecco il codice che testa il tipo di risultato e ne recupera il risultato stesso nel caso in cui l’utente abbia scelto un contatto (ovviamente se preme annulla o back non dovrebbe recuperare nessun valore)

image

Quando si attivano dei Task, il risultato (in questo caso la fine della composizione della mail) ci viene restituito

Slide Sessione IASA 9 giugno

Per gli interessati ho pubblicato a questo IASA 9 luglio 2010 le slide in pdf della mia sessione di mini-introduzione a Windows Azure tenuta al primo evento del Chapter italiano di IASA.

Nel caso siate interessati ad approfondire gli argomenti proponiamo due corsi di formazione:

Windows Azure & Services Platform Essentials Windows Azure & Services Platform Advanced 

 

Posted: giu 14 2010, 08:40 by rob | with no comments
Filed under:
Windows Phone 7 Camera…from Code

Come abbiamo avuto modo di segnalare in altri blog e articoli precedenti, l’emulatore attuale non espone attraverso il menù start tutte le applicazioni che è in grado di supportare.

La fotocamera è una di queste applicazioni “nascoste”. Da codice possiamo però invocare le API della fotocamera per capire già oggi come si comporterà la nostra applicazione durante l’interazione con la fotocamera stessa.

Partiamo subito dall’esempio (che ho inserito nella sezione media di ThinkMobile.it) creando una nuova applicazione in cui inseriamo alcune semplici pulsanti per attivare la fotocamera

image 

Nel form, anzi nella page, ho inserito due pulsanti Camera e Choose con l’obiettivo, rispettivamente, di attivare la fotocarmera per scattare una foto e di scegliere una foto dagli album dell’utente. Una volta scattata o scelta la foto visualizziamo l’immagine stessa nell’immagine al centro della page.

In questo semplice esempio non ho utilizzato nessuna tecnica di allineamento dei controlli  gestione dell’orientamento; questo il codice:

image

Vediamo il codice del code behind introducendo il concetto di Task: le API espongono varie funzionalità sotto forma di task. Esiste ad esempio un Camera Capture Task implementato nell’omonima classe nell’assembly Microsoft.Phone.Task. La definizione della classe ci mostra i suo metodi pubblici:

image

Molto semplicemente, le immagini fotografate possono essere serializzate e deserializzate via Stream, e, tramite il metodo Show, attivare la fotocamera per scattare una foto.

Nel nostro esempio il codice è molto semplice e attiva la fotocamera (presente in versione simulata anche sull’emulatore)

Vediamo l’esempio: il codice del tasto button1 è il seguente

image

Facciamo F5 e vediamo cosa succede

Una volta scattata la foto, la page riceve la chiamata al metodo OnChooserReturn (il chooser è un concetto molto diffuso sul telefono e consiste nell’attivazione della maschera di scelta di elementi presenti sul mercato, contatti o email o foto come stiamo vedendo)

E’ possibile quindi effettuare l’override del metodo per recuperare il valore restituito dal chooser (nel nostro caso la Photo)

image

Il codice è autoesplicativo: si recupera l’EventArgs come TaskEventArgs<PhotoResult> e dopo il classico controllo sulla compatibilità sul tipo cerchiamo di capire se l’utente ha scelto o ha fatto Cancel. Il risultato di TaskEventArgs<PhotoResult> ha una proprietà, fra le altre, ChosenPhoto che restituisce la photo sotto forma di classico System.IO.Stream.

More Posts Next page »