Visual Studio 2010 Launch記念 – 私が凄いと思う3つの機能


今年の春の天気はドラスティックですね。
ソメイヨシノはもう終わり、今は、八重桜が満開ですねぇ。
昨日は五反田で面白いものを一杯見せていただいて、夜はおばかアプリ勉強会にお邪魔し、はばさんに脳みそ渡し、非常に満足な一日でした。


で、話は変わりますが、Visual Studio 2010が公開されましたねぇ。桜は全く関係ないですぇ。
せっかくなので、今回は、私が注目している新機能を3つ、紹介しようと思います。他にも沢山良い機能はあるのですが、きっと他の誰かが書いてくれるでしょう


先ず、一つ目!!、UML Editorです。Ultimate版でしか使えないのが残念なんですが…。皆さん、ただ単にUMLのお絵かきツールだと思ってないですか?実は、幾つかのSDKをインストールすると、プログラムから図の内容にアクセスして、記述内容を取出して、文書を生成したり、自分の好きな設計ルールを適用してプログラムを生成したり、プログラマブルにUML図を作成したりできるんです。私は元々、設計図をきちんと書いたら、最終プログラム自動生成されるだろぅ、系のプロフェッショナルだったので、こういう機能には魂が燃えます。(これ、今年も協賛するETロボコン支援ネタで、このブログで連載の予定)


次、二つ目!!、MEFです。これは凄いです。Managed Extension Frameworkです。プログラムの理想形はOCP(Open Closed Principle)とは、よく言われますが、MEFを使ってExtension Pointを仕込んでおけば、既存のプログラムコードに全く手を入れずに、機能をアプリケーションの実行時に拡張できるんです。Visual Studio 2010のIDEは、WPF/Managedで作られていて、デフォルトでMEFのExtension Pointが沢山仕込まれています。これに合わせて拡張部品を作れば、“Extension Manager”で、簡単にVisual Studioの機能を拡張できます。Visual Studio 2010を既にインストールしている方は、ぜひ、ツール→Extension Managerでダイアログを開き、Online Gallaryを選択してみてください。既に沢山の拡張モジュールがあるのが見れると思います。現在、他のエバと、勝手にMEF FUNという、ネット上のグループを立ち上げて、VSの拡張ポイント探す、作る、共有する・・・みたいなことを始めようかな、などと、画策しているところです。実はETロボコンの計測システムのソフトの部分は私が皆さんの協力のもとに開発して提供しているのですが、今年は、MEFを使って、Extension Pointを仕込んで、途中経過の表示とか、最終順位の表彰表示とか、募集しようかな、などと思ってたりします。


最後に3つ目!!、Parallel & Concurrentです。CPUの周波数はもう頭打ちです。何故かというとこれ以上周波数を上げてしまうと、CPU内の熱密度が核融合炉並みになってしまうからなんですね。性能向上を図るにはコアを増やすしかないんですね。しかし、マルチコアの前に、マルチスレッドのプログラミングでも、効率的かつハイパフォーマンスなマルチスレッドプログラムを作るのは、シングルスレッドに比べて、格段に難しいんですね。スレッドにどんな風に処理を割り付けるか、これ結構難しくて、下手にスレッド増やしただけだと、スレッド間通信のビハインドや、実行メモリ量が増えたり、最悪よく判らないところでデッドロックを起こしたりして全然性能が出なかったりします。処理の割り付けには、RMT(Rate Monotonic Theory)をはじめとする理論なんかもあるんです(実は効率的なパターンもあったりするのですが・・・)が、これまではスレッドを幾つ用意するか、それらにどう処理を割り付けるかを考えて最適化するのは兎に角難しいものだったんです。更には、スレッド2つの場合とスレッド3の場合では、最適な配置は違ってたりします。そんなこんなで、コアが2の場合、4の場合、8の場合、数に合わせて最適化を考えようとする(SMPを想定)と、凄く大変なわけです。最悪同じ事をするプログラムなのに、別々のプログラムを書かなければならないんです。その製品が売れて、機能拡張しようとかバグ対応しようとか、後々のことを考えるとこれは悪夢だ。
Parallel & Concurrentはこれを解決してくれるテクノロジーなんですね。基本的なプログラミングモデルは、私が好きなShlaer-Mellor法のADFD(Action Data Flow Diagram)と同じで、これがC#の関数型拡張で実現されているところが、凄いなぁと感じている今日この頃です。


と、ここまで読んできて、“私は組込み系の技術者だから関係ないや・・・”とか思ってませんか?実は、もう直ぐ、組込み向けのWindows 7(Windows Embedded Standard 7)がリリースされます。WES7ご利用の皆様、是非、ご活用くださいませ。


おぅ、久しぶりにおバカネタに振れずに、書ききったぁ。

Comments (1)

  1. sasaminn より:

    Managed Extension Framework、特にMEFを使ったVS2010の拡張に非常に興味があるので、MEF FUNが立ち上がるのを楽しみにしています。

Skip to main content