連載:〜ScottGu氏のブログより〜

ASP.NETでサポートされる新しい組み込みデータベース

Scott Guthrie 著/Chica
2010/07/12

 本記事は、Microsoftの本社副社長であり、ASP.NETやSilverlightなどの開発チームを率いるScott Guthrie氏のブログを翻訳したものです。氏の許可を得て転載しています。
【元記事】 New Embedded Database Support with ASP.NET (2010/06/30)

 今週の始めに、IIS Expressについてブログ投稿し、Webサーバの観点からASP.NET開発をより容易にするための施策について、いくつか話しました。

 本日のブログ投稿では、簡易化のテーマを継続し、データベースが関連する開発も開発者が素早く行えるようにするための施策について述べたいと思います。特に喜ばしいことに、無償のMicrosoft SQL Server Compact Edition(SQL CE)データベースをASP.NETアプリケーションで動作させるための開発作業がちょうど完了したところです。これにより、ASP.NET Web開発で非常にうまく動作し、軽量で手軽に使えるデータベース・オプションを利用できます。

SQL Server Compact Edition 4の紹介

 SQL CEは、無償の組み込みデータベース・エンジンで、手軽なデータベース保存が可能になります。まもなくSQL CE バージョン4の最初の公開ベータ版をリリースする予定です。バージョン4はASP.NET Webアプリケーションで動作するように設計、テストされたものです。

■既存のデータAPIとの動作

 SQL CEは既存の.NETベースのデータAPIで動作し、SQL Serverとの互換性のあるクエリの文法をサポートします。つまり、ADO.NETのような既存のデータAPIを使用でき、またEntity FrameworkやNHibernateなどのハイレベルのORM(O/Rマッピング)をSQL CEで使用できます。ADO.NETプロバイダ・モデルをサポートする既存データAPIは、ほとんどすべてが動作します。

 これにより同じデータ・プログラミング・スキルや、すでに知っているデータAPIが利用できます。

■データベースのインストールは不要

 SQL CEは使用するのにデータベース・サーバのセットアップやインストールを行う必要はありません。ASP.NETアプリケーションの\binディレクトリへSQL CEのバイナリを単にコピーするだけで、Webアプリケーションがそれをデータベース・エンジンとして起動し、使用できます。起動するためにセットアップやセキュリティ権限などは不要です。マシン上に管理者権限は不要です。それでも動作します。

 構築するアプリケーションはSQL CEをその一部として再配布可能です。Webアプリケーションをサーバにコピーするだけで動作します。

■データベース・ファイルはディスク上に保存

 SQL CEはディスク上にファイル(.sdfファイル拡張子のファイル)にデータベースを保存します。ASP.NET Webアプリケーションの\App_Dataフォルダ内にSQL CEデータベース・ファイルを保存でき、アプリケーション内でそれらを使用するのに登録は不要です。

 そして、SQL CEデータベース・エンジンはアプリケーション内でインメモリで動作します。アプリケーションをシャットダウンすると、データベースは自動的にアンロードされます。

■共有WebホスティングのシナリオはSQL CE 4でサポート

 SQL CE 4はホスト側で何もインストールすることなく、“Medium Trust”のASP.NET 4 Webホスティング・シナリオで起動します。ホスト側は、SQL CEのインストールや、それを利用可能にするためにサーバで何かする必要はありません

 つまり、アプリケーション・ディレクトリの配下に、コード、コンテンツ、そしてSQL CEデータベース・エンジンとそのデータベース・ファイルのすべてが含まれたASP.NET Webアプリケーションを構築できます。そのため、FTPを使用して単にそれらを安価な共有Webホスティング・アカウントにコピーするだけで、アプリケーションを展開できます。そのほかのデータベースの展開手順やホスト側のインストール作業などは不要です。

 SQL CEはその後、リモートのホストにあるアプリケーション内で起動します。インメモリで起動しディスクにファイルを保存するので、SQL Serverデータベースに対する影響はありません。

