「C#」のアーキテクチャとして、「.NET Framework」「共通言語ランタイム」「クラスライブラリ」「実行環境非依存」「.NET Framework相互連携」「堅牢なアプリケーション構築」「ライブラリバージョン管理対応」について紹介します。

「C#」のアーキテクチャ

「C#」のアーキテクチャとして、「.NET Framework」「共通言語ランタイム」「クラスライブラリ」「実行環境非依存」「.NET Framework相互連携」「堅牢なアプリケーション構築」「ライブラリバージョン管理対応」について紹介します。

■関連する比較ページ

「C#」のアーキテクチャ

C#プログラムの実行については、プログラム実行環境「.NET Framework」が必要です。

■.NET Frameworkとは

「.NET Framework」とは、OSとアプリケーションの間に位置するもので、プログラム実行環境です。主要機能として「共通言語ランタイム(CLR)」と「クラスライブラリ」があります。

プログラム作成後にコンパイルを行うと「中間言語」という形式で出力されます。「.NET Framework」が中間言語を読み込み、プログラムを解釈することで実行されます。

「C#でプログラムを作成する」=「.NET Frameworkで動作するプログラムを作成する」となります。

■共通言語ランタイム

共通言語ランタイムは「中間言語を.NET Frameworkで動作する機械語に変換する処理」を実行します。

■クラスライブラリ

クラスライブラリには、さまざまな基本的な処理が含まれている共通ライブラリ(部品)が格納されています。

コーディング時に、クラスライブラリを活用することで、1からプログラミングをする必要がなくなり、効率的に開発できます。

■実行環境非依存

マシン上で直接実行する他言語と比較した場合、C#は共通言語ランタイムを通す手順が増えることになりますが、「1つのプログラムをさまざまなOS(環境)で動作させることができる」というメリットがあります。動作させるためには「.NET Framework環境」が用意されている必要があります。

これは、JavaのVM(仮想マシン)と同様に、「OS」「プロセッサアーキテクチャ」「大規模ライブラリ」などの環境面に依存しない実行形態です。

この仕組みによりプログラム互換性を高めることができ、実行端末ごとにプログラムを対応させる作業を大幅に減少できます。

■.NET Framework相互連携

.NET Frameworkを基盤とすることで、C#プログラムは、他の.NET系言語(Visual Basic/Visual C++など)と相互連携できます。

他言語で記述されたクラスを継承でき、その逆も可能です。

■堅牢なアプリケーション構築

C#には、堅牢で永続的なアプリケーション構築を支援するさまざまな機能が用意されています。

タイプセーフ設計

次のようなタイプセーフのための制限があります。
・初期化されていない変数の読み取り
・範囲を超える配列のインデックス付け
・未確認の型キャスト実行 など

例外処理

例外処理機構として、「エラー検出」と「エラー状態からの回復のための構造化された拡張可能なアプローチ」を提供します。

自動ガベージコレクション

C#では、ガベージコレクション機構により「使用されていないオブジェクトによって占有されている到達不可能なメモリ」を自動的に解放します。プログラマーを「メモリ解放に関する責任」から解放し、メモリリークの発生を防げます。

明示的な処理としてメモリを解放する方法は存在せず、参照されなくなったメモリはガベージコレクタによって自動的に解放されます。

■ライブラリバージョン管理対応

C#の設計では「ライブラリのバージョン管理」に大きな重点が置かれています。

他の多くのプログラミング言語は、言語仕様ベースでライブラリバージョン管理についてさほど考慮されていません。それらの言語で書かれたプログラムは、依存するライブラリの新しいバージョンが導入された場合など、想定を上回るメンテナンス作業が必要となるケースがあります。

C#の場合、C#のプログラムとライブラリが互換性を保ちながら時間とともに進化できるように設計されています。
・virtual修飾子
・override修飾子
・メソッドのオーバーロードの解決規則
・明示的なインターフェースメンバー宣言のサポート など

C#最新TOPICS

【IDE+OSS解説】「Visual Studio 15」と「C# 7」---IDEにおける機能改善点、C# 7で導入される予定のパターンマッチ/タプル(2016年09月04日 16:03)

Visual Studioの新バージョン「Visual Studio 15(Preview 4)」が8月22日にリリースされた。 「Visual Studio 15」と「C# 7」について解説。 【C#とは】 http://www.ossnews.jp/oss_info/C_sharp 【解説ポイント】 ・新しいインストーラーでのインストール ・IDEにおける機能改善点 ・C...

C#最新CLOSEUPコラム

イベント情報

セミナー講演資料

無料資料プレゼント

2021/03/04 セキュリティDAYS Keyspider資料

講演資料を見るには、 プライバシーポリシーに同意して、送付先メールアドレスをご入力しご請求ください。

またご入力いただきました情報は、当該資料の作成・提供企業とも共有させていただき、当社及び各社のサービス、製品、セミナー、イベントなどのご案内に使用させていただきます。

本資料を見るには次の画面でアンケートに回答していただく必要があります。



セミナー講演資料公開中

エンジニアにとって「情報発信」は重要なのか? ~テックピット DEVELOPERS RESKILLING CONFERENCE クロージングセッション~

リアルタイム性の高いIoTの課題とは?スマートシティを支えるMQTT ~IoTメッセージングプラットフォームを活用し、セキュリティ確保や通信到達保障を簡単に実現~

SIer企業の「リスキリング」実現ロードマップを解説 〜開発現場で必要なスキルを実践しながら学べる学習プラットフォーム〜

  • オープソース書籍(サイド)
  • OSSNEWSに広告を掲載しませんか?

facebook

twitter