MSDNオフライン

2017/12/11

行ってきました。ほとんどの方は同時開催していたMDC06に参加していたようで、このためだけに来ていた酔狂は私だけだったみたいです(^^;。ま、オフィスから近いしね…。
C#の父、Anders HejlsbergさんのC#2.0そしてその次…というセッションです。ご自身の経歴(Turbo Pascal時代のBYTE誌の宣伝ページ)と2.0で追加されたGenerics,匿名メソッドなどをさらっと説明して、LINQ。
ちょっとびっくりしたのが、完全にソースがない状態から100行近くざくざくほとんどエラーもださず(Smart Tagの説明をするためにわざとだすくらい)、書き進めている。統合環境もちゃんとつかっているんだなーと結構感心。
C#モードでsvmとタイプしてTab,Tabとたたくと…こんなのが出るとは。同様にcw,Tab,Tabとタイプすると…しらなかったよorz。cw,Tab,Tabはよく使いそうです。何が出るかは実際に試してみてね。
で、最後のLINQですが、これまたデモとして、現在のマシンで4MB以上のWorking Setを使用しているプロセス一覧を表示する…というプログラム。そしてさらにSQL Server Expressに登録してあるプロセスの説明とjoinしてコンソールに表示するというデモ(これも一から書き起こしていた)。これを4行(Console.Writeがあるので、実際は3行)で書く。ちょっと感動。
次にRSS 2.0のxmlファイルを統合環境にCopy & Pasteすると、Xmlほげほげクラスを使って、Copy元のXmlファイルを作るソースコードを自動的に貼り付ける…そこまでやりますか(便利だけど)。最後はLINQでとってきた前述のプロセス一覧をXMLに出力するデモ。
LINQ使うと、それまで60MB弱だったVisual StudioのWorking Setが110MB程度になったのはちょっと驚いた。何使っているんだ。
ただ…おがわさんのdfltweb1.onamae.com – このドメインはお名前.comで取得されています。でも触れられているように、事前にクラスを生成するというのはあまりかっこよくない。実際はさらにデータベースへの接続子の問題もあるんじゃないのかなぁ…。実行時生成ってなかんじで、partial classよろしくデータベース部分へのクラスを別にして、表名だけ指定しておく。んで、実行時に生成するなんてことできないんかな。
最後の質問コーナーでは押してしまったため、一人だけ。時間があればLINQはRDBとC#を結びつけるものだけれど、オブジェクト指向データベースあたりとの接続は?とか聞いてみたかったかな。
使っていたマシンがたぶん西海岸のタイムゾーンになっていたのですが、2:00AM(^^;それでも元気に、ハイテンションで説明してくれました。ひょっとしてこの時間が活動時間…なわけないよね。
その後はQueens Squareへ場所を移して、ご飯食べながら参加者の方々とイロイロお話。なぜか初っぱなWindows Installerの話で盛り上がる(^^;。私Install Shield 2.0(6.0のあたりで出ていたmsi専用)位で知識止まってますが。いまやるんならWiXとかかな。InstallShield高いんだよー!