マイクロソフトは、Visual Studio Tools for Office を .NET Core に移植する要求を「もちろん検討します」から「いいえ」に転換しました。

Table of Contents

マイクロソフトは、Visual Studio Tools for Office を .NET Core に移植する要求を「もちろん検討します」から「いいえ」に転換しました。

Microsoft は、Visual Studio Tools for Office (VSTO) を .NET Core に移植するという長年の要望を終了し、「.NET Core を使用するために VSTO または COM アドイン プラットフォームを更新する予定はない」と述べました。

この問題は、2019年10月にC#で書かれたExcel VSTOアドインの開発者によって提起されました。「Winformsは.NET.Coreに移植されました。『新しい.NET』でC#によるアドオン開発を可能にするために、C#のVSTOも.NET 5に移植してください」と彼らは要請しました。

Microsoftは当初対応にあたり、翌月にはこの問題を「優先対応待ち」にしました。しかし先週、「.NET Core/.NET 5+ は.NET Framework と同じプロセスで動作できず、アドインの読み込みに失敗する可能性がある」ため、未修正のままクローズされました。

「フィードバック ボット」によるものとされるこの投稿では、開発者に対して「VSTO/COM アドイン プラットフォームは Microsoft にとって非常に重要」であると保証し、.NET のレガシー バージョンで引き続きサポートすることを約束しましたが、「今後はクロスプラットフォームの JavaScript API を使用することが推奨される」とも述べていました。

WordやExcelなどのOfficeアプリケーションは、Microsoftの最も古い製品群の一つであり、拡張や自動化を行う方法は数多くあります。中には、現在ではレガシーアプリケーションとみなされているものもありますが、ビジネスで広く使用されているため、現在もサポートされています。旧式のVisual Basic(VB.NET以前)は、Officeマクロ言語であるVBAとして今も生き続けています。

VSTOは、Officeベースのソリューションを.NETでコーディングするための手段として2003年に導入されました。Windowsコンポーネントオブジェクトモデル(COM)をベースとし、Officeが公開するすべてのAPIにアクセスできます。ただし、VSTOはWindows専用です。2012年頃、MicrosoftはJavaScript APIを使用してOfficeを拡張する新しい方法に着手しました。これはOffice Webアドイン、または単にOfficeアドインと呼ばれることもあります。これらはWebサーバー上でホストされ、より制限されたOffice JavaScript APIを使用します。

利点は、モバイルでもWebでもクロスプラットフォームで動作することです。2つのアプローチには共通点がほとんどなく、クライアントサイドのコードをJavaScriptに変換する以外に移行する方法はありません。

  • Microsoft、.NET開発者向けホットリロードをプレビュー、.NET 6のリリース日を設定
  • Azure をどこでも: Arc がオンプレミスの Kubernetes に App Service、Function Apps、Event Grid などを追加
  • マイクロソフトのクラウドがJAMstacked化:Azure Static Web Appsが本番環境で利用可能に
  • マイクロソフトは自社の技術を推進するために多大な努力を払ってきたが、調査によると多くの開発者が.NETの導入を逃しているようだ。
  • Visual Basic 6が帰ってきました。あなたは一年中、良い開発者でした。ソーシャルディスタンスを保ち、お母さんを助けました。ご褒美をどうぞ。

2019 年後半に .NET Core 3.0 が登場したことで、Microsoft は Windows Forms や Windows Presentation Foundation などの Windows 専用テクノロジを .NET のクロスプラットフォーム バージョンでサポートするようになりました。そのため、VSTO 開発者の多くは JavaScript API への移行を行っていなかったため、Office の .NET も更新されることを期待していました。

「これは本当に必要です... JS アドインは私たちのユースケースには機能しませんし、.NET Standard ライブラリにはすでに大規模なコード ベースが存在します」と別の開発者は述べています。

「当社の予測フレームワークは、OLAP ピボット テーブルと対話する Excel アドインに依存していますが、これは OfficeJS ではサポートされていません」と別のプログラマーは述べています。

Microsoftの発表は不評だった。「なぜJavaScriptを使わないのか?」という問いに対し、彼らはJavaScriptには必要な機能が欠けている、パフォーマンスが標準以下である、そしてWebアプリケーションを必要とするのは負担だと主張した。

「なぜ .NET Framework 4.8 (最新バージョン) で満足できないのか?」という質問に対して、彼らは、パフォーマンスが低下していること、ARM プラットフォームのネイティブ サポートなどの新機能が必要であること、他の .NET ライブラリとの互換性が将来問題になることを理由に挙げています。

「.Net Core 5/6には多くの改善点があるので、4.8のままでも問題ないと思います」と別の開発者は語った。「政府向けの大規模なWord VSTOアプリケーションをサポートし、機能追加も行っています。MicrosoftがVSTOコードをオープンソース化して、ユーザーが最新の.Net Coreバージョンに移行できるようにしてはどうでしょうか。」

レガシーアホイ: Word のアドインの種類

レガシーアホイ...Wordのアドインの種類

技術的な問題は複雑です。特定の開発者グループが.NET 5.0、あるいは近々リリースされる.NET 6.0へのアップグレードを推進している一方で、.NET Frameworkを使用するアドインは常に存在し、現在COMホスト(Officeなど)は1つのバージョンの.NETランタイムしかサポートできないという点が問題です。そのため、.NET Frameworkを必要とするアドインは、.NET Coreを必要とするアドインと互換性がなく、その逆も同様です。また、アプリケーションがサポートする.NET Coreのバージョンを指定できるため、複数のバージョンの.NET Coreをサポートする必要がある場合もあります。この制限の理由は根本的なものではありませんが、Microsoftが計画もテストもしていないシナリオです。

.NET Frameworkと.NET Coreのバージョンを並行して実行することに関するこちらの議論では、いくつかの問題点が取り上げられています。「複数の.NET Coreバージョンを同時に実行すると、非常に危険な状況になります」と、主任ソフトウェアエンジニアのアーロン・ロビンソン氏は述べています。

これまでの経緯から、Microsoftは.NET FrameworkベースのVSTOを当面サポートし続けると予想されます。しかしながら、JavaScript APIの使用時に開発者が直面する実際の制限にもかかわらず、.NET Core上のVSTOに関してMicrosoftが方針転換する可能性は低いでしょう。Officeは依然としてWindows上で最も適切に動作しますが、これはMicrosoftが開発者をWebベースのクロスプラットフォームソリューションへと導くために、ネイティブWindowsアプリケーションとしての地位を譲る意思があることを示しています。®

Discover More