BT

.NET Standard 2.0とは何か

| 作者: Sergio De Simone フォローする 17 人のフォロワー , 翻訳者 笹井 崇司 フォローする 0 人のフォロワー 投稿日 2016年12月6日. 推定読書時間: 3 分 |

原文(投稿日:2016/11/28)へのリンク

.NET Connect 2016に続いて、Microsoft MVPが、.NET Standardとは何であり、どこに向かっているのかについての見解を表明している。

Microsoftが2ヶ月前に.NET Standard 2.0を紹介したとき、現在ある3つの主要な.NETプラットフォーム – .NET Framework、.NET Core、Xamarin – と、Raspberry PiやIoTのような新しいデバイスカテゴリのために今後作られるフォークに対して、堅牢な基盤を提供するための取り組みであると説明した。

こうした3つのフォークの存在は開発者に大きな問題をもたらしている。各プラットフォームで何が使えるのか、正確に把握することが難しいのだ。しかも、何が使えるかは、大きく変わる可能性がある。これは条件付きコンパイルの多用につながるだろう。.NET開発者のGaProgMan氏はそのように書いている。加えて、Portable Class Libraries (PCLs) はもはやポータブルではないという。必要とされているAPIがターゲットプラットフォームで使えることを、開発者は容易に保証できないためだ。Microsoftによると、これに対する回答が.NET Standardであり、マルチプラットフォームの.NETライブラリを書くための基盤として、PLCを置き換えるものだ。

ところが、Microsoft MVPのRick Strahl氏は、.NET Standardというのは「.NET Core、Mono、Xamarin、.NET 4.6といった個々の実装が、APIサーフェイスという - 最低限 - 実装しなくてはならないもの」を記述した仕様として理解しなくてはならない、と指摘する。言い換えると、.NET Standardはひとつの実装ではなく、.NETの個々のプラットフォームによって実装されるものだ。たとえば、.NET Coreは、現在の.NET Standardのバージョン、1.6を実装しており、.NET Core 1.2は、.NET Standard 1.6の厳格なスーパーセットである.NET Standard 2.0と近いものになるだろうという。

.NET Standard 2.0が何であるかを説明するため、Strahl氏はコアオペレーティングシステム、ランタイム、ランタイムおよび言語サービスを提供するという目的のためにあるコア.NET Base Class Library (BCL) と比較する。それらには、基本型システム、ランタイムローディングとクエリオペレーション、ネットワークとファイルI/O、System.Dataのような追加APIが含まれる。それによって、ASP.NET、WinForms、WPFなどのアプリケーションフレームワークは、.NET Standardの一部ではなく、その上に構築されるものになる。

実装の観点から見ると、.NET Standardは従来の.NETとは若干異なるアプローチを取っている。実際に、.NET Standardの各プラットフォーム固有実装は、type forwarderとして振る舞う.NET Standard DLLも提供する。アプリケーションはtype provider DLLだけを参照し、参照は実装を提供する適切なアセンブリに転送される。これは、.NETアセンブリに対するユーザー体験と似ているが、実装者にとってはまったく異なっている。.NETランタイムパッケージの場合のように、単一のモノリスではなく別の独立したパッケージを提供できるためだ。

.NET Standard 2.0は.NET Standard 1.6 APIサーフェイスの倍以上あり、2017年Q1の終わりに公開される見込みだ。プレビューリリースはもっと前に公開されるだろう。

 
 

Rate this Article

Relevance
Style
 
 

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

あなたの意見をお聞かせください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする
コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

ディスカッション

InfoQにログインし新機能を利用する


パスワードを忘れた方はこちらへ

Follow

お気に入りのトピックや著者をフォローする

業界やサイト内で一番重要な見出しを閲覧する

Like

より多いシグナル、より少ないノイズ

お気に入りのトピックと著者を選択して自分のフィードを作る

Notifications

最新情報をすぐ手に入れるようにしよう

通知設定をして、お気に入りコンテンツを見逃さないようにしよう!

BT