Общие сведения о средах разработки и объектных моделях InfoPath 2007
Microsoft Office InfoPath 2007 поддерживает три типа моделей программирования для разработки бизнес-логики в шаблонах форм, а также поддерживает внешнюю автоматизацию из управляемого кода.
Microsoft Office Forms Server 2007 и аналогичные возможности форм, называемые Служба InfoPath Forms Services и предоставляемые в Microsoft Office SharePoint Server 2007, обеспечивают объектную модель для автоматизации серверных задач.
Office InfoPath 2007 поддерживает три среды разработки и несколько языков программирования, описанных далее в этом разделе. Выбор среды разработки зависит, в частности, от модели программирования, с которой требуется работать.
Модели программирования InfoPath
Office InfoPath 2007 поддерживает три объектных модели для разработки бизнес-логики в шаблонах форм, перечисленные ниже.
Объектная модель сценариев и COM.
Объектная модель управляемого кода, совместимая с InfoPath 2003.
Новая объектная модель управляемого кода InfoPath.
Кроме того, Office InfoPath 2007 предоставляет возможность написания управляемого кода для автоматизации InfoPath из внешнего приложения.
Microsoft Office Forms Server 2007 и Служба InfoPath Forms Services предоставляют объектную модель для автоматизации серверных задач, таких как проверка и отправка шаблонов форм из кода, выполняемого на сервере, что требует прав и разрешений администратора сервера.
Объектная модель сценариев и COM
Объектная модель сценариев и COM реализована в следующих файлах библиотек динамической компоновки (DLL-файлах), расположенных в папке C:\Program Files\Microsoft Office\Office12.
Библиотеки динамической компоновки | Описание |
---|---|
IPEDITOR.DLL |
Обеспечивает объектную модель на основе COM для редактирования форм InfoPath во время выполнения. Предоставляет объекты и члены, которые можно вызывать из бизнес-логики, написанной на языках JScript и VBScript. Также предоставляет методы объекта Application и коллекции XDocuments, которые можно вызывать из компонентов и приложений COM для автоматизации приложения InfoPath. |
IPDESIGN.DLL |
Предоставляет интерфейсы на основе COM для создания пользовательских конвертеров форм, а также объекты ExcelImporter и WordImporter для создания новых шаблонов форм InfoPath путем импорта структур форм, созданных в приложениях Excel и Word. |
Заметка |
---|
Создание бизнес-логики с использованием языков сценариев (JScript и VBScript) в объектной модели сценариев и COM по-прежнему поддерживается клиентом InfoPath, однако бизнес-логика, реализованная в сценарии, не поддерживается в шаблонах форм с поддержкой веб-обозревателя, развернутых в Office Forms Server 2007 или Microsoft Office SharePoint Server 2007 с Служба InfoPath Forms Services. В шаблонах форм с поддержкой обозревателя необходимо использовать новую объектную модель управляемого кода InfoPath для пользовательской бизнес-логики. |
Дополнительные сведения об автоматизации сценариев и COM см. в справочной документации для разработчиков InfoPath, доступ к которой можно получить, щелкнув ссылку Справка Microsoft Office InfoPath в меню Справка приложения Office InfoPath 2007.
Объектная модель управляемого кода, совместимая с InfoPath 2003
Объектная модель управляемого кода, совместимая с InfoPath 2003, впервые была представлена в пакете обновления 1 для InfoPath 2003 в сочетании с набором средств Microsoft Office InfoPath 2003 Toolkit для Visual Studio .NET. Эта объектная модель, предназначенная для написания бизнес-логики в шаблонах форм с управляемым кодом, по-прежнему поддерживается в Office InfoPath 2007 для обеспечения совместимости с InfoPath 2003.
Классы и члены этой объектной модели предоставляются через пространство имен Microsoft.Office.Interop.InfoPath.SemiTrust. Эта объектная модель реализована в указанном ниже файле сборки, расположенном в папке C:\Program Files\Microsoft Office\Office12.
Сборка | Описание |
---|---|
Microsoft.Office.Interop.InfoPath.SemiTrust.dll |
Обеспечивает COM-взаимодействие в объектной модели COM, совместимой с InfoPath, для бизнес-логики шаблонов форм, написанной на языке C# или Visual Basic .NET. |
Заметка |
---|
Создание бизнес-логики с помощью объектной модели управляемого кода COM-взаимодействия, предоставляемой сборкой Microsoft.Office.Interop.InfoPath.SemiTrust, по-прежнему поддерживается в Office InfoPath 2007, однако бизнес-логика, написанная с использованием этой объектной модели, не поддерживается в шаблонах форм с поддержкой веб-обозревателя, развернутых в Office Forms Server 2007 или Microsoft Office SharePoint Server 2007 с Служба InfoPath Forms Services. В шаблонах форм с поддержкой обозревателя необходимо использовать новую объектную модель управляемого кода InfoPath для пользовательской бизнес-логики. |
Заметка |
---|
При создании проекта шаблона формы, совместимого с InfoPath 2003 (что обеспечивается путем указания для параметра Язык кода шаблона формы значения C# (совместимый с InfoPath 2003) или Visual Basic (совместимый с InfoPath 2003) в категории Программирование диалогового окна Параметры формы), по умолчанию все вызовы будут обращаться к членам пространства имен Microsoft.Office.Interop.InfoPath.SemiTrust, обеспечивающим обратную совместимость. Однако, если обратная совместимость больше не требуется, можно использовать члены новой объектной модели в пространстве имен Microsoft.Office.Interop.InfoPath.SemiTrust. Дополнительные сведения см. в разделе Практическое руководство. Использование элементов Microsoft.Office.Interop.InfoPath.SemiTrust, несовместимых с InfoPath 2003. |
Новая объектная модель управляемого кода InfoPath
Новая объектная модель управляемого кода InfoPath реализована в двух сборках, которые обе называются Microsoft.Office.Infopath.dll.
Одна версия этой сборки реализует поднабор объектной модели InfoPath, содержащий только типы и члены, поддерживаемые в бизнес-логике шаблонов форм, которые развернуты как шаблоны форм с поддержкой веб-обозревателя в среде Office Forms Server 2007 или Microsoft Office SharePoint Server 2007 с Служба InfoPath Forms Services. Шаблоны форм с бизнес-логикой, написанной с применением этой сборки, будут открываться и запускаться в InfoPath и в веб-обозревателе.
Другая версия этой сборки реализует полную объектную модель InfoPath, содержащую дополнительные типы и члены, которые предоставляют возможности, не поддерживаемые в бизнес-логике для шаблонов форм с поддержкой веб-обозревателя. Шаблоны форм с бизнес-логикой, написанной с применением содержащихся в этой сборке специальных классов и членов InfoPath, будут открываться и запускаться только в InfoPath.
Заметка |
---|
Чтобы определить, в какой среде запускается шаблон формы (InfoPath или веб-обозреватель), можно написать условную логику, использующую свойства класса Environment. Используя эту условную логику, бизнес-логика может осуществлять переходы между ветвью кода, работающей в веб-обозревателе, и ветвью кода, написанной с применением классов или членов, работающих только в InfoPath. Дополнительные сведения см. в разделе Практическое руководство. Написание условной логики, определяющей среду выполнения |
Сборка, используемая приложением InfoPath при добавлении и компиляции бизнес-логики в шаблоне формы, зависит от того, устанавливается ли флажок Включить только возможности, совместимые с веб-обозревателем в диалоговом окне Создать форму в начале разработки новой формы. Этот параметр можно также изменить в диалоговом окне Параметры формы в категории Совместимость, установив или сняв флажок Макет шаблона формы, который можно открыть в веб-обозревателе или в InfoPath.
Классы и члены из обеих версий этой объектной модели предоставляются через пространство имен Microsoft.Office.InfoPath. Эти сборки размещаются в указанных ниже каталогах на компьютере с установленным Office InfoPath 2007.
Сборка | Описание |
---|---|
Microsoft.Office.InfoPath.dll (located in C:\Program Files\Microsoft Office\Office12\InfoPathOM) |
Поднабор объектной модели, содержащий только типы и члены, которые будут запускаться в бизнес-логике шаблона формы, развернутого на сервере Служба InfoPath Forms Services (установлен флажок Включить только возможности, совместимые с веб-обозревателем или Макет шаблона формы, который можно открыть в веб-обозревателе или в InfoPath). |
Microsoft.Office.InfoPath.dll (located in C:\Program Files\Microsoft Office\Office12\) |
"Полная" объектная модель, включающая типы и члены, которые не будут запускаться в бизнес-логике шаблона формы, развернутого на сервере Office Forms Server 2007 (флажок Включить только возможности, совместимые с веб-обозревателем или Макет шаблона формы, который можно открыть в веб-обозревателе или в InfoPath снят). |
Заметка |
---|
Указанные выше сборки используются во время разработки при написании и компиляции кода. Во время выполнения сборка, которая используется при открытии шаблона в InfoPath, размещается в глобальном кэше сборок на компьютере, на котором установлено приложение InfoPath. Когда шаблон формы открывается в веб-обозревателе с сервера Служба InfoPath Forms Services, используется сборка, расположенная на сервере. |
Предоставление двух сборок позволяет реализовать систему, при которой в бизнес-логике содержатся только вызовы соответствующих членов объектной модели для поддерживаемых редакторов форм (веб-обозревателя или InfoPath). Например, при редактировании кода функции IntelliSense, такие как завершение операторов и встроенная документация, будут отображаться и работать только для членов объектной модели, соответствующих указанному редактору или редакторам.
В обеих версиях новой объектной модели управляемого кода, предоставляемой сборкой Microsoft.Office.InfoPath, для переходов по хранилищам XML-данных и обновления этих хранилищ в бизнес-логике требуются вызовы членов класса System.Xml.XPath.XPathNavigator. В InfoPath 2003 для переходов по хранилищам XML-данных и обновления этих хранилищ требуется вызов членов классов MSXML 5.0 (для бизнес-логики, созданной с помощью JScript или VBScript) или вызов через оболочки для классов MSXML 5.0, предоставляемые пространством имен Microsoft.Office.Interop.InfoPath.SemiTrust (для бизнес-логики, созданной с помощью C# или Visual Basic и набора Microsoft Office InfoPath 2003 Toolkit для Visual Studio .NET).
Использование членов класса XPathNavigator позволяет тому же коду бизнес-логики поддерживать работу с моделью DOM для шаблонов форм, открываемых и в клиенте InfoPath, и в формах с поддержкой веб-обозревателя, открываемых из Office Forms Server 2007 или из Microsoft Office SharePoint Server 2007 с Служба InfoPath Forms Services в веб-обозревателе.
Сведения о работе с членами класса XPathNavigator в бизнес-логике для шаблонов форм InfoPath с управляемым кодом см. в разделе Практическое руководство. Работа с классами XPathNavigator и XPathNodeIterator.
Автоматизация InfoPath из управляемого кода
Помимо написания бизнес-логики с помощью управляемого кода можно автоматизировать InfoPath, используя управляемый код, выполняемый во внешнем приложении. Эта функция и сборки, необходимые для написания кода, впервые были представлены в пакете обновления 1 для InfoPath 2003. Объекты и члены, необходимые для автоматизации InfoPath, в версии Office InfoPath 2007 были обновлены для обеспечения дополнительных возможностей при написании внешнего кода автоматизации.
Классы и члены, используемые для внешней автоматизации, предоставляются через пространства имен Microsoft.Office.Interop.InfoPath и Microsoft.Office.Interop.InfoPath.Xml. Файлы сборок, необходимые для написания кода автоматизации, расположены в папке C:\Program Files\Microsoft Office\Office12.
Сборка | Описание |
---|---|
Microsoft.Office.Interop.InfoPath.dll |
Обеспечивает COM-взаимодействие в объектной модели COM, совместимой с InfoPath, для кода внешней автоматизации, написанного на языке C# или Visual Basic .NET. |
Microsoft.Office.Interop.InfoPath.Xml.dll |
Предоставляет COM-взаимодействие в MSXML 5.0 для операций XML DOM в коде внешней автоматизации, написанном на языке C# или Visual Basic .NET. |
Сведения об объектных моделях, предоставляемых пространствами имен Microsoft.Office.Interop.InfoPath и Microsoft.Office.Interop.InfoPath.Xml, которые используются исключительно для автоматизации приложения InfoPath с помощью управляемого кода из внешних приложений, см. в статье "Автоматизация InfoPath из других приложений" в документации, устанавливаемой вместе с Набор средств Microsoft Visual Studio 2005 для Microsoft Office System 2007.
Объектная модель Office Forms Services
Объектная модель управляемого кода для автоматизации задач администрирования Office Forms Server 2007 или Служба InfoPath Forms Services реализована в файле Microsoft.Office.InfoPath.Server.dll, который расположен в папке <диск>:\Program Files\Microsoft Office Server\12.0\Bin на компьютере с установленным Office Forms Server 2007 или Microsoft Office SharePoint Server 2007.
Сборка | Описание |
---|---|
Microsoft.Office.InfoPath.Server.dll |
Объектная модель для автоматизации таких задач Office Form Server, как отправка, включение и выключение шаблонов форм с поддержкой веб-обозревателя. |
Дополнительные сведения об объектной модели Office Forms Services см. в пакете SDK для Microsoft Office Forms Server 2007, доступном на узле MSDN.
Среды разработки InfoPath
Разработку бизнес-логики в шаблонах форм Office InfoPath 2007 можно выполнить с использованием одной из трех сред разработки, перечисленных ниже.
Редактор сценариев Microsoft
Набор средств Microsoft Visual Studio для приложений (VSTA)
Интеграция режима конструктора InfoPath с помощью Набор средств Microsoft Visual Studio 2005 для Microsoft Office System 2007 или Visual Studio 2008 с Visual Studio Tools для Office
Выбор среды разработки зависит, в частности, от языка программирования и объектной модели, используемых для написания бизнес-логики. Сведения, помогающие выбрать среду разработки, предоставлены в следующих разделах.
Редактор сценариев (Майкрософт)
Как и в случае с InfoPath 2003, для написания бизнес-логики с помощью кода JScript или VBScript в объектной модели COM, совместимой с InfoPath, используется редактор сценариев (Майкрософт), который по умолчанию устанавливается и интегрируется с приложением Office InfoPath 2007. Функции этой среды разработки в целом аналогичны функциям InfoPath 2003. Чтобы разработать бизнес-логику с помощью JScript или VBScript в редакторе сценариев (Майкрософт), откройте шаблон формы в режиме конструктора. Откройте диалоговое окно Параметры формы, выберите категорию Программирование и установите для параметра шаблона формы Язык программирования значение JScript или VBScript.
Пакет Visual Studio Tools for Applications (VSTA)
Если на компьютере установлена платформа Microsoft .NET Framework 2.0 и службы Microsoft Core XML Services (MSXML) 6.0, то можно установить среду разработки Набор средств Microsoft Visual Studio для приложений (VSTA) параллельно с Office InfoPath 2007. Если же при установке InfoPath компоненты Microsoft .NET Framework 2.0 и MSXML6 не были установлены, то необходимо загрузить и установить их, чтобы получить возможность пользоваться средой разработки VSTA. (Платформа Microsoft .NET Framework 2.0 доступна в качестве необязательного обновления ПО в Центре обновления Windows, а службы MSXML6 доступны на веб-узле MSDN.)
Среда разработки VSTA не устанавливается по умолчанию при выборе варианта Обычная для установки InfoPath. Чтобы установить VSTA, следует выбрать при первоначальной установке вариант Настройка или воспользоваться средством Установка и удаление программ для обновления установленной версии Office или InfoPath с включением VSTA. Параметр установки VSTA доступен путем развертывания пунктов Microsoft Office InfoPath, Поддержка программирования .NET и Поддержка программирования .NET для .NET Framework 2.0.
Среду VSTA можно использовать для написания бизнес-логики на языке C# или Visual Basic в объектной модели, совместимой с InfoPath 2003 (члены пространства имен Microsoft.Office.Interop.InfoPath.SemiTrust) или новой объектной модели управляемого кода (члены пространства имен Microsoft.Office.InfoPath).
Заметка |
---|
Хотя для установки среды Visual Studio Tools for Applications требуются службы MSXML6, шаблоны форм InfoPath и редактор InfoPath основываются только на службах MSXML5. |
Интеграция режима конструктора InfoPath в Visual Studio
В пакете инструментов Visual Studio Tools for Office представлена новая функция, которая позволяет полностью интегрировать среду разработки шаблонов форм Office InfoPath 2007 со средой разработки Visual Studio. Не покидая среды Visual Studio, можно работать с функциями Office InfoPath 2007 для разработки внешнего вида шаблона формы параллельно с написанием управляемого кода для расширения возможностей этого шаблона.
Функции конструктора форм InfoPath можно интегрировать в Visual Studio 2005 путем установки пакета Набор средств Microsoft Visual Studio 2005 для Microsoft Office System 2007, который можно загрузить с портала разработчиков InfoPath на веб-узле MSDN. Перед установкой Набор средств Microsoft Visual Studio 2005 для Microsoft Office System 2007 требуется установить среду Visual Studio 2005 и приложение Office InfoPath 2007. В качестве альтернативы можно воспользоваться средой Visual Studio 2008 с Visual Studio Tools для Office.
Эту среду разработки можно использовать для написания бизнес-логики на языке C# или Visual Basic в объектной модели COM-взаимодействия (члены пространства имен Microsoft.Office.Interop.InfoPath.SemiTrust) или новой объектной модели управляемого кода (члены пространства имен Microsoft.Office.InfoPath).
Обслуживание, создание и преобразование шаблонов форм, работающих с объектной моделью InfoPath 2003
Среды разработки VSTA и интеграции режима конструктора InfoPath с Visual Studio для Office InfoPath 2007 позволяют, не прерывая работу, открывать проекты шаблонов форм InfoPath, созданные с помощью набора инструментов Microsoft Office InfoPath 2003 Toolkit для Visual Studio .NET или пакета инструментов Visual Studio 2005 для системы Microsoft Office.
Заметка |
---|
Пользователям шаблонов форм, скомпилированных с помощью VSTA, Набор средств Microsoft Visual Studio 2005 для Microsoft Office System 2007 или Visual Studio 2008 с Visual Studio Tools для Office необходимо установить на компьютере платформу Microsoft .NET Framework 2.0. В то же время пользователям шаблонов форм, скомпилированных с помощью Visual Studio .NET 2003, требуется на компьютере только платформа Microsoft .NET Framework 1.1. |
Также можно использовать любую среду разработки для создания новых проектов шаблонов форм с управляемым кодом, работающих с объектной моделью InfoPath 2003, обеспечивая таким образом обратную совместимость с InfoPath 2003. Чтобы воспользоваться этими средами разработки и сохранить обратную совместимость, создайте новый шаблон формы, выберите пункт Параметры формы в меню Сервис, а затем в категории Программирование выберите в качестве языка кода шаблона формы либо C# (совместимый с InfoPath 2003), либо Visual Basic (совместимый с InfoPath 2003).
Кроме того, можно преобразовать шаблон формы, работающий с объектной моделью InfoPath 2003, для использования новой объектной модели InfoPath с управляемым кодом. Сведения о преобразовании шаблонов форм см. в разделе Практическое руководство. Открытие и преобразование шаблона формы, созданного с помощью сценария или набора инструментов InfoPath.
См. также
Задачи
Пошаговое руководство. Создание базовых шаблонов форм с управляемым кодом
Пошаговое руководство. Создание и отладка начального шаблона формы с помощью объектной модели InfoPath 2003