Урок 2. Обзор программирования

Урок 2: Обзор программирования

На предыдущем занятии мы узнали, как можно увеличить производительность в Autodesk Inventor, разработав плагин с весьма небольшим количеством кода на VB .NET.

Вероятно, вы уже слышали термины COM и .NET применительно к программированию для Inventor.  COM и .NET представляют собой технологии, которые позволяют программам взаимодействовать между собой:  если вы желаете узнать больше, загляните в раздел Дополнительные темы.

Сейчас мы рассмотрим более детально, что происходит во время выполнения программы из предыдущего занятия.

 

Обратная связь: напишите нам об этом занятии или о курсе «Мой первый плагин»: myfirstplugin@autodesk.com
Скачать файлы Inventor для урока 2
lesson2.zip (zip - 24Kb)
Что такое «построение» кода?

Программный код, который вы вводили на занятии 1, представляет собой набор инструкций на языке, понятном человеку. Это так называемый «исходный код», который, чтобы быть исполненным, должен быть преобразован в код, понятный компьютеру. «Построение» (build) и есть процесс формирования исполняемого кода в виде стандартного EXE-файла Windows.  Результатом построения может быть и DLL (библиотека динамической компоновки), которую можно загрузить в Autodesk Inventor, однако это более сложная тема, и ее в данном курсе мы обсуждать не будем.

На следующем рисунке показана копия экрана с результатами построения проекта из предыдущего занятия: выходной ЕХЕ-файл и вспомогательные файлы с отладочной информацией (она используется при отладке в случае каких-либо проблем с исполняемым файлом).  Путь, по которому создается ЕХЕ-файл, задается в установках проекта Visual Basic Express. Здесь он установлен по умолчанию — папка bin внутри папки проекта Visual Basic Express.

Выбор языка программирования и средств разработки

Как для общения между собой, так и для общения с компьютерами люди создали разнообразные языки. Поэтому при разработке программ для Inventor вам доступен целый ряд вариантов. В данном учебном курсе выбор пал на Visual Basic .NET (VB .NET). Это мощный язык программирования общего назначения, весьма популярный среди разработчиков программ для Inventor.

Для разработки программ на VB.NET имеются несколько инструментов от свободно распространяемого SharpDevelop до Visual Studio, флагманской профессиональной среды разработки Microsoft.  Здесь мы предлагаем вам использовать Visual Basic Express, бесплатную версию Visual Studio для разработки VB .NET приложений.

Visual Basic Express представляет собой интегрированную среду разработки (Integrated Development Environment, сокращенно IDE). Среда включает в свой состав различные инструменты, меню, командные панели, которые облегчают создание и работу с вашим программным кодом.

Система проектов Visual Basic Express состоит из решений (solution), файлов проектов и компонентов проектов (отдельных файлов, включенных в проект).  Каждое решение представляет собой контейнер для одного или нескольких проектов.  Каждый проект можно, в свою очередь, рассматривать как контейнер для его компонентов — исходных файлов, иконок и т.п., большая часть которых используется для формирования результирующих исполняемых файлов (EXE или DLL).  Visual Basic Express предоставляет в наше распоряжение Обозреватель решения (Solution Explorer), который организует и отображает содержимое текущего решения в древовидном формате.

Интерфейс Visual Basic Express включает также текстовый редактор и конструктор оконных интерфейсов.  Их отображение в главном окне среды разработки зависит от типа редактируемого файла.  Текстовый редактор — это то место, где вы будете вводить текст вашей программы на Visual Basic.  Этот редактор предоставляет в ваше распоряжение такие мощные инструменты как IntelliSense и сворачиваемые секции наряду с такими более традиционными средствами работы с текстом как закладки и нумерация строк программы.

IntelliSense — чрезвычайно удобный и полезный инструмент Visual Studio, который заметно повышает производительность программиста.  В процессе ввода кода он автоматически выводит контекстно-чувствительные подсказки в зависимости от редактируемого объекта и вводимых символов. На следующем рисунке IntelliSense отображает доступные свойства и методы объекта ComponentOccurrence:

Очевидно, что ключевой функцией Visual Basic Express является способность построить код VB .NET и получить исполняемый файл.  В процессе построения компилятор анализирует код и выполняет множество разнообразных проверок.  Например, выполняется проверка кода на соответствие синтаксическим правилам языка Visual Basic.  Компилятор выполняет и другие проверки. Например, он проверяет, инициализированы переменные или нет.  Обнаруженные ошибки отображаются в окне Список ошибок, которое обычно располагается в нижней части главного окна.  Окно Список ошибок можно открыть с помощью меню Вид -> Список ошибок.

Визуальное в Visual Basic Express

