BUILD 2015 での .NET に関する発表

 

本記事は、マイクロソフト本社の .NET Blog の記事を抄訳したものです。 【元記事】 .NET Announcements at Build 2015 2015/04/29 02:00 PM

 

本日の BUILD カンファレンスでは、Scott Guthrie が .NET Framework 4.6 RC と Visual Studio 2015 RC を発表しました。また、.NET Windows 10 アプリ、ASP.NET 5、.NET Core の重要な更新についても発表しました。これらのリリースは以下のリンクからダウンロードしてお試しいただけます。

· Visual Studio 2015 RC

· .NET Framework 4.6 RC

· .NET Core (GitHub、英語)

· ASP.NET 5 (GitHub、英語)

これまでチーム一体となって以下の開発に取り組んできました。今回この場で発表できるようになったことをたいへん嬉しく思っています。

· .NET Core – デバイスおよびクラウド向け

· .NET Framework 4.6

· .NET 言語 - F#、C#、VB

· ASP.NET

· Entity Framework

· Visual Studio の .NET 向け機能強化

今回のリリースまでには、2 年を費やしてきました。昨年 11 月に発表した .NET のプレビュー版リリースに関する記事も合わせてご覧いただければ幸いです。

また、Visual Studio 2015 には Xamarin Starter も含まれています

.NET Core - デバイスおよびクラウド向け

.NET Core は、最新のデバイスとクラウド ワークロードに対応した新しいバージョンの .NET で、アプリに使用できる一連の API を提供します。.NET では、基本的な理念として常にコード移植性が容易になるようにしており、現在は、複数のアプリの種類で使用できる統一 API を提供しています。ポータブル ライブラリや共有プロジェクトなどの複数のアプリ プラットフォームを対象にするために、他のコード共有手法を使用する必要はありません。

現在、.NET Core Framework (英語) は ASP.NET 5、Windows 10 アプリ、.NET Core コンソール アプリで使用できます。.NET Core API は当初、Windows 8 ストア アプリ用の API でした。その後、公開される API の数も増え、ASP.NET 5 アプリなどの他のシナリオにも対応できるようになりました。現在では、新しい API を .NET Core を追加すると、それらの API を一度に複数のアプリの種類に使用できます。この手法により、エンジニアリング時間をより効率化し、一貫した API を即座に適用することができます。

.NET Core ライブラリはすべて NuGet パッケージとして配布されます。これらのパッケージは、Visual Studio や NuGet クライアントから直接簡単に入手することができます。

自己完結型で効率的

.NET Core のもう 1 つの大きなメリットは、作成したアプリの一部として提供できることです。つまり、.NET Core Framework やランタイムなどの修正した一連のバイナリを含めた、自己完結型のアプリを作成することができます。自己完結型のアプリでは、システムの更新や同じマシンの他のアプリの更新の影響を受けません。また、他のアプリに影響を与えずに更新することができます。これは、1 つのアプリがすべてのデバイス (タブレット、スマートフォン、デスクトップ PC、HoloLens、Xbox、IoT など) で一貫して動作する Windows 10 ユニバーサル アプリでは特に重要です。さらにこの手法では、.NET Core の新しい機能や C# 言語の機能強化を一貫して選択してすべての環境に適用することができます。

アプリは多数の .NET Core ライブラリに依存していることが多いので、自己完結型のアプリにはとても多くのメリットがあると言えるでしょう。自己完結型は、制約のあるデバイス環境では特に重要です。.NET ネイティブでは、アプリが依存しているコードのみを実装するように最適化することで、この問題を解決します。アプリがあるアセンブリの中の 1 種類のみに依存している場合、その 1 種類のみが完成したアプリに保持されます。.NET ネイティブには他の最適化方法も用意されており、アプリを全体的に軽量化できます。

現在のところ .NET ネイティブは Windows 10 ユニバーサル アプリを対象としていますが、すべての .NET Core アプリの展開オプションとしても適しています。

クロス プラットフォーム

.NET Core は、Windows、OS X、Linux をサポートしています。ユニバーサル アプリは Windows 10 と ASP.NET 5 で、コンソール アプリは Windows、OS X、Linux のすべてで作成できます。FreeBSD のサポートは .NET オープン ソース コミュニティの主導 (英語) で準備が進められています。コミュニティでは、他の OS ポートも作成する予定です。実際、OS X (英語) ポートはコミュニティの主導で実現しました。

.NET Core は、デバイス、クラウド、コンソール アプリのシナリオに対応するために、x86、x64、ARM の各 CPU をサポートしています。LLILC (英語) LLVM 統合プロジェクトなどで、さらに多くのチップに対応する予定です。LLILC では理論上、.NET Core を LLVM がサポートするすべてのチップに移植できるようになります。

オープン ソース

.NET Core (英語) は GitHub でオープン ソース化されています。そのため、皆様がコードを実際に確認して、改善していただくことができます。コミュニティの皆様には、この数か月の間に多大なご協力をいただきました。いつも本当にありがとうございます。

.NET Core Framework (英語) チームでは、すべてのコードを GitHub で公開することを進めており、現在は約半分が完了しています。進捗状況は CoreFX Progress (英語) レポジトリでご覧いただけます。また、次の画像でもご確認いただけます。

clip_image002

.NET 実行環境 (DNX)

.NET 実行環境 (DNX) (英語) は、新しい .NET SDK です。複数のプラットフォーム (Windows、OS X、Linux など)、複数の CPU (x86、x64 など) 、およびさまざまな種類の .NET (.NET Framework、.NET Core、Mono) で統一した開発、実行環境を提供します。これにより、多様な環境で動作する 1 つのアプリを、テキスト エディターや フル IDE を使用して容易に開発することができます。

DNX には、次のようなメリットがあります。

  • クロス コンパイルすることなく複数のプラットフォーム (Windows、Mac、Linux) で動作する単一のアプリケーションを作成できる
  • ソースからビルド手順なしで実行できるアプリケーションを作成することができ、シンプルなテキスト エディター (Sublime、Emacs、VIM、Visual Studio Code) だけでの開発が可能
  • 参照先の NuGet パッケージのソースをデバッグできる
  • .NET ランタイム (.NET Core など) を簡単に習得できる
  • 複数の .NET ランタイムを 1 台のコンピューターでグローバルに、またはセキュリティ更新プログラムを含めてアプリケーション中心に管理できる
  • ASP.NET 5 と .NET Core コンソール アプリケーション ワークロードをサポートできる

DNX は .NET Core の全般的なコンセプトと機能であり、.NET の新しいオープン ソースとクロス プラットフォームのバージョンを習得して使用できる最も簡単な方法です。当初は ASP.NET 5 プロジェクトでしたが、この数か月で名称も「KRE」から何回か改名されました。

注: DNX は、.NET Core の唯一の SDK ではありません。他にも .NET ネイティブなどがあります。

DNX ツールと概念

DNX の機能のいくつかを紹介します。

  • DNX (配布): 新しい環境の実装であるコンポーネントの配布 (NuGet パッケージ)。
    • .NET Core DNX 配布には、CoreCLR と CoreFX の基本的な部分が含まれます。
    • .NET Framework と Mono DNX の配布には DNX コンポーネントのみが含まれます。
  • DNVM: DNX 配布を取得、管理するためのツール。DNX の管理に使用するため、DNX 自体には含まれていません。
  • DNU: DNX の NuGet クライアント。NuGet.exe は使用しません。
  • DNX (コマンドライン ツール): さまざまなアプリの運用を管理するためのツール。最初にリリースされた、名前の由来になったツールです。

DNX を使用する

DNX は、.NET Core を取得し、開発やテストに使用する簡単な方法として使用してきました。DNX は特に、SSH で Linax のターミナルに接続し、あるバージョンの .NET をすばやく取得して 1 分以内に使用を開始するシナリオで特に便利です。

