我々は5月、Microsoftが、WinFormとWPFを.NET Core 3.0で実行可能にする計画を持っていることを報告した。これを促進するために同社は、どちらのAPIを.NET Coreに移植すべきかを投票する、新たなツールを開発している。ただし直接投票ではなく、アプリケーションでどちらのAPIが使用されているかに基づくものだ。
同社がこのために使用されるツールは、Portability Analyzerというものだ。このツールのこれまでのバージョンは、コンソールやASP.NETアプリケーションの機能を決定するための使用されていた。ツールのGUIバージョンを実行する場合は、ディレクトリを選択する必要がある。exeまたはdllの名称を貼り付けると、アナライザは正しく動作しない。
このイニシアティブの下では、WinFormsとWPFがクロスプラットフォームになることのない点には注意が必要だ。目標とされているのは、Windows開発者が、.NET Coreでのデプロイメントとパフォーマンス向上を享受できることである。
ただし、クロスプラットフォームUIが長期的に可能性がないと言う訳ではなく、WinFormsのMono/Linuxバージョンを.NET Coreに移植することは可能かも知れない。あるいは、XAMLベースのAvaloniaプロジェクトに弾みのつく可能性もある。.NET Core 3の発表についてコメントしている開発者たちから、何らかのクロスプラットフォームGUIが公開されることにも関心が持たれる。
検討中のAPIを網羅したリストは存在しないが、Immo Landwerth氏が関連する情報を公開している。
上流工程において、次のようなことを決定しました。
- リモーティングは、(現時点では).NET Coreには移行しない
- Partial Trust/CAS/サンドボックスは、(現時点では).NET Coreでは有効にしない
- System.Web、WF、WCFホスティングは、.NET Core 3.0でのタイムフレームでは移行しないが、ユーザのフィードバックがあれば将来的に実施する
それ以外のものについては、どれだけ多くの人々が影響を受けるか、3.0に間に合わせることが可能かによって、事実上決定されるものと思います。
開発者のコメントでは、彼らが最も必要とするAPIがいくつか挙げられている。Jan Friedrich氏は、
私たちのアプリを.net coreに移植する上では、WCFのホスティングが唯一不足しているものです。WCFにホストしているアプリケーションが15あります。
Ryan氏もこれに同意して、
私のアプリケーションの大部分は問題ありませんが、ひとつだけ不足しているのがWCFです。議論になっているようですので、私もそれに一票を投じたいと思います。私は双方向TCPを使用して、クライアント上のアプリとターミナルサービスのリモートセッション内のアプリとの間で通信を行っています。WebSocker実装にスイッチすることは可能だと思うのですが、リソース使用量を抑制するためにこの方法にしています(ある機能要件に関連して検討したことはありますが、いずれにしてもサービス定義の大幅な変更が必要になります)。
InfoQでは次週、サーバサイドWCFに関する議論を取り上げる予定である。
この記事を評価
- 編集者評
- 編集長アクション