プロが教えるわが家の防犯対策術!

IT業界トレーニーの者です。

この業界に入って研修で4ヶ月間VBを勉強してきて、やっとこさ基本的な操作方法やオブジェクト指向について理解できるようになりました。

ですが、フレームワークの意味がどうしても理解できません。
よく、「アプリケーションの雛形、枠組みで、肉付けをすればよいので効率が上がる」などと書かれていますが、結局のところ何を指しているのでしょうか?

今現在の自分の解釈ですと、フォームやボタンなどがプログラミングせずとも最初から使えること、なのかな~とも思うのですが、しっくりきません。「ボタン」そのものがフレームワークなのか(つまりボタンにグラフィックやメソッドが実装されていること)、「ボタンを押せばメソッドが呼び出されるような仕組みになっていること」がフレームワークなのか、両方とも違うのか。GUIがフレームワークなのだとしたら、GUIのないフレームワークもある(?)らしいのでそれは何がフレームワークなのか。

もしフレームワークが無かったら、フレームワークを作るところからはじめる、と言いますが、たとえばVBで電卓を作ろうとして、フレームワークがなかった場合、何を作ることがフレームワークを作ることなのでしょうか?

別の仕事とは別に自宅のMacでCocoaを学んでいてVBとの違いに壁を感じて、何が違うか調べていたら、Cocoaフレームワークが理解できていないらしい→フレームワークって何だ?と思った次第です。

知識不足でお恥ずかしいのですが、是非とも皆様の解釈をお聞かせいただければと思います。よろしくお願いします。

A 回答 (3件)

>VBで.NetFrameWorkの機能を利用して、.NetFrameWorkはWindows APIを利用しているってことでしょうか。


ボタンのコントール自体は、WindowsAPIで実装されています。それを.NetFrameWorkでクラス化しているといった感じでしょうか。

>純粋なVBのクラスってのは例えば何になるのでしょうか?
>コントロールはどの言語からも使えることから見て.NET FrameWorkですよね。StringやArrayなんかはVBのクラスになるのでしょうか。
私はネイティブなVC++派で.NetFrameworkは、ちょっとC#とかをかじっただけなので勘違いしているかも?よって断言は出来ませんが、たぶんVBのクラスだと思います。
    • good
    • 0

フレークワークは、骨組みであると同時に作る物を枠にはめることで作ることを容易にする物です。


例えば、ガンダムのプラモデルを説明所通りに作ること(フレームワークによるプログラミング)は比較的容易ですが、フルスクラッチ(粘土等)でガンダムを0から作ることは(GDIだけでGUIのプログラミング)容易ではありません。
プラモデルの部品を組み合わせて独自の形状(色々なGUIアプリの作成)が可能ですが、それでも部品レベルで見ると元の形状(使用しているコントール)はそのまま残っています。

>「ボタン」そのものがフレームワークなのか(つまりボタンにグラフィックやメソッドが実装されていること)、「ボタンを押せばメソッドが呼び出されるような仕組みになっていること」がフレームワークなのか、両方とも違うのか。
両方とも(ボタンのコントロールは)GUI作成のためのフレームワークです。そもそもWindowsAPI自体もWindowsを構成するフレームワークであり、それをラップしている.NetFrameworkも名前通りフレームワークです。
画面を書き換える流れは、
VB→.NetFramework→WindowsAPI→画面
と複数のフレームワークを経由して制御されていることになります。
実は、マイクロソフトはWindowsVistaで
VB→.NetFramework→画面
する計画があった様ですが挫折しています。

>もしフレームワークが無かったら、フレームワークを作るところからはじめる、と言いますが、たとえばVBで電卓を作ろうとして、フレームワークがなかった場合、何を作ることがフレームワークを作ることなのでしょうか?
点を描く、線を描く、四角形を塗りつぶすなどが基本的な描画機能ですが、これだけでボタンを描くにはどうしましょう?
ボタンのコントールがあるじゃないかと言われたら、それがフレームワークです。GUIにボタンがあるってこと自体がフレームワークに沿って作っている訳で、まずボタンというオブジェクトを作らなくてはいけません。
ボタンだけでもボタン形状、マウスとのインターフェイス、押された時などのアクションや動作など作るものは沢山あります。

この回答への補足

お礼を申し上げるのを忘れていました。

詳しく易しい御回答ありがとうございました。

補足日時:2007/11/05 17:21
    • good
    • 1
この回答へのお礼

なるほど、少しずつ掴めてきました。

しっかし、複雑なんですね。
VBで.NetFrameWorkの機能を利用して、.NetFrameWorkはWindows APIを利用しているってことでしょうか。
知れば知るほど新たな疑問(と興味)がわいてきます^^;

純粋なVBのクラスってのは例えば何になるのでしょうか?
コントロールはどの言語からも使えることから見て.NET FrameWorkですよね。
StringやArrayなんかはVBのクラスになるのでしょうか。。

お礼日時:2007/11/05 17:09

いわゆる土台、枠組みですね。


電卓という例で考えると、
外枠やボタンの枠という部分になるのでしょう。

フレームワークを使って開発することにより、独自に必要とされる部分だけを開発すれば済むため開発効率の向上が見込めるだけでなく、複数人で開発する場合に同じようがGUIになったり、同じような動作するアプリケーションの作成が可能です。
    • good
    • 0

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