BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ アーティクル .NET Core 3.0について - Scott Hunter氏に聞く

.NET Core 3.0について - Scott Hunter氏に聞く

ブックマーク

原文(投稿日:2019/09/18)へのリンク

この記事は、.NET Coreの持つメリットと、それが従来からの.NET開発者のみならず、堅牢で高性能、かつ経済的なソリューションをマーケットに提供する必要のあるすべての技術者にとっていかに有用かを探る、一連のシリーズ記事の一部です。

.NET Core 3.0のリリースによってMicrosoftは、2016年に初めてリリースされた、汎用目的でモジュール型、かつクロスプラットフォームなオープンソースのプラットフォームの、新たなメジャーバージョンを手にすることになりました。元々は次世代のASP.NETソリューション実現を目的に開発された.NET Coreですが、現在ではIoTやクラウド、次世代モバイルソリューションなど多くのシナリオの基盤として、それらを牽引する存在になっています。バージョン3では、WinFormとWPFのサポート、Entity Framework 6など、これまで求められていた多くの機能が追加されています。

 

.NET Core 3.0は、9月23~25日に開催された参加無料の開発者向け仮想イベントの.NET Conf 2019で公式にローンチされました。そのローンチに先立ち、Chris Woodruff氏が、.NETプラットフォームのプログラムマネジメントディレクタであるScott Hunter氏に、開発者として.NET Core 3に何が期待できるのかインタビューしました。

.NET Coreチームでのあなたの役割は何ですか?