Одной из наиболее сильных сторон Visual Basic Express является набор средств для создания интерфейса пользователя.  При создании нового проекта вы можете выбрать вариант Приложение Windows Forms.  При использовании этого шаблона автоматически создается главное окно приложения.  Это окно называется формой, и вы можете разместить на ней элементы пользовательского интерфейса, называемые элементами управления, например, кнопки.  Вы добавляете в форму элементы управления простым перетаскиванием их из Панели элементов в рабочую область формы.  Панель элементов можно открыть, используя меню Вид > Панель элементов.  Большая часть кода, необходимого для корректной работы элементов управления, добавляется в проект автоматически, что серьезно облегчает и ускоряет разработку приложения.

Обзор применения Visual Basic Express

В этом разделе вы создадите пустой проект, похожий на проект из первого занятия.  Этот проект послужит отправной точкой для занятия 3.

  1. Создание приложения Windows Forms:
    Закройте в Visual Basic Express все открытые проекты.  Затем создайте новый проект,
    используя меню Файл > Создать проект…Эта команда выведет на экран диалоговое окно «Создать проект», в котором вам предоставляется возможность выбрать шаблон проекта для создания плагина.

    Поскольку вы работаете с Visual Basic Express,  установленные шаблоны следует искать в разделе Visual Basic.
    Список доступных шаблонов приложений располагается в центральной области диалогового окна.  Выбор шаблона зависит от типа создаваемого приложения.  Поскольку вы создаете простое EXE приложение с диалоговым интерфейсом, следует выбрать шаблон Приложение Windows Forms.

    Теперь следует присвоить проекту имя. Для этого в нижней части диалога в текстовом поле Имя введите MyFirstInventorPlug-in  и нажмите OK:  В результате будет создано и открыто в редакторе Visual Basic Express новое решение, которое уже содержит ваш проект.

  2. Просмотр ссылок на компоненты проекта (references):
    Только что созданный проект уже содержит несколько стандартных ссылок на основные компоненты .NET.  В этом легко убедиться, если в Обозревателе решений правым кликом на имени проекта открыть контекстное меню и выбрать в нем пункт  Свойства.

     

    Кроме стандартных ссылок на компоненты .NET, в проект уже включена пустая форма VB.  Это форма присутствует в окне редактора под именем Form1.vb.  Формы имеют два представления — Конструктор (Design) и Код (Code).  Вы можете переключаться между этими представлениями с помощью пунктов Открыть в конструкторе и Перейти к коду в контекстном меню, которое открывается правым кликом на Form1.vb в дереве Обозревателя решений.

  3. Добавление ссылок на компоненты:
    Итак, в Visual Basic Express имеем пустой проект  Приложение Windows Forms.

    Но этот проект еще не в состоянии работать с Inventor API.  Чтобы это стало возможным, требуется ввести в проект ссылку на интерфейсную DLL Инвентора с описанием его API — Autodesk.Inventor.Interop.dll.

    Правым кликом на проекте в Обозревателе решений откройте контекстное меню и выберите пункт Добавить ссылку…  С помощью вкладки Обзор внутри папки, в которой на вашем ПК установлен Inventor, найдите папку Public Assemblies. Путь к ней выглядит следующим образом: 
    C:\Program Files\Autodesk\Inventor 201x\Bin\Public Assemblies

     Выделите файл Autodesk.Inventor.Interop.dll и нажмите  OK.


    Теперь ссылка на Inventor API включена в ваш проект.

  4. Обозреватель объектов:
    Прежде чем двигаться дальше, рассмотрим Обозреватель объектов (Object Browser). Этот инструмент поможет вам понять, каким образом можно использовать конкретные объекты Inventor API.  После подключения к проекту сборки взаимодействия Autodesk.Inventor.Interop.dll, объекты Inventor API становятся доступными к просмотру в Обозревателе объектов.  Обозреватель отображает иерархические связи между различными объектами.  Помимо навигации по древовидным спискам  вам доступен и непосредственный поиск объектов по именам.  Если объект найден и указан слева в дереве, на панели справа вы можете видеть его методы и свойства.  На копии экрана ниже слева выделен объект Application и среди его методов и свойств выделено свойство ActiveDocument.  Попробуйте таким же образом получить информацию о других свойствах.

    Примечание:
    Открыть Обозреватель объектов можно через меню Вид либо с помощью функциональной клавиши F2.

     

  5. Мы готовы к использованию Inventor API
    Теперь мы готовы к использованию Inventor API в коде Visual Basic Express и можем создавать команды для решения Инвентором определенных задач.

  6. Построение проекта:
    В процессе работы над программой имеет смысл периодически выполнять построение решения.  И хотя код на этапе разработки может быть незавершенным и нефункциональным, такой подход позволяет выявлять возможные ошибки на более ранней стадии работы, что сэкономит вам немало времени.

    Чтобы построить проект, используйте пункт Построить <имя проекта> в меню Построение.



    В случае успеха в левом нижнем углу окна VB Express в строке состояния будет выведено сообщение: «Построение завершено успешно».

  7. Сохранение файлов решения
    В меню Файл следует вызвать команду Сохранить все.  При сохранении решения физически создаются файлы, в которых на жестком диске сохраняется все содержимое проекта.  Это дает возможность продолжить работу впоследствии.
    Промежуточные итоги:  в этом занятии вы получили представление о том, что происходит в процессе построения проекта, узнали важную информацию об основах VB.NET и Visual Basic Express.  Вы создали с нуля новый проект Windows Forms и добавили в проект необходимую ссылку на Inventor API.
