|
Теперь остановимся поподробнее на непосредственной разработке расширения для RAD Studio, а точнее, на портировании Visual Studio плагина PVS-Studio под эту IDE. Наш IDE плагин разрабатывается с помощью C# для .NET/WinForms. Соответственно, он нативно поддерживается в среде Visual Studio. Сама Visual Studio, точнее, её ядро — это нативное приложение (правда, всё больше компонентов с каждой версией переписываются под WPF), взаимодействие её с managed плагином организовано не напрямую, а через COM интерфейсы. Эти интерфейсы формируют её так называемый extensibility API. Но, как это ни странно на первый взгляд, RAD Studio также способна подгружать managed библиотеки в качестве модулей расширения и предоставляет для них аналогичные COM интерфейсы. Скорее всего, это является тяжёлым наследием мертворождённого проекта C#Builder, который должен был обеспечить возможность разработки под .NET Framework из RAD Studio. Набор данных интерфейсов объединяется под термином OTA (Open Tools API). Работа с этими интерфейсами теоретически доступна из любого внешнего приложения. Тут стоит упомянуть, что RAD Studio предоставляет ещё один набор интерфейсов для создания именно нативных расширений (т.е. библиотек bpl) — NTA (Native Tools API). Причём некоторый функционал (как например, создание docking MDI рабочих окон) доступен только для клиентов данных интерфейсов. К сожалению, эти интерфейсы доступны только для нативных IDE модулей, написанных на тех же C++Builder/Delphi. Однако даже ограниченного OTA функционала оказалось для наших потребностей достаточно на 99%, а самым заметным из недостающего функционала стало как раз отсутствие способности к докингу у инструментальных MDI окон.
|