.NET Frameworkの基礎


.NET Framework

・WindowsアプリとWebサービスの構築と実行をサポートするテクノロジ。

デザイン目的
⇒・コードがローカルだろうがWebに分散されて保存されようが、リモートで実行されようが、どこでも一貫してオブジェクト指向プログラミングの環境を提供できるということ。
⇒・ソフトウエアの配置やバージョン管理の競合を最小化する実行環境
⇒・作成者が不明・信頼のできないコードも含め、コードを安全に実行できるようにしたコード実行環境
⇒・スクリプトやインタープリターが実行される中でパフォーマンスが心配される問題も回避するコード実行環境を提供
⇒・Windows系の多種多少なアプリケーションの開発において、一貫した方法で作業ができる。
⇒・.NET Frameworkに基づいたコードを他の任意のコードとの統合ができるように、すべての通信を業界標準に準拠して構築すること。

.NET Frameworkの特徴

・共通言語ランタイム(CLR).NET Frameworkクラスライブラリから構成。
・ADO.NETデータセットやEntityFramework、LINQ to SQL、WCF Data Services、WCF、ASP.NET Webサービス・フォーム・MVC、Windowsフォーム、WPFなど様々なツールを実装

共通言語ランタイム(CLR)
⇒・.NET Frameworkの基礎となるコンポーネント
⇒・.NETアプリケーションを実行するためのエンジンとして機能するCLR(Common Language Runtime)
⇒・メモリ管理、スレッド管理、リモート処理などの重要なサービスを提供。
⇒・セキュリティや保全性の促進ために厳密なタイプセーフやその他コード整合性を強制的に適用する。

ADO.NETデータセット
⇒データベースのデータを扱える技術。
ADO.NET EntityFramework
⇒バージョン3.5 SP1で追加された、データアクセス技術。
⇒「エンティティ」を定義することでオブジェクト指向の考えにそってデータベースの取り扱いが行える技術。
LINQ to SQL
⇒データベースへのデータの作成がC#やVB(VisualBasic)のソース・コードとして手軽に記述できる言語機能「LINQ(言語統合クエリ)」が使えるデータ・アクセス技術。

WCF(Windows Communication Foundation)
⇒3.0で追加された通信技術でSOAP形式やRESTスタイルの通信を実現できる。XML WEBサービスを作成する際に使用。
WCF Data Services
⇒3.5 SP1で追加されたデータベースへのデータ・アクセスを提供するREST APIを自動作成するための技術。
ASP.NET WEBサービス
⇒.NETが誕生した際からある通信技術で、SOAP形式でXMLWebサービスを作成できる。
⇒手軽にXMLWebサービスを作成できるというメリット。
ASP.NET WEBフォーム
⇒初期の.NETから提供されているWebアプリケーション構築フレームワーク。
⇒イントラネット向けのWebアプリケーションで使われる。
ASP.NET MVC
⇒3.5 SP1で追加されたWebアプリケーション構築フレームワーク。
⇒MVC(Model-View-Controller)パターンに基づいてWebアプリケーション開発を行える。
⇒HTML5などのWeb標準対応やスマートフォン向けのWebサイト作成などでも活用。
Windowsフォーム
⇒1.0から提供されているWindowsアプリケーション構築用フレームワーク。
⇒Windowsでできるコピペのような機能やドラッグ&ドロップなどされた時の処理コードを記述できる
WPF
⇒3.0で追加されたWindowsアプリケーション構築フレームワーク。
⇒GPUを活用した高度なレンダリング。
⇒XAMLというXML形式のデザイン言語が特徴。
⇒UX(ユーザーの使い勝手)の重要性が注目される中で、より高度なUI(ユーザーインターフェイス)を構築できる技術。
コンポーネント
⇒構成要素。部品。機器。ソフトウェア。ソフトウェアの中では特定の機能の単体の場合も。
タイプセーフ(型安全)
⇒データ型の食い違いによるエラーを防ぐ仕組み。(型に対して決められた定義と仕様パターンを通じて言語やクラスが情報を交換できる機能)

REST API

⇒Webシステムを外部から利用するためのプログラムの呼び出し規約の種類の一つ。
⇒RESTと呼ばれる設計原理に従って作成されたもの。
・REST(REpresentational State Transfer)
⇒1.セッションなどの状態管理を行わない。
⇒2.情報を操作する命令の体系があらかじめ定義・共有されている。
⇒3.すべての情報は汎用的な構文で一意に識別される。
⇒4.情報の内部に別の情報や状態へのリンクを含めることが出来る。

参考資料

・Wikipedia
・C#によるプログラミング入門
・C#によるアプリケーション開発