Using Bing SDK in Windows 8 Metro Apps

Vediamo come possiamo utilizzare Bing SDK nelle nostre Metro Style Apps.

Inanzitutto dobbiamo scaricare dal sito Microsoft il package Bing Maps SDK for Windows Store apps a questo indirizzo:  http://visualstudiogallery.msdn.microsoft.com/bb764f67-6b2c-4e14-b2d3-17477ae1eaca, dove troviamo anche alcune indicazioni per noi sviluppatori.

Una volta scaricato/installato il package lo dobbiamo aggiungere come Reference alla nostra applicazione, a questo punto se siamo sviluppatori C# o VB.NET ci manca ancora un requisito obbligatorio, cioè: Microsoft C++ Runtime Package.

Bene, ora che abbiamo tutti gli strumenti che ci servono per sviluppare ci manca ancora il Map Developer Account che possiamo creare sul sito http://www.bingmapsportal.com/.

Qui possiamo accedere con il nostro LiveId così da creare una SecretKey (che ci servira dopo per usufruire del servizio) associata alla nostra App:

Ecco qui una screenshot:

Ora possiammo vedere qualche esempio di codice

Per iniziare dobbiamo mettere come resource la SecretKey così che sia sempre disponibile nella nostra App (possiamo usare il App.xaml):

Adesso non ci rimane che mettere il controllo Map via XAML in questo modo:

L’App di esempio che ho fatto mette a disposizione quattro funzionalità nell’AppBar:

ZoomIn (fattore di ingrandimento sulla mappa)
ZoomOut (fattore di ridimensionamento sulla mappa)
SetLocation (posizione attuale)
ChangeView  (cambio di vista)

Qui una screenshot completa:

Adesso vediamo il codice che serve per le funzionalità sopra alencate.

ZoomIn / ZoomOut

Per fare questo tipo di operazioni sulla mappa, molto semplicemente ci basta accedere all’oggetto mappa definito prima e impostare il nuovo ZoomLevel che ci interessa e successivamente fare un SetZoomLevel sulla mappa con il nuovo fattore di Zoom.

Ecco come:

Change Map Type

Per cambiare visualizzazione è sufficiente cambiare il valore l’enumerativa  MapType dell’oggetto Map impostato precedentemente.

Ecco un esempio:

Set Location

Per impostare la nostra posizione attuale sulla mappa dobbiare creare un’istanza dell’oggetto Geolocaltor e invocare il metodo async GetGeopositionAsync che a sua volta ci restuirà indietro un oggetto GeoPosition con latitudine e longitudine.

Ora possiamo creare un oggetto Location date le coordinate appena recuperate e fare un SetView sull’oggetto Map creato in precedenza dove ci viene richiesto un oggetto Localtion e il fattore di Zoom che volgliamo.

Ecco un esempio:

Nell’esempio sopra ho aggiunto la possibilità tramite un Tap sulla mappa di impostare un pushpin (come memo.

Ecco il link per scaricare l’esempio.

Buon Divertimento

Maurizio

Windows 8, WinRT, Debugging DataBinding Error

Ciao,
giusto oggi mi dicevo… perchè nei progetti Windows Store App non abbiamo a disposizione un meccanismo di debugging per le espressioni di Binding ?

Si, possiamo sempre andare a leggere la finestra di Output per analizzare le segnalazioni che il compilatore ci mette a disposizione così da riuscire a risolvere i nostri problemi, ma possiamo, senza troppa fatica utilizzare le informazioni relative all’errore di binding utilizzando la classe DebugSettings e l’evento BindingFailed.

Il delegato che avremo a disposizione ha come argomento la classe BindingFailedEventArgs che a sua volta espone una proprietà Message che ci permetterà di visualizzare le informazioni sull’errore di data binding.

Ecco un esempio:


partial class App : Application
 {
     public App()
     {       
         DebugSettings.BindingFailed += OnBindingFailed;
     }

     private void OnBindingFailed(object sender, BindingFailedEventArgs e)
     {
         Debug.WriteLine(e.Message);
     }
 }

Maurizio

TFS: Update Machine Name / UserName

Ciao a tutti,

Oggi l’argomento (anche se molto breve) è TFS (Team Foundation Server).

Mai avuto la necessità di modificare il nome del Computer piuttosto che quello dello User?
Detto questo come facciamo a dire al server di TFS di aggiornare questi dati?

Tramite riga di comando possiamo utilizzare:
tf.exe, con due opzioni, / updateComputerName e / updateUserName.

Senza questo aggiornamento se abbiamo progetti/files in checkout anche effettuando correttamente l’accesso con la nostra utenza ma con un ComputerName diverso non sarà possibile effettuare le classiche operazioni tipo “Undo Pending Changes” (giusto per fare un esempio).

Qui la sintassi completa:
tf workspace / updateComputerName: NomeComputerPrecedente / s: http://Tfs_server:8080

PS.
Sull’MSDN sembra che queste informazioni in realtà non siamo aggiornabili o simile ma dire che è un errore di documentazione….. 😦

Maurizio

MetroNote App for Windows Store – Release 2

MetroNote App for Windows 8 Store
E’ ufficialmente pubblicata la nuova major release di MetroNote, l’Applicazione che permette la completa gestione dei vostri Post-it/Memo che ora è diventata GRATUITA.

Quali sono le nuove funzionalità? MetroNote consentirà di:
– cambiare tema (“metal” o “wood”) dello sfondo
– cambiare il colore delle note
– inserire un mark sulle note più importanti
– condividere le note tramite la Share Charm
– aggiungere le note alla Start
… e altro ancora! Aspettate e vedrete!

Ecco il link per vederla sul Windows Store: MetroNote

Maurizio