2012年12月18日時点での公開中テンプレート使用に関する注意

http://msdn.microsoft.com/ja-jp/jj556277 から公開中のEntertainment Photo、Basic Photoテンプレートにちょっとした不具合があるので、ご注意。アプリパッケージを作成する前に、Package.appxmanifestを開いて、下図の エントリポイントを変更してください。”.App”の前の文字をプロジェクト名に置き換えてください。例えば、プロジェクト名が、”FavoritMusic”なら、 ”FavoritMusic.App” です。お手数をおかけして申し訳ないです。    

0

.NET Micro Frameworkでネットワークプログラミングする時に便利なクラス達

今、.NET GadgeteerでWindows Azure Storageのテーブルに接続するコードを書いているところですが、よく使うクラスと使用上の注意点をメモっときます。 RESTでWebサービスに接続するには、当然 HttpWebRequest HttpWebResponse の二つのクラスが必要です。そして当然の様に用意されています。若干の細かい違いはあるものの、フルの.NET Frameworkのライブラリとほぼ同じ。デスクトップアプリやWebアプリでのコーディングそのままの勢いで書いちゃってください。名前空間は同じく、System.Netです。使うときには、プロジェクトの参照にSystem.Http アセンブリを加えてください。 XMLデータを受信して解析するには、 XmlReader を使います。このクラスはフルの.NET Frameworkとはかなりメソッド構成が違います。このクラスの使い方はまた別の機会で。名前空間はSystem.Xmlで、使うにはSystem.Xml アセンブリーを参照に追加してください。System.Xml.Legacy アセンブリーは必要ありません。XmlReaderがあるならXmlWriterを使いたい…そんなあなたへ。一応System.Ext.Xml空間にありますが、このクラスは、DPWS(Device Profile For Web Service)ライブラリ用に用意されているクラスで、MFDpwsExtentions というアセンブリーで提供されています。このアセンブリーは比較的サイズが大きく、フルの.NET FrameworkのXmlWriterとは使い勝手も違い、更に、XML文を組み立てるなら、文字列の足し算で十分じゃない?ということで、DPWSを使う場合以外は使わなくてもよいでしょう。小型の組込み機器制御だし。 文字列を組み立てるとなると、 StringBuilder も欲しいところです。このクラス、.NET Micro Frameworkの過去のバージョンでは、名前空間が違うところにあったりしたのですが、4.xではSystem.Textにちゃんと用意されています。 で、URL文を組み立てる段になると、UriクラスのEscapeDataString()メソッドが欲しくなります。これは、.NET Micro FrameworkのUriクラスには用意されていません。困ったな。現在調査中ですが、 Regex クラスのEscape()メソッドがどうやら使えそう。このクラスは、System.Text.RegularExpressions 名前空間にあります。使う場合は、名前空間と同じ名前のアセンブリーを参照に追加してください。 さて。HttpWebRequestクラスを使い、GetRequestStream()メソッドでストリームを取り出して、データをWebサーバーに送る場合、UTF8でエンコードされたバイト列に文字列を変換します。これは、 Encoding.UTF8.GetBytes(body) でエンコード可能です。System.Text名前空間にEncodingクラスがあります。 更に、暗号化など行う場合は、私のブログの前に投稿した記事を見てもらう必要があります。SHA1、HMACなどで暗号化したバイト列を今度はBase64エンコーディングした文字列への変換が必要になります。 Convert.ToBase64String(buf) というようにConvertクラスのToBase64String()メソッドで一発変換。 といったように、一通りWebプログラミングに必要なクラス、メソッドが用意されているので、.NET Gadgeteer/Micro Frameworkで、ネットワーク連携プログラミングをお楽しみください。  

0

Windows 8 Store アプリをリモートからデバッグ