一般的なワークフローでは、以下のようにすることを推奨します (いずれもシンプルなコマンドです)。

  • DNVM を取得します。
  • DNVM で必要な種類のランタイム (例: X64 .NET Core for OS X) を取得します。
  • DNX の概念 (例: project.json) を使用して、アプリケーションのソースを記述するか、git clone を作成します。
  • DNU (DNX 配布の一部) を使用して、アプリケーションのパッケージを復元します。
  • アプリケーションをソースから起動します (dnx . run)。

DNX を使用する方法については、次の説明をご覧ください。

.NET 言語の更新

C# 6 VB 14

Visual Studio 2015 RC のリリースでは、Visual Basic 14 と C# 6 がそろいました。言語と IDE の機能強化を行うことで、定型コードを削減し、お客様からの上位のフィードバックに対応しました。ここではその一部をご紹介します。

  • 文字列の補間: 直観的な String.Format に似た構文で、インライン表現の入ったテンプレートから文字列を作成できます。
  • null 条件演算子 (?.): 合理的な構文で、null 以外の場合では条件付きでメンバーにアクセスするかメソッドを呼び出し、オブジェクトが null 値の場合は NullReferenceException をスローするのではなく null を返します。
  • NameOf 演算子: PropertyChanged イベントや ArgumentExceptions などでコード要素の名前を参照する方法で、名前を変更する危険性がありません。
  • 読み取り専用自動プロパティ: 簡潔な構文で、初期化子やコンストラクター内部のみで割り当てられるプロパティを宣言します。

これらを含めたさまざまな機能については、VB チームのブログ (英語)C# チームのブログ (英語) をご覧ください。

デバッガー ウィンドウでのラムダ式とクエリ式の使用のサポート、ラムダ式やシンプルなクエリ内とその前後および非同期メソッドと反復子メソッド内での編集と続行のサポートなど、デバッグ時の操作にもいくつか改良を施しました。

また、このリリースには .NET Compiler Platform (旧称"Roslyn") の 1.0 リリースも含まれます。充実したコード分析 API では、Visual Studio の新しいリファクタリングやライブコード解析機能など、新しいさまざまな機能強化が行われました。.NET Compiler Platform ("Roslyn") の詳細については、GitHub (英語) をご覧ください。

Visual F# 4.0

F# は、F# コミュニティとマイクロソフトが協力して開発を進めています。Visual F# 4.0 RC は、38 名の協力者の努力のたまものです。協力者の 75% 以上はマイクロソフトの関連会社以外の方です。F# は、コミュニティの開発者がマイクロソフトの Visual F# チームとの協力で、完全にオープンで開発しました。現在の RC ビルドの F# は、GitHub の F# レポジトリ (英語)76ae08d (英語) のコミットに対応しています。

F# 4.0 では、言語、ランタイム、IDE エクスペリエンス全体が新たに大きく改善されています。以下で、その機能のごく一部を紹介します。

  • 高度な関数としてのコンストラクター
  • 簡易化された可変/参照値
  • 正規化されたコレクション API
  • "Microsoft" で始まる名前空間オプション
  • WebClient の非同期の拡張機能
  • メソッドの引数の暗黙的な引用
  • スクリプトのデバッグ
  • オブジェクト初期化子の Intellisense

F# 4.0 リリースのさらなる詳細については、F# チームの F# 4.0 RC に関するブログ (英語)F# 4.0 プレビューに関するブログ (英語) をご覧ください。

Visual Studio .NET 向け機能強化

Visual Studio チームは RC リリースで .NET にいくつかの重要な機能強化を行いました。.NET プレビュー版で行った多くの Visual Studio の機能強化点もお試しいただけます。

デバッガーの機能強化

