今週始めにオンラインストリーミングされた.NET Conf 2019 Editionでは、.NETエコシステムの新機能がいくつか発表されている。.NET Core、ASP.NET、EF Core 3.0、さらにC# 8.0とF# 4.7もリリースされた。これら新リリースは、Windowsデスクトップ、Web、モバイルアプリケーションの開発方法に大きな影響を与えるものだ。Visual Studio(VS) 2019の新機能とツールも紹介された。中でも注目されるのは、Model Builderという、新しいマシンラーニング用ビジュアルモデリングツールだ。
カンファレンスは、リリースされた新機能の概要の紹介で始まっている。オープニングの基調講演では、.Microsoft .NETチームのプログラム管理担当ディレクタのScott Hunter氏が、.NET Coreの採用率の向上について語った。最初に氏は、プラットフォームと関連ライブラリがオープンソース公開された以降、.NET Coreリポジトリに送信されたプルリクエストの数(10万以上)を挙げて、.NET Core開発がコミュニティと連携している点を強調した。この導入部では、以降の新機能や新ツールの発表に関する前提として、さまざまなシナリオで、さまざまなアプリケーションを開発可能である、ということが述べられている。続いて氏は、続くセクションで議論されるトピックの中心をカバーする、インタラクティブで累積的なハンズオン・セッションについて紹介した。
基調講演で取り上げられた各トピックには、それぞれに別の話者による講演が実施されていて、いずれもScott Hunter氏が司会を務めている。ハンズオンセッションは天気予報マイクロサービスの開発から始まり、C# 8.0(非同期ストリーム、ヌル可能参照型、コードパターン)、.NET Core 3.0(新しいJSON API)、Visual Studio 2019(新しいgRPCサービスリファレンス)が紹介された。それに続くトピックでは、新しいC#非同期ストリームのみに話題を絞って、非同期ループとエンドポイントの使用方法が説明されている。
次にアプリケーションに関して、生成されたマイクロサービスがさまざまな方法でコンシュームされる方法が示された。最初に紹介されたのは、.NET Core Windows Formsを使用したWindowsデスクトップアプリケーションの開発方法だ。このプレゼンテーションの目的は、既存のデスクトップアプリケーションを.NET 3.0に移植する方法を示すことと、今回のリリースで最も重要な機能のひとつである、デスクトップアプリケーションを自己完結型実行ファイルとしてデプロイする機能をデモすることである。Xamarinのデモが同じ形式で行われて、アプリケーションのモバイル版で、新機能であるホットリロード/リスタート(アプリケーションの実行中にコードを変更することができる)を使ったテストを行う方法が紹介されている。
さらにオープニングの基調講演では、新しいASP.NET機能が、Blazorアプリケーションの作成によって公開されている。このトピックのハイライトは、Visual Studio 2019の最新バージョンで、新たにBlazor WebAssemblyテンプレートが使用できるようになったことだ。続いて、マシンラーニングモデルをビジュアルに開発してML.NETによるアプリケーションに組み込む方法のデモンストレーションが行われて、最後にはIoTデバイスに関するデモと説明が実施された(.NET Coreの最新リリースにLinux ARM64サポートが追加されたため)。
3日間にわたって行われたカンファレンスは、Microsoftスタジオからのセッションブロードキャスト(第1日および第2日)と、世界中のローカルタイムゾーンで行われたコミュニティセッション(第3日)に分けられて、午前9時から午後5時まで実施された。セッションはすべて技術関連のもので、ハンズオンデモンストレーションの際に提示された主要点に関わるものだった。特に、オープニング基調講演(第1日)の後で実施されたセッションでは、デモトピックの詳細バージョンがより完全な形で公開されていた。
その他にもセッションがあり、今年始めにMicrosoftの開発者ブログで発表されたツールや機能の発表や、Apache Sparkと.NETの統合やTry.NETを用いたインタラクティブドキュメントの構築など、Core 3.0に関係しない話題が公開された。その他のセッションでは、.NET Standard、F#の新機能、.NET CoreでのGraphQLの使用、.NETによるモバイルおよびゲーム開発、DevOpsツール、パフィーマンスやセキュリティの話題がカバーされていた。
カンファレンスのポイントは、.NET開発エコシステムは.NET Coreを中心としたものになりつつある、ということだ。今年始めにMiacrosoftは、.NET Coreが.NETの将来であるという発表をしているので、これは驚くことではない。スケジュールが変わらなければ、.NET 5.0が2020年11月にリリースされる予定である。Microsoftは.NET 5を、Web、クラウド、モバイル、ゲーム、IoT、AIアプリケーションの統合プラットフォームとして位置付けると同時に、複数のオペレーティングシステム上でJava、Objective-C、Swiftとの相互運用性を実現すると発表している。
デモンストレーションの大部分はVS 2019 for Windowsを使用して行われているが、複数のオペレーティングシステムで利用可能であることにも注目すべきだ(ツールやライブラリ、あるいはプラットフォームによって異なる)。VS 2019 for Windowsが使用されたのは、Windowsデスクトップアプリケーション開発のサポートが.NET Core 3.0の最重要機能のひとつであることを考慮したものと思われるが、.NET Core 3.0自体は、Windows 7以降、Windows Server 2012 R2 SP1以降、macOS 10.13以降、さまざまなLinuxディストリビューションでもサポートされている。ML.NETも複数のオペレーティングシステムを対象としたコマンドラインツールとして提供され、VS CodeではBlazorの開発をサポートする。カンファレンスの全セッションの記録は、YouTubeのCurated Playlistで見ることができる。