■Visual Studio 2010およびVisual Web Developer 2010 Expressのサポート

 VS 2010 およびVisual Web Developer 2010 Expressは、今後展開される更新で、ASP.NETシナリオに対するSQL CE 4ツールのサポートが追加される予定です。これにより、SQL CEデータベース・ファイルをASP.NETプロジェクトに追加でき、Visual Studioのサーバ・エクスプローラを使用して、その中でテーブルの作成や編集ができ、Entity Framework(図1参照)のようなよりハイレベルのデザイナを使用してモデル化やクラスへのマップもでき、さらにはLINQを使用したクエリやプログラミングができるようになります。


図1

 つまり、すでに知っているのと同じデータAPIが使用できるのに加え、すでに知っている同じ開発ツールをSQL CEで簡単に使用することも可能になります。

■開発および本番の両方をサポート

 SQL CEは開発シナリオおよび軽量の本番使用のシナリオの両方で使用可能です。SQL CE 4のリリースでは、(ASP.NETのような)マルチスレッドのサーバ・シナリオで使用されてもSQL CEがクラッシュまたはデッドロックしないように開発されています。これは、クライアントのみのシナリオ用に設計され、Webサーバ環境での起動を明示的にブロックしていた以前のSQL CEのリリースと比べると大きな変化です。SQL CE 4では、Webサーバでも使用可能です。

 SQL CEにはライセンス規制はありません。

■SQL Serverとの簡単なマイグレーション

 SQL CEは組み込みデータベースなので、開発や軽量な使用のシナリオには理想的です。ボリュームの大きいサイトやアプリケーションでは、恐らく、SQL Server Express(無償)、SQL Server、SQL Azureなどを使用するように移行したくなるでしょう。これらのサーバは、スケーラビリティがかなり優れており、より多くの開発機能(SQL CEではサポートされていないストアド・プロシージャなどの機能を含む)があり、また高度なデータ管理機能があります。

 SQL Server Express、SQL Server、SQL Azureを使えるように、簡単にSQL CEデータベースをアップグレードできるようにする移行ツールをオプションで出荷する予定です。SQL CEデータベースをSQL ServerやSQL Azureにアップグレードしたときに、コードを変更する必要はありません。われわれの目的は、単純にWeb.configファイルにあるデータベースの接続文字列を変更するだけで、アプリケーションが正しく起動するようにすることです。

まとめ

 SQL CE 4は、ASP.NETアプリケーションで使用可能となった、簡易で軽量なデータベース・オプションを提供します。ローカルの開発環境に、フルにデータベースをインストールする必要なく、素早くプロジェクトで使用できます。SQL Serverと完全に互換性のあるサブセットなので、同じデータAPI(ADO.NET、Entity Framework、NHibernateなど)を使用してコードが書けます。

 リモートのホスティング・アカウントにSQL CEベースのデータベースを簡単に展開でき、それを使用して軽量なサイトやアプリケーションが起動できます。サイトのトラフィックが増加したときには、必要に応じてSQL Server Express(無償)、SQL Server、SQL Azureを使用するデータベースへ、コードを変更することなくアップグレードできます。

 来週、SQL CE 4の最初の公開ベータ版を(IIS Expressや、まもなくブログ予定のさらにいくつかのクールなものと一緒に)出荷する予定です。

 Hope this helps,

 Scott

P.S.ブログに加え、現在Twitterを使って簡単な更新やリンク共有を行っています。twitter.com/scottguで、わたしをフォローしてください。

   
 
インデックス・ページヘ  「〜ScottGu氏のブログより〜」


Insider.NET フォーラム 新着記事
  • 第2回 簡潔なコーディングのために (2017/7/26)
     ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている
  • 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
     Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう
  • 第1回 明瞭なコーディングのために (2017/7/19)
     C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える
  • Presentation Translator (2017/7/18)
     Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Insider.NET 記事ランキング

本日 月間