Windows 8 Storeアプリでは、加速度センサー、ジャイロセンサー、コンパス、GPS、オリエンテーションなど色々なセンサーを使ったアプリ開発が可能です。モーション系のセンサーを使ったアプリを開発する場合、デバッグするには、当然端末を傾けたり、振り回してみたり、叩きつけ…(いや、叩き付けるのはやらないでね)しないと、計測したセンサー値を基に正しくアプリが動作するかチェックができません。で、端末を動かしていると「変な人がいる」…とか言われたりするのですが、それはさておき、同じPC上でVisual Studioを使ってデバッグするのは無理です。 そんな時に便利なのがリモートデバッグ機能です。このポストではリモートデバッグの使い方を説明します。 2012/12/3現在、Visual Studio 2012のUpdate 1が既に公開されているので、先ずはVisual StudioをUpdateしましょう。Updateは、 http://www.microsoft.com/visualstudio/jpn/downloads のVisual Studio 2012 Update 1タイルをタッチして、今すぐインストールをタッチして更新可能です。 更に、このタイルの下の方に、”Remote Tools for Visual Studio 2012”というタイルがあるのでそれもタッチして、リモートデバッグしたいターゲットPCのCPUに対応するソフトをタッチしていインストールします。(この作業はリモートデバッグのターゲットデバイス上で行うことに注意) Remote Toolsのインストールがすむと、ターゲットPCのスタート画面にRemote Debuggerというタイルが追加されます。 リモートデバッグするには、 開発用PC(VS2012がインストールされていて、プログラミング&デバッグを行うPC) ターゲットPC(Remote Debuggerがインストールされていて、プログラムを実行させるPC) を2台とも同じネットワークに接続しておきます。 まず、ターゲットPC上でRemote Debuggerのタイルをタッチして、Remote Debuggerを起動します。認証や、Windows Firewallに関する設定が出てきますが、それはデフォルトでOKです。起動が完了すると と、Windowが表示されます。 開発用PCでVS2012を立ち上げ、ストアアプリを作ります。C#の場合はプロジェクトのプロパティを表示し、”デバッグ”タブを選択します。 ターゲットデバイスのコンボボックスから、”リモート コンピューター”を選択し、”検索(I)…”ボタンをクリックします。 ターゲットPCできちんとRemote Debuggerが動いていて、ネットワークにきちんと2台ともつながっていれば上のようなダイアログでターゲットPCが表示されます。接続したいターゲットPCの選択ボタンをクリックします。ユーザー名とパスワードを聞いてくるので、ターゲットPC側でサインインしているマイクロソフトアカウント(メールアドレス:@hotmail.comとか@live.jp、@hotmail.co.jpなど)をユーザー名のボックスに、パスワードにはサインインするときのパスワードを、それぞれ入力し、”OK”をクリックします。 これで準備万端です。 デバッグ対象のコンボボックスから、リモートコンピューターを選択して、デバッグを開始すれば、ターゲットPC上で開発中のアプリをターゲットPC上でデバッグ実行できます。    

0

Visual Studio 2012でデバイスドライバー開発

Visual Studio 2012は、デバイスドライバーを通常のアプリ開発と同じように開発できるようになっています。デバイスドライバー開発は、以前はほぼ完全にコマンドラインツールを駆使したものでしたが、今は、プロジェクトテンプレートからプロジェクトを作成し、開発できるようになっています。 Visual Studio 2012でデバイスドライバーを開発するためには、先ず、WDK(Windows Driver Kit)をインストールします。 http://msdn.microsoft.com/ja-JP/windows/hardware/gg487428/ から、ダウンロード&インストールを行ってください。PCにVisual Studio 2012(有償版)がインストールされていれば、デバイスドライバー開発に必要な環境一式がVisual Studio 2012に追加されます。WDKのインストールが終わったら早速Visual Studio 2012を起動し、新しいプロジェクト作成メニューを選択してみてください。 VC++の下にWindows Driverというカテゴリが追加され、各種デバイスドライバー、デバイスドライバー向けサンプルアプリ、インストールパッケージ、テスティングフレームワークといったプロジェクトが用意されます。これを取っ掛かりにプロジェクトを作成できるようになったわけです。デバイスドライバーのビルドや、UDMFのドライバーなどは、ソースコードレベルデバッグなども一貫したVisual Studio 2012のUIを使って行うことができます。一つ前のポストで紹介したアーキテクチャの依存関係グラフなども生成が可能で、ドライバーの構造を可視化することができます。また、TFSでのソースコード管理も以前より容易に行えるなど、Visual Studio 2012に関連する機能を使い倒すことができるようになっています。更に、Static Driver VerifierもGUI化されました。 何かIssueがある場合は、Resultのリンクをクリックすると、 レポートページが表示され、該当するソースコードを表示できます。 ドライバーの静的解析はずいぶん昔に話題になったことがあるのを覚えていますが、こちらも試してみてください。 Visual Studio 2012によるドライバー開発は2012年4月に行われたWDD(Windows Developer Days)で、デバイスドライバーズの日高さんが、セッションを担当されています。 https://channel9.msdn.com/Events/Windows-Developer-Days/Windows-Developer-Days-2012/SP-006 CP版の頃の話なので若干古い部分はありますが、こちらもご覧ください。    

