Visual Studio 2013 の ASP.NET と Web 2013.2 ツールのリリース ノート
作成者: Microsoft
Installation Notes (SAP サポート ノート #1984787 – SUSE Linux Enterprise Server 12: インストールに関する注意事項)
Visual Studio 2013.2 の ASP.NET and Web Tools は、メイン インストーラーにバンドルされていて、Visual Studio 2013 Update 2 の一部としてダウンロードできます。
ドキュメント
Visual Studio 2013.2 の ASP.NET and Web Tools に関するチュートリアルとその他の情報は、ASP.NET Web サイトから入手できます。
ソフトウェア要件
Visual Studio 2013.2 の ASP.NET and Web Tools には、Visual Studio 2013 が必要です。
Visual Studio 2013.2 の ASP.NET and Web Tools の新機能
次のセクションでは、今回のリリースで導入された機能について説明します。
- One ASP.NET プロジェクト テンプレート
- IIS Express で Web アプリケーションを起動するときの SSL のサポート
- Visual Studio Web エディターの機能強化
- ブラウザー リンク
- Visual Studio での Azure App Service Web Apps のサポート
- 新しい Web プロジェクトの作成時にリモート Azure リソースを作成する
- Web 発行の機能強化
- ASP.NET スキャフォールディング
- NuGet 2.8.1
- ASP.NET Web フォーム
- ASP.NET MVC 5.1.2
- ASP.NET Web API 2.1.2
- ASP.NET Web ページ 3.1.2
- Entity Framework 6.1
- ASP.NET Identity 2.0.0
- Microsoft OWIN コンポーネント
- ASP.NET SignalR 2.0.2
One ASP.NET プロジェクト テンプレート
- アカウントの確認とパスワードのリセットをサポートするための ASP.NET プロジェクト テンプレートへの更新。
- オンプレミスの組織アカウントを使用した認証をサポートするための ASP.NET Web API テンプレートの更新。
- ASP.NET SPA テンプレートに、MVC とサーバー側のビューに基づく認証が含まれるようになりました。 テンプレートには、認証されたユーザーのみがアクセスできる WebAPI コントローラーがあります。
IIS Express で Web アプリケーションを起動するときの SSL のサポート
localhost で HTTPS を参照およびデバッグするときのセキュリティ警告を排除するために、インターネット エクスプローラーと Chrome が自己署名 IIS Express SSL 証明書を信頼できるようにするダイアログを追加しました。
たとえば、SSL を使用するように Web プロジェクト プロパティを設定できます。 F4 を押して、[プロパティ] ダイアログを表示します。 [SSL Enabled] を True に変更します。 SSL URL をコピーします。
HTTPS ベースの URL を使用するように Web プロジェクトのプロパティ ページの [Web] タブを設定します (SSL Web サイトを前に作成していない限り、SSL URL は https://localhost:44300/
です)。
Ctrl キーを押しながら F5 キーを押してアプリケーションを実行します。 指示に従って、IIS Express が生成した自己署名証明書を信頼します。
[セキュリティ警告] ダイアログを読み、localhost を表す証明書をインストールする場合は [はい] をクリックします。
ブラウザーで証明書の警告なしで IE または Chrome にサイトが表示されるようになります。
Firefox は独自の証明書ストアを使用するため、警告が表示されます。
Visual Studio Web エディターの機能強化
新しい JSON プロジェクト項目とエディター: JSON プロジェクト項目とエディターを Visual Studio に追加しました。 現在の JSON エディターの機能には、色付け、構文検証、中かっこの入力候補、アウトライン、ツール オプションの設定などがあります。
IntelliSense が JSON スキーマ v3 と v4 をサポートするようになりました。 既存のスキーマの選択、ローカル スキーマ パスの編集、プロジェクト JSON ファイルのドラッグ アンド ドロップによる相対パスの取得などを行うためのスキーマ コンボ ボックスがあります。
新しい Sass (SCSS) エディター: VS2013 RTM に LESS を追加し、Sass プロジェクト項目とエディターを導入しました。 Sass エディターの機能は LESS エディターと同等で、色付け、変数と Mixins IntelliSense、コメント/コメント解除、クイック ヒント、書式設定、構文検証、アウトライン、ジャンプ先定義、カラー ピッカー、ツール オプションの設定などが含まれます。
HTML、Razor、CSS、LESS、Sass ドキュメントの新しい URL ピッカー: VS 2013 には、Web Forms ページ以外に URL ピッカーが付属していませんでした。 HTML、Razor、CSS、LESS、Sass エディター用の新しい URL ピッカーは、".." を解釈し、ファイル リストを img タグとリンクで適切にフィルターに掛ける、 ダイアログなしのスムーズな入力ピッカーです。
より多くの機能追加による LESS エディターの更新
Knockout Intellisense のアップグレード: VS IntelliSense の標準外の KnockOut 構文である "ko-vs-editor viewModel:" 構文を追加しました。 これは、フォーム内のコメントを使用して、ページ上の複数のビュー モデルにバインドするために使用できます。
入れ子になった ViewModel IntelliSense のサポートも追加しました。そのため、ViewModel で入れ子になったオブジェクトを詳細に調べることができます。
<div data-bind="text: foo.bar.baz.etc" />
表示される IntelliSense は、JavaScript オブジェクトの全 IntelliSense です。
HTML、Razor、CSS、LESS、Sass ドキュメントの新しい URL ピッカー: VS 2013 には、Web Forms ページ以外に URL ピッカーが付属していませんでした。 HTML、Razor、CSS、LESS、Sass エディター用の新しい URL ピッカーは、".." を解釈し、ファイル リストを img タグとリンクで適切にフィルターに掛ける、 ダイアログなしのスムーズな入力ピッカーです。
ブラウザー リンク
- ブラウザー リンクが HTTPS 接続をサポートするようになり、証明書がブラウザーによって信頼されている限り、その接続がダッシュボードに他の接続とともに一覧表示されます。
- 静的 HTML ソース マッピング
- マッピング データの SPA サポート
- マッピング データの自動更新
Visual Studio での Azure App Service Web Apps のサポート
- Azure サインインのサポート。
- Web アプリのリモート デバッグとリモート ビュー: Azure App Service での Web アプリのリモート デバッグと、サーバー エクスプローラーでの Web アプリ コンテンツ ファイルのリモート ビューをサポートするようになりました。
新しい Web プロジェクトの作成時にリモート Azure リソースを作成する
新しい Web アプリケーション ダイアログに、Azure の [Create Remote Resources] (リモート リソースを作成する) チェック ボックスを追加しました。 これを選択することで、新しい Web アプリケーションの作成、テスト用の Azure 発行サイトのセットアップ、発行プロファイルの作成のエクスペリエンスをいくつかの簡単な手順で統合できます。
Web 発行の機能強化
- 発行のユーザー エクスペリエンスを向上させます。
ASP.NET スキャフォールディング
- 列挙型のサポート: モデルで列挙型を使用している場合、MVC スキャフォールディングが列挙型のドロップダウンを生成します。 これは、MVC の列挙型ヘルパーを使用します。
- ブートストラップのサポート: ブートストラップ クラスを使用するように、MVC スキャフォールディングの EditorFor テンプレートを更新しました。
- パッケージのサポート: MVC と Web API スキャフォールディングは、MVC と Web API のための 5.1 パッケージを追加します
次のスクリーンショットは、モデルのスキャフォールディングを示しています。
モデルのコード:
モデルのコードをコンパイルし、右クリックして、[追加]、[新規スキャフォールディング アイテム] の順に選びます。
[Entity Framework を使用した、ビューがある MVC 5 コントローラー] を選びます。
モデルを使用してコントローラーを追加します。
生成されたコード (例: Views/WeekdayModels/Edit.cshtml) に
@Html.EnumDropDownListFor
が含まれていることを確認します。ページを実行して、生成された列挙型コンボ ボックスを確認します。値を null にできる場合は、コンボ ボックスで空の文字列を選択できます。 たとえば、[作成] ページに次のように表示されます。
NuGet 2.8.1
NuGet 2.8.1 RTM は 2014 年 4 月にリリースされる予定です。 リリース ノートの重要なポイントを次に示しますが、これらの変更の詳細については、詳細なリリース ノートを確認してください。
Windows Phone 8.1 アプリケーションを対象にする: NuGet 2.8.1 が、ターゲット フレームワーク モニカーである 'WindowsPhoneApp'、'WPA'、'WindowsPhoneApp81'、および 'WPA81' を使用して、Windows Phone 8.1 アプリケーションを対象にできるようになりました。
依存関係のパッチ解決: パッケージの依存関係を解決するときに、NuGet はこれまで、パッケージの依存関係を満たす最小のメジャーとマイナーのパッケージ バージョンを選択する戦略を実装してきました。 ただし、メジャー バージョンとマイナー バージョンとは異なり、パッチ バージョンは常に最高バージョンに解決されていました。 動作は適切な意図を持っていましたが、依存関係のあるパッケージをインストールするための決定性が不足していました。
DependencyVersion スイッチ: NuGet 2.8 は依存関係を解決するための "既定の" 動作を変更しますが、パッケージ マネージャー コンソールの -DependencyVersion スイッチを使用して依存関係解決プロセスをより正確に制御する機能も追加します。 スイッチを使用すると、依存関係を可能な限り低いバージョン (既定の動作)、可能な限り高いバージョン、または最高のマイナーバージョンまたはパッチ バージョンに解決できます。 このスイッチは、powershell コマンドの install-package に対してのみ機能します。
DependencyVersion 属性: 上に詳述した -DependencyVersion スイッチに加えて、NuGet は、install-package の呼び出しで -DependencyVersion スイッチが指定されていない場合の既定値を定義する新しい属性を nuget.config ファイルに設定する機能も有効にしました。 この値は、NuGet パッケージ マネージャー ダイアログでも、インストール パッケージの操作で考慮されます。 この値を設定するには、以下の属性を nuget.config ファイルに追加します。
<config> <add key="dependencyversion" value="Highest" /> </config>
-whatIf を使用して NuGet 操作をプレビュー: 一部の NuGet パッケージには詳細な依存関係グラフを含めることができます。そのため、インストール、アンインストール、または更新操作中にまず何が起こるかを確認すると便利です。 NuGet 2.8 は、標準の PowerShell の -whatif スイッチを install-package、uninstall-package、update-package コマンドに追加して、コマンドが適用されるパッケージのクロージャ全体を視覚化できるようにします。
パッケージのダウングレード: 新しい機能を調査し、最新の安定バージョンにロールバックするために、プレリリース バージョンのパッケージをインストールすることは珍しくありません。 NuGet 2.8 より前のバージョンでは、プレリリース パッケージとその依存関係をアンインストールしてから、以前のバージョンをインストールするマルチステップ プロセスでした。 ただし、NuGet 2.8 では、更新パッケージはパッケージクロージャ全体 (パッケージの依存関係ツリーなど) を以前のバージョンにロールバックするようになりました。
開発の依存関係: 開発プロセスの最適化に使用されるツールなどの、さまざまな種類の機能を NuGet パッケージとして提供できます。 これらのコンポーネントは、新しいパッケージの開発に使用可能ですが、後で新しいパッケージが発行されるときに、その依存関係であるとみなされないようにする必要があります。 NuGet 2.8 を使用すると、パッケージは .nuspec ファイル内でそれ自体を developmentDependency であると識別できます。 インストールすると、このメタデータも、パッケージがインストールされたプロジェクトの packages.config ファイルに追加されます。 その packages.config ファイルが後で、nuget.exe のパッケージ化中に NuGet の依存関係について分析されるときに、開発依存関係のマークが付けられた依存関係が除外されます。
異なるプラットフォームに別個の packages.config ファイル: 複数のターゲット プラットフォーム用のアプリケーションを開発するときは、それぞれのビルド環境ごとに異なるプロジェクト ファイルを持つことが一般的です。 また、パッケージにはプラットフォームごとにさまざまなレベル対応があるため、異なるプロジェクト ファイルで異なる NuGet パッケージを使用することも一般的です。 NuGet 2.8 は、異なるプラットフォーム固有のプロジェクト ファイルに異なる packages.config ファイルを作成することで、このシナリオのサポートを強化しています。
ローカル キャッシュへのフォールバック: NuGet パッケージは通常、ネットワーク接続を使用して NuGet ギャラリーなどのリモート ギャラリーから使用されますが、クライアントが接続されていないシナリオも多数あります。 ネットワーク接続がないと、NuGet クライアントは、パッケージがローカル NuGet キャッシュ内のクライアントのコンピューター上に既にある場合でも、パッケージを正常にインストールできませんでした。 NuGet 2.8 では、パッケージ マネージャー コンソールに自動キャッシュ フォールバックが追加されます。
キャッシュ フォールバック機能では、特定のコマンド引数は必要ありません。 さらに、キャッシュフォールバックは現在、パッケージ マネージャー コンソールでのみ機能します。この動作は現在、パッケージ マネージャー ダイアログでは機能しません。
バグ修正: 行われた主なバグ修正の 1 つは、update-package -reinstall コマンドのパフォーマンス向上でした。
これらの機能と前述のパフォーマンスフィックスメンションに加えて、NuGet のこのリリースには、他の多くのバグ修正も含まれています。 このリリースでは、合計 181 件の問題が解決されました。 NuGet 2.8 で修正された作業項目の全一覧については、このリリースの NuGet Issue Tracker を参照してください。
ASP.NET Web フォーム
- Web Forms テンプレートが、ASP.NET Identity のアカウントの確認とパスワードのリセットを実行する方法を表示するようになりました。
- Entity Framework 6 のエンティティ データ ソース コントロールと動的データ プロバイダー。 詳細については、MSDN ブログ「Entity Framework 6 の動的データ プロバイダーと EntityDataSource コントロール (英語)」を参照してください。
ASP.NET MVC 5.1.2
- 属性ルーティングの機能強化
- エディター テンプレートのブートストラップ サポート
- ビューでの列挙型のサポート
- MinLength/MaxLength 属性の控えめなサポート
- 控えめな Ajax での "this" コンテキストのサポート
ASP.NET Web API 2.1.2
- グローバル エラー処理
- 属性ルーティングの機能強化
- ヘルプ ページの機能強化
- IgnoreRoute のサポート
- BSON メディアの種類のフォーマッタ
- 非同期フィルターのサポートの強化
- クライアント書式設定ライブラリのクエリ解析
ASP.NET Web ページ 3.1.2
Entity Framework 6.1
Entity Framework は、ランタイムとツールの両方についてバージョン 6.1 に更新されました。 Entity Framework (EF) 6.1 は Entity Framework 6 のマイナー更新であり、いくつかのバグ修正と新機能が含まれています。 新しい機能のドキュメントへのリンクを含む、EF6.1 の詳細については、Entity Framework のバージョン履歴に関するページを参照してください。 このリリースでの新機能には次が含まれます。
- ツールの統合により、新しい EF モデルを一貫した方法で作成できます。 この機能は、既存データベースからのリバース エンジニアリングも含め、 Code First モデルの作成をサポートするために ADO.NET Entity Data Model ウィザードを拡張したものです。 これらの機能は、以前は EF Power Tools のベータ品質で利用できました。
- トランザクションのコミット エラーの処理。トランザクション操作をインターセプトする新しく導入された機能を利用する新しい System.Data.Entity.Infrastructure.CommitFailureHandler を提供します。 CommitFailureHandler を使用すると、トランザクションのコミット中に、接続エラーからの自動復旧が可能になります。
- IndexAttribute を使用すると、Code First モデルのプロパティに属性を配置することで、インデックスを指定できます。 その後、対応するインデックスが Code First によってデータベース内に作成されます。
- パブリック マッピング API により、プロパティと型をデータベース内の列とテーブルにマップする方法に関する EF の情報にアクセスできます。 過去のリリースでは、この API は内部的でした。
- App/Web.config ファイル経由でインターセプターを構成する機能。アプリケーションを再コンパイルすることなくインターセプターを追加できます。
- DatabaseLogger は、すべてのデータベース操作をファイルに簡単にログできるようにする新しいインターセプターです。 前出の機能と組み合わせて使用すると、再コンパイルを必要とせずに、デプロイされたアプリケーションのデータベース操作のログ記録を簡単に切り替えることができます。
- 移行モデル変更の検出が改善され、スキャフォールディングされた移行がより正確になり、変更検出プロセスのパフォーマンスも大幅に向上しました。
- パフォーマンスの向上。これには、データベース操作の削減、LINQ クエリでの null 等値比較の最適化、より多くのシナリオでのより高速なビュー生成 (モデルの作成)、複数のアソシエーションを持つ追跡対象エンティティのより効率的な具体化などが含まれます。
ASP.NET Identity 2.0.0
2 要素認証: ASP.NET Identity で 2 要素認証がサポートされるようになりました。 2 要素認証は、パスワードが侵害された場合に、ユーザー アカウントに追加のセキュリティ レイヤーを提供します。 2 要素コードに対するブルート フォース攻撃からの保護機能もあります。
アカウント ロックアウト: ユーザーが自分のパスワードまたは 2 要素コードを誤って入力した場合に、そのユーザーをロックアウトする方法を提供します。 無効な試行の回数と、ユーザーがロックアウトされる期間を構成できます。 開発者は必要に応じて、特定のユーザー アカウントのアカウント ロックアウトをオフにできます。
アカウントの確認: ASP.NET Identity システムが、アカウントの確認をサポートするようになりました。 Web サイトで新しいアカウントを登録すると、その Web サイトで何かを行う前にメールを確認する必要があります。これは、今日ほとんどの Web サイトでかなり一般的なシナリオです。 メールの確認は、偽のアカウントが作成されるのを防ぐので有益です。 これは、フォーラム サイト、銀行、e コマース、ソーシャル Web サイトなどの Web サイトのユーザーと通信する方法としてメールを使用している場合に非常に有益です。
パスワードのリセット: パスワードのリセットは、ユーザーがパスワードを忘れた場合にパスワードをリセットできる機能です。
セキュリティ スタンプ (すべての場所でサインアウト): ユーザーが自分のパスワードまたはその他のセキュリティ関連情報の変更 (Facebook、Google、Microsoft アカウントなどの関連するログインの削除など) を行った場合に、ユーザーのセキュリティ トークンを再生成する方法をサポートします。 これは、古いパスワードで生成されたすべてのトークンが無効になるようにするために必要です。 サンプル プロジェクトでは、ユーザーのパスワードを変更すると、そのユーザーに対して新しいトークンが生成され、それまでのトークンがすべて無効になります。 この機能は、パスワードを変更すると、このアプリケーションにログインしているあらゆる場所 (他のすべてのブラウザー) からログアウトするため、アプリケーションにセキュリティ レイヤーが追加されます。
Users と Roles の主キーの種類を拡張できるようにする: ASP.NET Identity 1.0 では、テーブル Users と Roles の主キーの種類は文字列でした。 つまり、ASP.NET Identity システムが Entity Framework を使用して SQL Server に永続化されると、nvarchar を使用していました。 この既定の実装に関しては、Stack Overflow で、また受信したフィードバックに基づいて、多くの議論が行われました。 Users と Roles テーブルの主キーを指定できる機能拡張フックを用意いたしました。 この機能拡張フックは、アプリケーションを移行していて、アプリケーションで格納している UserId が GUID または int である場合に特に便利です。
Users と Roles での IQueryable のサポート: UsersStore と RolesStore に IQueryable のサポートが追加されました。Users と Roles の一覧を簡単に取得できます。
UserManager を使用した削除操作のサポート
ユーザー名でのインデックス作成: EF 6.1.0 の新しい IndexAttribute を使用して、ASP.NET Identity Entity Framework の実装に、ユーザー名に対する一意のインデックスを追加しました。 これにより、ユーザー名が常に一意であり、ユーザー名が重複する結果をもたらす競合状態が発生しなかったことが確認されます。
拡張パスワード検証コントロール: ASP.NET Identity 1.0 に付属していたパスワード検証コントロールは、最小長のみを検証するかなり基本的なパスワード検証コントロールでした。 複雑なパスワードをより詳細に制御できる新しいパスワード検証コントロールがあります。 このパスワードのすべての設定をオンにした場合でも、ユーザー アカウントに対して 2 要素認証を有効にすることをお勧めします。
IdentityFactory ミドルウェア/CreatePerOwinContext:
- UserManager: ファクトリ実装を使用して、OWIN コンテキストから UserManager のインスタンスを取得できます。 このパターンは、SignIn と SignOut の OWIN コンテキストから AuthenticationManager を取得するために使用するパターンに似ています。 これは、アプリケーションの要求ごとに UserManager のインスタンスを取得するために推奨される方法です。
- DbContextFactory: ASP.NET Identity は、Entity Framework を使用して SQL Server の ID システムを保持します。 これを行うために、ID システムには ApplicationDbContext への参照があります。 DbContextFactory ミドルウェアは、アプリケーションで使用できる ApplicationDbContext のインスタンスを要求ごとに返します。
ASP.NET Identity のサンプル NuGet パッケージ: サンプル NuGet パッケージを使用すると、ASP.NET Identity のサンプルをインストールして実行し、ベスト プラクティスに従うことが簡単になります。 これは、サンプル ASP.NET MVC アプリケーションです。 これを運用環境にデプロイする前に、アプリケーションに合わせてコードを変更してください。 このサンプルは、空の ASP.NET アプリケーションにインストールする必要があります。 パッケージの詳細については、ブログ投稿「ASP.NET Identity 2.0.0 の RTM の発表 (英語)」を参照してください。
Microsoft OWIN コンポーネント
このリリースで多数のバグが修正されました。
ASP.NET SignalR 2.0.2
このリリースで多数のバグが修正されました。 詳細については、2.0.2 リリースのリリース ノートを参照してください。