Dela via


はじめての “Oslo” – Tech Days 2009 でのサンプルと解説 - Part I

Tech Days 2009 における『はじめての “Oslo”』にご参加くださった皆さんありがとうございます。

今回、2回デモをご覧いただきましたが、そのうち初回相当のものについてソースコードとそれらの解説をさせていただきます。

※当日のデモ操作と今回から解説する内容には若干の差異があります。なぜなら、セッションでは今使える見ていただくためにベストなものを使ったからです。でも今入手いただけるものでも十分にご試用いただけますのでご安心ください。

※相当って書いてあるのは・・・違うデモだからです。実は、当日になってデモ内容を変えました。特別そんなに意味があるわけではありませんが、ちょっとやりすぎかなと自分の中の臆病風が… ><;

“Oslo” SDK の入手

なにはともあれ、まずは、”Oslo” SDK October 2008 January 2009 をダウンロードしてください。

Download the "Oslo" SDK October 2008 CTP

“Oslo” SDK January 2009 CTP < 新しい CTP でました!

“Oslo” デモ環境のセットアップ

“Oslo” では、モデルを格納するリポジトリとして SQL Server 2008 を採用しています。したがって ”Oslo" DSK を用いて学習するには、SQL Server 2008 の環境があると理想的です。しかしながら、SQL Server 2008 がなくても、”M” 言語を使用してモデルを定義したり、DSL を定義したりすることは可能です。

SQL Server 2008 の環境がある方は、現時点では、デフォルト インスタンスである必要がありますので、ご注意ください。

ダウンロードした ”Oslo" SDK をダブルクリックなどしてセットアップを開始します。SQL Server 2008 がインストールされている環境の場合は、はじめに Repository のインストールが開始されます(SQL Server 2008 がない環境ではこのセットアップはスキップされます。Repositoryがすでにセットアップ済みの環境も同様にこのセットアップはスキップされます)。

image

Repository のインストールが終了すると、次に ”Oslo" SDK のセットアップが自動で開始されます。

image

ぜひ、デフォルトの設定でインストールしてみてください(要するに全部入りです)。Visual Studio 2008 SP1 環境で “M” を記述し、ビルドすることもできます(※セッションではご覧いただいていません)。

image

  “Intellipad” を食す・・・いや試す

インストールが完了したら、”Intellipad” を起動してみましょう。そこで一つ注意点があります!起動するのは、[すべてのプログラム | Microsoft Oslo SDK | Tools | Intellipad (Samples Enabled) ] がお勧めです。簡単にいうと、Intellipad で MGrammarMode など使えるようになったものが起動します。具体的には Intellipad のインストールフォルダにある Samples に格納されているアドインが使えるものになります。

image

せっかくなので、まずは、Zoom してみましょうか? (^^)

image

Minibuffer でいろいろな命令をすることができます。Minibuffer は Ctrl+Shif+D などで起動できますが・・・Ctrl+/ が一番キータッチが少なくお気に入りです (^^)

image

とズームができてしまいます。さすが WPF!ですが、<del>こんなコマンド打たなくても、Ctrl+マウスホイールで拡大/縮小は自由自在です (^^) </del>っと思ったのですが、現在の SDK の Intellipad では利用できないみたいですね。今後はそういう感じなると思います。

ちなみに、MMode に変更するには、Minibuffer にて SetMode(‘MMode’) でできます。もしくは、拡張子が .m なファイルを開くと MMode になります。

image

スクリーンショットだけでは、なんですので、コードも載せておきます:

module Microsoft.Samples
{
    type MusicItem
    {
        Id: Integer64 = AutoNumber();
        Album: Text where value.Count() < 256;
        Artist: Text?;
        Rating: Integer32 where value <= 3;
    } where identity Id;

    MusicLibrary: MusicItem*;
}

メニューの M Mode の Reach SQL Preview をクリックしてみてください。SQL が右側に表示されます。

image

ここまでは、あくまで Intellipad 上でプレビューをしているにすぎません。したがって、Repository には何も手を加えていないわけです。

コンパイルしてみる

記述したモデルのコードをとりあえず保存します。拡張子は、.m にしておくと都合がいいです(ここでは、MusicLibrary.m とします)。

ここからコマンドラインのツールをつかいますので、”Oslo” SDK をインストールしたフォルダの下の Bin を PATH に追加しておくことをお勧めします(以降、それを前提にします)。

set PATH = %PATH%;”C:\Program Files\Microsoft Oslo SDK 1.0\Bin”

そしたら、以下のようなコマンドでコンパイルを行うことができます。

m MusicLibrary.m /p:image /t:Repository

コンパイルすると、拡張子が、.mx になったファイル(MusicLibrary.mx)が出力されているのがわかります。このイメージ化されたファイルは、OPC なので、拡張子を .ZIP に変更すれば、中身をのぞくことができます(中身の解説は省略)。

※ SQL Server 2008 環境がない方は、ここまでにしておきましょう。

次に、このイメージを Repository にポピュレート(インポート)します。

mx /i:MusicLibrary.mx /db:repository /ig /f /verbose

これで Repository にモデルが格納されます。

サンプルコードを SkyDrive にて公開しておきました(場所はあとで変更するかもしれません)。

ながさわ

Comments

  • Anonymous
    January 29, 2009
    はじめての “Oslo” – Tech Days 2009 でのサンプルと解説 - Part I さて、Part I にて、Repository に MusicLibrary を取り込むことができました。ちょっと確認してみましょう。DB

  • Anonymous
    January 30, 2009
    Tech Daysも終わり登壇者の皆さんからのフォロー記事もあがってきました。 ...

  • Anonymous
    January 30, 2009
    The comment has been removed

  • Anonymous
    February 01, 2009
    はじめての “Oslo” – Tech Days 2009 でのサンプルと解説 - Part I はじめての “Oslo” – Tech Days 2009 でのサンプルと解説 - Part II 先週にこの連続投稿を書きつつ、その間に、

  • Anonymous
    February 01, 2009
    こんにちは。 「Microsoft "Oslo" SDK - January 2009 CTP」がリリースされたようです。 セッションでスライドでご紹介した WF - Oslo が含まれているかどうかは未だ見ていませんが、Oslo

  • Anonymous
    February 02, 2009
    はじめての “Oslo” – Tech Days 2009 でのサンプルと解説 - Part I はじめての “Oslo” – Tech Days 2009 でのサンプルと解説 - Part II はじめての

  • Anonymous
    February 09, 2009
    必要な環境: Visual Studio 2008 SP1 “Oslo” SDK January 2009 CTP (SQL Server 2008) “Oslo” SDK をインストールする際のオプションに、Visual

  • Anonymous
    March 08, 2009
    小町えんじぇるです。こんにちは。 今回は、 ”Oslo” SDK – January 2009 CTP(2009/03/02版) のインストール手順について紹介していきます。”Oslo”の開発環境構築準備として必要なコンポーネントは