ページ

2005年10月28日金曜日

LINQ Tech Preview for VS2005 RTM

さて、VS2005 の RTM が出たとなると個人的に気になるのは 「LINQ Tech Preview の RTM 版は?」 ってとこですw


http://forums.microsoft.com/msdn/ShowPost.aspx?PostID=119386
出てました。


というわけで、
http://msdn.microsoft.com/netframework/future/linq/
にちゃんと 「C# LINQ Tech Preview Update for Visual Studio 2005 RTM Release」 があります。

VS2005 and SQL Server 2005 Ship! (英語版)

eWeek: Microsoft RTMs Visual Studio 2005, SQL Server 2005
blogs.mdsn.com にもたくさん 「RTM したよ」 「Ship したよ」 という記事があがっています。


すでに MSDN Subscribers Downloads で Visual Studio 2005、SQL Server 2005 なんかがダウンロードできるようになっているようです。


http://msdn.microsoft.com/netframework/downloads/updates/default.aspx
こちらには各種 .NET Framework 2.0 の再頒布パッケージや SDK などがあります。


日本語版はいつごろかな?

地図上でチャット

Map Chat より


http://www.themidnightcoders.net/examples/messageserver/chat/mapchatajax.htm
こちらの Map Chat が紹介されています。
英語によるチャットなんですが、しゃべった人の場所が Google Maps 上に表示されます。こりゃおもしろい。
Google Maps の日本語が化けてるときはブラウザのエンコーディングを utf-8 にするといいようです。けど、チャットの文字としては日本語は使えないようです。


どうやって場所を調べてるのかと思ったら
http://www.hostip.info/
こちらのサービスを使っているそうです。
うーん、けど、私んとこが Sapporo になってる。直そうと思ったら ("Make a correction" のとこで直せます) PHP でエラーが出ちゃう。掲示板に 「エラーが出ちゃうよ」 って書こうと思ったら掲示板の post でもエラーが出ちゃう(^^;  うーん、どうすりゃいいんだ。

2005年10月27日木曜日

Anonymous Method はクロージャではない その2

Anonymous Method はクロージャではない」 のちょっとした続き。


NyaRuRu さんに
http://lab.msdn.microsoft.com/productfeedback/viewfeedback.aspx?feedbackid=7ab1ab2b-0821-416f-b2c6-da737f8005ea
を教えていただきました。


これは、「Anonymous Method が思ったように動かない。C# 仕様書の 20.8.10 を見ると動くはずでは?」 というような内容です。で、Microsoft からの回答は 「これは仕様書のバグ」 となってます。


http://msdn.microsoft.com/vcsharp/programming/language/ にある C# Language Specification 2.0, March 2005 Draft を見ると


foreach (ElementType element in collection) statement


は、


IEnumerator enumerator = ((IEnumerable)(collection)).GetEnumerator();
try {
while (enumerator.MoveNext()) {
ElementType element = (ElementType)enumerator.Current;
statement;
}
}
finally {
enumerator.Dispose();
}


となると書かれてます。確かにこれだと 「C#: Anonymous methods are not closures」 の正しく動く版のコードとほとんど同じように解釈されることになるので動かないとおかしいはずです。


http://www.ecma-international.org/publications/standards/Ecma-334.htm
こちらの ECMA-334 C# Language Specification 3rd edition (June 2005) だと 「15.8.4 The foreach statement」 が上記の Draft の 20.8.10 に対応すると思います。こちらには


foreach (V v in x) embedded-statement



{
E e = ((C)(x)).GetEnumerator();
try {
V v;
while (e.MoveNext()) {
v = (V)(T)e.Current;
embedded-statement
}
}
finally {
… // Dispose e
}
}


となると書かれています。なるほど、V の宣言がループの外になるのがほんとなんですね。だから動かなくて正解と。


で、仕様書を見て気づいたおまけ。
GetEnumerator() が返ってきたオブジェクトが IDisposable を実装している場合は finally で Dispose() を呼んでくれるんですね。確認してみたら 1.1 でもちゃんとそうなってます。

2005年10月26日水曜日

RTM のビルド番号

Final RTM Build numbers より


RTM のビルド番号は Visual Studio が 8.0.50727.42、.NET Framework が 2.0.50727.42 になるとのことです。それと、「古いバージョンが入ってる場合は RTM を入れる前に消してね」 ということでアンインストールツールにリンクが貼ってあります。

DynamicMethod 用の DebuggerVisualizer

DebuggerVisualizer for DynamicMethod (Show me the IL) より


.NET Framework 2.0 で追加される DynamicMethod クラスによって簡単に、動的にメソッドを生成することができるようになります (まぁ、簡単とは言っても IL を直に書くようなものなのでそれなりの知識が必要ですが)。具体的な例は 「hello, world... LCG (Lightweight Code Gen) style!」 なんかを参照。
動的に生成した内容 (メソッドの内容) は単なるバイト配列なので、デバッグのときなんかにちょっと不便です。「Debugging LCG」 には、windbg を使って DynamicMethod の内容を見る方法が紹介されています。
上記の記事では VS2005 のデバッガ上で ildasm 風のコードで IL を確認できる DebuggerVisualizer が紹介されています。


この記事のコメントにもありますが、「Debugging Dynamically Generated Code (Reflection.Emit)」 で紹介されているように CLR と VS2005 は動的に生成されたコードのデバッグをちゃんとサポートしています。ただ、この記事の下のほうの "One caveat:" に 「2.0 で提供される light-weight-codegen (LCG) はモジュール、アセンブリ、型、メタデータなんかを作らずにお手軽にメソッドを作れる。必要なくなったら GC に回収もされるし。けど、LCG のデバッギングはサポートされてない。これは主にスケジュールの問題。debugging API は主に metadata API の拡張で、メタデータを持たない LCG のデバッギングはこのモデルにあわないんだよね。3.0 では直る予定」 なんて感じのことが書いてあります。なるほどなぁ。

2005年10月25日火曜日

Kid's Programming Language (Coding4Fun)

Kid's Programming Language


Coding4Fun で Kid's Progamming Language (KPL) というのが紹介されています。
KPL はシンプルで読みやすい構造化言語で、IDE も装備しているそうです。しかも freeware とのこと。すごいな。

Anonymous Method はクロージャではない

C#: Anonymous methods are not closures より


わかったような、わかってないような。。。
まだいまいち消化不良気味

RoadToWinFX と WPF 関連の覚え書き

RoadToWinFX
WinFX の情報がいろいろと集まってるとこ。


Windows Presentation Foundation Hands-On-Labs
WPF をお勉強するための PDC Hands-On-Lab。WinFX Sept CPT 用。中身は手順を説明した .doc とコード。


Windows Presentation Foundation on the Web: Web Browser Applications
WPF はちゃんと Web Browser (IE) でホストできるのか。もちろんその場合は Sandbox の中で動くと。Loose XAML ってのは表示だけができるコンパイルされてない XAML。

「私たちはあなたの痛みを共有します」 Microsoft's WSYP (We Share Your Pain)

Microsoft's WSYP (We Share Your Pain) より


# 某所で見た、例のアレが公開されてました


Microsoft の新しい、そして、画期的なフィードバックシステムの紹介ですw
Microsoft's WSYP (We Share Your Pain)...
の右側の 「Watch the entire show」 をクリックして .NET Passport でログインするとビデオを見ることができます。英語ですがぜひ見てみてください。

GotCodeSnippets.NET

http://www.gotcodesnippets.net/


Visual Studio 2005 のコード・スニペットを登録したりダウンロードしたりできるサイトです。こんな感じで便利なコード・スニペットがいろいろと集まっていくと面白いですね。

Microsoft MVP を再受賞

ちょっと報告が遅くなりましたが、Microsoft MVP を再受賞しました。ジャンルは前回と同じく Visual Developer - Visual C# です。


 

Microsoft MVP Global Summit 2005 に参加しました

# ちょっと忙しくて 1ヶ月以上の間この blog も放置状態でしたがぼちぼち復活。


9/28~10/1 に Microsoft の本社 (アメリカのシアトル) で開催された Microsoft MVP Global Summit 2005 に参加してきました。今回で 3回目の Global Summit だったんですが、今までと同様とても楽しかったです。ほんとはちゃんと旅行記でも書きたかったんですが、とりあえずこれだけ。