Файл: История возникновения интегрированных средств разработки.pdf
Добавлен: 24.04.2023
Просмотров: 330
Скачиваний: 1
Поддержка языков программирования добавляется с помощью специального пакета VSPackage, называемого языковой службой. Языковая служба определяет различные интерфейсы, которые реализация VSPackage может реализовать для добавления поддержки различных функций. Функциональные возможности, которые можно добавить таким образом, включают раскраску синтаксиса, завершение операторов, сопоставление фигурных скобок, всплывающие подсказки с информацией о параметрах, списки членов и маркеры ошибок для фоновой компиляции. Если интерфейс реализован, функциональность будет доступна для языка. Языковые услуги реализуются на основе языка. Реализации могут повторно использовать код из синтаксического анализатора или компилятора для языка. Языковые службы могут быть реализованы как в собственном коде, так и в управляемом коде. Для нативного кода можно использовать как нативный COM-интерфейс, так и Babel Framework (часть Visual Studio SDK). Для управляемого кода MPF включает в себя оболочки для написания управляемых языковых сервисов.
Visual Studio не включает встроенную поддержку контроля версий, но определяет два альтернативных способа интеграции систем контроля версий с IDE. Source Control VSPackage может предоставить собственный настраиваемый пользовательский интерфейс. Напротив, плагин управления исходным кодом, использующий MSSCCI (интерфейс управления исходным кодом Microsoft), предоставляет набор функций, которые используются для реализации различных функций управления исходным кодом, со стандартным пользовательским интерфейсом Visual Studio. MSSCCI был впервые использован для интеграции Visual SourceSafe с Visual Studio 6.0, но позже был открыт через Visual Studio SDK. Visual Studio .NET 2002 использовал MSSCCI 1.1, а Visual Studio .NET 2003 использовал MSSCCI 1.2. Visual Studio 2005, 2008 и 2010 используют MSSCCI версии 1.3, в которой добавлена поддержка переименования и удаления распространения, а также асинхронного открытия.
Visual Studio поддерживает запуск нескольких экземпляров среды (каждый со своим собственным набором VSPackages). Экземпляры используют разные кусты реестра (см. Определение MSDN термина «куст реестра» в используемом здесь смысле) для хранения своего состояния конфигурации и различаются по их AppId (идентификатор приложения). Экземпляры запускаются специфичным для AppId .exe, который выбирает AppId, устанавливает корневой куст и запускает IDE. VSPackages, зарегистрированные для одного AppId, интегрированы с другими VSPackages для этого AppId[6]. Различные редакции продукта Visual Studio создаются с использованием разных идентификаторов приложений. Продукты выпуска Visual Studio Express устанавливаются со своими собственными AppId, но продукты Standard, Professional и Team Suite имеют один и тот же AppId. Следовательно, можно установить выпуски Express вместе с другими выпусками, в отличие от других выпусков, которые обновляют ту же установку. Профессиональная версия включает расширенный набор VSPackages в стандартной версии, а набор команд включает расширенный набор VSPackages в обеих других редакциях. Система AppId используется оболочкой Visual Studio в Visual Studio 2008.
Редактор кода Visual Studio также поддерживает установку закладок в коде для быстрой навигации. Другие навигационные средства включают в себя сворачивающиеся блоки кода и добавочный поиск, в дополнение к обычному.
Как и любая другая IDE, она включает редактор кода, который поддерживает подсветку синтаксиса и завершение кода, используя IntelliSense для переменных, функций, методов, циклов и запросов LINQ. IntelliSense поддерживается для включенных языков, а также для XML, каскадных таблиц стилей и JavaScript при разработке веб-сайтов и веб-приложений. Предложения автозаполнения появляются в немодальном списке над окном редактора кода, рядом с курсором редактирования. В Visual Studio 2008 и более поздних версиях его можно временно сделать полупрозрачным, чтобы увидеть препятствующий ему код. Редактор кода используется для всех поддерживаемых языков.
Редактор кода Visual Studio также поддерживает установку закладок в коде для быстрой навигации. Другие вспомогательные средства включают в себя сворачивающиеся блоки кода и добавочный поиск, в дополнение к обычному текстовому поиску и поиску регулярных выражений. Редактор кода также включает буфер обмена из нескольких элементов и список задач. Поддерживает фрагменты кода, которые являются сохраненными шаблонами для повторяющегося кода и могут быть вставлены в код и настроены для проекта, над которым выполняется работа. Инструмент управления для фрагментов кода также встроен. Эти инструменты отображаются как плавающие окна, которые можно настроить на автоматическое скрытие, когда они не используются или прикреплены к боковой части экрана. Редактор кода Visual Studio также поддерживает рефакторинг кода, включая, среди прочего, переупорядочение параметров, переименование переменных и методов, извлечение интерфейса и инкапсуляцию членов класса внутри свойств[7].
Visual Studio поддерживает фоновую компиляцию (также называемую добавочной компиляцией). По мере написания кода Visual Studio компилирует его в фоновом режиме, чтобы обеспечить обратную связь об ошибках синтаксиса и компиляции, которые отмечены красной волнистой линией. Предупреждения отмечены зеленым подчеркиванием. Фоновая компиляция не генерирует исполняемый код, поскольку требует компилятора, отличного от того, который использовался для генерации исполняемого кода. Фоновая компиляция была первоначально введена с Microsoft Visual Basic, но теперь была расширена для всех включенных языков.
Visual Studio включает в себя отладчик, который работает как отладчик уровня источника и как отладчик уровня компьютера. Он работает как с управляемым кодом, так и с собственным кодом и может использоваться для отладки приложений, написанных на любом языке, поддерживаемом Visual Studio. Кроме того, он также может подключаться к запущенным процессам, отслеживать и отлаживать эти процессы. Если исходный код для запущенного процесса доступен, он отображает код во время его выполнения. Если код недоступен, он может показать разборку. Отладчик Visual Studio также может создавать дампы памяти и загружать их позже для отладки. Многопоточные программы также поддерживаются. Отладчик можно настроить на запуск при сбое приложения, работающего вне среды Visual Studio.
Отладчик позволяет устанавливать точки останова (которые позволяют временно остановить выполнение в определенной позиции) и наблюдать (которые отслеживают значения переменных по ходу выполнения). Точки останова могут быть условными, то есть они срабатывают при выполнении условия. Код можно перешагнуть, то есть запустить по одной строке (исходного кода) за раз. Он может либо входить в функции для отладки внутри него, либо перешагивать через него. Выполнение тела функции недоступно для ручной проверки. Также поддерживает редактирование и позволяет редактировать код во время отладки. При отладке, если указатель мыши находится над какой-либо переменной, ее текущее значение отображается во всплывающей подсказке («подсказки данных»), где его также можно изменить, если необходимо. Во время кодирования отладчик Visual Studio позволяет вызывать определенные функции вручную из окна инструмента Immediate. Параметры метода предоставляются в окне «Немедленно».
Дизайнер Visual Studio включает в себя множество визуальных дизайнеров, чтобы помочь в разработке приложений. Эти инструменты включают в себя:
- Конструктор Windows Forms используется для создания приложений с графическим интерфейсом с использованием Windows Forms. Расположение может контролироваться путем размещения элементов управления внутри других контейнеров или фиксации их на стороне формы. Элементы управления, отображающие данные (например, текстовое поле, список и представление сетки), могут быть связаны с источниками данных, такими как базы данных или запросы. Элементы управления с привязкой к данным можно создавать, перетаскивая элементы из окна «Источники данных» на поверхность конструктора. Пользовательский интерфейс связан с кодом с использованием модели программирования, управляемой событиями. Дизайнер генерирует код приложения на C # или VB.NET.
- WPF Designer.
- Дизайнер WPF под кодовым названием Cider был представлен в Visual Studio 2008. Как и дизайнер Windows Forms, он поддерживает метафору перетаскивания. Он используется для создания пользовательских интерфейсов, ориентированных на Windows Presentation Foundation. Он поддерживает все функции WPF, включая привязку данных и автоматическое управление макетом.
В 2019 году Visual Studio были произведены некоторое новые функции. Рассмотрим их далее:
- Новый интерфейс создания проектов;
- Новые возможности установки обновлений – теперь можно выбрать способ установки обновлений Visual Studio и полностью контролировать его («Сервис -> Параметры»), а также обновления Visual Studio загружаются в фоновом режиме, только когда компьютер бездействует;
- Доступна совместная работа с другими пользователями с помощью среды Visual Studio Live Share, которая устанавливается по умолчанию;
- Переработан интерфейс среды, в частности увеличено вертикальное пространство для кода;
- Добавлен вид расширения: «Бесплатное», «Платное» и «Пробная версия» – теперь гораздо легче распознать версию расширения, также добавлены соответствующие теги, для более удобного поиска;
- Система управления версиями – теперь можно временно сохранить изменения, чтобы работать над другими задачами, это возможно благодаря поддержке временного хранилища Git средствами Git в Team Explorer;
- Очистка кода одним щелчком – теперь отреагировать на предупреждения и рекомендации среды можно одним нажатием кнопки;
- Усовершенствованный поиск – теперь поиск выдает более точные результаты (а также поиск стал возможен в окнах отладки);
- Индикатор хода выполнения сборки – теперь мы можем наблюдать более подробные сведения о ходе выполнения сборки, полезно, если проект крупный и на его сборку затрачивается много времени.
VS2019 выглядит великолепно. Что касается внешнего вида, в старой Visual Studio есть несколько изменений:
Рис 1 - Изменения в интерфейсе
Рис 2 - Обновленный интерфейс режима отладки
Поле поиска Ctrl + Q переместилось вправо от меню и немного изменило функциональность. Новые функции включают нечеткий поиск, более быстрые результаты и функцию «поиска в Интернете»:
Рис 3 - Интерфейс поиска
Проблема может быть ошибкой, предупреждением или предложением. Предложения являются новой функцией в VS2019. Идея состоит в том, чтобы найти и исправить проблемы со стилем и форматированием в вашем коде. Например, вы можете автоматически применять ключевое слово var, когда это возможно. Или автоматически сортировать и удалять ненужные с помощью операторов. Это можно настроить:
Рис 4 - Интерфейс автоматической настройки форматирования
Каждая новая версия Visual Studio реализует множество функций, которыми ReSharper обладает некоторое время. Однако, в отличие от JetBrains, задача команды Microsoft намного сложнее, поскольку им необходимо поддерживать широкий спектр языков программирования и конфигураций.
Были добавлены новые функции отладки. Отладка имеет несколько интересных новых дополнений в VS 2019. Шаговые действия (F10, F11,…) теперь намного быстрее[8].
В окно Locals добавлены возможности поиска:
Рис 5 - Интерфейс окна “Locals”
Здесь можно искать во всем или только в настоящее время расширенные элементы. Также можно определить, на сколько уровней должен идти поиск. Это крайне удобное дополнение, но в его текущей форме есть некоторые ограничения и предостережения:
- Поиск довольно медленный, так как он индивидуально оценивает каждое выражение в дереве.
- Поиск останавливается на каждом найденном объекте и продолжается только при нажатии «Найти далее» (F3). Поскольку поиск идет медленно и останавливается на каждой находке, вы не можете просмотреть все элементы и запустить его во время обеденного перерыва.
- По тем же причинам, что и упомянутые, вы не можете получить счетчик всех поисковых запросов.
- Поиск ограничен окнами Locals, Autos и Watch, поэтому вы не можете использовать его в DataTip или QuickWatch отладчика.
OzCode обладает гораздо более продвинутыми возможностями поиска по сравнению, что обеспечивает мгновенный поиск в стиле Google. Это на несколько порядков быстрее, чем поиск в Visual Studio.
Сравнение OzCode и Visual Studio:
- Поиск Visual Studio занял 17 секунд для 100 объектов Customer, где последним был Билл Гейтс. Поиск OzCode занял менее 1 секунды на 5000 клиентов. Он также имеет множество дополнительных возможностей, таких как условный поиск и автозаполнение. Вы можете попробовать OzCode 4.0 EAP (который уже поддерживает VS2019) и убедитесь сами.
- В отличие от функции поиска OzCode, которая в настоящее время поддерживает только C #, поиск в Visual Studio поддерживает Visual Basic, C ++ и любой другой язык программирования, который поддерживается в VS. В целом, это хорошее начало столь необходимой функции.
Вы можете фильтровать шаблоны в соответствии с языком, платформой и типом проекта. Это намного лучше, чем в предыдущем древовидном представлении.
Рис 6 - Окно создания нового проекта
IntelliCode не является частью Visual Studio 2019. В настоящее время расширение Visual Studio, которое вы можете установить.
Рис 7 - Всплывающее окно “IntelliCode”
Данное расширение добавит предложенные варианты автозаполнения в ваш Intellisense. За ним стоит технология машинного обучения, которая сканирует проекты с открытым исходным кодом на GitHub и изучает наиболее распространенные действия, которые может выполнить программист. Таким образом, в вышеприведенном случае AI узнал, что после Replace наиболее распространенным является использование Length, Contains, StartsWith, Replace или EndsWith.
Следующий представитель интегрированных сред разработки: IntelliJ IDEA - это интегрированная среда разработки Java (IDE) для создания компьютерного программного обеспечения. Он разработан JetBrains (ранее известный как IntelliJ) и доступен в виде лицензии сообщества Apache 2. Они оба могут быть использованы для коммерческой разработки.
Первая версия IntelliJ IDEA была выпущена в январе 2001 года и была одной из первых доступных Java IDE с интегрированными возможностями навигации по коду и рефакторинга кода.
В отчете Infoworld за 2010 год IntelliJ получил наивысшую оценку центра тестирования из четырех лучших инструментов Java-программирования: Eclipse, IntelliJ IDEA, NetBeans и JDeveloper.
В декабре 2014 года Google анонсировала версию 1.0 Android Studio, IDE с открытым исходным кодом для приложений Android, основанную на версии сообщества IntelliJ IDEA с открытым исходным кодом. Другие среды разработки, основанные на инфраструктуре IntelliJ, включают AppCode, CLion, DataGrip, GoLand, PhpStorm, PyCharm, Rider, RubyMine, WebStorm и MPS.
Среда предоставляет определенные функции, такие как автозавершение кода путем анализа контекста, навигация по коду, которая позволяет напрямую переходить к классу или объявлению в коде, рефакторинг кода, связывание и опции для исправления несоответствий с помощью предложений.