.NET Frameworkとは?

このQ&Aのポイント
  • 近年、流行している.NET Frameworkとは一体何なのでしょうか?Win32APIやMFCとは異なり、.NET Frameworkの利点や特徴について解説します。
  • .NET Frameworkは次期Windowsで重要視される技術であり、アプリケーション開発に革新をもたらします。コンポーネント技術とも関連しており、将来の実現可能性も高いです。
  • .NET Frameworkに対応したアプリケーション開発では、従来の制約を超えて柔軟な開発が可能です。それにより、効率的な開発や高いパフォーマンスを実現することができます。
回答を見る
  • ベストアンサー

.NET Frameworkって一体何?

 近年、.NET Frameworkという言葉が流行っていますが、これは一体何なのでしょうか?  従来のようにWin32APIやMFCを使ったアプリケーションとは、かなり質が異なるもののように思われます。  .NET Frameworkに対応したアプリケーション開発ができると、どのような利点が生まれるのでしょうか?  また、次期WindowsといわれるLonghornでは、.NET Frameworkが非常に重要視されているように思います。 そして、こうした時代の流れを察するに、Win32APIやMFCのみでのアプリケーション開発をしてきた私も、.NET Frameworkとは一体何かを知らなければいけないと思うようになりました。  私はまだ何も確証は持てないのですが、.NET Frameworkはコンポーネント技術と何かしら関係があるように思います。しかし、そのような気がするだけで、何がどうなって、.NET Frameworkが構成されているのかまったくわかりません。.NET Frameworkがあると、将来どのようなことが実現可能になるのですか?

質問者が選んだベストアンサー

  • ベストアンサー
  • anmochi
  • ベストアンサー率65% (1332/2045)
回答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 ニュアンス的には・・・・こんな感じかな~。てへ。

otu_otu
質問者

お礼

 早速の回答ありがとうございます。要は.NET Frameworkは、ライブラリをCOMコンポーネントとして実現していると考えればよいのでしょうか。またそうすることの利点は、様々な言語で開発されたCOMコンポーネントを自由な言語で利用できるというところでしょうか。  また、ニュアンス的に.NET Frameworkは一種の仮想マシンという雰囲気も伺えたのですが、それは違いますか?  他にも、3層構造プログラミングなど、まだまだわからないことはたくさんあります。世界は広いですね。想像していたよりはるかに広いです。もっともっと勉強します。  ありがとうございました。

その他の回答 (4)

  • anmochi
  • ベストアンサー率65% (1332/2045)
回答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は。ははは。

  • todo36
  • ベストアンサー率58% (728/1234)
回答No.4

>ソフトウェア開発の目指している目標 プログラミングの生産性と品質でしょう。 少ないコードで書ければ、工数が短縮できるし、バグが出にくい。 実行環境:.NET Framework 開発ツール:VS.NET ですばらしい開発環境を提供してくれている。 それが最大の魅力だと思います。 >XMLやSOAP VS.NETだと、Webサービスの開発が楽なのですよ。

  • JeanneNet
  • ベストアンサー率48% (100/208)
回答No.3

こんにちは、じゃんぬねっと です。 #1 さんのリンクでも良いですが、 JIT コンパイラや、マネージドなんて言葉なども合わせて Google などで検索してみてください。 フレームワークは「サービス指向」でわかりやすいですし、 (C#, VB2002~、J#, C++.NET などなど言語を選ばない) OS に特化した機能を使わなければ環境に依存しません。

otu_otu
質問者

お礼

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

