.NET Framework
Microsoft .NET Framework(マイクロソフト ドットネット フレームワーク)は、マイクロソフトが
マイクロソフト | |
Windows 7, Windows Server 2008 R2, それ | |
.NET | |
サポート |
セキュリティ・アップデートとバグ |
プラットフォーム | |
ライセンス |
Microsoft EULA, Microsoft Reference License (BCL), MITライセンス, プロプライエタリ |
dotnet |
Windowsアプリケーションだけでなく、XML WebサービスやウェブアプリケーションなどWebベースのアプリケーションなども
アーキテクチャ
共通 言語 基盤
.NET Frameworkにおける
共通 型 システム (CTS: Common Type System)共通 言語 仕様 (CLS: Common Language Specification)共通 中 間 言語 (CIL: Common Intermediate Language)- ジャストインタイムコンパイラ (JIT: Just-in-time compiler)
仮想 実行 システム (VES: Virtual Execution System)
アセンブリ
CILのコードはアセンブリ(WindowsにおいてはPE
メタデータ
設計 目標 と重要 な特徴
.NET Frameworkは
相互 運用 性 - .NETアプリケーションや.NETクラスライブラリではないプログラムとの
相互 運用 を可能 にするためのアクセス方法 を提供 する。例 えばCOMコンポーネントへのアクセスはSystem.Runtime.InteropServices
やSystem.EnterpriseServices
などの名前 空間 によって提供 され、それ以外 の機能 はP/Invokeによって提供 される。 共通 の実行 環境 - .NET Frameworkにおいてはあらゆる
言語 で記述 されたプログラムが共通 中 間 言語 と呼 ばれる中間 言語 にコンパイルされる。マイクロソフトの実装 では、この中間 言語 はJITコンパイラによって実行 時 にネイティブコードにコンパイルされる。これらの概念 は共通 言語 基盤 の仕様 に含 まれており、マイクロソフトによる共通 中 間 言語 の実装 を共通 言語 ランタイムと呼 ぶ。 言語 への非 依存 性 - .NET Frameworkは
共通 型 システムと呼 ばれる概念 を導入 した。共通 型 システムの仕様 には共通 言語 ランタイムでサポートされるデータ型 について定義 されている。このため、複数 の言語 を用 いた開発 が可能 になる。 基本 クラスライブラリ (BCL)基本 クラスライブラリは全 ての.NET Frameworkで利用 可能 なクラスライブラリである。BCLはファイル入出力 、グラフィックス、データベース、XML文書 処理 など、多 くの共通 機能 をカプセル化 したクラス群 を提供 する。配置 - ソフトウェアをコンピュータにインストールする
際 、既 にインストールされているソフトウェアとの相互 干渉 やセキュリティといった問題 に注意 しなければならない。.NET Frameworkはこういった要求 に応 えるための機能 やツールを提供 する。 - セキュリティ
- .NET Frameworkではサンドボックスの
概念 を用 いることなく、様々 な権限 レベルでコードを実行 することができる。
用語
- マネージコード
- CLRがメモリを
完全 に把握 /管理 できるコード。.NET Frameworkで作成 するコードの大半 はマネージコードである。マネージコード以外 のコード(Win32アプリケーション、COMコンポーネントやアンセーフなコード)をアンマネージコードという。 - アプリケーションドメイン
- CLRから
見 たプロセス空間 のようなもので、それぞれ独立 したドメインの中 でコードを動作 させることができる。一 つのアプリケーションはCLRを一 つしかホストできないが、CLRには複数 のアプリケーションドメインを持 つことができる。 - メタデータ
依存 関係 をはじめクラスや型 、インタフェースなどコードに関 する情報 。属性 - メソッドやクラス、アセンブリに
宣言 できメタデータとして格納 される情報 。System.Attribute
から派生 させたクラスとして開発 者 が独自 に作成 でき、実行 時 に参照 ・利用 できる(カスタム属性 )。またCLRのみが認識 できる擬似 カスタム属性 もある。 - アセンブリ
- アプリケーションを
配置 、利用 するときの単位 。アセンブリにはメタデータが含 まれており、サテライトアセンブリを除 き、モジュール、リソースも含 まれている。アプリケーションドメインに読 み込 むことのできる最小 の単位 でもある。
開発 環境
C#、Visual Basic .NET、F#、JScript .NETのコンパイラ、
統合 開発 環境
.NET Frameworkに
- Microsoft Visual Studio
- Visual Studio Code
- JetBrains Rider
- SharpDevelop - 2016
年 を最後 に終了 - Embarcadero Prism - 2012
年 を最後 に終了 - Borland C# Builder - 2006
年 を最後 に終了
.NET Frameworkだけでなく、
Microsoft Visual Studio へのプラグイン
オープンソース化
2014
- .NET Framework 4.6 リファレンスソース
- ASP.NET 5
- Entity Framework 6
- .NET Core 1.0 (
発表 当初 は5) - .NET Compiler Platform ("Roslyn")
これらは
.NET Framework 4.6 のリファレンスソースがMITライセンスになったことにより、それが Mono 4.0 に
マイクロソフト社 以外 の実装
また.NET Frameworkの
Windows以外 のプラットフォームでの実装
- Mono
- オープンソースプロジェクトによる.NET Framework
互換 環境 の実装 。統合 開発 環境 としてMonoDevelopがある。 - DotGNU Project
- オープンソースプロジェクトによる.NET Framework(CLI+MS
拡張 )互換 環境 の実装 。GPLに基 づいて開発 (一部 ライブラリなどに例外 等 がある)。 - Shared Source CLI
- マイクロソフトによるFreeBSD/Mac OS X/Windows
向 けのECMA CLI/C#の実装 。 - .net by au
- BREWプラットフォームを
用 いたKDDIおよび沖縄 セルラー電話 が提供 するau携帯 電話 専用 の.NET Framework互換 環境 の実装 。ただし、利用 できるのは法人 専用 端末 のE05SH、E06SHの2機種 とWindows XP Professional SP3がインストールされたPCのみ[8]。 - .NET Core
- マイクロソフトによるクロスプラットフォームかつオープンソースのリファレンス
実装 。2016年 6月 27日 にv1.0がリリースされている[9]。
バージョン
バージョン |
バージョン |
リリース |
---|---|---|
Pre-beta | ?.?.?.? | 2000 |
1.0 Beta1 | 1.0.?.0 | 2000 |
1.0 Beta2 | 1.0.2914.0 | 2001 |
1.0 | 1.0.3705.0 | 2002 |
1.0 SP1 | 1.0.3705.209 | 2002 |
1.0 SP2 | 1.0.3705.288 | 2002 |
1.0 SP3 | 1.0.3705.6018 | 2004 |
1.0 SP3 (XP MCE/TPC, KB974378) | 1.0.3705.6073 | 2009 |
1.1 | 1.1.4322.573 | 2003 |
1.1 SP1 | 1.1.4322.2032 | 2004 |
1.1 SP1 (Server 2003) | 1.1.4322.2300 | 2005 |
1.1 SP1 (KB974378) | 1.1.4322.2443 | 2009 |
2.0 | 2.0.50727.42 | 2005 |
2.0 (NT6.0) | 2.0.50727.312 | 2007 |
2.0 (KB928365) | 2.0.50727.832 | 2007 |
2.0 (NT6.0, KB974378) | 2.0.50727.1003 | 2009 |
2.0 SP1 | 2.0.50727.1433 | 2007 |
2.0 SP1 (NT6.0 SP1) | 2.0.50727.1434 | 2008 |
2.0 SP1 (NT6.0 SP1, KB974378) | 2.0.50727.1873 | 2009 |
2.0 SP1 (KB2265906, .NET 3.5) | 2.0.50727.1882 | 2010 |
2.0 SP2 | 2.0.50727.3053 | 2008 |
2.0 SP2 (KB959209) | 2.0.50727.3074 | 2009 |
2.0 SP2 (KB974378) | 2.0.50727.3603 | 2009 |
2.0 SP2 (KB2265906, .NET 3.5 SP1) | 2.0.50727.3615 | 2010 |
2.0 SP2 (NT6.0 SP2) | 2.0.50727.4016 | 2009 |
2.0 SP2 (NT6.0 SP2, KB974378) | 2.0.50727.4200 | 2009 |
2.0 SP2 (NT6.0 SP2, KB2265906, .NET 3.5 SP1) | 2.0.50727.4206 | 2010 |
2.0 SP2 (NT6.1) | 2.0.50727.4927 | 2009 |
2.0 SP2 (NT6.1 SP1) | 2.0.50727.5420 | 2010 |
3.0 | 3.0.4506.30 | 2006 |
3.0 (NT6.0) | 3.0.4506.26 | 2007 |
3.0 SP1 | 3.0.4506.648 | 2007 |
3.0 SP2 | 3.0.4203.21523.0.4506.21233.0.6920.1453 | 2008 |
3.0 SP2 (NT6.0 SP2) | 3.0.4506.40373.0.6920.4000 | 2009 |
3.0 SP2 (NT6.1) | 3.0.4203.49263.0.4506.49263.0.6920.4902 | 2009 |
3.0 SP2 (NT6.1 SP1) | 3.0.4203.54203.0.4506.54203.0.6920.5011 | 2010 |
3.5 | 3.5.21022.8 | 2007 |
3.5 SP1 | 3.5.30729.1 | 2008 |
3.5 SP1 (NT6.1) | 3.5.30729.4926 | 2009 |
3.5 SP1 (NT6.1 SP1) | 3.5.30729.5420 | 2010 |
4.0 | 4.0.30319.1 | 2010 |
4.5 | 4.5.50709.17929 | 2012 |
4.5.1 | 4.5.50938.18408 | 2013 |
4.5.2 | 4.5.51209 | 2014 |
4.6 | 4.6.00081.00 | 2015 |
4.6.1 | 4.6.01055 | 2015 |
4.6.2 | 4.6.01586 | 2016 |
4.7 | 4.7.02053 | 2017 |
4.7.1 | 4.7.02556 | 2017 |
4.7.2 | 4.7.03056 | 2018 |
4.8 | 4.8.03761 | 2019 |
4.8.1 | 2022 |
CLR バージョンと共存 性
- 1.0: .NET Framework 1.0
- 1.1: .NET Framework 1.1
- 2.0: .NET Framework 2.0〜3.5
- 4.0: .NET Framework 4.0〜4.8
.NET Framework 1.0
.NET Frameworkの
.NET Framework 1.1
.NET Frameworkの
.NET Framework 1.0からの
- ASP.NETのモバイル
向 け機能 の追加 - セキュリティ
仕様 の変更 - ODBCとOracle Database
用 のデータ接続 の標準 サポート - IPv6のサポート
多数 のAPIの変更
.NET Framework 2.0
いくつかのAPIの
.NET Framework 1.1からの
- データバインディングの
新 しいAPIの追加 - ASP.NETのウェブコントロールを
幾 つか追加 - ネイティブアプリケーションへの
新 しいホスティングAPI - CLRのジェネリクスの
対応 - 64ビット(x64とIA-64)システムへの
対応 - .NET Micro Frameworkの
追加 多数 のAPIの変更
.NET Framework 3.0
もともと「WinFX」という
クラスライブラリやCLRなどの
- Windows Presentation Foundation (WPF)
- XMLに
基 づく新 しいユーザインタフェースサブシステム。 - Windows Communication Foundation (WCF)
新 しい通信 サブシステム。- Windows Workflow Foundation (WF)
- ワークフローによるアプリケーション
開発 のためのフレームワーク。 - Windows CardSpace (WCS)
- ユーザの
個人 情報 をセキュアに管理 し、統一 されたアクセス方法 を提供 するためのフレームワーク。
.NET Framework 3.5
Windows 7に
- ASP.NET AJAXの
対応 - Language Integrated Query
- C#とVBコンパイラの
変更
.NET Framework 4
2010
- F# のフル サポート
動的 言語 ランタイム (DLR)- Managed Extensibility Framework (MEF)
- Parallel Extensions(
並列 プログラミング) - Velocity(
分散 キャッシュAPI) - NUI(Windows タッチ)アプリケーションの
開発
など。
.NET Framework 4.5
2012
- Windows Modernスタイル アプリケーション(Windowsストアアプリ)の
開発 非同期 プログラミング既存 機能 の大幅 な改良
4.5.1が2013
.NET Framework 4.6
2015
- ASP.NET 5
対応 - RyuJIT -
新 しい64ビット版 のJITコンパイラ - .NET Native
- オープンソース
化
4.6.1が2015
.NET Framework 4.7
Windows 10 ver.1703と
2017
.NET Framework 4.8
2019
Windows 11のInsider Previewビルド22504には、ARM64のネイティブサポートを
2022
脚注
- ^ atikmapari. “ライフサイクルに
関 する FAQ - .NET Framework”. learn.microsoft.com. 2024年 5月 17日 閲覧 。 - ^ a b Scott Hunter (2019
年 5月 6日 ). “.NET Core is the Future of .NET”. .NET Blog. マイクロソフト. 2019年 9月 21日 閲覧 。 “.NET Framework 4.8 will be the last major version of .NET Framework. If you have existing .NET Framework applications that you are maintaining, there is no need to move these applications to .NET Core. We will continue to both service and support .NET Framework, which includes bug–, reliability– and security fixes.” - ^ Announcing .NET 2015 Preview: A New Era for .NET | .NET Blog
- ^ Mono 4.0.0 Release Notes | Mono
- ^ Ecmaインターナショナル (2006
年 6月 ). “Standard ECMA-335 Common Language Infrastructure (CLI)” (英語 ). 2008年 1月 15日 閲覧 。 - ^ ISO/IEC (2006
年 9月 27日 ). “ISO/IEC 23271:2003Information technology -- Common Language Infrastructure” (英語 ). ISO/IEC JTC 1/SC 22. 2008年 1月 15日 閲覧 。 - ^ マイクロソフト (2006
年 11月20日 ). “Microsoft(R) .NET Frameworkの基本 仕様 である共通 言語 基盤 (CLI) がJIS X 3016として公示 ”. 2008年 1月 15日 閲覧 。 - ^ KDDI(2009-01-21)「.net by au (ドットネット バイ エーユー)」の
提供 開始 について 2009-02-27閲覧 。 - ^ GitHub - dotnet/core at 1.0.0
- ^ Windows TIPS:.NET Frameworkのバージョンを
整理 する - @IT - ^ a b c .NET Framework Versions and Dependencies
- ^ マイクロソフト (2006
年 6月 12日 ). “WinFX から .NET Framework 3.0 への名前 変更 について”. MSDNライブラリ. 2009年 1月 15日 閲覧 。 - ^ .NET Framework サポート ライフサイクル ポリシーについて (2015
年 10月 ) – Visual Studio日本 チーム Blog - ^ .NET Framework 4.6.1 is now available! - .NET Blog - Site Home - MSDN Blogs
- ^ Announcing .NET Framework 4.6.2 | .NET Blog
- ^ Announcing .NET Framework 4.7 | .NET Blog
- ^ Announcing the .NET Framework 4.7 General Availability | .NET Blog
- ^ Announcing the .NET Framework 4.7.1 | .NET Blog
- ^ Announcing the .NET Framework 4.7.2 | .NET Blog
- ^ Announcing the .NET Framework 4.8 | .NET Blog
- ^ Announcing Windows 11 Insider Preview Build 22504 | Windows Insider Blog
- ^ Windows 11のテキスト
入力 にテーマ機能 、絵文字 パネルも強化 ~まずはプレビュー版 に投入 -窓 の杜 - ^ Announcing .NET Framework 4.8.1 | .NET Blog
関連 項目
- アンダース・ヘルスバーグ - マイクロソフト
社 の.NET Framework設計 者 - .NET
外部 リンク
- .NET Foundation
- .NET Blog
- Microsoft/dotnet - GitHub
- Reference Source - Microsoft
社 によるソースコード公開 サイト - .NET Framework ドキュメント | Microsoft Docs
- .NET Framework を
学習 する | Microsoft Docs - .NET Framework のバージョンを
整理 する - @IT