Открыть сервис

Visual Studio Shell

Visual Studio Shell — это набор инструментов и библиотек от компании Microsoft, который позволяет разработчикам создавать собственные интегрированные среды разработки (IDE) и редакторы, основанные на платформе Visual Studio. Visual Studio Shell предоставляет базовую инфраструктуру ядра Visual Studio, включая систему управления окнами, командами, меню, панелями инструментов, проектами и отладкой, без необходимости лицензировать или распространять полную версию Visual Studio. Он был разработан для независимых поставщиков программного обеспечения (ISV) и корпоративных клиентов, желающих адаптировать среду разработки под специфические языки программирования, предметные области или внутренние рабочие процессы.

История

Идея создания Visual Studio Shell возникла в ответ на запросы сообщества разработчиков и партнёров Microsoft, стремившихся использовать мощный фреймворк Visual Studio для создания нишевых инструментов. Первая версия, Visual Studio 2008 Shell (также известная как «Codenamed Orcas»), была выпущена в ноябре 2007 года вместе с Visual Studio 2008. Она предлагала два режима: изолированный (Isolated Shell) и интегрированный (Integrated Shell). Изолированный режим позволял запускать пользовательское приложение как отдельный процесс с собственным набором окон и команд, не смешиваясь с основной средой Visual Studio. Интегрированный режим, напротив, встраивал пользовательские компоненты непосредственно в окно Visual Studio, что было удобно для расширения стандартной IDE.

В последующих версиях (Visual Studio 2010, 2012, 2013, 2015, 2017 и 2019) Shell продолжал развиваться, получая новые возможности, такие как поддержка платформы Windows Presentation Foundation (WPF) для пользовательского интерфейса, улучшенная система расширений через Managed Extensibility Framework (MEF) и интеграция с новыми технологиями, например, .NET Core. С выходом Visual Studio 2020 и последующих версий Microsoft изменил стратегию, перейдя к концепции Visual Studio Extensions и платформы VS SDK (Software Development Kit). Тем не менее, понятие «Shell» остаётся важным для понимания архитектуры расширяемости Visual Studio.

Типы Visual Studio Shell

Microsoft выделяла два основных типа Shell, которые различались по степени изоляции от полной среды Visual Studio:

Изолированный Shell (Isolated Shell)

Интегрированный Shell (Integrated Shell)

Устройство и архитектура

Visual Studio Shell построен на модульной архитектуре, ключевыми компонентами которой являются:

Архитектура Shell обеспечивает чёткое разделение между инфраструктурой, предоставляемой Microsoft, и пользовательским кодом. Разработчик работает с API, описанными в Visual Studio SDK, и не обязан модифицировать базовый код Shell.

Применение

Visual Studio Shell нашёл широкое применение в различных областях:

Специализированные IDE

Разработка инструментов для конкретных языков

Промышленная автоматизация и встраиваемые системы

Корпоративные приложения

Преимущества и недостатки

Преимущества

Недостатки

Критика и эволюция

В сообществе разработчиков высказывались претензии к некоторым аспектам Visual Studio Shell. В частности, отмечалась высокая «тяжеловесность» результирующих приложений — для загрузки простого редактора могли требоваться сотни мегабайт памяти. Кроме того, лицензионная модель Shell считалась непрозрачной: для коммерческого распространения требовалось приобретать расширенную лицензию на Visual Studio (VS Pro/Enterprise), а сам Shell не входил в бесплатные версии Visual Studio Express.

С середины 2010-х годов Microsoft начала активно продвигать более лёгкую и кроссплатформенную среду Visual Studio Code (VS Code), построенную на основе Electron. Это привело к тому, что часть ISV перешла на VS Code как платформу для создания собственных инструментов, поскольку она была бесплатной, работала на Windows, macOS и Linux, а также имела более динамичную экосистему расширений. Однако для задач, требующих глубокой интеграции с отладчиком, системой проектов и классического Windows-интерфейса, Visual Studio Shell остаётся актуальным решением в корпоративной и промышленной разработке.

В последних версиях Visual Studio (2022 и более новых) Microsoft официально прекратила поддержку Isolated Shell как отдельного продукта. Вместо Shell рекомендуется использовать архитектуру Extension Model внутри полной Visual Studio или переходить на Visual Studio Code. Тем не менее, многие старые приложения (например, SSMS 18.x) продолжают поддерживаться на основе Shell, а их исходный код доступен под открытой лицензией.

Интересные факты

Источники

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →