++C++; // 未確認飛行 C ブログ

http://ufcpp.net/

SQL Server Modeling

leave a comment »

PDC ネタの続き。Silverlight 4 の話だけであまりにも長くなったんで記事を改める。

コードネーム "Oslo" 改め、SQL Server Modeling。

名前に関して: 「モデリングプラットフォーム」の意図するところ

過度の期待をされないように、本来の立ち位置に沿った名前にしたって感じが。

元々 Olso の背景としては:

  • Sharepoint では SQL Server 上に独自のモデルを作ってうまくいっている
    • Dynamics でも同様
    • Windows Azure でも同様
    • System Center でも同様
  • でも、それぞれ個別のモデルでやっちゃってるが故に、連携で苦労する

ってのがあって、その問題の解決、要するに、ドメインモデル(データの格納先に SQL Server を利用)の共通プラットフォームを作りたいってのが旧 Oslo、現 SQL Server Modeling の意図するところ。(M よりも、Repository の辺りが本質?)

あと、SQL Server チームによく寄せられる意見として:

  • SQL Server を(専業の DB エンジニアじゃなくて)デベロッパーにもフレンドリーにして欲しい
  • データベースアプリ作るのに T-SQL に .NET 言語に XML にと、全然構造違う言語いっぱい触れたくない

ってのがある。なので、M の意図するところ、1つはC 系言語(C# とか)に慣れた人が違和感なく読めるデータベースアクセス言語だし、1つはより抽象度が高くて直感的にドメインモデリングができる言語。

以下、私見。

  • 「モデル(のデータ格納先)の共通プラットフォーム化」って意図には素直に賛同
    • そもそも、プラットフォームをきっちり作り上げるのは Microsoft のいいところだと思う
      • Windows だってそもそもヒットした理由は「Device Independent な(機器から独立した)ソフトウェア開発プラットフォーム」だったからで
      • .NET Framework はいろんな言語の相互運用をしやすくするための共通プラットフォームだし、DLR はその動的言語版
  • SQL からの解放&直感的なドメインモデリングってのはどうだろう
    • もちろんデベロッパーな自分としては歓迎なんだけど
    • 今でも、O/R マッパーとかはパフォーマンス的な問題で、最終的には SQL 書いてカリカリにチューニングしたりするわけで
      • M の進歩とともに解消する問題なのか(希望としては解消して欲しいけど)
    • 前世紀的なモデル駆動開発よりはだいぶ具体化したとは思うけど、それでも結構「先を見た技術」っぽいんで、いつこいつの時代が来るか
    • クラウド的には「リレーショナルやめて可能な限り Key-Value ペアで行こうよ」的な空気もあるんで、そっちとの折り合いどうなるんだろう?

言語作り

で、なまじ MGrammar(現 M Languages)がいい感じだったもんだから、言語好きーな人がたくさん集まってきちゃったと。まあ、僕もそっち方面の人ですけども。MGrammar を使って C++ のパースして遊んでたし。

  • いい加減、Yacc/Lex とか bison/flex を現代的に書き直したものが出てもいいんじゃないかな
    • TeX だって、昔は絶対他に置き換わらないってくらいの勢力だったのが、今や MS Word に押されちゃってるし
  • DLR が話題になってた時期だったのも重なって
    • DLR は、抽象構文木を作るところから先(コード生成とか動的ディスパッチとか)を担ってくれるもの
    • 抽象構文木作るところまで(字句解析、構文解析)は各自やってね
    • → M ってので構文解析できるらしいぞ!

ちなみに、MGrammar 改め M Languages は、今後もなくなることはないです。曰く、ドメインモデリングでも DSL は重要な要素の1つなので。

こっちも以下、私見。

  • SQL Server Modeling の本来の意図はわかるんで、あんまり強くは言わないけども
  • でも、単なる Yacc とかの置き換えとしての M Languages も欲しい
  • まあ、現状でもそっち方面に使えちゃいそうではあるんで、外法と知りつつやっちゃいそう

November CTP での変更点

前置きはこのくらいにして、今回の変更点。(注: M Languages 辺り以外は元々さらっとしか触れてないんであんまり更新点がつかめないで適当。)

  • 用語がいろいろ変更かかってる
    • Oslo → SQL Server Modeling
      • スタートメニューとかからは Oslo の名は消えたけど、実はまだ Program Files とかの名前に残ってるとか
    • 旧 MSchema → M Types: 型定義(OOP でいうクラス定義 & SQL でいう DB スキーマ定義)
    • 旧 MGraph → M Values: データインスタンスの定義(SQL でいうところの insert とか)
    • 旧 MGrammar → M Languages: テキスト形式の DSL 定義(要は任意形式のテキストから M Values を作るためのパーサー)
      • (Types, Values, Languages の3つはわかりやすくなってすっきりしたなぁ)
    • 旧 Repository → SQL Server Modeling Services: SQL Server にスキーマとかインスタンスとかの情報を収めておくための仕組み
      • データの格納先という意味でリポジトリって言葉は今後も使う
  • 全般
    • Visual Studio 2010 / .NET Framework 4 β2 のみのサポートになりました
    • 内部的なバージョン番号が 3.0 → 1.0 に
      • Oslo 3.0 から SQL Server Modeling 1.0 にってことかと
  • SQL Server Modeling Services (旧 Repository)
    • pre-defined なドメインがいくつか追加
      • ErrorInformation
    • 逆にいくつかは「サンプル扱い」として Base Domain Library から削除
      • Applications, Frameworks, Services
    • UML domain (System.UML2)色々修正
      • リポジトリ内のデータから UML を吐ける。他の UML ツールとの相互運用可能に
    • CLR domain
      • LoadAssembly.exe(CLR からメタデータを読み出してリポジトリに登録するツール)の挙動が変わったって
    • サンプルに PatternApplication っての追加

 

ちょっと時間厳しくなってきたんで続きは明日以降書く。

広告

Written by ufcpp

2009年11月23日 @ 14:58

カテゴリー: .NET

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。