Урок второй: знакомство со средой разработки (перевод)

На предыдущем уроке вы узнали, как повысить производительность AutoCAD, подключив плагин, созданный из короткого кода Visual Basic .NET.
.NET (или .NET Framework) – это технология, созданная Microsoft, позволяющая программистам создавать и расширять приложения. Программист может использовать .NET Framework для создания нового приложения с нуля, для реализации связи или взаимодействия между двумя приложениями или для расширения приложения путём подключения плагинов (как мы делаем для AutoCAD). Если вы хотите узнать больше, вы можете найти информацию в разделе «Дополнительные темы».
А сейчас мы более подробно рассмотрим построение и выполнение кода из предыдущего урока.
Что значит «строить» код?
Код написанный в Visual Studio в уроке 1, представляет собой набор понятных человеку инструкций (исходный код), который необходимо преобразовать в код, который может быть понят и выполнен компьютером. Выполняемая операция «build» делает именно это: она упаковала полученный исполняемый код в библиотеку DLL (Dynamic-Link Library), которая может быть загружена в AutoCAD.
На изображении показан итоговый файл в формате DLL вместе с соответствующей базой данных отладки программы (она предоставляет дополнительную информацию при устранении проблем работы DLL), которую вы создали с помощью Visual Studio в уроке 1. Путь к папке, в которую компилируется DLL прописан в Visual Studio и по умолчанию записывается в подпапку bin\Release или bin\Debug в папке Visual Studio (в зависимости от того выполняли ли вы операцию «Debug» – об этом мы поговорим далее).