Visual Studio 2015 では多くのリクエストにお応えして、ラムダ式デバッグ機能 (英語)、エディット コンティニュ (EnC) 機能の強化 (英語)、子プロセスのデバッグ機能 (英語) に対応し、強力なブレークポイントの構成 (英語) を始めとする主要なデバッグ機能を改良し、新しい [Exceptions Settings] ツール ウィンドウ (英語) も導入しました。また、最先端の機能として、パフォーマンス ツールをデバッガーに統合した PerfTips (英語) と、デバッグ履歴用に再設計された IntelliTrace (英語)メモリ使用量ツール (英語) を含むまったく新しい [Diagnostic Tools] ウィンドウ (英語) を搭載しています。

EnC の強化 - ラムダと非同期タスクのサポート

エディット コンティニュ (EnC) は、非常に優れた生産性機能です。この機能を使用すると、デバッグ中にコードを編集できます。この機能のメリットは数多くありますが、JSON ファイルの処理のように、コードで API に直接含まれていない状態を操作する必要があり、その状態が実行中には簡単に検出できる場合には特に便利です。

この EnC を、ラムダ、非同期メソッド、LINQ などで使用できるようになりました。現在のコーディング パターンを考えると、EnC の活躍の場は非常に多くなると考えられます。Visual Studio CTP 6 での EnC の機能強化点はこちら (英語) でご確認ください。

下のスクリーンショットは、新しいサポートの例です。この新しいサポートで入力された 2 行を示しています。1 行は非同期メソッド内の例で、もう 1 行はラムダ内の例です。

image

サポートされるシナリオは以下のとおりです。

· 非同期関数

· ラムダ式

· LINQ クエリ

· 反復子関数

EnC の機能は今も改良中です。より多くのシナリオをサポートできるように取り組みを進めています (ドキュメントの作成も進めています)。問題点がありましたら、GitHub まで投稿 (英語) をお願いいたします。

: 編集が失敗する場合、エラー リストで理由を確認してください。問題の解明に役立つエラーの説明が記載されています。説明がわかりにくい場合や、エラーの説明がない場合は、問題を報告してください。

Visual Studio 2015 CTP 6 での EnC の機能強化 (反復子の変更、async/await、メソッドなど) のさらなる詳細については、こちらのブログ (英語) をご覧ください。

WPF - Live Visual Tree

Visual Studio の新しいビューアーとエディターでは、WPF アプリのデバッグ中も XAML ビジュアル ツリーをライブで表示できます。このため、アプリのライフサイクルのどの時点でもビジュアル ツリーを操作できます。ツリーでボタンのテキストなどのプロパティを編集することができ、変更内容は実行中のアプリに反映されます。ツリーの構成を変更することはできません。

実行中のアプリのビジュアル コンポーネントを選択することもできます。コンポーネントを選択すると、Visual Studio の Live Visual Tree が更新され、アプリで調査や更新の必要な箇所がわかります。

Live Visual Tree から XAML ソース編集機能を利用することもできます。Live Visual Tree で XAML ノードを選択すると、IDE 内の選択された XAML テキストが一致するように変更されます。一致するテキストがわかり、確認や変更が必要な XAML の行を見つけやすくなります。

次のスクリーンショットでは、新機能の Live Visual Tree でアプリ内のボタンを選択しています。

image

Xamarin Starter Visual Studio 2015 に同梱

Xamarin を使用すると、iOS と Android のアプリケーションを Visual Studio 内で C# または F# を使って作成できます。Xamarin Starter Edition (英語) がこのたび Visual Studio 2015 の無料のオプション機能になりました。これにより、多くの .NET 開発者が Xamarin を使って iOS と Android のアプリ開発を進め、ユーザーを増やしています。最近のブログ記事によると、100 万人もの開発者 (英語) が Xamarin をダウンロードしました。このように、今では多くの開発者が利用しています。

Visual Studio 2015 で Xamarin をインストールするには、[Custom] インストール オプションを選択します。次のスクリーンショットのチェック ボックスをオンにします。