0

Visual Studio 2012でC++ソースコードの構造を可視化する

Visual Studio 2012ではC++開発に関する機能が強化されています。このポストでは、機能強化の一つである、ソースコードの構造の可視化を紹介します。 プログラムは常に成長するものです。例え、趣味でちょっとしたプログラムを書いているときでも、あれもやってみよう、これもやってみよう…とプログラムの規模はだんだん大きくなってきます。そして気がつけば人間の頭の中だけでは手に負えない状況になったりします。通常の製品レベルのプログラムでは言うまでもないでしょう。C#やVisual Basicでは、Visual Studio 2010の時代からアーキテクチャエクスプローラの機能を使ってソースコードの可視化ができていました。Visual Studio 2012ではC++でもソースコードの可視化ができるようになっています。 ※この機能は、有償版のUltimateでご利用いただけます。 先ず試しに、Visual Studio 2012を立ち上げて、VC++のストアアプリ、グリッドアプリケーションテンプレートでプロジェクトを一つ作ります。プロジェクトが出来上がったら、メニューで「アーキテクチャ」→「依存関係グラフの生成」→「ソリューション」を選択します。 これで、以下の様なダイアグラムが生成されます。 おう ダイアグラムのApp14.exeの濃紺のアイコンにカーソルを持っていくと左にマークが表示されます。それをクリックすると、App14.exeの中身が展開され、 中身の名前空間構造が表示されます。更に濃紺の名前空間のアイコンを展開していくと、 と、クラスの依存関係、クラス内部のメソッドやプロパティが表示されます。この様に簡単な操作で、ソースコードの構造の俯瞰が可能です。 また、アーキテクチャメニューで、「インクルードファイルの場合」を選択すると、 ソースファイルとヘッダーファイルのインクルード関係が図示化されます。C++では、名前空間やクラス/テンプレートライブラリを使うのにヘッダーファイルをインクルードする必要があるので、サンプルコードの実装方法の確認などでも、便利でしょう。  

0

Welcome Back to C++

今日札幌で話したC++に関する情報です。Visual Studio 2012では、昨年標準化されたC++11への対応や、Windows 8 ストアアプリ開発に対応するためのC++/CXなど、新たな機能が追加されています。 新機能(Modern C++)のC++11対応に関する情報ソースは、 http://msdn.microsoft.com/en-us/library/vstudio/hh279654.aspx ※日本語自動翻訳版は、http://msdn.microsoft.com/ja-jp/library/vstudio/hh279654.aspx から公開されています。 スマートポインタやラムダ式、新しいテンプレートなどに関する説明はこちらをご覧ください。 C++/CXは、 http://msdn.microsoft.com/en-us/library/windows/apps/br212455.aspx から公開されています。CXで新たに追加されたキーワード、property、delegate、eventなどに関する説明はこちらをご覧ください。 また、10月末にマイクロソフト本社で開催されたBuildのコンテンツアプリが、Windowsストアから公開されていて、 http://apps.microsoft.com/webpdp/ja-JP/app/build-2012/0c51433d-4d6b-4e51-a274-86611f732fca で公開されています。 このアプリにはセッション情報、動画、PPTなどダウンロード可能なので、Windows 8ユーザーは是非インストールしてみてください。C++に関するドキュメントも結構あります。            

0

Windows 8 ストアアプリ - サンプルコード Tips

