しばやん雑記

Azure とメイドさんが大好きなフリーランスのプログラマーのブログ

Connect(); Japan 2018 フォローアップ (.NET パート)

なんか周りがみんな書いていて、自分も書かないといけないのかなという気分になったので。

YouTube Live とスライドは既に公開されています。スライドは全部チャックさんが作ってくれたので、私は当日は前に出て好き勝手喋っただけです。

いろいろなことがあったり、そもそも 30 分じゃ喋り切れない説があったので補足しておきます。

.NET Core 3.0

本家 Connect(); でも .NET Core 3.0 は WinForms と WPF の話ばかりだったので、ASP.NET Core 3.0 もちゃんといろいろと既に検討されているんだよということで紹介します。

今のところ ASP.NET Core 3.0 は .NET Core 専用になる予定です。2.0 の時にも同じような話があって撤回されたりしましたが、今回は本気っぽいですね。

既に GitHub Issue では Breaking change がいくつか追加されています。

主に古い API と互換レイヤーの削除という感じです。Microsoft.AspNetCore.All も廃止されるので、サクッと Microsoft.AspNetCore.App に移行しておきましょう。

WinForms / WPF の .NET Core 対応と OSS 化

普通に Self-contained でのアプリ配布は便利ですね。Desktop Bridge を使った Windows Store での配布が捗りそうな気配がありますし、APPX や MSIX などのパッケージングと相性が良いと思います。

肝心の OSS 化に関しては、セッション中に話したようにまだ評価できないという感じです。上手くコミュニティの力を活かしていけるようになって欲しいです。

WinForms の方はほぼソースが公開されたみたいですが、WPF は来年にもうちょっとコア部分のコードが公開されるスケジュールのようです。

気になっているのが .NET Core 3.0 向けと .NET Framework 4.8 向けで実装が変わる可能性があるという点です。この辺りのポリシーに関して CoreFx も同じじゃないかと言われるとそれまでなんですが、バックポートされるのかは非常に気になります。*1

バックポートされないのであれば、結局 .NET Core 3.0 への移行はさっさと行っておいた方が幸せになれるという結論になります。Visual Studio もどうなるのか気になります。

.NET Core 2.2

セッション中に話した通りパフォーマンス改善が多いので、アップデートしておいて損はないでしょう。期待していた Tiered Compilation は残念ながらデフォルトで無効にされてしまいましたが…。

既に .NET Core 2.2 に関しては書いているので、こっちも参照してください。

少し話した ASP.NET Core 2.2 での Endpoint Routing に関しては別で書く予定です。少し互換性周りに影響が出ているので注意してください。

明示的に EnableEndpointRouting = false として以前のルーティングを使うことが出来るので、アップデートの妨げにはならないと考えています。

.NET Framework 4.8

大分メンテナンスモード感が出てきた .NET Framework 4.8 ですが、何だかんだでアップデート項目は多いです。WPF / WinForms は HiDPI 対応が地道に続けられています。

後は細々としたバグや信頼性、そしてパフォーマンス改善の修正が行われています。改元に絡む変更も入っているので少し注意ですが、正式版がリリースされたら粛々とアップデートすることをお勧めしたいです。

*1:一応 CoreFx はちょいちょいバックポートされているはず