image

Xamarin Starter Edition をインストールすると、使用可能なアプリケーション テンプレートが追加されます。テンプレートには、iOS 用 (下のスクリーンショット) と Android 用があります。

image

Xamarin Starter Editon は、アプリの作成、デバイスでのテスト、アプリ ストアへの公開に制限なく使用できます。Xamarin Business 試用版 (英語) では、より高度なエクスペリエンスをお試しいただけます。ご試用の後で Xamarin Starter Edition にいつでも戻すことができます。

ASP.NET のアップデート

ASP.NET チームは ASP.NET 4.6 と ASP.NET 5 のプレビュー版の提供以降、非常に多忙な日々を過ごしてきました。ASP.NET のすべての更新については、Visual Studio 2015 RC に関する webdev ブログ記事と「ASP.NET 4.6 の更新 – Web フォーム、MVC 5、Web API 2 (英語)」を参照してください。併せて、ASP.NET CTP 6 での更新内容 (英語) もご確認ください。

ASP.NET 5 プロジェクト

チームでは、ASP.NET 5 プロジェクトを非常に重視してきました。ここでは RC での重要な新たな更新についてご紹介しますが、webdev ブログ (英語) もご確認ください。現時点で最も配慮しているのは、見栄え、パフォーマンス、信頼性です。私たちは、ASP.NET 5 を Windows と Linux の両方で展開したいというお客様のご意見を多数お聞きしました。最近 Visual Studio Code (英語) を発表したとおり、私たちは OS X にも大きな関心を寄せています。目標は、非常に優れた新しい ASP.NET シナリオをできるだけ早くリリースすることです。

他にも、ASP.NET 5 で Visual Basic をサポートする (英語) ことを発表しました。

新しいプロジェクトダイアログの更新

ASP.NET 5 が新しく ASP.NET の個別のバージョンとして加わったことをきっかけに、Visual Studio の [New ASP.NET Project] ダイアログをリニューアルすることにしました。ASP.NET 4.6 と ASP.NET 5 が明確に分かれたことで、どちらの種類のアプリを作成するかを選択しやすくなりました。ASP.NET 5 セクションに表示される選択肢は、統合されて少なくなっています。たとえば、いつでも Web API をモバイル サービスにすることができます。

image

NuGet パッケージの未検出を解決

モノリシックな .NET Framework から NuGet パッケージとしての .NET Core の配布への移行には多くのメリットがありますが、パッケージの検出など、いくつかの課題がありました。NuGet パッケージの参照は、型の名前空間の参照が見つからないときと同じように解決できるようになりました。

以下の例では、XDocument の型 ("XDocument") がシンプルな "CTRL ." で型定義に解決されています。using ステートメントがファイルと System.Xml.XmlDocument NuGet パッケージに追加されます。

image

StackOverflow (英語) などからコードを簡単にコピーできるようにし、型やパッケージ参照をすばやく簡単に解決できるようにすることを目標としてきました。目標を達成できているかどうか、皆様のご意見をお待ちしております。

ASP.NET アプリケーションで .NET Compiler Platform (“Roslyn”) の使用が可能に

ASP.NET 4.6 プロジェクトで、C# および VB の新しい言語機能を使用できるようになりました。VS 2015 に含まれるこれらの Web フォームのテンプレートには、Microsoft.CodeDom.Providers.DotNetCompilerPlatform パッケージ (英語) がプレインストールされています。また、VS 2015 RTM ではすべてのテンプレートにインストールされる予定です。詳細については、ブログ記事「ASP.NET アプリケーションで .NET Compiler Platform (“Roslyn”) の使用が可能に (英語)」をご覧ください。

Web フォームの非同期モデルバインディング

.NET Framework 4.5 では、Web フォームのモデル バインディングがサポートされました。そして今回の .NET Framework 4.6 では、非同期モデルバインディングのサポートが追加され、これにより非同期のモデル バインディング アクションを記述することが可能になりました。以下は、非同期のモデル バインディングアクションを使用した Web フォーム ページのコード スニペットです。

