.NET Framework 4.7がリリースされたみたいですね。

更新内容

.NET Framework 自体よりも、ドキュメントとかのシステム更新の方が目立つかも。

自分が直接関係しそうなのは、ValueTuple構造体の追加くらいかなぁ。

ValueTuple

C# 7.0のタプルを使うには、ValueTuple構造体が必要なわけですが。

.NET Framework 4.7は、標準でValueTuple構造体を含む初のバージョンになりました。 (.NET Framework 4.7以外ではSystem.ValueTupleパッケージの参照が必要。) 後述の通り、今日のリリースだとWindows 10にしか.NET Framework 4.7が来ていないので、あまりまだ選べる選択肢ではなさそうな気もします。 まあそれに、PCLとかNetStandardなライブラリ、.NET CoreでもまだSystem.ValueTupleパッケージが必要です。

Windows 10 Creators Update

というか、単体インストーラーはなくて、Windows 10のCreators Updateとともにアナウンス。

Visual Studio 2017も同時に更新されましたけども、.NET Framework 4.7をターゲットにするためには、現状だと、

  • Windows 自体にCreators Updateを掛ける
  • Visual Studio 2017を更新する
  • 更新の際に、[変更] → [コンポーネント] → .NET Framework 4.7 SDK、.NET Framework 4.7 Targeting Pack にチェックを入れる

ってやらないとダメみたい。

Visual Studio 2017に.NET Framework 4.7 SDKを追加

リリース順

リリース順、これまでだと、

  1. .NET Framework の更新/単体インストーラー配布
  2. Visual Studio/C# のリリース = Windows のリリース

みたいな順が多かったんですけどね。今回、

  1. Visual Studio/C# のリリース
  2. Windows のリリース/.NET Framework の更新
  3. .NET Framework 単体インストーラー配布(まだない)

っぽい。 「C# 7.0がリリースされたのに、ValueTupleを標準で含んだバージョンの.NET Frameworkはまだ出ないんだ」とか、 これまでのリリース順からすると不思議な感じでしたけども、Windowsのリリース スケジュールのせいでしたか。 (てっきり、.NET Core辺りのリリース遅れが犯人かと思ってました。)

.NETランタイム更新

.NETランタイムの配布方法を、以下のようにしていきたいのかなぁとか思ったり。

  • スマホ: AOT(Ahead of Time: 事前コンパイル)でアプリ単一バイナリにコンパイル
  • サーバー: .NET CoreでNuGetベースの更新
  • デスクトップ: Windowsの自動アップデートに同梱

C# にもそろそろ、ランタイムへの機能追加が必要な構文を追加したいみたいな動き出てきてますしね。

古いランタイムが残りにくい仕組みにしたがっていそう。