tmytのらくがき

個人の日記レベルです

WindowsPhone7 Developer ToolsがBetaになりました。

WindowsPhone7のDeveloperToolsがBetaになって今日からダウンロードできるようになりました。
さすがCTPからBetaへの変更とあって、かなり変更が多いようです。ちなみにCTPのコードはそのままだとBeta環境で通りません。さすがCTP。
というわけで今日は新しくなったDeveloperToolsをいじってみたまとめをだらだらと書いておきます。
さて、Betaになって大きく変わったのがテーマカラーがApp.xamlの定義から外されました。
CTPまではApp.xamlにテキストの色とか背景色がリソースとしてたくさん定義されていましたが、BetaのApp.xamlからはばっさり削除されています。
ばっさり削除されたからといってもばっちり使えます。たぶんどっかに定義されているんでしょうがチェックしてません。
テーマカラーを変更してもアプリケーションにばっちり反映されます。これはCTPからでも使えたような気がします。よく覚えていません。
なぜよく覚えていないかというと、PivotやPanoramaのサンプルがStaticResourceでバインディングされておらず、標準の黒ばかり見ていたからです。

そして次に大きく変更されたのが、アセンブリが統合されてばっさり削除されました。
Microsoft.Phone.*のアセンブリはInterop, Reactiveへ移された物を除いてすべてMicrosoft.Phoneへ統合されました。
これによってCTPのコードが全部通らなくなります。

<phoneNavigation:PhoneApplicationPage 
    x:Class="WindowsPhoneListApplication1.MainPage"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:shell="clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone.Shell"
    xmlns:mpc="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone.Controls"
    xmlns:phoneNavigation="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone.Controls.Navigation"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
	xmlns:test="clr-namespace:WindowsPhoneListApplication1"
    mc:Ignorable="d" d:DesignWidth="480" d:DesignHeight="800" 
    d:DataContext="{d:DesignData SampleData/MainViewModelSampleData.xaml}"
    FontFamily="{StaticResource PhoneFontFamilyNormal}"
    FontSize="{StaticResource PhoneFontSizeNormal}"
    Foreground="{StaticResource PhoneForegroundBrush}">
</phoneNavigation:PhoneApplicationPagee>

このコード中でassembly=Microsoft.Phone.ShellやMicrosoft.Phone.ControlsなどMicrosoft.Phone.*以下のアセンブリを参照している部分をMicrosoft.Phoneを参照するように変更すればBetaの環境でも動くようになります。
App.xamlも大幅に変更されているためそのままだと動きません。新しいプロジェクトを作成してこぴぺしたほうがいいんじゃないかと思います。

App.xamlを新しいプロジェクトを作成してこぴぺすると、アプリケーションは起動してもメインページが表示されなくなります。
これはCTPではRootVisualがApp.xamlで指定されていたためにその指定が無くなったためです。
Betaで作成したプロジェクトではスタートアップページがWMAppManifest.xmlで指定されており、次のように変更すればちゃんと表示されます。

<!-- CTP -->
<Deployment xmlns="http://schemas.microsoft.com/windowsphone/2009/deployment" AppPlatformVersion="7.0">
  <App>
    <Tasks>
      <DefaultTask  Name ="_default" PlaceHolderString="Default task"/>
    </Tasks>
  </App>
</Deployment>
<!-- BETA -->
<Deployment xmlns="http://schemas.microsoft.com/windowsphone/2009/deployment" AppPlatformVersion="7.0">
  <App>
    <Tasks>
      <DefaultTask  Name ="_default" NavigationPage="MainPage.xaml"/>
    </Tasks>
  </App>
</Deployment>

またListViewItemが削除されていたりといろいろ削除されている雰囲気です。なんか見つけたらちょくちょくエントリしていきますね。