HTTP/2 のサポート (Windows 10)

HTTP/2 (英語) のサポートが、.NET Framework 4.6 で ASP.NET に追加されました。複数の層にネットワーク機能があるため、HTTP/2 を有効にするには Windows、IIS、ASP.NET に新しい機能が必要でした。ASP.NET で HTTP/2 を使用するには、Windows 10 が必要です。HTTP/2 は ASP.NET 5 にはまだ追加されていません。

HTTP/2 は HTTP プロトコルの新しいバージョンで、接続の効率が大幅に向上し (クライアントとサーバー間のラウンドトリップが少なくなり)、Web ページの読み込み遅延が少なくなります。HTTP/2 では、単一のエクスペリエンスの一部としてリクエストされた複数の成果物が最適化されるため、Web サービスではなく、Web ページがその恩恵を最も受けます。

ブラウザーと Web サーバー (Windows 上の IIS) がすべての処理を行うため、ユーザーのために面倒な作業を行う必要はありません。主要なブラウザー (英語) のほとんどが HTTP/2 をサポートしているため、サーバーが HTTP/2 に対応することで、ユーザーはその恩恵を受けることができます。更新された RC でお試しください。

Token Binding Protocol のサポート

マイクロソフトは Google と協力して、新しい認証方式の Token Binding Protocol (英語) を開発しました。この前提となっているのは、ブラウザーのキャッシュ内の認証トークンが盗用され、銀行口座などのセキュリティで保護されたリソースにパスワードなどの必要な情報なしでアクセスされてしまう可能性があるという事実です。この新しいプロトコルは、この問題を回避することを目的としています。

Token Binding Protocol は、Windows 10 でブラウザー機能として実装されます。ASP.NET アプリでは、このプロトコルを使って認証トークンが正当なものかどうかを検証します。クライアントとサーバーの実装により、プロトコルで規定されたエンドツーエンドの保護が確立します。

.NET Framework 4.6

本日、.NET Framework 4.6 RC をリリースしました。4.6 の初めての「Go Live」リリースです。ぜひインストールして、実際にお試しください。詳細については、昨年 11 月に発表した .NET Framework プレビュー版リリースに関するブログを参照してください。

ガベージ コレクターの更新

ガベージ コレクターの新しいモードでは、メモリに関連した特定の状況下ではガベージ コレクションを行いません。この新しいモードは、少なくとも GC CPU の使用に関連する連続した計算が必要なワークロードで重要です。

新しいモードでは、No GC Region に入る前提条件として使用可能な特定のメモリ容量を指定 (英語) することができます。No GC Region では、ガベージ コレクションは行われません。GC.Collect (機械翻訳) などでコレクションが明示的に要求された場合や、最初に指定したメモリ容量が不足した場合にガベージ コレクションが開始されます。

新しいモードには複数の構成ポイントがあり、No GC Region 内で使用して小さなオブジェクト ヒープと大きなオブジェクト ヒープに別々に使用できるメモリを指定することもできます。

暗号化の更新

System.Security.Cryptography API (機械翻訳) の更新により、Windows CNG cryptography API (英語) がサポートされるようになりました。これまで .NET Framework では、Windows Cryptography API (英語) の旧バージョンを System.Security.Cryptography 実装の基本として使用していました。一部のカテゴリのアプリには、重要な最新の暗号化アルゴリズム (英語) をサポートしている CNG API のサポートのご要望がありました。この更新によって、CNG 証明書キーを X509Certificate クラス (機械翻訳) で使用できるようになりました。

この更新は、Windows CNG API のより広範なサポートと最新の暗号化アルゴリズムの普及のための第一歩です。このサポートはまだ開発中のため、API は RTM に向けて変更されることがあります。

互換性スイッチ

