Microsoft Visual Studio 2010データベース開発ガイドツアー
はじめに
「Microsoft Visual Studio」はこれまでデータベース開発者への対応が遅れがちだった。「Visual Studio 2005 for Database Professionals」が登場するまで本格的な Visual Studio データベース開発環境は存在していなかった。もしあなたが多くの TSQL データベース開発者と同じであれば、ソースのコントロールと TSQL コードのシンクロにはおそらく Visual Studio Database Edition の機能を使っているだろうが、開発にはほかのツールを使っているのではないだろうか。 Visual Studio 2010はそれを一変させてしまうかもしれない。本稿は、Microsoft Visual Studio 2010に搭載されている新しいデータベース開発機能を解説する。
ベータ2、ライセンス、GDR
本稿は、Visual Studio Ultimate Edition Beta 2の機能を基本にしている。筆者はベータ版だけでなく、ハイエンドのライセンスバージョンも使用している。ベータ2は製品版と同等の機能を搭載する可能性が高いが、筆者が本稿で解説する全機能をすべてのバージョンが搭載するわけではない。
また、以下に述べる機能のなかには既に「Visual Studio 2008 Database Edition GDR」に搭載されているものもある。Visual Studio 2010に移行するかどうか検討中だが、Visual Studio 2008を既に使用中の場合は、Microsoft Visual Studio 2010へのアップグレードが必要だと決めつける前に GDR の機能を調査すべきだ。GDR 関連の完成度の高い記事は本稿の最後で紹介する。
Microsoft Visual Studio 2010でのプロジェクト作成
Microsoft Visual Studio 2010には SQL Server プロジェクトテンプレートが複数用意されている。
図1:SQL Server Database Project テンプレート
CLR と Data Tier 開発は本稿の範囲外となる。筆者は、SQL Server 2008 Database Project と SQL Server 2008 Server Project テンプレートを使った従来の TSQL 開発に重点を置いていく。
データベースプロジェクトとサーバプロジェクトには同じテンプレート項目を多数使用する。サーバプロジェクトには、そのほかにも Service Broker Endpoints、Server Accounts、リンクサーバのようなサーバ固有の項目も含まれる。データベースプロジェクトには、さらに filestream のようなストレージ項目テンプレートもいくつか含まれる。各プロジェクトテンプレートを詳しく調査していけば、テンプレートフォルダ構造と導入オプションの違いに気付くことだろう。
テンプレートを越えた重要な機能を例証するために3つのプロジェクトを作成した。
空のデータベースプロジェクト
空のサーバプロジェクト
AdventureWorks データベースから読み込んだデータベースプロジェクト
特に指摘のない限り、本稿のデモはすべて AdventureWorks データベースプロジェクトを使用する。
エディタ機能の概要
開発者が気付く最初の機能はおそらくインテリセンスだろう。前述の通り、同データベース開発環境にはここ数バージョン優れた TSQL エディタが欠如していた。インテリセンスの簡単なデモを以下に示す。
図2:インテリセンスの使い方
インテリセンスを使う際にはいくつかコツがある。気付いたかもしれないが、筆者はフィールドを追加する前に「FROM」クローズへの入力を行っている。「FROM」に最初に入力しているのは、各フィールドが Schema とテーブル名に完全に適していると認められないとインテリセンスには「SELECT」の部分に何が入るのか全く見当が付かないためだ。インテリセンスは不快に感じたら無効にすることもできる。
Schema 画面からコードをすべて入力する代わりに、自分の TSQL 文にフィールドをドラッグ&ドロップすることができる。残念ながら、完全に適合しない限りフィールドを単純にドラッグ&ドロップする方法はない。
コードスニペットも優れたエディタ機能だ。以下にその動作の様子を示す。
図3:コードスニペット
筆者は、さまざまな TSQL 文の署名をいつも忘れてしまう。一時テーブルを作成し、データベース構造を構築する作業は Stored Procedures では一般的だ。項目テンプレートから署名を作成するには、文の署名のヘルプを綿密にチェックするのと同程度の時間がかかる。文の署名を探し回るよりも、標準的な文がコードスニペット経由で既にエディタに組み込まれていたのは良かった。
ほかの Visual Studio 言語で開発をしている場合、1つのツールですべての開発ができる良さは分かるだろう。この改良版エディタによって、データベースからデータ層、そしてアプリケーションのコアまで、アプリケーション開発の全パーツがそろう。
新しいエディタは素晴らしいが、テストデータがいくつかないとデータベース開発は難しい。
データメニュー
元もと、筆者が Visual Studio 2005のデータベースプロジェクトを使おうと思ったのは Schema 比較がきっかけだった。Visual Studio 2010にも Schema 比較は存在しており、強化されている。開発者は有効/無効にできる比較オプションが多いことに気付くだろう。
これまでのバージョンでは、テストデータは専用のテストプロジェクトとデータ生成プランで作成できた。Visual Studio 2010ではデータ生成プランがやや強化され、以下のように表示される。
図4:データ生成プラン
データ生成プランは、「Data」メニューから作成するかプロジェクトの「Add Items」メニューからデータ生成プランを登録する。コラムプロパティと「Output」を選択すると、開発者が特定の行で生成するデータの種類をコンフィギュレーションできるようになる。Output プロパティは以下のように表示される。
図5:データ生成コラムの出力
データ生成プラン は次のステップである「テストとデバッグ」で便利だ。
テストとデバッグ
アプリケーションのほかのパーツを使って適切なテストを実施するにはデータベースの導入が必要になる。プロジェクトプロパティの「Deployment」セクションには基本的なコンフィギュレーション情報がいくつか含まれている。導入セクションのスニペットは以下のように表示される。
図6:導入プロパティ
本稿では後ほど、導入シナリオ拡張およびカスタマイズ可能な部分について解説する。デバッグはテストデータベースを使用するか、ローカルの「Database File」から行うことができる。「Target Connection」オプションは以下のようになる。
図7:ターゲットオプション
これまで筆者は生産性を大幅に拡大する機能ばかり解説してきた。だが、データベースの実行関連で開発者がコンフィギュレーションやコントロールを行う力を拡張する機能はほかにもある。
プロパティ
データベースのデザインがテーブル、ビュウ、ファンクション、およびストアドプロシージャの定義以外にも及ぶことは多い。大文字/小文字の判定や NULL の処理に関する仮定は、コードの動作で大きな役割を演じる。筆者は集団コンフィギュレーションをコードの実行に関連して考えている。この情報の多くは一連の「Properties」ファイルに格納されている。以下は、「AdventureWorks」プロジェクトのプロパティとなっている。
図8:データベースプロパティ
先に、導入シナリオのコンフィギュレーションとカスタマイズについて述べたが、「Database.sqldeployment」プロパティにはさらに多くの導入オプションがある。また、「Database.sqlsettings」は NULL ハンドリング、ワーニングレベル、リカバリモードなどの各種汎用データベース動作を格納している。
SQL Server Projects にはさまざまなプロパティがある。お分かりかもしれないが、サーバのコンフィギュレーションをターゲットにしたプロパティもいくつかある。SQL Server Project のプロパティを以下に示す。
図9:サーバプロパティ
最後に解説する機能が Code Analysis だ。
Code Analysis
Code Analysis ツールはかなり以前から Visual Studio の一部になっていたが、輝きを見せ始めたのは Visual Studio 2008からだ。筆者は、解析結果やコード解析のポテンシャルに常に好奇心をそそられてきた。Analysis はサポートできるコードをメンテナンスするための特効薬ではない。開発者が直感的に知っていることを支えてくれるが、それを裏付ける「厳然たる事実」はない。コード解析は「チェックイン」や「チェックアウト」ポリシーにも組み込むことができる。
Analysis は TSQL コードにも拡張されている。Analysis のオプションは「Project」プロパティでコンフィギュレーションを行うことができる。「Analysis」プロパティは以下のようになる。
図10:解析のコンフィギュレーション
コード解析を実行するとレポートが生成される。開発者はコード解析の適用強制度をコンフィギュレーションするか、解析ルールを完全に削除することができる。
まとめ
Visual Studio 2010には SQL Database 用の機能豊富なデータベース開発プロジェクトテンプレートやサーバが含まれている。その新機能としては、機能の向上したエディタ、テスト、導入の各オプションやコード解析がある。
参考文献
SQL Server Samples on Codeplex
Introducing New Features in the VSTS Database Edition GDR
Data Tier Applications in Microsoft Visual Studio 2010
http://japaninternetcom.pheedo.jp/click.phdo?i=d20179f17e7ef829f2bd465061c79d66
「宛がい扶持」という慣用句があります。
先方の要求に関係なく、与える側が一方的な条件で与える所領、俸禄など。
また、そのような与え方をすること。
もらえるもんはもらっときましょうwww
PICKUP
上海蟹肉たっぷりのフカヒレの姿煮込みレーシックの病院検索スズキ パレット 無料査定小松彩夏 アイドル情報東京メトロ銀座線虎ノ門駅消費者金融の借金をゼロにレーシックとは近視矯正手術サラ金の支払い期日が迫っている税理士選びのポイント【滋賀】特定調停で借金を整理するPR