[Event] Microsoft Build 2020 (2020/05/19-20)

マイクロソフトの最新の技術について、以下のようなオンラインイベントで情報が提供されました。

これらのイベントで公開された/公開予定の技術についてご紹介いたします。

■ .NET 関連

● One .NET (ひとつの .NET)
○ 現在の .NET

○ 次の .NET

以前から発表されている通り、次の .NET では次のようになります。

“One .NET” ということで、.NET が現在の .NET Core に統合され、.NET 5 となります。

※ .NET 5 に含まれないもの

  • WCF (Windows Communication Foundation)
  • WF (Workflow Foundation)
  • ASP.NET WebForms

ちなみに .NET Framework は 4.8 が最終バージョンです。今後は保守フェーズに入り、機能の新規追加はされなくなります。

.NET Framework のサポート自体は Windows 10 がサポートされている間は続くと思われます。

将来性から考えると、新規に .NET で開発する場合は、.NET Core を用いるべきだと考えられます。

○ .NET のロードマップ

上記のとおり、現在ある .NET Framework、.NET Core、Xamarin は一つの .NET に統合されます。

但し、2020 年 11 月の .NET 5 リリース時点では Xamarin の統合はプレビュー扱いです。

.NET 6 で完全に統合される見込みです。

.NET 6 は LTS (Long term support: 長期サポート) 版となる予定なので、新規開発に利用するのは、.NET 6 からが無難かも知れません。

● 新たなマルチプラットフォーム アプリケーション開発方法

Microsoft は既に Windows への囲い込みを行っていませんので、新たな開発方法としては Windows 以外の OS もサポートするマルチ プラットフォームなものを提供していくことになります。

注目すべきは、以下の二つです。

  • MAUI (Multi-platform App UI)
  • Blazor

将来的にはどちらもネイティブアプリケーションも開発できるものですが、MAUI は従来の Windows アプリケーション開発技術の延長にある技術、Blazor は Web アプリケーション開発技術の延長にあり、とりあえずは Web 開発用です。

ひとつずつ説明します。

○ MAUI (Multi-platform App UI)

MAUI というアプリケーション開発技術が発表されました。

MAUI の特徴は次の通りです :

  • iOS や Android、Windows など複数のプラットフォームに対応したネイティブなユーザーインターフェイスを実現できる UI フレームワーク
  • 従来の Xamarin Forms の技術の延長
  • .NET 6 Preview (2021 年 11 月頃リリース予定) でリリース予定
  • 全体を C#/.NET で開発
  • UI は XAML (WPF や UWP、Xamarin Forms の UI 言語) ベース

XAML (Extensible Application Markup Language):

  • WPF や UWP、Xamarin Forms の UI 記述用言語
  • 今までは、XAML は WPF や UWP、Xamarin Forms で統一されていなかった
○ Blazor

現在すでに Blazor Server という、C# だけで Web アプリケーションが開発できるサーバーサイド技術が .NET で使用できますが、この技術が拡張され、Web アプリケーションだけでなくネイティブアプリケーションも作成できるようになることが予定されています。

Blazor の特徴は次のとおりです:

  • Web 技術の延長
  • 全体を C#/.NET で開発
  • UI は Razor (ASP.NET MVC の UI 言語) ベース

今回新たにリリースされたのは、Blazor WebAssembly 3.2.0 (GA) です。

近い将来この Blazor が拡張され、ネイティブ アプリケーション (Web アプリケーションでない Windows アプリケーション/Mac アプリ /iOS アプリ/Android アプリ) も作れるようになります。

  • Blazor Server (既存)
    • サーバーサイドを C# で記述。
      ASP.NET WebForms に置き換わるものとされる。
    • クライアントサイドとは、SignalR で通信し、リアルタイムに同期をとる。
  • Blazor WebAssembly (今回リリース)
    • Blazor Server と違い、クライアントサイドで C# が動作する Web アプリケーションを作成できる
    • クライアント サイドのプログラムを JavaScript ではなく、C# で記述。
    • クライアント サイド (Web ブラウザー) 上で、WebAssembly の .NET が動作する
  • Blazor PWA (Progressive Web
    Application) (将来)

    • Web アプリケーションが単独のアプリケーションとして動作する
  • Blazor Hybrid (将来)
    • Electron や WebView を用いてデスクトップアプリケーションを開発
  • Blazor Native (将来)
    • ネイティブアプリケーションを開発
○ 参考
● 新たな Windows アプリケーション開発方法

新たな Windows アプリケーション ライブラリーとして WinUI 3 が発表になりました。

  • WinUI 3 Preview 1
    • UWP と Win32 アプリケーションをサポート
    • C/C++、.NET 5、WebView2、Fluent Design Controls に対応

■ 開発ツール関連

○ GitHub Codespaces/Visual Studio Codespaces

以下が発表されました:

  • GitHub Codespaces
  • Visual Studio Codespaces

Web 版 (クラウド版) の Visual Studio Code/Visual Studio です。

Visual Studio Codespaces は、以前 Visual Studio Online と呼ばれていたものです。

ネイティブアプリケーションだった Office が Web 版になり、Microsoft 365 になったように、様々なツールがクラウド版になっていきます。

○ Visual Studio
  • Visual Studio 2019 の 16.6 と 16.7 Preview 1 が公開されました。
  • Live Share でボイスチャットがサポートされます。
  • Windows Forms Designer for .NET Core がリリースされました。
  • Surface Duo (2 画面) の開発なども行えるようになってきました。
  • ML.NET 開発用の Model Builder が組み込まれました。
○ 参考
○ C# 9.0

C# 9.0 が発表されました。

○ 参考

■ Azure 関連

○ Azure

Serverless や AI/Data などを中心にアップデートされています。

  • AKS (Azure Kubernetes Service)
  • Windows Server コンテナー
  • Private Link
  • Spot VM
○ Data 関連
  • Cosmos DB

Free Tier

AutoScale

Azure Synapse Link: データベース分析サービス

○ ML 関連
  • Cognitive Services
    • Personalizer
    • Speech Voice
  • Azure Machine Learning
    • AutoML 周り
    • Responsible ML
    • AI スーパー コンピューターの発表
○ 参考

■ Power Platform/Microsoft 365

○ Power Platform

Power Apps や Power Automate、Power BI、Dynamics 365、Microsoft 365 の新たな統合機能の発表

○ Microsoft 365 (旧名 : Office 365)

Microsoft Teams の多数のアップデートの予定が発表

■ Windows 関連

○ Terminal

・ Windows Terminal 1.0

次のような機能があります。

Microsoft Store からインストールできます。

  • タブ機能

タブごとに Windows Subsystem for Linux、コマンドプロンプトや PowerShell など

タブの内部をペインに分割する機能

○ WSL2

WSL は、Windows に組み込まれた virtual な Linux 環境です。

Microsoft Store からインストールできます。

WSL2 で新たに GPU がサポートされます。 CUDA 利用できたり、GPU 版 Tensorfow が動作できたりします。

○ パッケージ マネージャー

winget という Windows Package Manager (Preview 版) がリリースされました。

Linux のようにコマンド ラインから簡単にアプリケーションなどがインストールできます。

参考:Windows Package Manager Preview | Windows Command Line

○ API

Project Reunion というプロジェクトが発表されました。

Windows の API は現在次のように 2 つ ありますが、これを統合しようというプロジェクトです。

  • Windows の 2 つの API
    • Win32: 従来の API
    • WinRT: UWP (Universal Windows Platform) 用の API

■ 関連サイト