AppContext は新しい互換性の機能で、ユーザーに新しい機能の一貫したオプトアウト メカニズムを提供することができます。オプトアウト要求を伝達するために、コンポーネント間に疎結合のコントラクトを確立します。この機能は、既存の機能が変更される場合に特に重要です。これに対し、新しい機能の暗黙的なオプトインは既に実装されています。

AppContext を使用する場合は、ライブラリで互換性スイッチを定義し、公開します。そのライブラリに依存するコードではこのスイッチを設定し、ライブラリの動作を決定できます。既定では、スイッチが設定されている場合は、ライブラリは新しい機能を提供し、変更するだけです (以前の動作を提供するなど)。

アプリケーション (またはライブラリ) では依存ライブラリが定義するスイッチの値 (ブール値) を宣言できます。スイッチは常に暗黙的に "false" です。スイッチを "true" に設定すると、スイッチが有効になります。明示的にスイッチを "false" にすると、新しい動作が提供されます。

AppContext.SetSwitch("Switch.AmazingLib.ThrowOnException”, true)

ライブラリでは、コンシューマーがスイッチの値を宣言したかどうか確認し、値に従って適切に動作する必要があります。

スイッチはライブラリによって公開される正式なコントラクトであるため、スイッチに一貫した形式を使用することにはメリットがあります。次の 2 つがわかりやすい形式です。

  • Switch.namespace.switchname
  • Switch.library.switchname

.NET Framework の内部でも同じインフラストラクチャが使用されており、開発者は既存の機能の更新をオプトアウトできます。

Entity Framework

Entity Framework には 2 つの個別の EF バージョンがあります。EF 6.x は多くの開発者が使用している成熟度の高いバージョンです。もう 1 つの EF 7.x は、次のメジャー リリースに向けて開発を行っており、現在プレビュー段階にあります。詳細については、EF チームが投稿した本日の発表に関するブログ記事 (英語) をご覧ください。

Entity Framework 6.1.3

EF 6.1.3 は Entity Framework の最新バージョンで、本番稼働用のアプリケーションにはこの安定したバージョンの使用をお勧めします。EF6.1.3 は、EF6.1.2 で報告された重要度の高い問題を修正したパッチ リリースです。Visual Studio 2015 RC には、Entity Framework 6.1.3 のランタイムとツールの RTM バージョンが同梱されています。

EF ランタイムがまだインストールされていないプロジェクトで Entity Framework Tools を使用して新しいモデルを作成すると、EF ランタイムがインストールされます。

このランタイムは新しい ASP.NET プロジェクトにプレインストールされています (選択するプロジェクト テンプレートによって異なります)。Visual Studio 2015 用の EF6.1.3 Tools の同梱は、バグの修正と機能向上を確実に適用するために行われています。

Entity Framework 7 Beta 4

EF7 では、EF6.x から大きな変更と機能強化が行われているため、最近の他のリリースよりもプレリリースの期間が長く取られています。前回のプレリリースから大きく前進しているため、EF7 をお試しの場合は、まだ多くの制限と不足機能があることをご了承のうえでご利用ください。

EF7 は、.NET Framework、ASP.NET 5 を含む .NET Core、Mono アプリで使用できます。

Beta 4 で使用できる機能を以下に簡単に紹介します。これらの機能はまだ未完成であり、制限があります。

· 組み込み規則、表/列マッピング、関係性を含む基本的なモデリング

· 更新履歴

· LINQ クエリ

· 表ベースの挿入、更新、削除 (バッチ操作を含む)

· 移行とデータベースの作成と削除

· トランザクション (SaveChanges 時の自動トランザクションと明示的なトランザクション API を含む)

· データベースで生成されたキー値のパターンの特定とシーケンス

· 直接 SQL コマンド

· データベースからのモデルのリバース エンジニアリングの早期プレビュー

· ログ

· 独自の制限 (関係性の中のキーとして使用可能)