PDC2008
10/27-30に開催されたPDC2008ですが、開催中にも関わらずセッション動画が随時公開されていて参加出来ない人としては嬉しい限りです。連休中はひたすらセッションを見ていたので、個人的に興味があったセッションを簡単にまとめてみます。
■The Future of C# | pdc2008 | Channel 9
ヘジたんのC#セッションは、
http://d.hatena.ne.jp/akiramei/20081031/1225468947
を参照ください。
■Deep Dive: Dynamic Languages in Microsoft .NET | pdc2008 | Channel 9
DLRに関するセッション。IronPythonを作成した動機なども語っていましたが、過去の日記で紹介したことがあるのでそれは割愛。
- Ironとは? Implementation Running On .NET
- な、なんだってー!!(AA略
- Expression Trees v2
- Dynamic Dispatch
- Common Actions Accross Languages(以下CAAL)
- 各言語共通となるアクションを定義
- GetMember/SetMember/DelteMember
- UnaryOperation/BinaryOperation
- Convert
- InvokeMember/Invoke
- GetIndex/SetIndex/DeleteIndex
- 各言語のSyntax -> Expression Trees -> CAAL(DLRへメッセージ送信) -> Binder(各言語等)
- Binder
- Call Site Caching
- DLRのディスパッチは文字列ベースなので遅い
- メソッド呼び出しや定数参照などをキャッシュすることで高速化
- MetaObjectクラスによるBinder呼び出しの最適化
- 昔からある手法
C#のdynamicの実装がどうなるか分かりませんが、このセッションを見る限りdynamicキーワードを付けるとExpression Treesが構築され、Dispatch部分がDynamic Dispatchに置き換えられる、って感じでしょうか。
■Microsoft .NET Framework: CLR Futures | pdc2008 | Channel 9
CLR4.0の強化点など。
- In Process Side X Side
- NoPIAs
- OfficeとのInteropのために生成されるアセンブリ(PIA)は巨大(数MB)
- PIA=Primary Interop Assembly
- NoPIAの仕組みは、ビルド時に必要なインタフェース&メソッドのみがリンクされるイメージ
- この辺の話はUnder the Hood: Advances in the .NET Type System | pdc2008 | Channel 9も合わせて見た方が良いです
- OfficeとのInteropのために生成されるアセンブリ(PIA)は巨大(数MB)
- Wrapping Tool
- IronPython/IronRuby/F#を実装するにあたってのCLRチームの貢献
- パフォーマンス改善
- バグ削減
- Currupting state exceptions
- 不正な状態のプロセスはそれ以上データを壊す前に速やかに終了すべき
- CLR4.0ではA/V Exception, Invalid Memoryなどの例外は通常の方法ではcatch出来なくなる
- HandleProcessCorruptedStateExceptionsカスタム属性を使えば処理出来る
- CLR4.0ではA/V Exception, Invalid Memoryなどの例外は通常の方法ではcatch出来なくなる
- デバッグ
- 64bit mixedモードサポート
- Code Contracts
- あなたはコードについて多くを知っている
- コンパイラにそれを伝える手段は少ない
- assert?
- CodeContract.Requires/CodeContract.Ensures
- 事前条件/事後条件が指定できる(Design by Contractっぽいやつ?)
CAS(Code Access Security)が無くなるとかそんな話を聞いたことがありますが、ここでは触れられていませんでした。大きな問題ですし、まだ詳細は詰まってないのかしら?
■An Introduction to Microsoft F# | pdc2008 | Channel 9
F#入門セッション。
命令型->宣言型へのコードの書き方が変わっていく様子とか、命令型言語に慣れている人には参考になりそう。あと、asyncブロックとlet!を書くだけで非同期実行になるところは必見。
■Microsoft .NET Framework: Overview and Applications for Babies | pdc2008 | Channel 9
.NET関連の総覧的セッション。セッションが多すぎて何を見て良いか分からない場合は、これを見て興味がありそうなものを探すのがよさげ。ジョークを交えた肩肘の張らない内容です。ただ、真剣モードで見ようとするなら、他のセッションを当たった方が良いかも。(^^;
■http://channel9.msdn.com/pdc2008/PC54/
Monoな人のセッション。PDCでOpen SUSEを見るのは新鮮です(^^;
英語がかなり速いですが、デモと会場のノリだけで楽しめます。私が紹介するよりid:atsushienoさんとこ→Mono on PDC 2008 video - ものがたりを見た方が良いです。
■Managed Extensibility Framework: Overview | pdc2008 | Channel 9
.NET4.0で組み込まれるMS製DIコンテナのセッション。DIコンテナの紹介的なところもあるのでDIコンテナを使っている人は物足りないかも。
疲れたのでこの辺で。(^^;
そのうち、MSな人とかMVPな人とか、詳しい人が記事にしてくれるでしょうー