ADN Open CIS
Сообщество программистов Autodesk в СНГ

15/01/2014

Autodesk.Connectivity.Explorer.ExtensibilityTools.dll

Autodesk.Connectivity.Explorer.ExtensibilityTools.dll

Эта публикация посвящена библиотеке Autodesk.Connectivity.Explorer.ExtensibilityTools.dll.  Внешне она выглядит как собрание полезных функций, но нужно кое-что знать, чтобы ими успешно пользоваться.


Наиболее важны два момента:

  • Обращение к этой DLL создает внутри вашего процесса мини-Vault Explorer.
  • Вызовы функций сопровождаются существенными затратами ресурсов.  Например, загрузка (Download) небольшого файла Inventor потребует загрузки в память 60-мегабайтной DLL, что при первом обращении может занять до полутора секунд. 

Концепция ExtensibilityTools довольно проста — предоставить несколько функций для выполнения операций на стороне клиента.  Web service API имеет дело с серверным функционалом.  Он  по своей природе не предназначен для решения любых задач на стороне клиента.  Между тем, клиент Vault Explorer легко выполняет множество операций на стороне клиента.  Разработчики часто спрашивают о его возможностях, характеризуя их как «он же должен работать просто как Vault Explorer».

Фокус же заключается в том, что использование функционала Vault Explorer отнюдь не является столь простым делом.  Скажем, Update Properties представляет собой очень сложную проблему, если свойство сопоставлено свойствам CAD-файла.  В таких случаях для обновления файла на диске приходится загружать CAD API.  А это значит, что А) вам должны быть доступны API разных CAD и Б) у вас должно быть понимание, какими из них и как следует воспользоваться.

Если всю эту логику поместить непосредственно в SDK, он невероятно разрастется, поскольку в его составе придется распространять целую кучу CAD API.  Вместо этого ExtensibilityTools действуют как своего рода шлюз к Vault Explorer, в котором уже имеются все поддерживаемые CAD API's.  Достигаются обе цели – и SDK невелик, и многократно используется уже имеющийся функционал.  Оборотная сторона состоит в том, что Vault Explorer создавался совершенно не заточен для подобного использования.  Он оптимизирован для работы с пользовательским интерфейсом, а не для использования в качестве библиотеки функций.


Рекомендации:

  • Если возможно, загружайте IExplorerUtils только один раз и храните ссылку на него.
  • Имейте ввиду, что нет простого способа выгрузить сборку .NET.  Это может иметь значение в условиях ограничений по памяти.
  • Идеальная ситуация, если вы занимаетесь кастомизацией самого Explorer.  В этом случае нет проблемы с долгой загрузкой, поскольку Vault Explorer уже в памяти.  В этом случае вызывайте ExplorerLoader.GetExplorerUtil вместоf LoadExplorerUtil.

 

Известные проблемы:

  • Неработает с базовым Vault – Вам нужны версии типа Workgroup, Collaboration или Professional.
  • Не может работать внутри Inventor – Vault Explorer использует Inventor Apprentice.

 

Ссылка на оригинал: 

http://justonesandzeros.typepad.com/blog/2011/09/autodeskconnectivityexplorerextensibilitytoolsdll.html

09/09/2011



Обсуждение: http://adn-cis.org/forum/index.php?topic=462

Опубликовано 15.01.2014
Отредактировано 16.01.2014 в 01:43:12