Дополнительные темы

Visual Basic Express или Visual Studio Professional?

В данном руководстве использован Visual Basic Express.  Эта бесплатная версия Visual Studio является прекрасным инструментом, который поможет вам  начать разработку VB-кода для вашего плагина без дополнительных затрат на программное обеспечение.  Microsoft позиционирует редакции Express как инструмент для студентов, любителей и прочих нерегулярно программирующих пользователей.  Несмотря на присутствие большинства важных функциональных особенностей Visual Studio Professional, таких как IntelliSense, редакции Express все же имеют и ряд ограничений.  Например, в Visual Basic Express доступно заметно меньшее количество шаблонов приложений, есть ограничения в средствах диагностики проблем и вариантах отладки кода.  Если вы в дальнейшем намерены серьезно заниматься разработкой приложений, мы рекомендуем рассмотреть варианты приобретения более профессиональной версии семейства Visual Studio.

Что такое COM?

 «Microsoft COM (Component Object Model) — технология, реализованная в семействе операционных систем Windows с целью обеспечить взаимодействие программных компонентов.  COM используется разработчиками для создания многократно используемых программных компонентов, объединения компонентов в приложения и использования преимуществ служб Windows.  Объекты COM могут создаваться различными инструментами разработки. Объектно-ориентированные языка типа С++ предоставляют программные механизмы для упрощения разработки COM-объектов.»
Перевод из MSDN Library.

COM положена в основу технологии API, применявшейся в предыдущих поколениях Visual Basic, включая Visual Basic for Applications (VBA).  В настоящее время одни разработчики вводят в свои Windows-приложения вводят .NET интерфейс, тогда как другие продолжают развивать COM-интерфейс, поскольку его можно вызывать из приложений .NET (подробнее см. ниже).

Что такое .NET?

.NET Framework является платформой разработки на базе операционной системы Microsoft® Windows® и предоставляет среду выполнения, общую систему типов, библиотеки классов и важные сервисы (например, распределение и освобождение памяти) всем .NET-приложениям. 

Подмножества .NET доступны и для других операционных систем, либо с помощью проекта Mono на базе свободного программного обеспечения, либо через Microsoft® Silverlight®, но обсуждение этих вопросов выходит за рамки данного руководства

Что входит в .NET Framework?

В .NET Framework входят два основных компонента:

  1. Common Language Runtime (CLR)Это среда выполнения, которая ответственна за управление выполнением программного кода.  По этой причине код, разработанный для .NET, называется управляемым (managed code).  Любой управляемый код выполняется под контролем CLR. Что это означает?  CLR управляет кодом, предоставляя такие базовые службы как управление памятью (в том числе и автоматическое освобождение более не используемой компьютерной памяти для использования другими программами), обработка ошибок (исключений), управление многопоточностью, гарантированное обеспечение правил работы с различными объектами.  CLR поистине является базисом .NET Framework.

  2. Библиотека классов .NET FrameworkКак следует из наименования, это библиотека или набор типов объектов, которые вам доступны при разработке своих приложений. Приложения .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).

В данном руководстве вы сфокусируетесь на разработке приложения конкретного типа: сборки исполняемого кода (EXE), который взаимодействует с Inventor.  EXE-приложения проще в разработке, и вам не придется тратить время на изучение надстроек Inventor AddIns в виде DLL, которые загружаются и работают в одном процессе с Инвентором. Разработка EXE для работы с Inventor проще и в части создания интерфейса.  Обычно внешнему исполняемому приложению не требуется гладко встраиваться в пользовательский интерфейс самого Inventor, создавая, скажем, свои кнопки в ленте.

Схемы выполнения EXE программы

Во время исполнения промежуточный код сборки .NET передается оперативному JIT компилятору среды CLR (JIT = just-in-time) для компиляции кода в команды процессора. С целью ускорения и экономии памяти JIT-компилятор преобразует только минимально необходимый CIL-код.  Кроме того, он сохраняет результаты компиляции, чтобы не делать ее дважды, если исходный код не менялся.

На последнем этапе этого процесса родной машинный код исполняется процессором компьютера.

Более подробную информацию о процессе построения приложений .NET можно найти в MSDN Library.