Scott Hunter: 私は.NETプラットフォームを担当するプログラムマネジメントディレクタです。.NET Core、.NET Framework、.NETツール、Webツール、.NET言語(C#、F#、VB)、ASP.NET、Entity Framework、https://dot.net、そして.NETコミュニティを担当するプログラムマネージャによるチームを管理しています。各チームのプログラムマネージャは、私たちがユーザのために正しいものを開発していること、.NETコミュニティ推進を支援していることを確実にする役割を担っています。

詳細な説明の前に、.NET Coreとフレームワークの由来について、背景を少し紹介してください。

Hunter: .NET Coreは2014年に私たちのチームが、.NET Frameworkでは今後20年間実現できそうもない、.NET関連の変更を行う必要性を認識した時に始まりました。.NET FrameworkはWindowsの一部なので、1つのコンピュータ上に存在するのは1バージョンのみです。従って高い互換性を維持する必要があります。世界中にある10億以上のWindowsマシンにインストールされているアプリケーションを壊すことはできません。Windowsの一部であるということは、Windowsのメジャーアップデートが行われるサイクルである、2年に1度しかリリースできない、ということでもあります。一方で、ソフトウェア界ではオープンソースが主流となっていて、他のプログラミングプラットフォームはすべてがオープンソースです。Macを使っている開発者や、Linuxに自社ソフトをホストしている企業も目にしていたので、クロスプラットフォームであることの必要性を感じていました。

オープンソースでクロスプラットフォーム、そして一台のコンピュータに複数のバージョンをインストール可能な.NETのバージョンとして、.NET Coreは生まれました。開発者が任意のコンピュータ上で、任意のエディタを使って.NET Coreを利用できるように、ツーリングではCLI(コマンドラインインターフェース)を中心としました。それと同時に、Visual StudioやVisual Studio for Mac、Visual Studio Codeといった、これまでのツールの使用も強力にサポートしています。

.NET Core 3.0では、どのようなことを計画していますか?

Hunter: .NET Core 3にはたくさんの新機能があります。Windows FormsやWPFを使ってデスクトップアプリケーションを開発している数百万の開発者のために、これら2つのフレームワークを.NET Coreに加えました。これらのデスクトップアプリの多くはEntity Framework 6を使っているので、それも追加しています。.NET Coreは常にオープンソースを念頭に置いているので、この2つのフレームワークを12月にオープンソースとして公開することも発表しました。さらに.NET Core 3には、C# 8や.NET Standard 2.1なども含まれています。

ASP.NET Core 3.0に関しては、どのような計画がありますか?

Hunter: 。NET Core 3.0について話す時は、新たなデスクトップサポートが話題になることが多いのですが、ASP.NETについてもたくさんのイノベーションがあります。まず最初に、WCFに戻るつもりはありませんが、アプリケーションでハイパフォーマンスな契約ベースのRPCサービスをプログラムすることを、多くの開発者が望んでいることが分かっています。このようなワークロード向けに、オープンソースのgRPCプロジェクトを採用しました。私たちは.NETの実装を第1に作業をしていますが、gRPCなので、他の多くのプログラミング言語でも同じように動作します。Kubernetesのようなオーケストレータの下で動作可能な、軽量のバックグラウンドワーカの開発を目的とした、マイクロサービス関連のWorker Serviceプロジェクトも新たに用意しました。また、ASP.NETはAPI開発でも大きな支持を得ていますが、その上に充実したセキュリティを容易に組み立てられるように、オープンソースのIdentity ServerプロジェクトからそれらのAPIを使用するブリッジを追加しました。最後に、Web Assemblyを使用して、ブラウザとサーバの両方で.NETによるハイパフォーマンスなWebアプリケーション開発を可能にするBlazorを開発しています。

Azureは、.NET Coreの計画にどのように影響しますか?

Hunter: Azureが.NET Coreの計画に直接影響することはありません。ですが、私たちは.NET Coreを、クラウドネイティブなアプリケーション開発に最も適したプラットフォームにしたいと考えています。マイクロサービスやコンテナベースのアプリケーションもその中に入ります。従来の.NETは、WebやデスクトップUIのコンテキストで語られることが多かったのですが、その認識を変えたいと思っているのです。このようなタイプのアプリケーションは現在でも開発可能なのですが、公開はしていません。.NET Core 3.0では、Worker Serviceプロジェクト用のテンプレートを同梱する予定です。このプラットフォームでは、クラウド内でハイパースケールに運用されているアプリケーションであっても、診断やデバッグをサポートできるようにしたいと思っています。

.NET Coreで気に入っている部分と、将来的に変更したい部分について教えてください。

Hunter: 気に入っているのは、CLI(コマンドラインインターフェース)であること、クロスプラットフォームをサポートしていること、オープンソースであることなどでしょうね。Windows、Mac、Linuxベースのマシンをものにしたことで、これまでの.NETでは考えられなかったような、自分好みのエディタを使ってCLIベースでアプリケーションを開発することが可能になりました。GitHubにアクセスして、Microsoftとコミュニティ両方の開発しているプロダクトを見ることができるようになったのも、素晴らしいことです。これからも、新たなワークロードを.NETで可能にすることを考えると、いつもわくわくしてしまいます。AOT(アヘッドタイムコンパイル)にも期待しています。Go言語のように、コンパクトでハイパフォーマンスなアプリケーションを提供できることが楽しみです。

.NET CoreがOSSであることは意外ではありませんでしたか?

Hunter: .NET Coreをオープンソースにしたのは2014年ですから、オープンソースの世界では"遅参者"だと思います。コミュニティに受け入れられるかどうか、当時は分からなかったのですが、結果的にはそれに成功して、Microsoft以外の3,700の企業から60,000以上のコントリビューションを得ることができました。.NET Coreを最速のフレームワークにするための開発の多くは、このコミュニティを出所とするものなのです。

.NET Frameworkにとっては、どのような意味があるのでしょうか?

Hunter: .NET Frameworkは、Windowsオペレーティングシステムの重要な部分です。Windowsを含むMicrosoftの大規模なプロダクトやサービスが依存していますし、数百万のユーザアプリケーションでも使用されています。Windowsにはひとつのバージョンしかインストールできないので、互換性のバーが極めて高く、変更の可能な範囲は限られているのです。今後はバグ、パフォーマンス、セキュリティ、将来的な標準について、アップデートを続ける予定です。将来のイノベーションが実現されるのは.NET Coreになります。このプラットフォームはサイド・バイ・サイドで使用可能なので、アプリケーションを毀損するリスクなく変更することができます。

プロジェクトで.NETやC#を使用していない開発者にとって、.NET Coreに注目すべき理由は何なのでしょう?

Hunter: 現在は多くの開発者が、ジョブに最適なツールを使用しています。TechEmpower Benchmarkを見ると、.NET Coreは現存する最速のフレームワークのひとつになっています。.NETの中心言語であるC#言語には、非同期プログラミングを容易にするAsync/Awaitのような素晴らしい機能があります(他の多くのプラットフォームにコピーされています)し、関数言語のF#もサポートしています。Visual Studio for Windows、Visual Studio for Mac、Visual Studio Code、JetBrains Riderのような素晴らしい開発ツールもあります。

.NET Core 2.2や3.0、あるいはそれ以降に関して、ここに注目してほしい、という部分はありますか?

Hunter: 一般的なプラットフォームや.NETの経緯について説明しましたが、その他にも.NETには、サーバとクライアントの両方でWeb .NETを使ったアプリケーション開発を支援するプログラミングモデルである、Blazorのようなプロジェクトもあります。クライアントでは.NETをWeb Assemblyにコンパイルして、ブラウザ上でのネイティブスピードでの動作を実現していますし、.NETの強い型付けをクライアントとサーバの両方で使用できるようにしています。オープンソースの.NETマシンラーニングライブラリであるML.NETでは、.NETでのマシンラーニングをサポートしています。内部的なテクノロジはMicrosoftのプロダクトで長く使用されていたものですが、現在は内容を一般公開しています。

インタビュアーについて

Scott Hunter氏は、Microsoftのディレクタプログラムマネージャで、.NET担当として.NET Core、.NETツーリング、言語、ASP.NET、Entiry Framework、Webツーリングなど、Visual Studioと.NET全般を担当しています。

 

 

この記事は、.NET Coreの持つメリットと、それが従来からの.NET開発者のみならず、堅牢で高性能、かつ経済的なソリューションをマーケットに提供する必要のあるすべての技術者にとっていかに有用かを探る、一連のシリーズ記事の一部です。

.NET Core 3.0のリリースによってMicrosoftは、2016年に初めてリリースされた、汎用目的でモジュール型、かつクロスプラットフォームなオープンソースのプラットフォームの、新たなメジャーバージョンを手にすることになりました。元々は次世代のASP.NETソリューション実現を目的に開発された.NET Coreですが、現在ではIoTやクラウド、次世代モバイルソリューションなど多くのシナリオの基盤として、それらを牽引する存在になっています。バージョン3では、WinFormとWPFのサポート、Entity Framework 6など、これまで求められていた多くの機能が追加されています。

この記事に星をつける

おすすめ度
スタイル

BT