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.
Ссылка на оригинал:
09/09/2011
Обсуждение: http://adn-cis.org/forum/index.php?topic=462
Опубликовано 15.01.2014Отредактировано 16.01.2014 в 01:43:12