SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

「GrapeCity ECHO」レポート(AD)

.NET 6の登場でさらに進化を遂げる.NET開発の世界の行方を探る――「GrapeCity ECHO 2021」開催!

「GrapeCity ECHO 2021」開催レポート

  • このエントリーをはてなブックマークに追加

 コンポーネント、ライブラリ製品をはじめとするソフトウェア開発ツールの提供により、国内外の開発者を支援するグレープシティ。同社では、2015年以来、アプリケーション開発技術や同社製品にかかわる最新動向を紹介する技術カンファレンス「GrapeCity ECHO(エコー)」を毎年開催している。去る2021年12月15日には「GrapeCity ECHO 2021」が開催された。前回に引き続きオンラインでの開催となった今回のテーマは「.NET開発者が .NETを選んでいく心得とは?」。まさに直前にリリースされた「.NET 6」に対する注目が集まり、今後の.NET開発の動向に向けた関心がいやがうえにも高まる中で、実施された今回のイベントは、参加した開発者の期待に十分に応えるものとなった。

  • このエントリーをはてなブックマークに追加

「One .NET Vision」をコンセプトに、開発フレームワークが急速に進化

 今回の「GrapeCity ECHO 2021」の開幕を告げる最初の講演となったのは、マイクロソフト コーポレーションの井上章氏の「.NETの今と未来〜. NET 6最新アップデート」と題するセッションである。

 現在の.NETでは、WindowsのデスクトップアプリケーションからWebアプリケーション、クラウド上のサービス、モバイルアプリケーション、ゲームアプリケーション、さらにはIoTやAI領域のサービスに至るまで、さまざまなタイプのソフトウェアの開発が可能だ。

 具体的には、もともと.NET Frameworkでは、Windows FormsやWPF、ASP.NETなどのアプリケーションが開発でき、その後クロスプラットフォーム対応を謳う開発フレームワークとして登場してきた.NET Coreでは、ASP.NETに加えて、LinuxやmacOSといった環境もサポートする.NET Core 3.0以降には、Windows FormsやWPFなどもそこに移植されている。さらには、Xamarinと呼ばれるツールセットも加わり、iOSやAndroid向けのネイティブアプリケーションを開発していける環境が整うに至っている。

 「ただ、これら.NET Framework、.NET Core、Xamarinでは、共通してC#によるアプリケーション開発が行えるものの、残念ながらベースクラスライブラリ群がそれぞれに異なっており、そこで実装されているAPIにも相違がありました。例えば.NET Framework上においてC#で記述したコードを、そのまま.NET CoreやXamarinで使うことができなかったわけです」と井上氏は語る。

