マイクロソフト、「C# 9.0」の計画示す--「Blazor WebAssembly」正式版もリリース

Liam Tung (ZDNET.com) 翻訳校正: 編集部

2020-05-22 11:15

 Microsoftが「Build 2020」で発表した「.NET」関連のニュースのなかには、.NETチームによる同社のプログラミング言語「C#」の計画や、「Blazor WebAssembly」の正式版リリースが含まれている。

 同社のC#リードデザイナーであるMads Torgersen氏によると、「C# 9.0」は「一般的なコーディングシナリオでのより高い明確さとシンプルさ」を追求しているという。しかし今回のリリースでは「データ形状に関する簡潔な、かつ不変性を備えた表現のサポート」に特に注力しているという。

 C#は、MicrosoftのテクニカルフェローであるAnders Hejlsberg氏によって生み出された言語であり、2000年代初頭にリリースされた。なおHejlsberg氏は、大規模アプリケーション向けにJavaScriptの拡張言語として普及している「TypeScript」の生みの親として知られている。

 C# 9.0のプレビュー版は、「C# 8.0」のリリースから1年を待たずにリリースされたことになる。C# 8.0は、「F# 4.7」とともに「.NET Core 3.0」に同梱されるかたちで、2019年に「Visual Studio 2019」とともにリリースされた。

 データ形状に関する簡潔な、かつ不変性を備えた表現に向けた取り組みは、オブジェクト生成時に各プロパティーの値を代入するためのオブジェクト初期化子(initializer)に焦点を当てたものとなっている。まずTorgersen氏は、現時点での制約として、オブジェクト初期化子はその機能を果たす上で、プロパティーが変更可能(mutable)となっていなければならないと次のコードを引用しながら説明している。

new Person

{

FirstName = "Scott",

LastName = "Hunter"

}

public class Person

{

public string FirstName { get; set; }

public string LastName { get; set; }

}

 同氏は「初期化子はまずオブジェクトのコンストラクター(デフォルトコンストラクター、すなわちパラメーターのないコンストラクター)を呼び出した後、プロパティーのセッターに対する代入処理を実行することで機能する」と説明している。

 同氏は以下のコードを示し、「init-onlyプロパティーがこの問題を解決することになる!今回、initアクセサーを導入した。これはオブジェクトの初期化中にのみ呼び出せる、一種のsetアクセサーだ」と付け加えている。

public class Person

{

public string FirstName { get; init; }

public string LastName { get; init; }

}

 またTorgersen氏は、個々のプロパティーに不変性を与える際にもinit-onlyプロパティーが有効であると示唆している。同氏はこの他にも、C# 9.0で導入されたwith式で不変データのサポートが向上する点などを解説している。

 .NETとC#に関連して、Blazor WebAssemblyを公式にリリースしたというニュースもある。Blazor WebAssemblyは、Progressive Web Apps(PWA)とも呼ばれる、従来のデスクトップアプリのように動作するブラウザーアプリを開発するためのC#や.NET開発者向けのフレームワークであり、これまではプレビュー段階にあった。

 ASP.NETのプリンシパルプログラムマネージャーDaniel Roth氏は「Blazor WebAssembly 3.2.0」のリリースを発表し、「十分な機能を備え、サポートされたリリースで、本番での利用に対応できる」と述べている。

この記事は海外CBS Interactive発の記事を朝日インタラクティブが日本向けに編集したものです。

ZDNET Japan 記事を毎朝メールでまとめ読み(登録無料)

ZDNET Japan クイックポール

注目している大規模言語モデル(LLM)を教えてください

NEWSLETTERS

エンタープライズ・コンピューティングの最前線を配信

ZDNET Japanは、CIOとITマネージャーを対象に、ビジネス課題の解決とITを活用した新たな価値創造を支援します。
ITビジネス全般については、CNET Japanをご覧ください。

このサイトでは、利用状況の把握や広告配信などのために、Cookieなどを使用してアクセスデータを取得・利用しています。 これ以降ページを遷移した場合、Cookieなどの設定や使用に同意したことになります。
Cookieなどの設定や使用の詳細、オプトアウトについては詳細をご覧ください。
[ 閉じる ]