Roberto Brunetti

Developing in the cloud

.NET Programming

Archives

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.