ページ

2005年8月10日水曜日

TechEd 2005 Yokohama レポート - 8/2(火) 1日目

今年も TechEd 2005 Yokohama に参加しました。
以下はそのときのメモです。


8/2(火) 1日目 ラーニングディ


朝 6:30 発の新幹線で横浜へ。
TechEd 会場であるパシフィコ横浜に着いたのは 9:30 くらい。すでに最初のセッションは始まってしまってるけど、新横浜に止まる新幹線はこれが始発なのでしょうがない。なので最初のセッションはあきらめてとりあえず MVP ラウンジに行ってみた。濃いぃ人たちとともになぜかそこにはキティちゃんが。。。(笑) キティちゃんと遊んだりして、ちょっと時間をつぶしたあと、さっそく最初のセッションへ。TechEd まで来ていつまでもキティちゃんと遊んでるわけにもいかないですしね(^^;


■ L7-2 Windows Server をインターネット環境に展開する
~ほんとうに大丈夫?どうすればいいの?~ (Part II)
内容はタイトルのとおりでした。「不要なサービスは止めろ」「不要なポートは閉じろ」その他もろもろ、、、と。基本的には「セキュアになるようにちゃんと設定しましょう」ってことでした。常識と言えば常識なのかもしれないけど、(私は IT Pro ではないし)こういうふうにあらためてきちんと筋道立てて説明してもらうと「なるほどなぁ。そりゃそうだよなぁ」という感じで結構おもしろかったです。あと、最後のほうの 5台のデモマシンを使っての ISA Server のデモもおもしろかったです(ISA Server って見るのも初めてだったしw)。
そういや、Windows Server 2003 は SP1 を当てたメディアでセットアップするとポートを閉じた状態で起動するんだって。確かにそうじゃないとなぁ。


■ お昼ごはん
MVP な人たちなどと近くのお店で。私は、お刺身の定食を選択。
今年も 4日間で 6,000円分の食券がついてました。この食券は TechEd 会場となっているパシフィコ横浜の近辺にあるほとんどのお店で使えます。


■ L8 Community Server を使ったビジネスブログサイト構築法
ここの blog は .Text を使ってますし、改造したりするために結構 .Text のソースを見たりもしましたからそれなりには理解できてると思います。で、Community Server (以下 CS)の blog 部分は .Text がベースになってるわけで、いまさらあらためて聞くまでもないような気はしたんですがw。。。なんとなくこのセッションを選んじゃいました(笑)
前半は blog そのものについて。スピーカーの鈴木さん曰く



  • Blog ツールはコンテンツ・マネジメント・システム(CMS)の一種。

  • ブログはインターネットで公開している日記。

で、「日本で言うブログはカタカナのブログなんだと思う」とのこと。ふむ、なるほど、確かにそんな感じはする。
中盤は CS の特徴の紹介。最後のほうは実際に CS をインストール・セットアップしてみるデモ。そか、CS ではユーザのロールとか、blog グループとかができるようになってるんだ。この辺は .Text よりずいぶん進化しているな。んで、時間が足りなくなっちゃってすごく駆け足でインストールするデモが行われたんだけど、なんか .Text でのインストールのわかりにくさが嘘みたいに簡単になってるw


■ L3-1 C# 2.0 and IDE Tips & Tricks Part1
波村さんのセッション。とってもおもしろかった。最終アンケートの 「4日間とおして最もよかったセッション」 にこのセッションを上げました。


C# チームが入ってるビルディングを MSN Virtual Earth の画像で紹介してくれたり、仕様が来るまで待ってられないのでノートが来た時点で実装しちゃうとかなんていういかにも「中の人」ってな感じの話で始まり。


で、C# 2.0 の追加機能の話。最初は Generics。しかし、いくらなんでも説明が速すぎかも(笑)。このスピードだとある程度知識がないとついていけないかもしれませんね。
以下、いろいろ



  • 1.0 と 1.1 ではたとえば int 用のコレクションなんていう感じの特化したクラスを作ってパフォーマンスを上げたりしてた (確かにアクセスするたびに box 化、unbox 化が必要になるのはきついだろうな)。これが 2.0 では Generics にすることによってこういうようなユーティリティクラスが不要になった。

  • Dictionary<string, List<string>> と書ける。C++ のように > > とスペースを入れる必要はない。これは、ちゃんとパーサを変更して解釈してる。

  • 「default(T) を入れました」 なんていう表現がおもしろいなぁ(「○○という機能があります」じゃなくて「入れました」というのは中の人じゃないと言えないよなぁ)。

  • void Foo<T>(T x) {
     int j = (int)(object)x;
    }
    (int)x とは書けない(x が int にキャストできるのかどうかコンパイラには判断不可能なので)。なので (int)(object)x と書く必要あり。こうかいても JIT によって最適化されるので無駄は発生しない。

  • if (x == null)
    x が value type のときは常に false (value type が null になることはありえないので)。この場合も JIT によって最適化されるので無駄は発生しない。

  • public static int Foo(int i) { }
    public static T Foo<T>(T t) { return default(T); }
    public static T Bar<T>(T t) { return Foo(t); }
    このようなオーバーロードには注意。
    Foo(1) と呼び出せば一番近い Foo(int) の呼び出しと解釈される。しかし、Bar(1) と呼ぶと return Foo(t); は Foo(int) ではなく Foo<T> の呼び出しと解釈される。コンパイル時には Bar<T> 内の Foo(t) にシグネチャが最も近いのは Foo<T> になるので当然。当然ではあるか、とてもわかりにくいバグになる可能性が高い。注意すべし。というか、こういうコードは書かないほうがいい。

  • 波村さん曰く「constraint は慣れてくると書かないと気持ち悪い」

続いて Anonymous Methods。



  • 「C# 3.0 になるとますます関数型言語に近づくんですが。。。今回はそれは話せませんので、また、次回に」 うーん、聞きたいぞw

  • 「delegate { MessageBox.Show(...); } という書き方でもλ式に見えないというフィードバッグがあった。C# 3.0 ではなんとかしてみたい」 ほぅ。

  • 「Anonymous Methods をイベントにフックアップしてます」 ふーん、フックアップって言うのか。

次に Nullable。



  • Longhorn (Windows Vista) には 5種類くらいの Nullable の実装があった。それくらい需要があるのになんで標準的にランタイムでサポートしないんだ?という話もあってランタイムと C# コンパイラもサポートすることになった。

  • int? x = i; こんなふうに non nullable から nullable にすることをラッピングというみたい。で、反対に int i = (int)x; をアンラッピングというみたい。

  • Nullable Boxing。今日から公開していいと言われた内容。ここ 1ヶ月半でデザインチェンジが行われて、nullable を box 化に関して動作が変わったらしい。詳細は長くなるので別記事に書きます。

最後に Iterator。



  • 実は Iterator はバグがいくつも見つかってカットするかどうかの議論にもなったらしい。

  • しかし、C# 3.0 でも重要なフィーチャーになるし重要ということで生き残ったらしい。

  • Iterator はあまり注目されないが、とても便利とのこと。


■ L3-2 C# 2.0 and IDE Tips & Tricks Part2
Part1 に続いて 2コマ目。
1コマ目は C# の新しい言語機能の話でしたが、2コマ目は Visual Studio 2005 の新機能の紹介が中心。



  • AppWeek とは?仕事を離れて実際のアプリケーションを書いてみる週。月曜日にデザイン、火~木の 3日間に実装、金曜日にプレゼンという感じ。最近あった AppWeek では 30人で 200くらいのバグを見つけた。

  • VS はソースコードが 20G。HQ だけでも 2000人。ほへぇ。

  • メタデータソースビュー。メタデータを元に C# のソースで表示してくれる。おもしれー。XML ドキュメントのヘルプも見れてる。

  • 「すべての参照の検索」 とかは 2003 では単なる文字列検索。2005 ではちゃんと C# コンパイラと同等のパースツリーから表示している。

  • VS2005 のプロジェクトのプロパティは VB で作られている(だから遅い。。。?)

  • dim スニペットを書こう!(いや、冗談ですw)

  • プロパティの自動生成(コンパイラサポート)、new のときの型の自動判断は 「アンダースがダメだと決定した。『C# は VB じゃないんだ』」

  • ASP.NET にはやっぱりエディット&コンテニューはない?(詳細不明)

■ コミュニティパーティ
MVP、コミュニティリーダー、MCP 上位資格者、そしてマイクロソフトや Microsoft の方々とのパーティ。MVP な人や波村さんなどと C# や Vista の話なんかで盛り上がりました。


■ スペシャルナイト(笑)
MVP な人たちなどとコンビニに買出しに行ってホテルの部屋で飲みました。途中から参加した人たちなんかもいて、多いときは 10人以上くらいいたかな。私は 2時くらいにダウンしました。他の一部の人たちは明け方まで飲んでたらしい(^^;

0 件のコメント:

コメントを投稿