HOME > オブジェクト指向と.Net Framework

03.オブジェクト指向と.Net Framework


03.01 プログラムとオブジェクト指向

いよいよ、これからVisualStudioCommunity2017(通称VC++)を使用してプログラムを作っていきます。但し今回はプログラムの内容を重視したサイトにしようと考えているので、C/C++のプログラム言語に関する基本的なことは書きません(現在C言語等をやさしく丁寧に教えてくれるサイトは沢山ありますので、そちらの方で勉強してきてください)。
また「私はBASICしかしらない」という方は、今回使用するVC++は.Net Frameworkというものを使用するため、言語には関係なく多様が可能ですので、知っているプログラム言語のままご利用ください。またVisual BASICやC# PythonもVisualStudioのワークロードベースで設定できますので合わせてご利用ください。

ということで、これ以降はVC++で話は進んでいきます。

ざっとプログラム作成までの流れを説明しますと
 プログラムソース → コンパイル → オブジェクトファイル → リンク → 実行ファイル

上記のようにプログラムを作成、それをコンパイラ(Visual Studio c++)が機械語に翻訳し実行ファイルを作成しパソコン(Windows)で動作する実行ファイルを作成するわけです。しかし昔はDOS(Disk Operasion System)というOSの配下で直接キー入力やディスプレイ出力といったハードウエアに直結した形で入出力が行われ動作していました。つまりC言語は昔から直接CPUやメモリといったようなハードウエアに近い処理が記述された命令通り実行するため「手続き型言語」と言われてきました。
簡単に言うと英語やフランス語のようにパソコンは「機械語」という言葉を持っていて、プログラムソースを機械語に翻訳(コンパイル)すると、その通りにパソコンは動作するわけです。

話変わって例えばラーメン屋で「チャーシューメン定食1つ!」と客が言ってから出てくるまでの流れを考えてみましょう。
昔ながらのおやじが「あいよっ!」とばかりに着手すると

 どんぶりを取る→麺を取りゆでる→餃子を焼く→チャーシューを切る→どんぶりを温める→ねぎを切る→ゆでるまで待つ→
 合わせスープを作る→麺の湯を切る→スープと合わせる→チャーシューとねぎを合わせる→客に出す

ということになります。
この場合ラーメン屋のおやじがパソコン、「チャーシューメン定食1つ!」という指示がプログラム開始のきっかけで、最後までの流れがプログラムなのです。このようにおやじ一人が一人で全部作る方式を「手続き型」とよんでいるわけです。

皆さんはチェーン店餃子の「王将」でラーメン頼んだことありますか?
王将だけではなく量産型のチェーン店の場合前述とは少し違って「麺をゆでる人」「チャーシューとねぎを切る人」「餃子を焼く人」が注文と同時に一斉に作業着手します。最後全部を合わせる人に集まってきて完成となります。一説によりと王将や吉野家のような専門量産店は回転を速くして薄利多売を狙っているとか。要するに一人で作るより格段に速く出てくるわけです。
このようにチームでラーメンを作るような考え方を「オブジェクト指向」といい、最近ではこういう考え方が主流となっているようです。


昔ながらのおやじの場合新しいラーメン屋を作ろうとした時ラーメンを作るすべての工程や過程を詳細に知っていないといけないため「長い修業期間」が必要となり開業までに時間がかかるということです。チームで行っている方はどうでしょう?
この場合は1つの工程の作業のみ熟練であれば最後かならずうまくいくため新しく開店した場合や欠員ができても1つの作業のみを教えればよいわけです。さらに熟練化してくると1つの作業の精度や技術の進歩に伴い、例えばさらにおいしいスープが誕生するかもしれませんし、もっとおいしいチャーシューを作成するかもしれません。つまりオブジェクト指向は個々のオブジェクトの進化に伴い全体的システムも向上していくというメリットをもっています。


03.02 .Net Frameworkとは

昔はwindows対応ソフトといえばWin32 API経由でwindowsを介したり専用のライブラリを使用していました。しかしインターネットを利用したWebアプリの登場やデータベース・複雑なWindowsアプリケーションのニーズが高まる一方、プログラム言語もC/C++、BASIC、C#など多数登場してきました。このためプログラム言語の種類に関係なく動作するライブラリや環境が必要となってきました。

そこで登場したのが、複数のプログラム言語に対応した処理の集まりである「.Net Frameworkクラスライブラリ
.Net Framework対応のアプリケーションを実行する環境である「CLR(Common Language Runtime 共通言語ランタイム)
でした。

このため前述にあるように、これ以降をC++以外のプログラム言語で実施しても、ほぼ同じような記述書式で進んでいくことができます。




HOME > オブジェクト指向と.Net Framework