昨日のVisual Studio 2022ローンチに続いて今日は .NET Conf 2021 の1日目です。
- .NET Conf 2021 (dotnetconf.net)
- Free swag … デジタルお土産です。
最初はScott Hunter氏から。 .NETはユニファイドデベロッパープラットフォーム。 .NET 6でよりシンプルにまとまりました。
.NET 6のコミュニティコントリビューターは6900人増えて21000件の貢献が。Thank you!みたいな。![]()
![]()
![]()
![]()
![]()
そんな .NET 6 は昨日GAしました。C# 10、F# 6、Arm64対応、Long-term-support(LTS)なバージョンです。初の64ビットなVisual Studio 2022もでました。アップグレードアシスタントもでました。 ⇒ https://aka.ms/dotnet-upgrade-assistant![]()
![]()
![]()
![]()
シンプルな開発。どこでもホットリロード。 .NET Framework 4.6以降ならサポートぽい。C# 10はグローバルUsingとかいろいろ。シンプルな記述ができるようになったり。Webアプリも最低4行で。![]()
![]()
![]()
![]()
デモはそのあたりを実演。 .NET 6 のコンソールアプリを作ってみる。.NET 6ではシングルラインコードで。![]()
![]()
![]()
![]()
次のデモは .NET 6 の空のASP.NET Core Webアプリ。Web API作るときのウィザードでDockerサポートなども。(これはVisual Studioの話だけど)
OpenAPIサポートも。Global Usingしとけば各CSファイルでUsingしなくてもとかImplicit Usingとか。namespaceの{}を減らせるファイルスコープnamespaceとかとか。![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
次はクラウド関連。これらのサービスが .NET で稼働中(ロゴェ…)。Reverse ProxyなYARP 1.0もでました。Microsoftのプロダクションなサービスでも使われてます。AzureだとAzure App Service, Azure Static Web Apps, Azure Functionsが .NET 6対応済み。コンテナー関連だとAzure Container AppsもIgniteで発表されました。Visual Studio 2022なら直接デプロイもできます。![]()
![]()
![]()
![]()
![]()
![]()
デモはScott 2からw David氏はGitHubの草(Profile)Tシャツ。QueueクライアントをDIしてFeedにリクエストが来たときにインスタンス(Singleton)渡されるようにしてQueueingするという感じのコードをささっと。ワーカーのほうもファイルスコープなnamespaceでインデントがシンプル。出来上がった各アプリはDockerコンテナーにしてAzure Container Appsへ。![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
次はBlazorですね。Blazor ServerとBlazor WebAssemblyをサポート。 .NET 6以前ではカバーできてなかったところもOKに。Blazor Fluent UI Componentsもリリースです。最新のWindows 11 Fluentビジュアルな感じ? クロスプラットフォームなネイティブUIな .NET Multi-platform App UI (MAUI)のGAは来年あたり。Blazor と .NET MAUIを組み合わせてハイブリッドなアプリとかも。GE Digitalなどでもう使われて事例化してるところもあります。![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
.NET MAUI Preview 10は今日リリース。 Visual Studio 17.1 (Preview 1)で使うのかな。![]()
デモはDaniel氏。BlazorなPodcastのWebアプリです。Hot Reloadももちろん対応。ファイルの保存でHot Reloadすることもできます。Hot Reloadできない変更の場合は実行してるまま(いったんデバッグ停止・再デバッグしなくても)リビルドして反映させることもできます。
新しいビルドツールでWebAssemblyのファイルサイズも小さく抑えられます?(1MB⇒353KB?)![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
次はMAUIのデモ。アプリケーションのメタデータ的な情報(アイコンやフォントなどなど)をプロジェクトファイル内に設定。Windows上でXAMLのLive Previewとかも。Visual Treeも辿れます。
ターゲットプラットフォームを変えてWindows Subsystems for AndroidでAndroidアプリをデバッグ実行、Live Previewとかの機能も同様に行えます。
macOS上のVisual Studio for Macを使って同じコードをiOSシミュレーター上でデバッグ実行もOK。macOS上で動作するアプリもOK。全部同じコードで、C#で、同じプロジェクトで。
最後はMAUI上でBlazorを呼び出し。![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()