アプリ版:「スタンプのみでお礼する」機能のリリースについて

 近年、.NET Frameworkという言葉が流行っていますが、これは一体何なのでしょうか?

 従来のようにWin32APIやMFCを使ったアプリケーションとは、かなり質が異なるもののように思われます。
 .NET Frameworkに対応したアプリケーション開発ができると、どのような利点が生まれるのでしょうか?

 また、次期WindowsといわれるLonghornでは、.NET Frameworkが非常に重要視されているように思います。
そして、こうした時代の流れを察するに、Win32APIやMFCのみでのアプリケーション開発をしてきた私も、.NET Frameworkとは一体何かを知らなければいけないと思うようになりました。

 私はまだ何も確証は持てないのですが、.NET Frameworkはコンポーネント技術と何かしら関係があるように思います。しかし、そのような気がするだけで、何がどうなって、.NET Frameworkが構成されているのかまったくわかりません。.NET Frameworkがあると、将来どのようなことが実現可能になるのですか?

A 回答 (5件)

 .Net Frameworkとは、コンポーネント技術をさらに推し進めたものと言える。



 今まで君はMFCでCOMの開発を行ってきたのかな? COM、もっと細かく砕けばOLE2は、IUnknownインターフェースから派生した、「自分の機能を自分で提供できる」技術だった。COM技術者なら一度はActiveX DLL Hellに遭遇した事があるだろう。

 今まで、MFCアプリにMFCランタイムとVCランタイムがあったように、VBアプリにVBランタイムがあったように、.Netアプリに必要とされるランタイム、それが.Net Frameworkだ。

 簡単に言うと、.Net Frameworkとは、
・利用者:最新版の.Net Frameworkさえ入れれば、大抵の.Netアプリが動く。
・開発者:どの言語を使おうが同じライブラリ(ルーチン群)で開発できる。C#で作成したプログラム部品をVB.NETで使うなんて芸当も簡単。
という風に、Microsoftが編み出した次世代型のランタイム技術と言える。実際、Microsoftはこう表現している。
「JavaがWrite Once, Run Anywhereなら、.NetはWrite Once, Run Anywhere By Any Languageだ」と。
 Microsoft.Netでは、VB.NET、C#、C++(、J#)の他に、CobolやPerlなども(外部アセンブリにより)使う事ができるそうな。使った事はないけど・・・・。

 MFC使いなら恐らく君の技術レベルはかなり高いと見て、誤解を恐れずに次のような対比で話をしめよう。
MFC=Microsoft.Net
MFCランタイム=Microsoft.Net Framework
ニュアンス的には・・・・こんな感じかな~。てへ。
    • good
    • 0
この回答へのお礼

 早速の回答ありがとうございます。要は.NET Frameworkは、ライブラリをCOMコンポーネントとして実現していると考えればよいのでしょうか。またそうすることの利点は、様々な言語で開発されたCOMコンポーネントを自由な言語で利用できるというところでしょうか。

 また、ニュアンス的に.NET Frameworkは一種の仮想マシンという雰囲気も伺えたのですが、それは違いますか?
 他にも、3層構造プログラミングなど、まだまだわからないことはたくさんあります。世界は広いですね。想像していたよりはるかに広いです。もっともっと勉強します。
 ありがとうございました。

お礼日時:2005/06/09 09:50

> COMコンポーネントとして実現していると考えればよいのでしょうか。


 う・・・ん。できれば似て非なる技術だと思っていて欲しいのだが、まぁコンポーネントを作成せずに使う側の開発者としては、COMコンポーネントと同じと考えても・・・・う~ん。まぁ、とりあえずはぼんやりとでも「似て非なる」と覚えておいて欲しい。
 COMと比べて最も目に付く違いは、
1.レジストリに登録する必要がなくなった。
2.同じCLSID(※)を持つコンポーネントが、複数バージョン同時に配置できるようになった。
(※)正確にはCLSIDでは無い、COMとの対比の為にこう表現
3.コンポーネント名として、「ネームスペース」という概念が加わり階層構造になった。
 の3点かなぁ。

> ニュアンス的に.NET Frameworkは
> 一種の仮想マシンという雰囲気も伺えたのですが、
 君はとても良い感覚をしている。確かに.Netの膨大なライブラリ群を見てみれば、ある種.Net自体がOSで、その機能を利用するAPIととらえる見方も十分通用すると私は思う。
 まぁ、VMであると言い切ってしまえないのが、Sunが「VM」と表現しているのに対し、Microsoftが「Framework」と表現している理由なのだとも思うけどね。

 君も分かっているように、MFCなどから比べて、進化というよりもまさに次世代というくらい基本理念から何から違うものなので、ゆっくりとその理念に触れながら開発方法を学んでいくしかないだろう。

> XMLやSOAP
 この二つの技術は、開発者の視点では#4さんの言うとおり、いわゆる「Webサービス」に収束されるのだろうな。現実問題として。確かにWebサービスを作るのもそれを利用するのも、なんかこう、ちゃちゃっと作ってぱっぱっと使う、う~ん・・・・、なんと言うか。あたかもDLLを1個作るかのようにWebサービスを作れるし、そのDLLを参照設定して使うかのごとくWebサービスを利用するプログラムを作れる。

 まぁ、なんというか。確かに大した技術ですよ.Netは。ははは。
    • good
    • 0

>ソフトウェア開発の目指している目標



プログラミングの生産性と品質でしょう。
少ないコードで書ければ、工数が短縮できるし、バグが出にくい。

実行環境:.NET Framework
開発ツール:VS.NET

ですばらしい開発環境を提供してくれている。
それが最大の魅力だと思います。

>XMLやSOAP

VS.NETだと、Webサービスの開発が楽なのですよ。
    • good
    • 0

こんにちは、じゃんぬねっと です。



#1 さんのリンクでも良いですが、
JIT コンパイラや、マネージドなんて言葉なども合わせて
Google などで検索してみてください。

フレームワークは「サービス指向」でわかりやすいですし、
(C#, VB2002~、J#, C++.NET などなど言語を選ばない)
OS に特化した機能を使わなければ環境に依存しません。
    • good
    • 0
この回答へのお礼

 JITコンパイラやマネージドを調べてみました。
.NET Frameworkの基本的な構成はJavaとよく似たところがあるような印象を受けました。
 また、「サービス指向」についても少し調べてみました。詳しくはまったくわかりませんが、XMLやSOAPなどが今後のテーマとなっていきそうですね。しかし、ソフトウェア開発の目指している目標が(私の中では)まだはっきりしていません。もちろん、すぐにわかるような概念ではないと思うので、これから少しずつ勉強していきます。
 ありがとうございました。

お礼日時:2005/06/09 10:11
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!