特集
» 2017年07月28日 05時00分 公開

特集:マイクロソフトテクノロジーの現在と未来:.NET Standardとは (3/3)

[かわさきしんじ,Insider.NET編集部]
前のページへ 1|2|3       

コンソールアプリ

 まずは.NET Framework 4.6.1をターゲットとするコンソールアプリを作り、先ほど見たMyBrainfuckLibプロジェクトへの参照を追加する。実際に記述したコードは以下の通りだ。

using static MyBrainfuckLib.MyBrainfuck;
using static System.Console;

…… 中略 ……

static void Main(string[] args)
{
  string i_buf = "++++++++[>++++++++<-]>.++++++++ +.++++++++++ +.";
  WriteLine(ExecuteBrainfuckCode(i_buf));
  ReadKey();
}

MyBrainfuckLibライブラリが提供するメソッドを使用するコード

 これは「@IT」と出力するだけなので、実行結果は省略する。

 次に、.NET Framework 4.5をターゲットとすること以外は全く同じコンソールアプリを作成してみた。これをビルドしたり、デバッグ実行したりしようとすると、エラーとなる。エラーメッセージからも分かるように、.NET Framework 4.5がサポートしているのは.NET Standard 1.1までだからだ。

エラーメッセージ エラーメッセージ

 .NET Coreをターゲットとしたコンソールアプリでは同様なコードが実行できる(.NET Core 2.0 Previewが入っている場合)。

Windows Formsアプリ

 では、Windows Formsアプリではどうだろう。以下のようなUIを持つアプリを作成した。[Exec Code]ボタンをクリックすると、上のテキストボックスに入力した内容をインタープリタによって実行され、その実行結果が下のテキストボックスに表示される。

作成したWindows Formsアプリ 作成したWindows Formsアプリ

 コードを記述したのは[Exec Code]ボタンのイベントハンドラーだけである。

private void button1_Click(object sender, EventArgs e)
{
  textBox2.Text = MyBrainfuckLib.MyBrainfuck.ExecuteBrainfuckCode(textBox1.Text);
}

[Exec Code]ボタンのイベントハンドラー

 実行結果を以下に示す(入力したコードはWikipediaに掲載されているBrainfuckのHello Worldだ)。

実行結果 実行結果

ASP.NET Core 2.0 Previewアプリ

 ASP.NET Core 2.0 Previewをターゲットとしたアプリも作成してみた。コード自体はプロジェクトテンプレートを流用した手抜きコードなので、ここでは割愛するが、こちらについても以下のように動作している。

[Exec Code]ボタンをクリック
[Exec Code]ボタンをクリック
実行結果が表示された
実行結果が表示された

ASP.NET Coreアプリ



 本稿では、.NET Standardの概要と実際に.NET Standard 2.0ベースのクラスライブラリを作成して、それを幾つかのプロジェクトで使用してみた。.NET Standard 2.0では多くのAPIが追加されると共に、従来の.NET Frameworkとの親和性が高まっている。これは.NET Framework製のコードの.NET Standardへの移行、他プラットフォームでの活用へ可能性を大きく高めるものだ。

 その一方で、注意する点もある。例えば、ターゲットとする.NET Standardのバージョンを高いものとすれば、切り捨てられる環境が発生する。本稿で作成したMyBrainfuckLibプロジェクトは.NET Standard 1.6ベースのものとしても作成できるだろう。そうすれば、より多くの.NET環境をサポートできる。逆に、ターゲットとする.NET Standardのバージョンが低ければ、より多くの環境をサポートできるが、利用できるAPIが狭い範囲のものとなる。このバランスをどう取っていくか、あるいは緩やかに新バージョンへ移行していくにはどうすればよいのか。そういった点が、.NET Standardをうまく利用する際のポイントとなるかもしれない。

 何にせよ、マイクロソフトがこれから先に注力していくのは、.NET Coreや.NET Standardなど、クロスプラットフォームな.NET実行環境とそのために必要なあれこれになるであろうことを考えると、.NET Standard 2.0が正式リリースされたら、そろそろ旧来のコードベースの.NET Standard化についても検討を始めるのがよいかもしれない。

「特集:マイクロソフトテクノロジーの現在と未来」のインデックス

特集:マイクロソフトテクノロジーの現在と未来

前のページへ 1|2|3       

Copyright© Digital Advantage Corp. All Rights Reserved.

編集部からのお知らせ

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。