質問者
MFCと対照すべきものは.Net Frameworkのクラスライブラリー

全般的な情報交換
-
外池と申します。他のスレッドでご迷惑をおかけした罪滅ぼしに、あくまで拙見ですが、要点を整理しておきます。皆様の技術的検討の一助になれば幸いです。
-
C++とC++/CLIの比較は、大いに結構。言語仕様の比較です。新たなメモリ管理方式の導入に伴う拡張が行われていることがC++/CLIの特徴(特に「^」マークの使い方)で、 逆に、それ以外は、ほとんど同じものと考えています。
-
MFCとCLRの比較は、私にはとてもナンセンスに感じられます。CLRは、C++/CLIや他の言語がコンパイルの結果吐き出すコードとその実行環境に関する概念であって、プログラミングで利用するクラスライブラリーとは縁遠いもののように思われます。
-
MFCと直接比較すべきは、.Net Frameworkで提供されているクラスライブラリーだと思います。私の場合、測定器から流れ込んでくるデータのグラフィカルな描画が主な応用分野なのですが、MFCに存在していたGUI用のクラスは、ほぼ相当するものが.Net Frameworkには存在しています。では、MFCのドキュメント/ビューアーキテクチャ(CDocumentやCViewなど)に相当するクラスが.Net Frameworkに存在するか? については私にはよくわかりません。2.0までは、ちょっと見当たらないように思われますが、3.0や3.5で提供されているWPF、WCF、WFは、非常に進化した形のものかな? と想像しています。
-
すべての返信
-
要は
コッチ側で Document::UpdateAllViews すれば
アッチ側の View:nUpdate に火が付けばいいわけだから、
MFC風に味付けすれば:
Code Snippetinterface IView {}
delegate void Update(IView sender, int lHint, object rHint);class abstract Document {
public event OnUpdate;
public void UpdateAllViews(IView sender, int lHint, object rHint) {
OnUpdate(sender,lHint,rHint);
}
}
たったこれだけでキモは完成ですから。 -
返信ありがとうございます。
エピステーメーさんの以前書かれた記事にその辺りの事は書かれていたので
理解はしています。
しかし、MFCで書かれたアプリケーション全体を移行させようとすると、
CDocument,CVeiw,CDocTemplateなどで実装されていたpublic関数やvirtual関数などを
備えた基底クラスを自分で用意する必要が出てくると思います。
確かに、MFCが設計された当時の環境に比べると沢山の部品の山があって
実装する作業は楽にはなっていると思うのですが、
.Net FrameworkはまだMFCによって実現されていた多くの部分が欠けているため
私にはその部分を作る必要があるように思います。
マイクロソフトがその内やってくれると期待しているのですが、
当面従来のMFCアプリケーションの資産はそのままMFCで継続させなさい。
というメッセージを出しているように思えます。
新しく出すならMFCを超えたものでなくてはならないし、それはもう少し時間が必要なのでしょう。
とすると、Viewだけでも.Net Frameworkを使いたいと思うのですがね。
-
CWinFormsView クラスが追加されてます。