BT

InfoQ ホームページ ニュース .NET 4.0がXAML 2009をもたらす(ただしWPFユーザーのためではないが)

.NET 4.0がXAML 2009をもたらす(ただしWPFユーザーのためではないが)

ブックマーク

原文(投稿日:2009/12/02)へのリンク

PDC 2009で、Michael Shim氏とRob Relyea氏の2人はXAMLの機能についてのMicrosoftのプランを発表した。現在、.NETには2種類のXAMLの実装がある。1つはWindows Workflowであり、もう1つはWindows Presentation Foundationだ。従って、XAMLを使おうとするとWFかWPFへ依存せざるを得なくなってしまう。

.NET 4では、独立したXAMLエンジンを備えた新しいSystem.XAMLライブラリが追加される。これはSystem.XMLとコアランタイムのみに依存し、FxライブラリをロードすることなくXAMLを使いたいアプリケーションにより適したものになっている。

.NET 4のXAMLノードストリームのプロモーションをよく目にするが、これは構造化データと連携するためのイベントドリブンAPIである。ReaderはSAXスタイルのライブラリと同じようにXMLを扱う。連続的な処理に加え、XAML Node Streamsは他のフレームワークからロードされたようにXAMLを変更するために利用できる。

.NET 4のリファクタリングの一環として、Microsoftはパーサの拡張性を大幅に増強した。.NET 3では、拡張可能なポイントはIXamlTypeResolver、IUriConext、IProvideValueTargetに限られていたが、新しいパーサにはこれらのインターフェースを介して他の多くのサービスを注入するためのサポートが追加された。これらのインターフェースの多くは新しいものではないが、publicではなかった。

  • IRootObjectProvider
  • IXamlNameResolver
  • IXamlNameProvider
  • IAmbientProviders
  • IDestinationTypeProvider
  • IXamlNamespaceProvider
  • INamespacePrefixLookup
  • IXamlSchemaContextProvider
  • IXamlObjectWriterFactory

XMLのように、XAMLは2つのパースAPIを持つことになるだろう。XAMLノードストリームとXAML DOMだ。XAMLドキュメントオブジェクトモデルは1度にXAMLツリー全体を扱うことができる。ノードツリーを直接扱う以外にも、LINQプロバイダを使ったアクセスもできるだろう。XAMLノードストリームとXMAL DOMパーサの組み合わせはFxCopのような静的解析ツールをサポートするのに使われるだろう。

ここまではパーサツールについて話してきたが、XAML 2009と呼ばれる新しい言語もある。XAML 2009ではジェネリック、非デフォルトコンストラクタ、ファクトリメソッド、ビルトインタイプ、新しいプロパティの定義がフルサポートされるようだ。

現在リリースされている.NET 4、VS 2010、BlendのコンパイラやデザイナではXAML 2009の機能は提供されていない。XAML 2009はWorkflow Founationによって使われる構成ファイルのような“loose XAML”でのみ使うことができる。この主な理由はWPFデザイナが既にデザイナ自身のパーサーを持っており、共通のパーサーを使うための書き換えには時間がかかるからだ。

Silverlightでは.NETで使われているのと同じXAMLパーサーが採用され、これにより優れたエラー検出とXAML 2006やXAML 2009の多くの機能の将来的なサポートが可能になるだろう。Silverlightは軽量なランタイムが求められるので、これらの機能はまるごと全てではなくケースバイケースで追加されることになるだろう。

Silverlightで統一的なXAMLパーサーを使用することを可能にするのは、前述のIXamlSchemaContextProviderだ。Silverlightが認識するXAMLのサブセットであるスキーマコンテクストを作成することによって、SilverlightとWPFベースのXAMLの差をツールにハードコードする必要すらなくなるだろう。Expression Blendチームはこの機能にとりわけ興味を持っているらしい。

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

BT

あなたのプロファイルは最新ですか?プロフィールを確認してアップデートしてください。

Eメールを変更すると確認のメールが配信されます。

会社名:
役職:
組織規模:
国:
都道府県:
新しいメールアドレスに確認用のメールを送信します。このポップアップ画面は自動的に閉じられます。