.NET Framework 4.6.2 Preview のリリース

 

本記事は、マイクロソフト本社の .NET Blog の記事を抄訳したものです。【元記事】 Announcing the .NET Framework 4.6.2 Preview 2016/3/30

 

マイクロソフトは .NET Framework 4.6.2 のプレビュー版を発表しました。下記のリンクからダウンロード可能です。

今回のリリースでは次の分野で新しい機能や API が追加されました。

  • ClickOnce で TLS 1.1/1.2 をサポート
  • Project Centennial が .NET デスクトップ アプリに対応
  • 新しい暗号化標準をサポート
  • WPF でソフト キーボードと Per-Monitor DPI をサポート

.NET Framework 4.6.2 プレビュー版の変更の一覧は、GitHub (英語) で公開している変更リスト (英語)API 差分 (英語) をご覧ください。

 

ClickOnce

Transport Layer Security (TLS) 1.1 および 1.2 をサポート

ClickOnce が更新され、TLS 1.1 および 1.2 がサポートされました。ClickOnce は、実行時にどの TLS プロトコルが必要であるかを自動的に検出します。この更新版は、特に操作をしなくても自動で有効になります。

アップグレードを適用しないアプリケーションやアップグレードが不可能なアプリケーションで互換性の問題が発生しないように、当面は TLS 1.0 もサポートされます。

Windows 7 以降の .NET Framework バージョン 4.5.2/4.6/4.6.1 でのサポートは、2016 年 4 月以降を予定しています。

 

デスクトップ アプリを UWP に変換 (Project Centennial)

既存の Windows デスクトップ アプリ (WPF、Windows Forms を含む) を、ユニバーサル Windows プラットフォーム (UWP) に変換する機能 (英語) が提供されました。この機能は「Project Centennial」と呼ばれていたもので、既存のコード ベースを UWP に移行してすべての Windows 10 デバイスに対応させるブリッジとして開発者を支援します。

下の図は、Centennial によって変換された WPF アプリが、これまで UWP アプリでのみサポートされていたライブ タイルに対応した例です。

Centennial WPF

.NET デスクトップ アプリは移行前と変わらず動作し、デスクトップ アプリとして実行されますが、これに UWP API を呼び出す UWP コンポーネントを追加すると、ライブ タイルや共有コントラクトなどの UWP 機能を有効にすることができます。UWP コンポーネントの作成やコンパイルは、他の UWP アプリの場合と同様に .NET Native で行います。

 

暗号化

X509 証明書で FIPS 186-3 DSA をサポート

.NET Framework 4.6.2 では、DSA (デジタル署名アルゴリズム) X509 証明書のサポートが追加され、FIPS 186-2 の既定による 1,024 ビットというキーの制限が拡張されました。

また、キーのサイズが大きい FIPS 186-3 のサポートに加えて、SHA-2 ファミリのハッシュ アルゴリズム (SHA256/SHA384/SHA512) での署名の計算が可能になりました。FIPS 186-3 は、新たに追加された DSACng クラス (英語) によりサポートされます。

先日の RSA (.NET Framework 4.6) および ECDsa (.NET Framework 4.6.1) への変更に合わせて、DSA の抽象基本クラスにメソッドが追加され、キャストしなくても呼び出し元からこの機能を使用できるようになっています。

 

 

ECDiffieHellman のキー派生ルーチンへの入力をよりわかりやすく

.NET Framework 4.6.2 では、3 種類の KDF (キー派生関数) ルーチンによる楕円曲線 DH (Elliptic Curve Diffie-Hellman) のキー合意に対するサポートが強化されました。これまでは、このルーチンへの入力、およびルーチン自体は ECDiffieHellmanCng オブジェクトのプロパティで構成されていましたが、すべてのルーチンですべての入力プロパティが読み込まれるわけではないため、混乱の原因となっていました。そこで、ECDiffieHellman 基本クラスが更新され、KDF ルーチンとその入力がわかりやすくなりました。  

 

永続化されたキーによる対称暗号化をサポート

Windows の暗号化ライブラリ (CNG) では永続化された対称キーのソフトウェアとハードウェア デバイスでの格納がサポートされていますが、.NET Framework 4.6.2 でもこの機能を使用できるようになりました。キー名とキー プロバイダーは実装ごとに異なるため、この機能を使用するには、一般的に使用される標準手法 (Aes.Create() など) ではなく、具体的な実装に応じてコンストラクターを呼び出す必要があります。永続化されたキーによる対称暗号化のサポートは、AES (AesCng、英語) アルゴリズムおよび 3DES (TripleDESCng、英語) アルゴリズムで利用されています。

 

SHA-2 ハッシュで SignedXml をサポート

.NET Framework 4.6.2 に SignedXml のサポートが追加され、RSA-SHA256 (英語)RSA-SHA384 (英語)RSA-SHA512 (英語) の各 PKCS#1 署名メソッド、および SHA256 (英語)SHA384 (英語)SHA512 (英語) の各参照ダイジェスト アルゴリズムが使用できるようになりました。URI 定数はすべて SignedXml に記述されます。

 

 

これまでカスタムの SignatureDescription ハンドラーを CryptoConfig に登録してこれらのアルゴリズムをサポートしていたプログラムは、すべて従来どおりに動作します。ただし、既定でプラットフォームでサポートされるようになったため、CryptoConfig への登録は必要なくなります。

 

 

Windows Presentation Foundation

ソフト キーボードをサポート

ソフト キーボードのサポートにより、Windows 10 で WPF のスタイラス/タッチ入力を無効化しなくても WPF アプリケーションでタッチ キーボードが自動的に起動、破棄されるようになりました。4.6.2 より前のバージョンでは、WPF アプリケーションでのタッチ キーボードの起動や破棄が明示的にはサポートされておらず、WPF のスタイラス/タッチ入力を無効化する必要があります。これは、Windows 8 以降のタッチ キーボードがアプリケーション内のフォーカスをトラックする方法が変更されたことによるものです。

soft keyboard

Per-Monitor DPI のサポート

WPF アプリケーションはシステムの DPI を検知 (英語) できるため、アプリケーションがレンダリングされるモニターの DPI に応じて、Windows によりアプリケーションの画面サイズが変更されます。このため、鮮明さが低下したりテキストがぼやけたりすることがあります。4.6.2 より前のバージョンでは、WPF アプリケーションでモニターごとに DPI を検知するには高度なネイティブ コード (英語) が必要でした。

最近は高 DPI 環境やハイブリッド DPI 環境がエコシステムで普及してきたため、これに対応して WPF アプリケーションで Per-Monitor DPI がサポートされるようになりました。WPF アプリケーションで Per-Monitor DPI を有効にする方法については、サンプルおよび開発者向けガイド (英語) を参照してください。

フィードバックのお願い

今回のプレビュー リリースに関するフィードバックをお待ちしております。下記までお気軽にお寄せください。