今更のポストの気もしますが、皆さん、 http://code.msdn.microsoft.com/windowsapps/Windows-8-Modern-Style-App-Samples ここから、Windows 8 ストアアプリのサンプルプロジェクトが沢山含まれたZIPアーカイブをダウンロードできるのご存知ですよね。アプリ開発を始める際、一通りざっと目を通しておくことをお勧めします。このZIPに含まれるプロジェクト(それぞれ個別にWebからダウンロード可能ですが)のうち、DirectX系のサンプルプロジェクトをビルド&実行するときには、以下のことに気を付けてください。 例えば、XAML DirectX  3D shooting game sampleやDirectX marble maze game sampleは、slnファイルが格納されているフォルダーをVisual Studio 2012のProjectsフォルダー直下に置かないと、ビルドできません。別の場所に置いて「あれ動かないぞぉ」とお困りの方、試してみてください。(サンプルのQ&Aに書いてありました)   DirectXやC++に関する話題を、これから何回かに分けて話をしようかな…などと思っております。はい。    

0

グリッドアプリケーションのアイテムとして音楽を使ってみる

現在、http://msdn.microsoft.com/ja-jp/jj556277.aspx から公開しているBasic Photo、Entertainment Photoのテンプレートは、Visual Studio 2012のグリッドアプリテンプレート(XAML/C#)をベースに作られています。このポストではBasic Photoアプリテンプレートをベースに説明を進めます。 Basic Photoテンプレートは名前からすると写真を扱うアプリ用に見えますが、アイテムは音楽の曲でも構いません。Windows PhoneのPCクライアントアプリであるZuneでMusic CDをキャプチャすると、ライブラリのミュージックフォルダーにアルバム情報と曲のファイルが構造化されて格納されます。論理構造的にはアルバムがあってそのアルバムに属する曲が入っているわけです。 アルバム => SampleDataGroup曲      => SampleDataItem とすれば、Basic Photo(グリッドアプリ)が想定している、グループ、アイテム構造をそのまま利用できます。ピクチャフォルダーを覗いてみると、アルバムと曲のグループ関係以外の要素が組み込まれています。これを愚直にWindows.Storage名前空間のクラス群を使って辿って、データ構造を作るのもいいのですが、もっと便利にアルバム、曲構造を扱う方法があるので、紹介します。 先ず、Basic Photoテンプレートでアプリケーションプロジェクトを一つ作ってください。 Package.appxmanifestを開き、機能タブで、音楽ライブラリにチェックを入れます。これでミュージックフォルダーにアプリがアクセスできるようになります。 テンプレートで作ったプロジェクトのグループ、アイテムは、DataModel/SampleDataSource.csファイルのSampleDataSourceクラスのコンストラクター内で定義されています。                 var group1 = new SampleDataGroup(“Group-1”,                        “Group Title: 1”, から                         group6));                this.AllGroups.Add(group6); までを、             if (Windows.ApplicationModel.DesignMode.DesignModeEnabled)            {                …            } で囲んでしまいます。これで囲まれたコードは、Visual StudioやBlendでXAMLを見ているときだけ有効で、アプリの実行時は有効でなくなります。 ミュージックフォルダーに格納されているアルバム、楽曲情報からSampleDataGroup、SampleDataItemを構築するメソッドをSampleDataSourceクラスに追加します。ファイルアクセス系のAPIで非同期メソッドを使うので、非同期メソッドとして定義します。         public async void BuildMusicItemsAsync()        {            …        } このメソッドを、アプリで最初に表示されるページのGroupedItemsPageのLoadStateでコールするため、SampleDataSourceクラスに、         public…

0

分割アプリテンプレートを例に、SnapViewデザインのXAML記述をじっくりみてみよう

