Visual Studio 2012でDSL(Domain Specific Langage)を実践

つい先頃、DSLに関する話題が某コミュニティで出たので、2013年6月時点での最新ツール群を使った、DSLを実践する取っ掛りを紹介しておきます。 DSL(Domain Specific Language)とは何ぞや…を本来ならちゃんと説明しなければならないのですが、この投稿に興味あるのは、DSLという高尚なネタに興味のあるハイレベルな技術者だけだろうということで省きます。ある特定領域のある目的に特化した専用モデル(図じゃなくてもいいのですが)エディター&ツールです。.NET Gadgeteerのボードエディタ、Entity Frameworkのグラフィカルエディターを思い浮かべてください。 で、Visual Studio 2012を使って独自のDSLを実践する環境が作れます。Visual StudioのEditionはUltimateが必要です。このEditionにVisualization & Modeling SDKをインストールします。このSDKは、Visual Studioの”ツール”→”拡張機能と追加プログラム”で、名前で検索するか、 http://www.microsoft.com/en-us/download/details.aspx?id=30680 を直接ブラウザで開いて、必要なSDKのインストーラーをダウンロード&実行します。 準備はそれでおしまい。 SDKをインストールすると、プロジェクトテンプレートに、 ”その他のプロジェクトの種類”→”Domain Specific Language Designer”というプロジェクトテンプレートが追加されます。DSLの環境を開発するには、このテンプレートを起点にします。まぁ取敢えず、サクサクと作ると、 こんな感じのプロジェクト一式が現れます。DSLは奥が深く、とても数行では語れないので、このポストでは深くは語りませんが、図の部分の左側がDSLのメタモデル、右側がDSLの見た目のEditorです。加えて、Editor上のコンテキストメニューや、各種機能、モデルからの自動生成機能などを入れ込んでいくことが可能です。自動生成ではT4 Templateという技術要素が利用可能です。 先ずは、サンプルを一個作って、F5実行してみてください。DSL環境がビルトインされたVisual Studio IDEがもう一個立ち上がり、その時点でのDSL Editor環境を実際に動作させることができます。 ご要望があれば、更に詳しく、このVisualization & Modeling SDKの使い方など、説明しようかなと思っておりますです。    

0

Visual Studio 2012でOffice 2013の拡張アプリを作れるようになりました!!

私が書くのもなんなのですが、…ま、組込み系でもExcelをCASE Toolとして使う開発者も多いからいいですね。ということで、Visual Studio 2012向けに最近リリースされたMicrosoft Office DeveloperToolsを紹介します。 Visual Studio(有償版)では、ずいぶん昔から、ExcelやWord、PowerPoint、Visioに拡張機能を追加するToolsetが存在していました。2013年3月19日現在のVisual Studio 2012をインストールした状態では、Office 2010向けのOffice Toolsetしか入っていません。あれ、既に出ているOffice 2013向けはないの?と思った方も多いでしょう。大丈夫です。以下の手順に従って拡張機能をインストールしてください。 C:\Program Files\Microsoft\Web Platform InstallerのWebPlatformInstaller.exeを実行   “Microsoft Office Developer Tools”を検索 “Microsoft Office Developer Tools for Visual Studio 2012″を選択して”インストール” 関連するライブラリーやツールのインストール状態によって、途中で失敗する場合もありますが、その場合は再度インストールをトライしてください。Visual Studioのダイアログが開いているとインストールが進まなくなるので、Visual Studio 2012は終了しておいた方が良いでしょう。 インストールが完了したら、プロジェクトテンプレートには、 の様に、Office 2013向けのToolsetを使うプロジェクトテンプレートが追加されます。インストールしたPCにOffice 2010がインストールされていれば、Office 2010用のプロジェクトテンプレートもインストールされます。  

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

Visual Studio 2012 RCのテンプレート

このポストでは、Visual Studio 2012 RCのテンプレートを紹介します。 Metroスタイルアプリ開発関連のテンプレートは、Visual C#/Basic/C#、JavaScriptの各言語の下に”Windows Metro style”というカテゴリーの下に用意されています。 用意されているテンプレートは、 http://msdn.microsoft.com/en-us/library/windows/apps/hh738343.aspx で、詳細に説明されています。 Visual C#/Basic Blank App(XAML) Grid App(XAML) Split App(XAML) Class Library(Metro style apps) Windows Runtime Component Unit Test Library(Metro style apps) Visual C++ C#/VBのテンプレート一式あり Direct2D App(XAML) Direct3D App DLL(Metro style apps) Static Library(Metro style apps) JavaScript 空のアプリケーション Grid App 分割アプリケーション 固定レイアウトアプリケーション ナビゲーションアプリケーション 以下、C#/VB/VC++のテンプレートをベースに紹介していきます。 1ページもののアプリを開発する場合には、Blank App(XAML)が使えます。グループ化されたコンテンツを表示するアプリは、Grid…

0