近年、.NET Frameworkという言葉が流行っていますが、これは一体何なのでしょうか?
従来のようにWin32APIやMFCを使ったアプリケーションとは、かなり質が異なるもののように思われます。
.NET Frameworkに対応したアプリケーション開発ができると、どのような利点が生まれるのでしょうか?
また、次期WindowsといわれるLonghornでは、.NET Frameworkが非常に重要視されているように思います。
そして、こうした時代の流れを察するに、Win32APIやMFCのみでのアプリケーション開発をしてきた私も、.NET Frameworkとは一体何かを知らなければいけないと思うようになりました。
私はまだ何も確証は持てないのですが、.NET Frameworkはコンポーネント技術と何かしら関係があるように思います。しかし、そのような気がするだけで、何がどうなって、.NET Frameworkが構成されているのかまったくわかりません。.NET Frameworkがあると、将来どのようなことが実現可能になるのですか?
No.2ベストアンサー
- 回答日時:
.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
ニュアンス的には・・・・こんな感じかな~。てへ。
早速の回答ありがとうございます。要は.NET Frameworkは、ライブラリをCOMコンポーネントとして実現していると考えればよいのでしょうか。またそうすることの利点は、様々な言語で開発されたCOMコンポーネントを自由な言語で利用できるというところでしょうか。
また、ニュアンス的に.NET Frameworkは一種の仮想マシンという雰囲気も伺えたのですが、それは違いますか?
他にも、3層構造プログラミングなど、まだまだわからないことはたくさんあります。世界は広いですね。想像していたよりはるかに広いです。もっともっと勉強します。
ありがとうございました。
No.5
- 回答日時:
> 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は。ははは。
No.4
- 回答日時:
>ソフトウェア開発の目指している目標
プログラミングの生産性と品質でしょう。
少ないコードで書ければ、工数が短縮できるし、バグが出にくい。
実行環境:.NET Framework
開発ツール:VS.NET
ですばらしい開発環境を提供してくれている。
それが最大の魅力だと思います。
>XMLやSOAP
VS.NETだと、Webサービスの開発が楽なのですよ。
No.3
- 回答日時:
こんにちは、じゃんぬねっと です。
#1 さんのリンクでも良いですが、
JIT コンパイラや、マネージドなんて言葉なども合わせて
Google などで検索してみてください。
フレームワークは「サービス指向」でわかりやすいですし、
(C#, VB2002~、J#, C++.NET などなど言語を選ばない)
OS に特化した機能を使わなければ環境に依存しません。
JITコンパイラやマネージドを調べてみました。
.NET Frameworkの基本的な構成はJavaとよく似たところがあるような印象を受けました。
また、「サービス指向」についても少し調べてみました。詳しくはまったくわかりませんが、XMLやSOAPなどが今後のテーマとなっていきそうですね。しかし、ソフトウェア開発の目指している目標が(私の中では)まだはっきりしていません。もちろん、すぐにわかるような概念ではないと思うので、これから少しずつ勉強していきます。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(コンピューター・テクノロジー) .NET Frameworkがコントロールパネル>プログラムと機能に表示されない。 3 2022/12/31 15:33
- Visual Basic(VBA) フレームワーク「4.8.1」で、[Sub Main]が動かない。助けて下さい 3 2022/11/14 15:40
- ノートパソコン Win10 EXCEL でのエラー 2 2022/04/03 15:57
- ソフトウェア VisualStudio のデータブレークポイントを有効にする方法 1 2023/05/01 09:42
- Windows 10 このWindowsUpdateの失敗メッセージは何を物語るか? 5 2023/07/17 11:49
- Microsoft ASP ASP.NETや.NET、C#とかVBとか 2 2022/05/16 21:16
- その他(セキュリティ) Software Distribution folder の rename 手順 1 2022/08/19 13:08
- C言語・C++・C# ActiveXコントロールを.NETにインポートできない??? 2 2023/05/02 02:50
- その他(コンピューター・テクノロジー) (コマンドプロンプト)コマンドプロンプトのactiveについて 2 2022/07/16 17:21
- がん・心臓病・脳卒中 大腸ポリープの切除について 12 2022/08/31 07:19
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
新プログラミング言語Dartについて
-
ctfmon.exe。スタック ベースの...
-
web.configとは?(初心者です)
-
コマンドプロンプトのERRORLEVE...
-
有効なwin32アプリケーションで...
-
MacBookAir起動時にRubyソース...
-
Excel起動時のIMEツールバーの...
-
jdk17.06のインストーラーが起...
-
windows10でハンゲーム起動でき...
-
Visualstudio2015でasp.netをvb...
-
砂時計 点滅がなおりません・・
-
C#からvbsを実行したい
-
IUSR でCreateObject("Excel.Ap...
-
2つの異なるサーバーのDBを扱う
-
VB.NET Oracle接続 クライアン...
-
レンタルサーバー上のMySQL
-
Apache2.2起動しない・・・助け...
-
OracleInProcServer.XOraSessio...
-
pixus mp630 ドライバインストール
-
ASP.NETのパフォーマンスと接続...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
スマートフォンでSQL Serverと...
-
テキストファイルを音声ファイ...
-
ctfmon.exe。スタック ベースの...
-
タスクバーのボタンがオレンジ...
-
web.configとは?(初心者です)
-
TeraTermマクロの”Link...
-
VisualStudioでのプログラミン...
-
コマンドボタンのキャプション...
-
C#からvbsを実行したい
-
有効なwin32アプリケーションで...
-
windows vistaで、最近 KACT2
-
信長の野望 革新について
-
HRESULTからの例外:0x8007000B
-
GridviewとDataGridviewの違い
-
IIS7.5 Excel ファイルオープ...
-
System.Net.Sockets.SocketExce...
-
プロシージャエントリポイント
-
VBAでネットワーク上のバッ...
-
Media Gallery?勝手に起動
-
砂時計 点滅がなおりません・・
おすすめ情報