関連するQ&A

  • 【質問】アンマネージコードとマネージコードについて

    質問1. アンマネージコードはWin32 APIを使用しますか? Windows API=Win32 APIのこと? 現在は、Win32 APIではなく、COM(Component Object Model)コンポーネントをアンマネージコードに使いますか? 質問2. マネージコードには.NET Frameworkを使用します? マネージコードであるWinFXは死んだのですか?.NET Frameworkの次期ですか? 質問3. .NET Frameworkだけでは対応できないってこと? ネットにあるソースは.NET FrameworkとWin32 APIが混合しているソースがいっぱいあります。 .NET Frameworkだけでは対応できないってことですか?

  • .Net Framework APIがあればMFCはいらないのでは?

    最近Windowsプログラミングに興味を持ちましていろいろと調べている所なのですが、疑問に思ったので質問させて下さい。 質問の内容はタイトルどおりなのですが、 windowsのシステムが.Net Frameworkに統一されようとしている今、.Net Framework APIがあればMFCを新しく勉強する価値は殆どないと思うのですが、この考えは間違っているでしょうか? 例えば、下の本(実物はまだ見てません) http://www.amazon.co.jp/exec/obidos/ASIN/4797324201/249-5720925-3989928 では「 MFCを利用したWindowsネイティブプログラムから,最新の.NETアプリケーションの作成方法まで,..」 と紹介されてますが、VC++.NETでプログラミングするのに、なんでMFC?なんて思って仕舞うのですが、MFCでないと出来ないことがあるのでしょうか?

  • .NET Framework2.0の他のアプリケーションへの影響

    いつも、参考にさせて頂き、ありがとうございます。 「.NET Framework2.0の他のアプリケーションへの影響」についての質問です。ご教授頂ければ、幸いです。 グラフィックボードを使用してカメラ画像を取り込み、解析するソフトを開発しています。この解析ソフトはMFC/C++で開発されているので.NET Frameworkを使用しておりません。 先日、この解析ソフトが起動しているパソコンに.NET Framework2.0をインストールしたところ「画像データの転送異常」が頻繁に発生するようになってしまいました。もちろん、.NET Framework2.0を使用するアプリケーションを起動していない状態です。 ここで疑問なのですが、.NET Framework2.0は.NET Frameworkを使用するアプリケーションを起動していない状態でも、インストールされているだけで常駐ソフトのように何らからの動作をしているのでしょうか? .NET Framework2.0をアンインストールする事により「転送異常」は発生しなくなるので、.NET Framework2.0のインストールが影響していると思われるのですが、.NET Framework2.0の動きがよく分かりません。 皆様の中に同じような現象を体験した、また、.NET Framework2.0の動きに関しての情報、参考サイトがあれば教えて頂けると助かります。 現在のところ、.NET Frameworkをインストールしなければ正常に動作するのですが、今後、.NET Frameworkを使用したアプリケーションのインストールは避けて通れないと思いますので共存への対策をしたいと考えております。.NET Frameworkの影響を受けないアプリケーション構築等の情報があれば、ご教授のほど、よろしくお願いいたします。

  • ,NET Framework のバージョンを指定して開発するには?

    いつもお世話になっています。 現在、Visual C++ 2008 Express Editionを使用しての .NETアプリケーションの開発を検討しております。 今回はできるだけ多くのWindowsOSに対応したいと思っています。 事前の調査で、[.NET Frameworkランタイム 2.0]に対応させれば 良いかと思っています。 ですが、どの様にすれば2.0向けに開発していく事ができるのでしょうか? MSDNでリファレンスを探って、2.0以前のAPIだけを使う様に していくのでしょうか? もし、Visual C++の方でバージョンが指定できるのであれば その方法をご教示頂きたいと思います。

  • MFCなのかWin32APIなのか

    みなさんはじめまして。グフです。 これからWindows上でC/C++(VisualStudio.NET2003) にて、Windowsアプリケーション開発の勉強を始め ようとしています。 いろんなサイトや書籍を見ている中で、Windowsアプリ の開発方法としてMFCをつかうやり方と、Win32APIで 開発する方法の2つがあることがわかりました。 これからWindowsの勉強を行うにはどちらの方法で開発 するのが望ましいのでしょうか? ケース by ケースだとは思いますが、何かアドバイス いただければと思いまして、投稿させていただきました。 やはり基礎からおさえるのであれば、Win32APIの方が よろしいのでしょうか? 今後のWinFX環境を考えると、Win32APIでの知識が無駄 になってしまうということはないのでしょうか?

  • .NetでのDirectDrawの使用について

    現在会社のプロジェクトでC++でDirectDrawを使った業務用アプリケーションを開発しようとしているのですが,普段DirectDrawを用いたアプリケーションはwindows APIを使って開発を行なうことが多いと思うのですが,visual studio 2005 +.Netを用いてdirectdrawを使ったアプリケーションを作成することは可能なのでしょうか. お答えいただけると幸いです. 開発環境 visual studio 2005 .NET Framework 2.0 DirectX 7.0

  • Javaを半年で習得する方法

    Javaを半年で、習得したいのですが、どのように実現するか悩んでいます。 #アプリケーション製作をメイン 私自身は、仕事&仕事以外でC、VC++(Win32API/MFC)を3年程度(ほぼ毎日)やってました。 今回、Javaでも同程度以上の実力を習得したいです。(仕事以外) いくつか統合開発環境があるなかからEclipseで開発しようかと思いましたが、別途勉強しないといけなそうで時間がかかりそうですし、迷いましたので質問させて頂きました。 アドバイスその他宜しくお願いします。

    • ベストアンサー
    • Java
  • 画面全体を再描画させたい

    C#でアプリケーションを作っています。 画面全体(自分自身のウィンドウだけではなく、デスクトップ全体。壁紙やタスクトレイ等も)を再描画させたいのですが、どうすればいいのでしょうか? .NET Framework APIでそのようなものがなければ、Win32 APIでもかまわないので、アドバイスよろしくお願いします。

  • ApplicationDataのパスを取得

    コンソールアプリケーションでApplicationDataのパスを取得する方法を教えてください。 .NET Framework クラス ライブラリのEnvironment.GetFolderPath メソッド のようなWin32APIなどありませんか?

  • Windowsアプリからブラウザ起動と終了

    いつもお世話になっております。 Windowsアプリケーション開発を行うことになり、技術的に実現可能か否かの調査を行っております。 ご存知の方、どうかご教授ください。 ■やりたいこと WindowsアプリケーションからPC内のデフォルトブラウザを起動し、特定URLを表示する。 そのブラウザのURLにてログインなどの処理を行い、パラメータを受け取る。 ブラウザを終了させ、Windowsアプリケーションに戻る。 ■環境 Windows7 or 8 .NET Frameworkは必要に応じてインストール可能 他、必要な環境があれば、Windows標準コンポーネントであればインストール可能 どうぞよろしくお願いします。

専門家に質問してみよう