次期「.NET 8」プレビューリリース初公開。ネイティブコンパイラ改善で生成バイナリが約半分に、「Blazor United」登場など

今回は「次期「.NET 8」プレビューリリース初公開。ネイティブコンパイラ改善で生成バイナリが約半分に、「Blazor United」登場など」についてご紹介します。

関連ワード (最初、終了、高速起動等) についても参考にしながら、ぜひ本記事について議論していってくださいね。

本記事は、Publickey様で掲載されている内容を参考にしておりますので、より詳しく内容を知りたい方は、ページ下の元記事リンクより参照ください。


マイクロソフトは同社のアプリケーションフレームワーク「.NET」の次期メジャーバージョンアップとなる「.NET 8」の最初のプレビューリリースとなる「.NET 8 Preview Release 1」を公開しました。

マイクロソフトは毎年11月に.NETのメジャーバージョンアップを行っており、そのうち偶数バージョンがLTS(Long Term Support:長期サポート)版となります。そのため「.NET 8」は次のLTS版として11月に正式リリース予定です。

Announcing .NET 8 Preview 1

… including big improvements to products, libraries, runtime, and tooling. , we plan on making broad investments in #ASPNET Core, Blazor, #EFCore, WinForms, WPF, and other platforms. You can learn more here: https://t.co/fV0FhuAjUB pic.twitter.com/ytyHHl8oGr

— .NET (@dotnet) February 21, 2023

.NET 8は次のLTS版となるため、安定性を優先させた開発が進められているはずです。おそらくそのせいで、昨年11月にリリースされた現時点の最新版である「.NET 7」からの大きな変更や機能追加はそれほど行われていません。

発表されたなかで注目すべき変更点や新機能があるとすれば、ネイティブコンパイラの改善とBlazor Unitedの登場でしょう。

ネイティブコンパイラが生成するバイナリが約半分に

C#などの.NETに対応したプログラミング言語をコンパイルし、ネイティブバイナリを生成するネイティブコンパイラは、.NET 7で登場した新機能です。

参考:マイクロソフト「.NET 7」正式リリース。パフォーマンス改善、Linux対応向上、コンテナ生成、ネイティブコンパイラ搭載など新機能

.NETには以前からコンパイルをするプロセスがありますが、このコンパイルはソースコードを.NET専用の中間言語に変換するものです。そして、実行時に.NETランタイムによって中間言語から動的にネイティブバイナリが生成されることでターゲットマシン上で実行できるようになっているのです。

こうした中間言語に変換し、それをランタイムで実行する仕組みは.NETだけでなく、Javaなどを含む主要なプログラミング言語の多くで採用されているアプローチの1つであり、ソフトウェアのポータビリティと同時に高い性能や安定性などを実現してきました。

一方で、最近ではクラウドネイティブに対応したアプリケーションの開発が重視されてきています。クラウドネイティブに対応したアプリケーションとは、サービスとなる比較的小さなソフトウェアを分散環境で多数実行し、相互に連携させつつ、負荷などに応じて柔軟かつ頻繁にサービスの起動と終了を繰り返す仕組みとなっています。

こうしたクラウドネイティブに対応したソフトウェアでは、より効率的なコンピューティングリソースの利用を実現する上で、徹底的な高速起動と小さなランタイムが求められます。

そして、より小さなランタイムと高速な起動を実現するもっとも優れた方法として考えられるのが、あらかじめ生成されたネイティブバイナリを実行することです。

.NET 7で登場した新機能のネイティブコンパイラは、こうしたニーズに主に対応するもので、Windows、macOS、LinuxのOSでユーザーインターフェイスを持たないコンソールアプリの生成にのみ対応しました。

.NET 8ではこのネイティブコンパイラが改善され、バイナリサイズが約半分程度にまで最適化が進んでいます。下記は「Announcing .NET 8 Preview 1」からの引用です。

fig

今後の改善ではコンソールアプリ以外への対応なども進められるとしています。

Blazor Unitedが登場

.NET 8ではBlazor Unitedと呼ばれる新しいプログラミングモデルの開発も進んでいます。

参考:Blazorの生みの親が「Blazor United」発表。SPAとSSRを1つのBlazorに統合し、共通のソースコードで記述可能に

Blazor Unitedとは、Blazorをベースに、クライアントサイドレンダリングとサーバサイドレンダリングを単一のフルスタックプログラミングに統合するという取り組みです。

もともとBlazorは、WebAssemblyを用いてWebブラウザ上に.NETランタイムを実装することで、C#によるクライアントサイドレンダリングを実現するWebアプリケーションを構築できる「Blazor WebAssembly」の開発が始まったのが発端です。

その後、サーバサイドでも同様のフレームワークを用いることで、C#でサーバサイドレンダリングによるWebアプリケーションを開発できる「Blazor Server」も登場しました。

この2つのBlazorは2020年に正式版としてそれぞれリリースされています。

そしてこの2つを統合し、クライアントサイドレンダリングによるSPA(Single Page Application)とサーバサイドレンダリングによるWebアプリケーションの両方の利点を併せ持つことを目指すのが「Blazor United」とされています。

Blazor Unitedでは、Webページのコンテンツを生成する部分のコードは共通するBlazorのコードとなり、それをサーバサイドレンダリングにするのか、SPAのようなクライアントサイドレンダリングにするのかは柔軟に選択できるようなプログラミングモデルになる見通しです。

そのほか.NET 8には多くの変更や追加が計画されています。詳しくは「Announcing .NET 8 Preview 1」や「ASP.NET Core updates in .NET 8 Preview 1」などをご参照ください。

COMMENTS


Recommended

TITLE
CATEGORY
DATE
Netflixがビットコインのボニー&クライド「Bitfinexスキャンダル」を描いた映画制作へ
IT関連
2022-02-14 13:03
日本企業にとってAPIは重要でもセキュリティに懸念
IT関連
2022-07-30 23:39
「ChatGPT」、ようやく情報ソースを提供–ただし有料プランのみ
IT関連
2024-04-02 01:34
コンピュータービジョンを利用した誰でも使いやすいビデオエフェクトの動画エディターVOCHIが全世界的に人気
ソフトウェア
2021-07-24 19:28
コンテナランタイムのcontainerdに、WebAssemblyをコンテナとして扱うための「runwasi」が統合。これからのコンテナランタイムはWebAssemblyと統合されていく
Docker
2023-02-21 18:22
竹中工務店ら、建設現場の資機材を自動搬送するロボット開発
IT関連
2024-12-19 00:20
鴻池運輸、AI-OCR活用し倉庫内検品作業のミスを防止–スマホで読み取り
IT関連
2025-02-15 03:10
OpenAI、初の開発者会議「OpenAI DevDay」を11月に開催へ
IT関連
2023-09-09 23:10
PDFファイル普及の裏で浮き彫りになる、セキュリティへの認識不足–アドビ調査
IT関連
2022-12-02 02:29
IT系コミュニティをタダ飯狙いの不審者からどう守るべきか。あるイベントで発生した深刻な事案と提言
業界動向
2023-12-19 22:30
JavaScriptツールチェインの統一を目指す「Rome」開発チームが起業、「Rome Tools, Inc.」を立ち上げ
JavaScript
2021-05-06 18:58
フェイスブックの次期新製品は待望の「レイバン・スマートグラス」
ハードウェア
2021-07-31 08:39
若手研究者と共同創業するHERO Impact Capitalが1号ファンドを組成し投資活動開始、ファンド規模は30億円
IT関連
2022-02-26 21:26
グーグル、AIモデル「Gemini 1.5」の実験的バージョンを3種リリース
IT関連
2024-08-30 22:18