.NET Framework 4 向けの XAML Toolkit の CTP が公開されています。http://code.msdn.microsoft.com/XAML/ これは PDC の 「XAML Futures in Microsoft .NET Framework, Microsoft Silverlight and Tools 」 というセッションで紹介されたもののようで、XAML FxCop (XAML の静的解析) とか XamlDom (XAML の DOM に簡単アクセスするクラスたち。LINQ 構文も使える) とかが含まれているみたいです。
で、セッションのビデオをちょこっと見てみたんですが、XAML 自体も拡張されるんですね。http://blogs.msdn.com/llobo/archive/tags/XAML+2009+features/default.aspx にいろいろありました。Generic の型引数を指定したり とか、インスタンス生成メソッドを指定したり引数を与えたり とか、おもしろいなぁ。 ただ、どうやら XAML 2009 は .NET Framework 4 向けで、Silverlight 4 では対応しないみたいです。
あと、XAML Localization に 「おおっ」 っときました。(ビデオの 44分くらいから) まだ 「x:Uid 方式なんてどうかな?」 とどうしようか考えてるような段階みたいですが、これはがんばって欲しい。 ちなみに、Silverlight 3 だとSilverlight and localizing string data こんな感じです。Localization のための特別な仕組みがあるわけではなく、文字列リソースの resx を作って、そいつを XAML にリソースとして取り込んで、 Text="{Binding Source={StaticResource LocStrings}, Path=WelcomeMessage}" なんて感じでバインドするという、何とも泥臭い方法です。
スポンサーサイト
Finally, the long wait is over. Rx is available on DevLabs! より。 Reactive Extensions for .NET が DevLabs にて公開されたそうです。 どうやら今まで Reactive Framework とか呼ばれていたものが Reactive Extensions for .NET となったようです。 リリースノートはこちら → Release Notes (Build 1.0.2052. 11/17/2009, First Release) DevLabs から
.NET Framework 3.5 SP1 版 .NET Framework 4 Beta 2 版 Silverlight 3 版 がそれぞれダウンロードできます。
Reactive Extensions API in depth: intro Channel 9 で動画による解説が始まるようですが、今の時点では intro しかないみたいです。
What's different about the 3 versions of Rx? Part 1: Silverlight 3 Channel 9 で .NET 3.5 版、.NET 4 版、Silverlight 3 版の違いを開設する動画が始まるようですが、今の時点では Silverlight 3 版とかないみたいです。 で、この Silverlight 3 版の内容は、「Observable.Start(...).Subscribe(...) は自動的に UI スレッドで動くよ」 といったことみたいです。
今まで意識して下半身のみ使うようにしてた。手はハンドルに添えるだけで上半身の力を使わないように。 今週からは逆にしっかりハンドルを持ってなるべく全身を使うように意識するようにした。
以下、自転車通勤の記録。
【“[自転車] 11/2~11/8 の走行記録”の続きを読む】
なるほどぉ、と思ったのでメモ
Silverlight out-of-browser and initParams より。 HTML 側から Silverlight アプリに初期値を渡したいときに使える initParams ですが、あれは HTML 上に書いてあるものですから out-of-browser にすると無くなっちゃうんですね。(そりゃそうですが) そこで上記の記事では、Application.Current.IsRunningOutOfBrowser を参照して
out-of-browser でないときは、initParams を取得しそれの内容を IsolatedStorage に保存しておく。 out-of-browser なときは、IsolatedStorage から initParams を読み込む。 としています。
なるほど、out-of-browser としてインストールするためには一度はブラウザで実行しているはずだからそのときに IsolatedStorage に保存しておけるってわけですね。 ただ、別のインストール手段が出てくるかもしれませんし、IsolatedStorage のファイルが無くなってる可能性も無いとは言えないので、ファイルが無かったときの考慮もちょっとはしておいた方がいいとは思いますが。(記事内のコードではそういった対処は何もしていないので、ファイルが無いと例外が出て死んじゃうと思う)
Silverlight がインストールされていない環境で Silverlight を使ったページを見ると、
こんな画像が表示されます。 これは 「方法: HTML を使用して Web ページに Silverlight を追加する 」 や 「方法 : JavaScript を使用して Web ページに Silverlight を追加する 」 にあるように <img src=”http://go.microsoft.com/fwlink/?LinkId=108181” .../> としたときに表示される画像です。 ちなみに、ブラウザの言語 (たぶん HTTP ヘッダの Accept-Language あたり) によって適した言語の画像が返ってくるようになってます。
たまたま見かけたんですが、
こんな画像を使ってる人もいました。 HTML を見てみると <img src=”http://go.microsoft.com/fwlink/?LinkId=161376” .../> とするとこの画像になるようです。(もちろん、こちらもブラウザの言語によって使われる言語が変わります)
これって他にもあるのかなぁ?
2009/11/05 に開催された Microsoft Developer Forum 2009 の Live Smooth Streaming による中継を見ていたときに、合間に流れていたビデオがいい感じだったのでどっかにないのかなぁと思っていたんですが、http://www.officelabs.com/projects/productivityfuturevision/Pages/default.aspx こちらにありました。 Silverlight のビューアーで見ることもできますし、WMV もあります。
というか、このビデオのタイトルが 「Productivity Future Vision」 だとわかれば、検索するとブログ記事だとか、YouTube だとか、Microsoft Showcase だとか、いろいろと見つかりますね。 つか、ReMIX とか TechED でも流れてたみたいなので結構前からあるのか。 私はそれらに参加してないので今回が初見でした。
Creating something from nothing [Developer-friendly virtual file implementation for .NET!] より。 ネイティブコードでは IDataObject やら IDropSource やらといった COM インターフェースを使ってドラッグ&ドロップやコピー&ペーストを実装します。 WPF では System.Windows.DataObject が用意されていますが、これは存在するファイルしか扱えなかったり、DoDragDrop() メソッドが同期的だったりとネイティブコードでできることの一部の機能しか提供されていません。 この DataObject クラスは sealed なので拡張もできそうにありません。 System.Windows.IDataObject インターフェースは上記の DataObject クラスと同じメソッドしかないのでこれを使ってもどうにもなりそうにありません。
というわけで、System.Runtime.InteropServices.ComTypes.IDataObject インターフェースを実装するクラスを作ってフル機能のドラッグ&ドロップとコピー&ペーストを実装しよう、というのが上記の記事です。 こちらの IDataObject インターフェースは、まんま COM の IDataObject インターフェースです。(ネームスペースでわかるでしょうが) こいつを実装しようとすると、FORMATETC だとか何だとかと 「ドラッグ&ドロップ程度のことが何でこんなにややこしいんだよ」 と思うくらい面倒だったりします。 記事中にあるリンクからサンプルプログラムをダウンロードできますが、ちょっと見てみたところ、IDataObject とそれに必要なものをだいたい一式実装しているようです。 もちろん、一つのクラスでドラッグ&ドロップとコピー&ペーストの両方に対応できるようになっています。(まぁ、もともとどちらも IDataObject を使うんですが) Action<Stream> を渡しておいてドロップ時にファイルを生成したりといったこともできるようになっています。
ちなみに、サンプルプログラムは、左クリックでドラッグ&ドロップ、右クリックでクリップボードへのコピーになっています。
あと、Creating something from nothing, asynchronously [Developer-friendly virtual file implementation for .NET improved!] こちらの記事で、コンストラクタに Action を渡しておくとドラッグ&ドロップの開始時と終了時にその Action を呼び出してくれるという機能が追加されています。
中身はまだ見てないんですが、ちょっとおもしろそうだったので覚え書き。
http://www.codeplex.com/aspclassiccompiler
ASP (ASP.NET ではなく古いほうの ASP) で使われている VBScript を IL へとコンパイルして実行するソースコードだそうです。 VBScript のパーサは手作りで、IL の生成は Dynamic Language Runtime を使っているとあります。 ゴールには、実際に存在する主要な ASP ページを変更無しで ASP.NET 下で実行可能にする、とあるので単なるサンプルコードと言うよりはそれなりに本気なようです。 Silverlight でこのコンパイラを使うサンプルコードも含まれているそうです。
と、これを見ていてふと思い出したんですが、DLR には VBx という動的言語版 VisualBasic が乗っかるとかっていう話があったと思うんですが、あれってどうなったんでしょ?
先週くらいから、週に 5日自転車通勤できるとして、軽いギアでなるべく回す(120rpm)×2日、LSD×2日、重いギアで低ケイデンス×1往路、ダンシング(ゆっくり)×1復路、といった走り方にしてみた。一応、基礎体力作りのつもり。 あと今週から意識して姿勢を低くするように。ただし、持つのはブラケット。「俺、体重が 63kg を下回ったら下ハン持つ練習始めるんだ」
以下、自転車通勤と久しぶりに日曜日に走りに行った記録。
【“[自転車] 10/19~10/25 の走行記録”の続きを読む】
ちょっと覚え書き。
http://www.msdev.com/ microsoft.com ドメインじゃないけど Microsoft のサイトみたい。 ”Search” でカテゴリを選ぶといろいろ見れる。 動画のものもあればドキュメントのものもある。
http://expression.microsoft.com/en-us/cc184875.aspx Expression のチュートリアル動画など。