Microsoft закрыла давний запрос на перенос Visual Studio Tools for Office (VSTO) на .NET Core, заявив, что «не будет обновлять VSTO или платформу надстроек COM для использования .NET Core».

Яндекс

Проблема была поднята в октябре 2019 года разработчиком надстроек Excel VSTO, написанных на C #. «Winforms был перенесен на .NET.Core. Пожалуйста, также перенесите VSTO с C # на .NET 5, чтобы разрешить разработку надстроек на C # в« новом .Net », — попросили они.

Microsoft изначально отреагировала, и в следующем месяце проблема была «поставлена ​​в очередь для определения приоритетов». Однако на прошлой неделе он был закрыт без исправлений, «потому что .NET Core / .NET 5+ не может работать вместе с .NET Framework в одном процессе и может привести к сбоям загрузки надстройки».

Сообщение, приписываемое «боту обратной связи», заверило разработчиков, что «платформа надстроек VSTO / COM очень важна для Microsoft» и пообещало продолжать поддерживать ее в устаревшей версии .NET, но также заявило, что «рекомендация движение вперед заключается в использовании кроссплатформенных API-интерфейсов JavaScript «.

Такие приложения Office, как Word и Excel, являются одними из старейших приложений Microsoft, и существует ряд способов их расширения и автоматизации, некоторые из которых теперь считаются устаревшими, но все еще поддерживаются из-за их широкого использования в бизнесе. Visual Basic старого стиля (до VB.NET) продолжает жить как VBA, язык макросов Office.

VSTO был представлен в 2003 году как способ использования .NET для кодирования решений на основе Office. Он основан на COM, модели компонентных объектов Windows, и имеет доступ ко всем API, предоставляемым Office. Однако VSTO доступен только для Windows. Примерно в 2012 году Microsoft приступила к новому способу расширения Office с помощью API JavaScript, который называется веб-надстройками Office или иногда просто надстройками Office. Они размещаются на веб-серверах и используют более ограниченные API JavaScript для Office.

Преимущество в том, что они работают на разных платформах, на мобильных устройствах и в Интернете. У этих двух подходов мало общего, и нет другого способа перенести код на стороне клиента, кроме как конвертировать его в JavaScript.

С появлением .NET Core 3.0 в конце 2019 года Microsoft поддержала технологии только для Windows, такие как Windows Forms и Windows Presentation Foundation, с кроссплатформенной версией .NET, что заставило разработчиков VSTO надеяться, что .NET в Office также будет обновлен. поскольку многие еще не перешли на JavaScript API.

«Нам это очень нужно … Надстройки JS не работают для наших вариантов использования, и у нас уже есть большая база кода в стандартных библиотеках .NET», — сказал другой разработчик.

«Наша структура прогнозирования основана на взаимодействии надстройки Excel со сводной таблицей OLAP, которая не поддерживается в OfficeJS», — сказал другой программист.

Заявление Microsoft резко ухудшилось. В ответ на вопрос «почему бы не использовать JavaScript?» они настаивают на том, что в нем отсутствуют нужные им функции, что производительность некачественная и что необходимость в веб-приложении является обузой.

На вопрос «почему бы не порадоваться .NET Framework 4.8 (последней версии)?» они говорят, что производительность упала, что им нужны новые функции, такие как встроенная поддержка платформ ARM, и что совместимость с другими библиотеками .NET будет проблемой в будущем.

«Я мог бы жить, оставаясь на 4.8, за исключением того, что в .Net Core 5/6 так много улучшений», — сказал другой разработчик. «Мы поддерживаем и добавляем функциональность в большое приложение Word VSTO для правительства … Может быть, Microsoft могла бы открыть исходный код VSTO, чтобы пользователи могли перенести его на современную версию .Net Core».

Legacy ahoy: типы надстроек в word
Читайте также:
NHS Trust начинает закупку программного обеспечения на 60 миллионов фунтов стерлингов для повышения эффективности кадрового обеспечения • Реестр

Legacy ahoy … Типы надстроек в Word

Техническая проблема непростая. Проблема в том, что, хотя определенная группа разработчиков настаивает на обновлении до .NET 5.0 или предстоящей версии .NET 6.0, всегда будут другие надстройки, использующие .NET Framework, и в настоящее время хосты COM (например, Office) могут поддерживать только одна версия .NET Runtime. Следовательно, надстройка, которая требовала .NET Framework, сломала бы надстройку, которая требовала .NET Core, и наоборот. Также может потребоваться поддержка нескольких версий .NET Core, поскольку приложения могут указывать, какую из них они поддерживают. Причины ограничения не являются фундаментальными, но это сценарий, который Microsoft не планировала и не проверяла.

Обсуждение здесь параллельного запуска версий .NET Framework и .NET Core охватывает некоторые препятствия. «Несколько версий .NET Core, работающих одновременно, могут стать очень рискованными», — сказал главный инженер-программист Аарон Робинсон.

История показывает, что Microsoft действительно продолжит поддерживать VSTO на основе .NET Framework в обозримом будущем. Однако перспективы изменения взглядов на VSTO на .NET Core выглядят неубедительно, несмотря на реальные ограничения, с которыми сталкиваются разработчики при попытке использовать API JavaScript. Office по-прежнему лучше всего работает в Windows, но это свидетельство того, что компания готова позволить ему отставать в качестве собственного приложения для Windows, чтобы подтолкнуть разработчиков к кроссплатформенным веб-решениям. ®