Выбор языка программирования и инструмента разработки.
Так же как люди общаются на разных языках, вы доступна возможность написать плагин для AutoCAD на нескольких языках: в этом руководстве мы остановимся на Visual Basic .NET – это мощный язык программирования общего назначения. Visual Basic .NET особенно популярен среди людей, которые учатся программировать, так как синтаксис языка проще, чем у многих других языков (например C# или С++).
Для написания кода Visual Basic .NET существует ряд инструментов. Их множество: от инструментов с открытым исходным кодом, таких как SharpDeveloper и MonoDeveloper до профессиональной среды разработки Microsoft Visual Studio. Это руководство предполагает, что вы используете Visual Studio Community, бесплатную версию Visual Studio для создания приложений Visual Basic .NET.
Visual Studio Community – это интегрированная среда разработки (IDE – Integrated Development Environment), поскольку она состоит из различных инструментов, меню и панелей инструментов, которые облегчают создание и управление кодом.
Система проекта в Visual Studio Community содержит файлы решений (Solution) и проектов (Project files), а также элементы проекта (Project items), отдельные файлы, относящиеся к проектам. Решение (Solution) представляет из себя контейнер для одного или нескольких проектов. Каждый проект, в свою очередь, может считаться контейнером для элементов проекта, таких как исходные фалы, иконки и т.д. – большинство из которых скомпилируется в результирующий исполняемый файл (EXE или DLL). Visual Studio Community представляет собой обозреватель решений, который организует и отображает содержимое загруженного решения в формате дерева.

Интерфейс Visual Studio Community содержит текстовый редактор и редактор интерфейсов. Они отображаются в главном окне в зависимости от типа редактируемого файла. В текстовом редакторе вы вводите код Visual Basic .NET для своего плагин для AutoCAD. Этот редактор предоставляет расширенные функции, такие как IntelliSense и разборка кода на разделы, а также классические возможности редактирования текста, такие как закладки (метки) и отображение номеров строк.
IntelliSence – важнейшая функция программ Visual Studio, которая значительно повышает производительность программиста: она автоматически предлагает варианты написания кода на основе набираемых объектов кода и букв. Вы уже видели IntelliSence в работе, когда вводили код в уроке 1. Это одна из причин, по которой мы не просто копировали и вставляли текст.
Очевидно, что одной из ключевых особенностей Visual Studio Community является его способность записывать код Visual Basic .NET в исполнительный файл. Во время процесса сборки файла компилятор языка выполняет различные проверки и анализирует код. Одна из проверок – соответствие кода синтактическим правилам языка Visual Basic .NET. Компилятор также выполняет и другие проверки, например, была ли определена переменная или нет. Обнаруженные ошибки выводятся в специализированное окно, которое находится в нижней части экрана. Если вы допускали ошибки при вводе кода из первого урока, то видели работу этого окна, когда собрать ваш плагин.

Обзор Visual Studio Community.
Здесь пойдёт речь о тех действиях, которые вы выполняли в Visual Studio Community на предыдущем уроке. Однако мы рассмотрим их в контексте того, что вы только что узнали о программировании в целом и о создании кода.
1. В первом шаге вы просто запустили Visual Studio Community.
2. Далее вы создали новый проект Visual Basic .NET для плагинов AutoCAD.
3. Поскольку язык программирования, используемый в этом руководстве – Visual Basic .NET, вы работаете с Visual Basic в Visual Studio Community, и поэтому вы увидите Visual Basic в разделе Installed Templates в диалоговом окне New Project. Шаблон для создания плагинов AutoCAD представляет собой шаблон библиотеки классов с некоторыми дополнительными настройками.
В центре диалогового окна вы видите различные типы приложений, которые вы можете создать; Вы выбираете шаблон в соответствии с типом приложения, которое вы хотите создать.
Имя, введённое в нижней части экрана, используется для идентификации проекта.
3. Был создан пустой проект, содержащий стандартные ссылки на основные компоненты .NET и ссылки на три файла, определяющие API AutoCAD (AcCoreMgd.dll, AcMgd.dll и AcDbMgd.dll). Также в проект включены два файла Visual Basic .NET ((MyCommands.vb и MyPlugin.vb), вероятно вы удалили файл MyPlugin.vb из проекта, так как в данном руководстве он не нужен). Эти файлы содержат простой шаблонный код. Щелчок по одному из этих фалов в Solution Explorer отобразит содержащийся в нём код в окне текстового редактора.
4. Вы просмотрели раздел References в My Project и проверили правильно ссылок на AcCoreMgd.dll, AcMgd.dll и AcDbMgd.dll (Примечание: AcCoreMdg.dll нужен для AutoCAD версии 2013 и выше).
5. Во время сохранения были созданы физические файлы на жёстком диске компьютера, что даёт возможность открывать и редактировать их в дальнейшем. Вы закрыли и повторно открыли проект, чтобы Visual Studio Community правильно проанализировал файлы проекта.
6. AcCoreMgd.dll, AcMgd.dll и AcDbMgd.dll содержат определения API AutoCAD, которые наиболее часто используются в плагинах. Вы всегда будете ссылаться на эти файлы в ваших проектах плагинов для AutoCAD. Конечно иногда придётся ссылаться и на другие файлы.
– AcMgd.dll содержит API для управления самим приложением AutoCAD – определение пользовательских команд для открытия, закрытия документов, печати и т.д.
– AcDbMgd.dll содержит API для создания, редактирования или запроса содержимого файла DWG.
– Начиная с AutoCAD 2013 API находившиеся в файле AcMdg.dll были разделены между AcMdg.dll и AcCoreMgd.dll. AcCoreMgd.dll содержит API-интерфейсы, связанные с регистрацией приложений AutoCAD (такие как выбор рабочего пространства, команды и ключевые слова), а AcMgd.dll содержит связанные с пользовательским интерфейсом API (такие как диалоги).
Когда вы создали проект плагина AutoCAD, в диалоговом окне AutoCAD.NET Wizard Configurator эти файлы были выбраны по умолчанию (их нельзя исключить из выбора). Также там были предоставлены варианты включения других файлов определения API, но мы их проигнорировали.
7. Затем вы добавили код Visual Basic .NET, используя API AutoCAD в свой проект. Другими словами, вы предоставили AutoCAD инструкции о том, как изменять поведение атрибутов блока при его повороте.
При написании кода, не плохо бы создавать сборки (Build) чтобы проверить, есть ли ошибки в коде. При этом не обязательно чтобы код был полным или функциональным. Такой подход поможет избежать длительного исправления кода в последующем, а также у вас всегда будут сохранённые файлы перед началом сборки.
Чтобы создать сборку внутри Visual Studio Community, выберете Build Solution в раскрывающемся меню Build.
Если процесс сборки прошёл успешно, в нижнем левом углу приложения Visual Studio Community появиться сообщение build Succeeded. Если в коде будут найдены ошибки, Visual Studio Community отобразит список ошибок с пояснениями. Так же ошибки в коде будут подчёркнуты синим цветом. Вот пример выделения ошибки, специально добавленной в код, написанный вами на уроке.

В этом уроке вы познакомились с тем, что происходит, когда вы создаёте проект, а также изучили справочную информацию о Visual Basic .NET и Visual Basic Community.
Дополнительные материалы.
Visual Studio Community и Visual Studio Professional.
Для целей этого руководства вы используете Visual Studio Community. Это бесплатная версия Visual Studio, и поэтому это отличный инструмент для начала обучения. Microsoft позиционирует Microsoft Visual Community как решение для студентов, и людей для кого программирование является дополнительным заработком или хобби. Хотя эта версия и предоставляет большинство функций Visual Studio Professional, таких как IntelliSence, но имеет и ряд ограничений. Например, в базовой версии меньше шаблонов проектов и имеются ограничения возможностей отладки и устранения неполадок кода. Если вы собираетесь вплотную заняться разработкой плагинов, в том числе коммерческих, мы рекомендуем вам инвестировать средства в более функциональную версию Visual Studio.
*Существует несколько «профессиональных» версий Visual Studio. Посетите сайт Microsoft посвящённый Visual Studio для получения дополнительной информации.
Что такое .NET?
Оставшаяся часть урока насыщена техническим жаргоном. Не волнуйтесь, если не поймёте что-то при первом прочтении. ВЫ начнёте разбираться в терминах, когда познакомитесь с .NET после написания нескольких собственных плагинов.
.NET Framework – это программная среда, ставящаяся поверх операционной системы Windows и представляет собой базовую платформу с библиотеками и службами для всех приложений .NET. Она включает в себя функции управления памятью, сбора мусора, общая система типов, библиотеки классов и т. д.
* Разновидности .NET также доступны и в других операционных системах, будь то проект с открытым исходным кодом Mono или Microsoft Silverlight, но мы не будем углублять в этот вопрос.
Из чего состоит .NET Framework?
В основе framework лежит два основных компонента:
1. Common Language Runtime (CLR) – это механизм выполнения в .NET Framework, ответственный за управление выполнением кода. Именно поэтому код, написанный для этой среды, также известен как управляемый код. Все управляемые коды выполняются под контролем CLR, но что это значит? CLR управляет кодом, предоставляю основные функции, такие как управление памятью (в том числе автоматическое освобождение памяти компьютера для нужд других задач, когда она уже больше не требуется), обработку ошибок (или исключений), управление использованием нескольких потоков выполнения программы и обеспечение правила использования разных типов объектов. CLR является фундаментом .NET Framework.
2. Библиотека классов .NET Framework. Как следует из названия, это библиотека типов объектов, которые могут быть использованы на основании кода приложения .NET. Приложения .NET предназначены для Windows (будь то командная строка или графический интерфейс пользователя), WEB или мобильные устройства. Эта библиотека доступна для всех языков, использующих .NET Framework.
Как упоминалось выше, CLR повышает надёжность кода, гарантируя, что код соответствует системе общих типов (CTS). CTS гарантирует, что весь код .NET – независимо от языка – использует один набор типов объектов и может работать в одной среде. Именно эта функция позволяет вам писать приложения на выбранном вами языке, и при этом использовать компоненты кода, написанные программистами с использованием языков .NET.
Исполняемые файлы
Когда вы собираете код в exe-файл, он компилируется в код Common Intermediate Language (CIL, также именуемый MSIL) с использованием компилятора. CIL – это независимый от процессора набор команд, который может быть выполнен CLR в операционных системах Windows. CIL переносится в 32 и 64-разрядные системы и в некоторой степени в не Windows операционные системы. Код CIL, сгенерированный из вашего из исходного кода VB, затем был упакован в сборку .NET. Эта сборка представляет собой библиотеку кода CIL, хранящуюся в формате Portable Executable (PE) (который содержит как CIL, так и связанные с ним метаданные). Сборки могут быть либо сборками процессов (EXE), либо сборками библиотек (DLL).
В этом руководстве вы сосредоточитесь на разработке определённого вида плагина AutoCAD: сборка процессов (EXE), которая связана с AutoCAD. Из-за трудоёмкости, связанной с их разработкой, вы не будете тратить время на просмотр AutoCAD Addlns, которые обычно являются сборками библиотек (DLL), которые загружаются и исполняются в памяти AutoCAD. Одна из причин того, что внедрение EXE для работы с AutoCAD проще, чем разработка Addln, связана с его пользовательским интерфейсом: исполняемые файлы не нужно интегрировать в пользовательский интерфейс AutoCAD, например, добавляя кнопки в ленту.
Запуск исполняемых файлов
Во время выполнения сборки .NET, CIL (находящийся в сборке) передаётся компилятором CLR just-in-time (JIT) для генерации собственного (или машинного) кода. Компиляция JIT CIL в собственный код происходит во время выполнения приложения. Поскольку во время выполнения не требуется весь код, компилятор JIT преобразует CIL только тогда, когда это требуется для экономии времени и памяти. Также он сохраняет все сгенерированные коды в памяти, делая их доступными в дальнейшем без необходимости перекомпиляции.
В конце этого процесса собственный код запускается процессором компьютера.
Если вы хотите получить более подробную информацию о процессе создания приложений .NET, обратитесь к библиотеке MSDN.

Добавить комментарий

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.