BT

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

| 作者: Jonathan Allen フォローする 529 人のフォロワー , 翻訳者 竹中 翔 - (株)ポータルアイランド フォローする 0 人のフォロワー 投稿日 2009年12月13日. 推定読書時間: 3 分 |

原文(投稿日: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

このスレッドのメッセージについてEmailでリプライする
コミュニティコメント

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

このスレッドのメッセージについてEmailでリプライする

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

このスレッドのメッセージについてEmailでリプライする

ディスカッション

InfoQにログインし新機能を利用する


パスワードを忘れた方はこちらへ

Follow

お気に入りのトピックや著者をフォローする

業界やサイト内で一番重要な見出しを閲覧する

Like

より多いシグナル、より少ないノイズ

お気に入りのトピックと著者を選択して自分のフィードを作る

Notifications

最新情報をすぐ手に入れるようにしよう

通知設定をして、お気に入りコンテンツを見逃さないようにしよう!

BT