Windows 8 ストアアプリの実装がほぼ終わり、ダッシュボードに登録しようと思って、あ、SnapView対応忘れてた…なんてことありませんか?Windows 8の画面はFull Landscape、Full Portraite、Fill、SnapViewといくつか種類があり、少なくともFull画面とSnapViewはそれなりの見栄えがないと駄目です。表示する項目をなるべく共通にして、配置や見栄えだけ変えるのが一番効率的ですね。このポストでは、Visual Studio 2012に標準で提供されている”分割アプリケーション”テンプレートのSplitViewを例に、どうやって表示項目は同じで項目の配置やスタイルを変えているか、解説してみます。 先ずは、読者の皆さんも、Visual Studio 2012で、C#ストアアプリの”分割アプリケーション(XAML)”テンプレートを使って一つプロジェクトを作成してください。F5実行してグループの画像を一個タップします。 SplitViewページのFull画面表示とSnap画面は、 Full画面表示 Snap表示  こういう画面です。対応は、以下の様になっています。 対応しているコントロールは同一のものが使われています。では、この画面を定義しているSplitPage.xamlをエディターで開いてください。 28行目~99行目までが、Full画面のデザイン指定がされた表示コントロール一式の定義です。この部分をよう~っくみてください。配置用の格子(Grid)やコントロールにフォーカスをあてると、下のような図になります。 ページにはまず、2×2のGridが定義されています。※33行目付近左側のカラム(Column)にはprimaryColumnという名前が付けられていて、他の場所で参照可能になっています。Grid上の位置を(行、列)で書きますね。 (0,0)の位置には戻りボタンとページタイトルを表示するための、”titlePanel”と名前の付いた格子が定義されています。(1,0)のセルには、itemListViewと名前付けられた、ListViewコントロールが配置され、同一グループに属す項目リストを表示しています。右側には、上下のセルを二つつなげてitemDetailと名付けられた選択項目の詳細を表示するScrollViewerが配置されています。このScrollViewer内ではさらにGridを使って3行×2列のセルが定義されています。   これで、一通りFull画面のデザインの説明が終わりました。ここまでのことをしっかり理解して頭に入れてくださいね。 さて、各Viewのデザインは<VisualStateManager.VisualStateGroups>…</VisualStateManager.VisualStateGroups>の子要素として、各Viewごとのデザインが定義されています。Snap Viewのデザインは、215~262行目まで定義されています。 例として、217~219行目を取り上げると、 <ObjectAnimationUsingKeyFrames Storyboard.TargetName=”backButton” Storyboard.TargetProperty=”Style”>    <DiscreteObjectKeyFrame KeyTime=”0″ Value=”{StaticResource SnappedBackButtonStyle}”/></ObjectAnimationUsingKeyFrames> という記述があります。これは、「Snap Viewになった時に、戻りボタン(backButton:48~52行で定義)のStyleプロパティをSnappedBackButtonStyle(StandardStyles.xamlで定義)にしなさい」という意味です。この様な定義が列記されてSnap Viewの時のデザインを指定しているわけです。 Snap Viewのデザイン定義内容を下表に書き下ろしてみました。  No XAML定義項目 部品クラス プロパティ Fill時の指定 Snap時の指定 1 backButton Button Style BackButtonStyle SnappedBackButtonStyle 2 pageTitle TextBlock Style PageHeaderTextStyle SnappedHeaderTextStyle 3…

0

Kinect for Windows SDK 1.6の新機能

この間の月曜日(2012/10/8)に、Kinect for Windows SDKの最新版、1.6がリリースされました。興味のある方は早速、 http://www.microsoft.com/en-us/kinectforwindows/ からSDKをダウンロードして試してみてください。 色々とアップデートがあるのですが、ここでは、主要な新機能だけ紹介しておきます。 まず、Windows 8のデスクトップアプリ開発で使えるようになりました。Visual Studio 2012でもKinectを活用したデスクトップアプリが開発可能になっています。 次に、深度センサーの計測値が4m以上の値も測れるようになっています。 それから、赤外線の生データをゲットすることができるようになっています。 また、センサー筐体の傾きを測る、加速度センサーが追加されています。3軸の値が得られるので、センサーを水平に置いたり、計測中のセンサーの傾きから、重力方向に対する補正ができます。 他に、Hyper-Vなどバーチャルマシン上でもKinectが使えるようになりました。 詳しくは、http://msdn.microsoft.com/en-us/library/jj663803.aspx#SDK_1pt6_M2 を見てくださいね。 最後に、インストールの手順を紹介しておきます。 冒頭に紹介したURLのページで、 先ず、DOWNLOAD LATEST SDKをクリックして、SDKをインストールします。 次に、DOWNLOAD TOOLKITをクリックして、TOOLKITをインストールします。 インストールが終わったら、”Kinect for Windows Developer Toolkit ver 1.6.0”を起動します。 SDKsタブをクリックして、Speech SDKや、XNA Studioなど必要なものを更にインストールしておきましょう。 手っ取り早く、すべての機能を確認したい方は、Toolsタブの Kinect Explorerの”Run”を起動してみてください。Installボタンをクリックすれば、このサンプルアプリの全コードの参照も可能です。  

0