【 C# 】 .NET Framework 今昔物語

   2015/12/03   icon-clock-o読了時間:約6分43秒

前回C#というプログラミング言語を学び始めた私ですが、相変わらず何が何だか分からないまま
部品を組み立てては崩すようなプログラミングを繰り返しています。
これいつかどうにかなるのだろうか・・・U・x・U

今回のお話は、C#でプログラミングをしようと思うと必ず出会う.NET Framework。
これはアプリケーションプログラムを開発、動作(実行)するための環境のことなのですが、
一言では言い表せないのでちょっと詳しくご説明いたします。

目次

.NET Frameworkの中身
あなたの身近にもさりげなく.NET Framework
Microsoftの野望と.NET Framework
なんだか良く分からない時は

.NET Frameworkの中身

.NET Frameworkの中には以下の機能が含まれています。
1:共通言語ランタイム(CLR:Common Language Runtime)
2:基本クラス・ライブラリ(BCL:Base Class Library)
3:その他の各種ライブラリやフレームワーク
これはアプリケーションプログラムを開発、動作(実行)するための環境です。
コンピュータと私たちの間を取り持ってくれる通訳であり、
お約束の記述を呼び出すための辞書機能であり、
作ったプログラムを実行するための仮想マシンでもあります。

あなたの身近にもさりげなく.NET Framework

Windows OSをお使いの場合は、コントロールパネルからプログラム一覧を開いて見てみると
『Microsoft .NET Framework □□□』(□□□の部分はバージョンの数字)というプログラムが必ず入っているはずです。
これは、Windowsで動作するプログラムが.NET Frameworkが存在することを前提に開発されている事が多いためです。
なので「なんか入ってるけどコレ要らないんじゃないの?」と思って
パソコンの中から消してしまうと動かないプログラムが出てきたりしますのでご注意ください。

Microsoftの野望と.NET Framework

昔々、といっても10年ほど前ですが
(個人的にコンピュータの世界における10年は1世紀ほどの隔たりがある気がします)
『Microsoft .NET』というMicrosoftの野望があったのだそうです。
『Microsoft .NET』はPC、サーバー機器、携帯、冷暖房、腕時計、電子レンジ、などなど
ありとあらゆる機器をインターネットを経由して連携させ、
各サービスに音声認識・手書き文字認識・自然言語処理を対応させることで
ユーザーのインターフェース(操作感)を向上させるという構想です。
このSFっぽい壮大な野望を実現させるために作られた
ライブラリ兼フレームワークが.NET Frameworkです。
その後、時代の流れの中でMicrosoftの野望はくじかれました。
これは野望が実現しなかったというよりは、Microsoft以外の企業が
各々の得意分野で同じようなサービスの展開に成功したため、
Microsoftの独占は叶わなかったといった方が近いかもしれません。

今では家にWebカメラを設置しておいてペットの様子を
スマホやパソコンで見ることのできるネット連携サービスなんかが普通にありますよね。
音声認識機能としてはスマホやPCの音声入力による検索機能が当たり前に使われています。
WindowsのIMEパッド(画面右下の「あ」とか「般」とかの隣にいるアレ)などは
割と以前から使われている手書き文字認識の代表ではないでしょうか。
自然言語処理、つまり私たちが普通に喋った言葉を人工知能に理解させ、
自然な会話として成立させられる処理を目指すという研究の分野では
Appleが開発した音声アシスタント『Siri』が有名ですね。
蛇足ですが、本当に面白いですよSiriさん。中に人が居るみたい。⇒日本語Siriさんとのすごい会話まとめ

そんな訳でMicrosoftによるSFワールド独壇場は実現しなかった訳ですが、
.NET Frameworkは技術として残り今も活用されているのです。エコですね。
そして.NET Frameworkはバージョンが新しくなる度に進化を遂げ、
先人たちの知恵を蓄積し、誰にでもオープンに知恵を分けてくれます。

なんだか良く分からない時は

ここまで読んだけどやっぱり何だかよくわからない、という方は
「Windowsアプリケーションを作る人にとってのアカシックレコード的な何か」とでも
思っておいてください。(もっと分かりづらいかな)

.NET Frameworkが図書館だとすれば、そこに広大な蔵書が存在していると知らなくても、
どの書架にどんな本が並んでいるか知らなくても
受付のお姉さんに向かって「 “ System 名前空間 ” っていうクラスライブラリが必要です」
と宣言すれば、お姉さんはそのライブラリをいつでも参照できるように
そっとプログラムとリンクさせてくれるのです。親切。

パソコンの中の部品や仕組みを知らなかったとしても、
電源を入れてブラウザを開いて検索かけて、といった動作を行う上ではなんの問題もありません。
これと同じことで、.NET Frameworkの正体が不明のままでも
C#のコードを記述してプログラムを作ることはできるのです。

でもやっぱり、より正しくC#と.NET Frameworkを理解したい!と決意した時には
実際にコードをある程度記述できるようになった頃に
.NET Frameworkの詳細を正確に教えてくれる専門家さんのサイトを訪ねてみてください。
もちろん.NET Frameworkについて専門的に書かれた本も出版されています。
Microsoftの.NET Frameworkのページもご覧ください。

このようにプログラミングの用語ひとつ取っても、掘れば掘るほど何かが出てくるので
どうにも一気に全てを理解するのは無理な気がします。
もしここまでお付き合いいただいた初心者さんがいらっしゃったら
私もちょっとずつ覚えているところなので、お互い気長にがんばりましょうね。

 良かったら押してみてください♥

  • このエントリーをはてなブックマークに追加
  • Pocket