マイクロソフト コーポレーション グローバル ブラックベルト Azure App Innovation スペシャリスト 井上章氏
マイクロソフト コーポレーション グローバル ブラックベルト Azure App Innovation スペシャリスト 井上章氏

 これに対しマイクロソフトが打ち出してきたのが「One .NET Vision」というコンセプトで、これら3つのフレームワークを統合して、単一のSDKおよびベースクラスライブラリによる提供が目指された。そして、このコンセプトは.NET 5において具現化され、2021年11月8日には、その最新版となる「.NET 6」が正式にリリースされている。

 「.NET 6の特徴としては、パフォーマンスが大幅に向上していることに加えて、C# 10やF# 6などの最新の言語、あるいはARM64アーキテクチャで実装されているApple Silicon(ARM64)のサポートなどがあげられます。さらに、サポート期間3年のLTS(Long Time Support)でのリリースとなっており、本番環境で安心してお使いいただける点も重要なポイントです」と井上氏は紹介する。

 その一方で、古いアーキテクチャに基づく技術といえる、ASP.NET Web FormsやWCF(Windows Communication Foundation)やWF(Windows Workflow Foundation)などは、.NET 6においてはサポートされていない。

 なおマイクロソフトでは、この.NET 6のリリースと同時期にVisual Studioの最新版となる「Visual Studio 2022」も登場している。そこでは、従来の32ビットだった実行ファイル、devenv.exeが64ビット化され、ツール自体のパフォーマンスも大きく向上している。さらに「ホットリロード」(Hot Reload)の機能が強化されていることも注目される。これは、アプリケーションを実行中に行ったコード変更が、直ちに実行中のアプリケーションに反映されるというもので、コード開発やデバッグの効率化に寄与する。

 話を.NET 6に戻すと、各フレームワークについても、いろいろなかたちで機能強化がなされている。例えば、「ASP.NET Core Blazor」。それ自体は、.NET Core 3.1で登場した新しいフレームワークだが、その利用によりWebのフロントエンドUIの開発をC#で行えるようになる。具体的には、Blazorでは最近のモダンなWebブラウザが標準搭載するWebAssemblyの技術を採用しており、C#のコードをWebブラウザのWebAssemblyで実行させるための仕組みを提供しているわけだ。

 「.NET 6では、ASP.NET Web Formsがサポート外となっていますが、コンセプト的にも近いBlazorを利用することで、これまでと同様のスタイルでWebアプリケーションのフロント開発を行うことが可能です」と井上氏は言う。

 またBlazorには、Blazor WebAssemblyとは別に、Blazor Serverという実行形態が用意されている。これについて、Blazor WebAssemblyではC#のプログラムがDLLとしてブラウザ側にロードされるため、サイズによってはペイロードなどが問題になるケースも考えられる。

 ブラウザ側で実行される分、パフォーマンスの面で不利になることもあるわけだ。これに対しBlazor Serverでは、プログラムが基本的にはサーバーサイドで実行され、その実行結果が、Web SocketをベースとしたSignalRと呼ばれる同期通信のフレームワークを介してブラウザ側に送信される形態となる。当然、パフォーマンス的には有利だといえる。

 「ただし、SignalRの通信では永続的なHTTPのコネクションが必要で、Blazor WebAssemblyのようにオフライン実行はできません。こういった特徴を踏まえつつ、いずれの実行形態を選択するかを判断することになります」と井上氏は説明する。

 そのほか.NET 6では、新たに「.NET Multi-platform App UI」(.NET MAUI)というフレームワークが利用可能となる。もっともこのMAUI自体は、.NET 6と同時にリリースはされておらず、正式には2022年春の登場予定となっている。.NET MAUIを使うことで、iOS、Android、macOS、Windowsのアプリケーションを、単一のプロジェクト、単一のコードベースで開発していくことが可能。「.NET MAUIは、.NET Core 3.1で実装されていたXamarin.Formsの進化型として.NET 6の中に統合されており、その利用によりマルチデバイスをターゲットとしたネイティブなアプリケーションをC#で作成することができます」と井上氏は語る。

 一方、クラウド側のサービス開発という観点について、.NET 6では新たにMinimal APIと呼ばれる実装方法により、よりシンプルにWeb APIを記述できるようになった。具体的には、名前空間を書いてクラス定義を行うという従来のような方法ではなく、1つのファイルの中にさまざまなWebメソッド、APIを効率的に書いていくことができるようになっている。

 以上のように、.NET 6は開発者にさまざまな新たな価値を提供するものとなっているわけだが、その一方で.NET Frameworkについては、現在の最新版である4.8が、最後のメジャーバージョンとなる旨、マイクロソフトからアナウンスされている。したがって、マイナーバージョンアップや比較的軽微なアップデートは継続されるものの、大幅な機能追加が今後行われることはない。

 「とはいえ、既存の.NET Frameworkアプリケーションを、すぐに.NET Coreや.NET 5、.NET 6に移行すべきかというと、決してそういうわけではありません。.NET Frameworkのサポートライフサイクルのポリシーにはこれまで通り変更はなく、ターゲット環境であるWindows OS側のサポートが続く限り、.NET Frameworkのサポートも継続されるかたちとなります」と井上氏は強調する。

 もちろん、新規開発においては、やはり.NET 6の採用が望ましいものの、すでに安定稼働している.NET Frameworkで開発した既存資産に関しては、できる限り4.7、4.8などの新しい環境に移行しておくことで、比較的長期のサポートが期待できるわけだ。ちなみに、仮に.NET Frameworkの資産を.NET 6にアップグレードしたいという場合には、「.NET Upgrade Assistant」と呼ばれる移行支援ツールなども用意されている。

 ともあれ、完全に統一化された開発フレームワークとして進化を続けていくことになる.NETの動向には、今後も要注目である。

.NETについてのリリーススケジュール。2022年11月には.NET 7、2023年11月に.NET 8のリリースがそれぞれ予定されている。
.NETについてのリリーススケジュール。2022年11月には.NET 7、2023年11月に.NET 8のリリースがそれぞれ予定されている。

次のページ
開発技術、マインドの両面でレガシーからの脱却を目指す

関連リンク

この記事は参考になりましたか?

  • このエントリーをはてなブックマークに追加
「GrapeCity ECHO」レポート連載記事一覧

もっと読む

この記事の著者

丸谷 潔(マルタニ キヨシ)

 フリーランスライター。1963年生まれ。慶應義塾大学文学部卒。システム開発(メインフレーム、OS/2等)、IT関連雑誌・書籍の編集を経て現職。執筆領域はIT系全般、FA系など。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

【AD】本記事の内容は記事掲載開始時点のものです 企画・制作 株式会社翔泳社

この記事は参考になりましたか?

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/15491 2022/01/31 12:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング