|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
![]() |
2 | | #1 |
Шаблон оформления плагинов AutoCAD
C, C++, C#
С-Пб.
Регистрация: 07.10.2009
Сообщений: 2,762
|
||
Просмотров: 30709
|
|
||||
Как-то быстро тебя "улыбнуло", там в одной только документации 68 листов.
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome: |
||||
![]() |
|
||||
строю, ломаю Регистрация: 03.04.2008
Украина
Сообщений: 5,515
|
не потому ли мегософтверные гиганты запихивают свои так называемые лицензионные соглашения в текстовый формат, чтоб их мог прочитать даже самый тупой юзер
зачем юзеру версия модуля, которую он не сможет подгрузить? может не прав, но каталог bin - пережиток прошлого, атавизм дос, а вот где папка Help не понятно насчет "правильного" решения... программист на лисп просто зашьет текстовый файл в модуль vlx и будет читать оттуда насчет настроек... тут дело вкуса, реестр, ini, xml у каждого свои плюсы и минусы насчет автоматической правки справки, ну, да, большая лень - реактивный двигатель прогресса имхо. как-то уж слишком много эксэмеля... |
|||
![]() |
|
||||
2 gomer
ты ничего не понял.
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome: |
||||
![]() |
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,372
|
hwd, ты все правильно сделал. Такая система, безусловно, нужна. Вот только кому?
Само собой, что в первую очередь себе. Ты её будешь придерживаться и будешь делать хорошие, унифицированные "плагины" (как ты их называешь). А ещё кому? Много ли у нас .NET-программистов? Много ли "всяких разных" программистов, работающих именно в MS Visual Studio 2010? Чтобы XSD и XSLT использовать? Можешь хотя бы оценочно назвать количество? 1? 10? 100000? Или у тебя есть фирма с кучкой .NET-программистов? Которых надо "привести к общему знаменателю"? А много ли таких "плагинов" вообще сделано? Хотя бы лично тобой? В России? В мире? Сколько именно, хотя бы примерно? Можно примерный тематический список? А много ли таких плагинов сваливается на "адмнистраторов САПР" со стороны? Много ли таких "администраторов" вообще? 1? 10? 100000? И какого уровня эти "плагины", чтобы на них затрачивать такие усилия по унификации и документированию? Уровня "dellayer" или, например, 3D-моделирования "чего угодно", или хотя бы уровня СПДС? А то вот мне попадалось .NET-приложение, которое ажно IP-адрес машины определяет и выводит в красивой рамочке. Думаю, что эта, в принципе очень полезная работа, пока делается с прицелом на далекое-далекое будущее. Но тогда её надо на китайском документировать. А остальным пока "не в коня корм". Хотя я бы порекомендовал всем, кто берется за .NET-программирование, придерживаться этого "шаблона". Даже для "Hello Word". По сути же шаблона мне кажется, что здесь обязательно должен быть и "шаблон" сценария инсталлятора. В конце концов даже полумифического Администратора САПР не должны интересовать внутренние потроха "плагина". Он (или доверенный пользователь) должен просто запустить инсталлятор, который сам разложит все компоненты "куда положено", запишет в настройки "что надо", вставит необходимое в меню AutoCAD. Чтобы пользователю только оставалось нажимать кнопки и получать райское наслаждение. |
|||
![]() |
|
|||||
Цитата:
Насчёт "кому это нужно" - это нужно и организации и пользователям, хотя они этого могут и не осознавать. Поясню... Если оформление приводится к единому знаменателю, то и пользователям будет проще работать с ними, т.к. они знают, что открыв readme.html они найдут всё, что им нужно. Более того - они уже знают, где именно в readme.html им следует искать интересующую их информацию. Такое оформление позволяет создавать приложения, которые управляли бы уже существующими плагинами и теми, которые появятся позднее. Например, можно написать приложение, которое отобразит пользователю полный перечень ключевых слов и словосочетаний, ассоциированных с командами, написанными во всех плагинах, построенных на основе шаблона. Юзер выбирает то, что ему нужно и автоматом будут открываться в браузере нужные страницы справок соответствующих плагинов с указанием команд, соответствующих его выбору. Т.о. пользователь может искать нужный ему функционал, не перелопачивая для этого кучу имеющихся приложений. Цитата:
Цитата:
Цитата:
То, что я выложил в топике - это предложенный мною вариант оформления программ, написанных для AutoCAD. Если получаю плагин, оформленный в соответствии с данным шаблоном, то точно знаю, что скопировав его в нужный каталог мне более ничего делать не придётся, т.к. автозагрузчик далее сам разберётся каким пользователям, что и для какой версии автокада следует загружать для того, чтобы плагин заработал. Я не утверждаю, что это панацея. Это всего лишь один из готовых, уже работающих вариантов. Я отдаю себе отчёт в том, что основная масса программистов не интересуется подобными темами (к сожалению), а из тех, кто интересуется - далеко не все правильно поймут то, что я предложил (скорее всего в виду сумбурности моего изложения). Но возможно, что найдутся и такие, кого обозначенная тема заинтересует и предоставленный мною материал будет полезен. Чуть позднее я в этом топике выложу примеры приложений, упакованных в обозначенный шаблон. Если и это не поможет понять суть шаблона, значит не дано мне понятно излагать свои идеи. ![]()
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome: |
|||||
![]() |
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,372
|
Цитата:
XSD придумала Microsoft сначала для себя. Потом этот стандарт признали. Но без него прекрасно можно обойтись, что подавляющее большинство программистов и делает. Как и без MSXML обходятся. Вот я сейчас заканчиваю программу, в которой должен быть экспорт в XML на основе 24 вложенных XSD. Пробовал с MSXML, раз уж он XSD поддерживает, и отказался. Слишком все по-Майкросовтовски неуклюже получается. Но это несущественные детали. Так как все-таки насчет количества Net-приложений и Net-программистов? "Скока в штуках"? |
|||
![]() |
|
||||
Цитата:
Цитата:
Цитата:
UPD Завернул в шаблон программу Александра Ривилиса. Прикреплён в самом первом сообщении топика как DwgConvert.zip. Нужно распаковать архив и открыть файл readme.html. UPD2 Перезалил оба архива. Внёс в шаблон некоторые правки, касающиеся визуального отображения, добавил в оглавление readme.html ещё один раздел, с помощью которого можно попадать в каталог нужной версии программы. Внёс изменения в chm-файл мануала.
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome: Последний раз редактировалось hwd, 19.04.2012 в 17:02. |
||||
![]() |
|
||||
строю, ломаю Регистрация: 03.04.2008
Украина
Сообщений: 5,515
|
Конечно, нам же удобнее писать абы как, с учетом цейтнота, привязывая свои мега творения к диску с буквой зю
ну, таким товарищам никакой менеджер не нужен, они себе кнопку нарисуют и будут пользоваться, хоть котом в мешке не заставляете, но настойчиво предлагаете ^_^ Цитата:
как минимум мод+ от модиса, а больше я и не знаю... творение сие, хоть и жутко недопиленное и абы как талантливое, но работоспособное и весьма перспективное Цитата:
Цитата:
Кстати автодеск вроде уже добавила возможность скачивания модулей из песочницы, ну и как бороться с такими нестандартными приложениями? |
|||
![]() |
|
||||
2 gomer
то, что я предложил в начале топика - это готовый результат, который можно пощупать. то, что ты написал выше - это словоблудие. тебя никто не заставляет использовать это. адресовано тем, кому интересно.
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome: |
||||
![]() |
|
||||
строю, ломаю Регистрация: 03.04.2008
Украина
Сообщений: 5,515
|
У мну ридми не открылся пришлось все выкладывать на диск...
hwd, поражаюсь вашему трудолюбию ![]() я вот грешным делом подумывал сложить библиотечки А.Ривилиса в папочку {MyApp} сделать менюшку {MyApp.mns}, прописать макросы и подсказки, прописать загрузку библиотечек в {MyApp.mnl} и добавить папку {MyApp} в пути поддержки... и было б мне счастье, да вот как-то руки не доходят, хотя на все про все у мну вышло бы пол часа времени, максимум |
|||
![]() |
|
||||
ключевой момент не то, что всё собрано в readme.html, а то, что всю информацию о приложении можно получить программно, т.к. шаблон представляет собой своего рода типовой интерфейс.
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome: |
||||
![]() |
|
||||
Цитата:
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome: |
||||
![]() |
|
||||
строю, ломаю Регистрация: 03.04.2008
Украина
Сообщений: 5,515
|
1. Все равно придется добавлять по определению
2. и 3. это разные весчи: одиночный модуль, которому вовсе не нужна автозагрузка (а если она есть, то это тот еще гемор) и комплексный вагон, который монополизирует автокад и сам себя контроллирует, на программном, а не файловом уровне 4. вопрос не ко мне... но как то же автокад это делает |
|||
![]() |
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,839
|
Я думаю пока ты (или еще кто) не напишешь гуишку для "полуавтоматической" обертки такой "сопроводиловкой" + программу для автоматической установки/манипулирования софта(ом), на его основе, количество человек пользующимся твом шаблоном будет стремиться к единице. Ибо разбираться в кучке чужих XML'ов - никто на это время тратить не будет - Крыс как-то предлагал, весьма толковый и НЕСЛОЖНЫЙ "формат" оформления лисп программ - им и то, по факту, больше ни кто не пользуеться, а уж это творение и подавно. Скажу, честно, я хоть и прекрасно умею пользоваться XML'ом - искренне считаю, что это формат НЕ ДЛЯ РУЧНОЙ ПРАВКИ - только софтовой, оно-же как и весь "софт" предолагающий изменение настроек "дружелюбным" XML редактором - есть "сыроделка."
__________________
Когда в руках молоток все вокруг кажется гвоздями. |
|||
![]() |
|
|||||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,372
|
Цитата:
Цитата:
Цитата:
Цитата:
Ничего из этих "как ты узнаешь" пользователям правильных программ знать не надо. А если программа неправильная, т.е. её надо долго и муторно настраивать, то авторам таких программ самый правильный "шаблон" не поможет. Вот ты считаешь, что Цитата:
Цитата:
|
||||||
![]() |
|
|||||||||
Загляните в раздел "готовые программы". Много вы там найдёте "правильных программ с инсталлятором"? А те, которые имеются - после инсталляции имеют ли плагины единую структуру? Я исхожу из действительности - юзеры тащат из инета то, что найдут, а находят они далеко не всегда msi. Да и то, что софтина упакована в msi, вовсе не является гарантом качества самой софтины (чтобы создать msi много ума не надо).
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
![]() ![]() ![]() Цитата:
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome: |
|||||||||
![]() |
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,839
|
Андрей, все что я скажу дальше ТОЛЬКО мое видение данного вопроса. Вот этот подход изначально губительный (я сам на нем попался, когда "документировал" формат настроек в одной "заказной" софтине, правда не имеющей никакого отношения к автокаду, но не суть). Ты сейчас задаешь формат и его открываешь, причем не просто открываешь, а декларируешь - мол давайте пользоваться, а завтра, например, ты решаешь, что можно еще добавить "скрины" софта, или подумаешь, что все данные о всех установленных программах лучше собирать (автоматом) на пользовательской машине в 1 XML и из него уже "рулить" (повторюсь - это только для примера). Да XML легко расширяется, но тебе "для совместимости" придеться тащить все "хвосты" старых версий (которые быть может в последствии, ты поймешь что хранить лучше в другом, более широком, формате, либо же они вобще "не приживутся") - то есть получатся либо ограничения, либо "пятикратное" дублирование одного и того же, в разных форматах, для всех предудущих версий. ИХМО правильно инкапсулировать внутри проги, а там вороти что хочешь, не зря начиная с 2010 версии автодеск свои настройки в xml зазиповал - нечего туда "врукопашную" лезть, есть гуишка, есть API (кстати тебе тоже вариант для размышлений). И программа "любой" версии будет без проблем вытаскивать в нужном формате заданную ее "сегодняшним" функционалом версии из любой обертки. То есть мое резюме такое - формат пряч - "ГУЙ" юзерам, АПИ программистам.
__________________
Когда в руках молоток все вокруг кажется гвоздями. |
|||
![]() |
|
||||
Цитата:
Цитата:
Цитата:
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome: |
||||
![]() |
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,839
|
Вот это как раз то, что мне в последствии и пришлось делать - гемор эти конверторы, а если изначально декларировать только GUI/API доступ - то все конвертации делаются прозрачными для пользователя. Время которое все меняет течет на удивление быстро, а "беда" XML в том что он сколь угодно "масштабируеться" - но только в сторону увеличения.
__________________
Когда в руках молоток все вокруг кажется гвоздями. |
|||
![]() |
|
||||
Цитата:
Как я уже выше заметил - пока что потребность в модификации на горизонте не маячит. О каком API вообще речь? Отображение всей информации берёт на себя браузер. При этом он руководствуется технологией XSL. Что за API и как ты ему его укажешь, чтобы он в соответствии с этим API отображал информацию? Что-то я тебя не понял. Насчёт GUI я уже писал выше - он появиться для программиста для удобства заворачивания в шаблон уже готовых плагинов. GUI для юзера - это файл readme.html.
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome: |
||||
![]() |
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,839
|
Я имею в виду что по моему правильно, делать не формат, а прогу для заворачивания плагинов в некий формат, и прогу для просмотра этих "свертков", модифификации, автообновлении по версии, помощи, установке итд. - то есть для работы с ними - это GUI. А также, в идеале - сделать открытый API интерфейс, для "продвинутых" программеров, чтобы они не с твоей гуишкой "маялись", а сами парой строк кода все нужное установят.
Цитата:
__________________
Когда в руках молоток все вокруг кажется гвоздями. |
|||
![]() |
|
||||
Цитата:
Цитата:
Цитата:
А я думаю, что причина как раз таки в этом.
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome: |
||||
![]() |
|
||||
строю, ломаю Регистрация: 03.04.2008
Украина
Сообщений: 5,515
|
|
|||
![]() |
|
||||
эк тебя плющит-то на развод холивара... я не буду пояснять, какие браузеры считаю обычными - пусть для тебя это на всю жизнь останется тайной.
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome: |
||||
![]() |
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,839
|
Немного оффтоп, но скажем так для направления мысли - есть "малоизвестный" офисный пакет, в котором файлы храняться в виде зазипованных XML'ов под разными именами docx, xlsx... и для их редактирования есть "GUI-шка", а для программеров - (хоть внутри и простой для программиста XML) есть свои API для обращения и работы с документами, а если кто и работает с их документами посредством разархивирования и вытягивания XML информации - либо "творцы" аналогичных пакетов (для совместимости), либо полные извращенцы.
Ставить обычный браузер для просмотра - конечно можно, но лично я бы, смотря вперед, подстраховался, и использовал хоть тот-же System.Windows.Forms.WebBrowser() - чтоб была возможность от него откреститься (если ВНЕЗАПНО станет понятно что html юзера в данном случае, несет дублирующею и хаотичную информацию - когда "програмная" разрастеться) или если чего - "довесить" нужную обработку - то есть если ставить html для просмотра - то контролируемый и "сгенерированный" програмой-же (чтоб для его создания не требовалось, "кучка" софта, который, кроме как для этого может быть и не нужен (тому-же листописателю), да еще и в нормальном функционале, может быть платный).
__________________
Когда в руках молоток все вокруг кажется гвоздями. |
|||
![]() |
|
||||
строю, ломаю Регистрация: 03.04.2008
Украина
Сообщений: 5,515
|
Цитата:
зы пис, пис ![]() |
|||
![]() |
|
||||
Цитата:
2 Дима_ Честно говоря, я ничего не понял из написанного. Есть кое-какие идеи по поводу доработки шаблона. На выходных внесу некоторые изменения + дополнения... После чего обновлю документацию и пример. На след. неделе сделаю GUI, с помощью которого можно будет упаковывать плагины. документацию, шаблон и пример обновлю, дабы уже окончательный вариант находился по ссылкам. Поскольку тема интереса не заимела - на этом заканчиваю опубликовывать материал.
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome: |
||||
![]() |
|
||||
строю, ломаю Регистрация: 03.04.2008
Украина
Сообщений: 5,515
|
|
|||
![]() |
|
||||
|
||||
![]() |
|
||||
Основная масса контента в топике - споры ни о чём, так что размер в данном случае не показатель.
Цитата:
FireFox игнорирует тэги форматирования и отображает их как текст. Браузеры никогда не отличались особой совместимостью (к сожалению).
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome: Последний раз редактировалось hwd, 20.04.2012 в 21:20. |
||||
![]() |
|
||||
Josser Регистрация: 09.11.2011
Сообщений: 66
|
Вот потому Дима_ и предлагает для просмотра, хотя бы той же readme.html, использовать System.Windows.Forms.WebBrowser(), т.е. просмотрщик, в основе которого всегда лежит IE (именно такой "самодельный" просмотрщик от Autodesk открывается, когда ты из автокада 2012(13), нажав кнопочку [x], переходишь на сайт Autodesk Exchange)
Но ИМХО, я бы отказался от XSLT (от трансформации в HTML) и написал просмотрщик (не веб-браузер), напрямую читающий и визуализирующий информацию из XML файлов, и включил бы его, в качестве обязательного компонента, в состав решения. Цитата:
Категорически нужна еще третья вещь - загрузчик плагинов (насколько я в курсе, от у тебя готов, или почти готов). И тогда есть все шансы получить целостное, вполне промышленное решение. Этим решением, помимо тебя самого, сможет воспользоваться любой заинтересованный CAD-администратор. p.s. ИМХО. Плагин для автокада не должен требовать инсталлятора. Нужно брать папку с должным образом оформленным плагином, класть её в положенное место в сети или на локальном компьютере и на этом всё!. Об остальном, на основе имеющейся в папке информации, позаботится специализированный загрузчик. Андрей Бушман принципиально делает всё правильно. Можно спорить лишь о деталях. Приложения из "магазина Autodesk" именно таким (похожим) образом и документируются/распространяются/инсталлируются. Но их (автодеск) конкретное решение непригодно для промышленной эксплуатации в рамках института, где трудится Андрей. Последний раз редактировалось Salt, 21.04.2012 в 02:37. |
|||
![]() |
|
||||
строю, ломаю Регистрация: 03.04.2008
Украина
Сообщений: 5,515
|
вот поэтому
Идея не нова, на лиспе такое было написано за царя гороха еще |
|||
![]() |
|
|||||||||
Цитата:
Цитата:
В шаблоне XSLT используется "за кулисами". Вчера мне пришла одна идея, в свете которой я начал модифицировать шаблон. Теперь он будет организован более "красиво". Например в каталоге ./support будут находиться только те файлы, которые необходимы для визуального представления, т.е. это файлы XSLT, XSD и "CSS" (т.е. XML вариант CSS контента). В этот каталог собраны статические файлы, содержимое которых не потребуется менять. Программисту нет необходимости лезть в тот каталог. Собственно собраны туда затем, чтобы случайно не изменили чего-нить. В файл readme.html будет добавлена некоторая дополнительная информация, полезная как пользователям, так и разработчикам... Цитата:
Цитата:
Цитата:
Цитата:
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome: Последний раз редактировалось hwd, 23.04.2012 в 17:47. |
|||||||||
![]() |
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,839
|
Цитата:
Держи "документацию" версий шаблонов у себя - тогда совместимость будет ТОЛЬКО твоей головной болью, а не всех использующих.
__________________
Когда в руках молоток все вокруг кажется гвоздями. |
|||
![]() |
|
||||
открой для себя такое понятие, как "предварительный вариант". Суть и содержимое не изменилось.
Я как-нибудь разберусь.
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome: |
||||
![]() |
|
||||
Перезалил оба архива (в первом сообщении топика). Внёс в шаблон некоторые правки, касающиеся визуального отображения, а так же расширил логику динамического формирования панели навигации readme.html - теперь в него можно добавлять произвольное количество групп с произвольным количеством позиций (помимо уже существующих). Частично изменил структуру и содержимое каталогов, например - в каталоге ./support находится только то, что не требует изменения (т.е. разработчику туда можно не заглядывать). Внёс соответствующие изменения в chm-файл мануала. Соответственно изменённому шаблону модифицировал пример приложения, построенного в соответствии с шаблоном.
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome: Последний раз редактировалось hwd, 23.04.2012 в 17:13. |
||||
![]() |
|
||||
Перезалил оба архива. В шаблоне внёс изменение в файл appinfo.xslt, чтобы в таблицах имена команд, каталогов и файлов выделялись жирным шрифтом (так их легче читать), а так же исправил одну опечатку. Во второй архив добавил ещё два примера. Всё, более примеров выкладывать не буду - достаточно трёх.
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome: |
||||
![]() |
|
||||||
Введение
Цитата:
Цитата:
Структура шаблона Цитата:
Цитата:
Цитата:
При этом, наверное имеет смысл расширить шаблон до папки <Приложения>? То есть, на 2 уровня вверх: <Приложения> <КаталогКомпании> <КаталогПриложения>… |
||||||
![]() |
|
|||||||
Цитата:
Да. Цитата:
Цитата:
Если бы была 100% уверенность в том, что плагин будет работать в чётко обозначенном окружении, то можно было бы сделать общий каталог ./support. Однако, скачав к примеру плагин из инета, пользователи ожидают, что достаточно скопировать на локальную машины лишь сам каталог приложения. У них зачастую не будет той корпоративной организации размещения плагинов, которая позволила бы вынести ./support во внешний файл. Надеюсь, что выразился ясно... Цитата:
Всё задумано и устроено так, чтобы каталог каждого плагина был независимым и самодостаточным. Цитата:
Цитата:
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome: |
|||||||
![]() |
|
||||
Только до папки, прописанной в путях поддержки автокада, то есть папки <Приложения>. Мне думается, что можно было бы вынести readme в эту папку (вместе с папкой support), настроить его таким образом, чтобы через него можно было просмотреть информацию о любом приложении в папке и назвать как-нибудь типа "applications manager". В нем разместить проводник по приложениям с описанием приложения по формату имеющегося readme. В папках <КаталогКомпании> можно размещать информацию о компаниях, в единственном экземпляре на локальном компьютере. В итоге, мы получаем некий "фундамент", на который как "кирпичики" можно закладывать приложения. И все вместе будет образовывать систему приложений, оформленных по единому шаблону.
Ну вот к примеру, поменяется у А.Ривилиса номер телефона. Придется пройтись по всем приложениям и изменить контактную информацию. А если все будет в единой системе, то достаточно будет внести изменение только в 1 файл в соответствующей папке типа <КаталогКомпании>. Это только самое простое, что приходит в голову. Конечно, при таком подходе, папка <КаталогПриложения> в отдельности не будет являться самодостаточной. Если это принципиально важно, то может можно разработать какой-то инструмент, позволяющий вычленить из системы самостоятельное приложение и возможность внедрить такое самостоятельное приложение в единую систему, то есть провести обратное преобразование. |
||||
![]() |
|
||||
Цитата:
Цитата:
Цитата:
Сейчас я пишу .Net API, на основе которого разработаю внешние приложения, управляющие работой таких плагинов.
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome: |
||||
![]() |
|
||||
Цитата:
то, о чём ты спрашиваешь - это отдельные, самостоятельные приложения. Их не нужно засовывать в каталоги каждого плагина. Часть из них предназначена для разработчика, чтобы вручную не править XML, другая часть - для администратора CAD, чтобы управлять настройками плагинов сразу для всех доменных пользователей. Дополнительные приложения облегчают работу с плагинами, но не являются необходимыми. Юзер может их поставить себе, а может и не ставить.
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome: |
||||
![]() |
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,839
|
Как вариант - дать возможност хранить ссылки на интернет ресурсы с библиотеками для загрузки (с соответственно проверкой наличия их уже)?
__________________
Когда в руках молоток все вокруг кажется гвоздями. |
|||
![]() |
|
||||
Если бы ты читал CHM-файл мануала, то знал бы, что это в шаблоне и так присутствует: Раздел Файлы шаблона -> readme.html. На обозначенной странице приведён пример, как можно добавлять произвольное количество дополнительных групп, каждая из которых содержит набор ссылок на произвольные ресурсы (по усмотрению разработчика).
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome: |
||||
![]() |
|
||||
КЖ; C# Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,611
|
Рано или поздно у каждого накапливается куча програмулек и возникает жгучее желание все это упорядочить.
Андрей, спасибо за работу в этом направление. ЗЫ. Визуальный редактор для формирования обертки это оптимальное решение. ИМХО. ЗЫЫ. С интересом слежу за топиком. |
|||
![]() |
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,839
|
Я же цитирую - в контексте дублирования информации - на "сейчас" у Вас подразумеваеться, что "обертка" целиковая - посмотри лиспы, например, Крыса (а это то, что с моей точки зрения немалому количеству "пригодится", да и по факту используется) - там практически везде "подразумеваются" его-же библиотечные функции, которые лежат у него в подписи - то есть, что-бы "завернуть" его лиспы придется в каждый добавлять библиотеку (и заметь потом каждая будет загружаться - т.к. в каждую библиотечной функции, проверки "нет-ли меня уже в акаде" там естественно нет). Теперь спрошу еще раз - не видите ли Вы разумным, добавить в формат "обертки" (и как следствие в программу для сисадмина), возможности установки из "урезанной" обертки - то есть с АВТОМАТИЧЕСКОЙ загрузкой "библиолтечных" элементов из Интернета по необходимости.
__________________
Когда в руках молоток все вокруг кажется гвоздями. |
|||
![]() |
|
||||
Цитата:
Цитата:
Цитата:
UPD В каждую библиотеку, написанную им на AutoLISP или Visual LISP, Алексей Кулик может добавить определение глобальной переменной, имя которой будет уникально для каждого lisp-файла: Код:
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome: Последний раз редактировалось hwd, 26.04.2012 в 12:30. |
||||
![]() |
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,839
|
Цитата:
з.ы. Я ни в коем случае не хочу Вас учить "как делать правильно", просто вижу со стороны лиспа "явные тонкие места." Естественно, юзерами все должно устанавивться из "локального серверного", но ИХМО, тот-же репризиторий, должен делать CAD админ, с помощью спец. программы работающей с "обертками" - "простое" копирование к сожалению себя уже давно изжило, тем более, если я ничего не путаю, Вы собирались "подитоживать" все установленное на машине в 1 XML - что с моей точки зрения правильно - а это само по себе не произойдет. Так в этой-то программе (для CAD админа), при добавлении в формат соответствующих тегов, лично я (уверен что и Вы) не вижу сложности добавить проверку установленных необходимых компонентов, и при необходимости загрузки последних (ну или уведомлении, о невозможности, найти\получить их с заданного адреса). з.з.ы - Все вышесказанное имеет рекомендательный характер. Offtop: с гуишкой для ??? могу бескорыстно помочь - ибо дело в общем полезное
__________________
Когда в руках молоток все вокруг кажется гвоздями. |
|||
![]() |
|
||||||
Цитата:
Цитата:
Цитата:
Вместо этого я напишу маленькое приложение, которое при его запуске динамически в памяти формирует такой XML-документ и отображает его в себе посредством дочернего вэб-контрола. В этом же приложении будет динамически формироваться список ключевых слов и словосочетаний. Т.о. содержимое общей справки всегда будет соответствовать текущему составу репозитория плагинов. Цитата:
Цитата:
UPD Вообще смысл создания данного топика был таков, чтобы программисты писали плагины, оформление которых было бы типовым. Такое оформление позволяет обратабывать их программно, извлекая необходимую для тех или иных задач информацию. Логическое продолжение этой идеи - создание в интернете репозитория, куда разработчики могли бы выкладывать оформленные в соответствии с данным шаблоном приложения. Пользователи различных организаций смогут программно мониторить состав этого репозитория и делать заявки своим администраторам CAD на предмет подключения очередного интересующего их модуля. Админ скачивает модуль в соответствующий каталог серверного репозитория и тот (модуль) автоматом становится доступным всем юзерам домена. Поскольку репозиторий русский, то и вся информация на нём + поиск по ключевым словам так же были бы на русском. При желании, конечно же позднее можно было бы заморочиться и с системой оплаты (яндекс-деньги), дабы и российские разработчики смогли зарабатывать в инете через это дело при желании (магазин автодеска кладёт болт на русскоязычных программистов, говоря "PayPal" - читать как "работайте бесплатно". Однако стоп... Эта идея (репозиторий в инете плагинов, оформленных по указанному шаблону), как я уже понял, не приживётся, поскольку даже сама идея приведения плагинов к общему знаменателю (не заикаясь ещё об инете) особого интереса не вызвала (один-два програмиста погоды не делают).
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome: Последний раз редактировалось hwd, 26.04.2012 в 16:59. |
||||||
![]() |
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,839
|
Цитата:
2. Переменные не нужны - имя функции это тоже переменная. Цитата:
__________________
Когда в руках молоток все вокруг кажется гвоздями. Последний раз редактировалось Дима_, 26.04.2012 в 17:36. |
|||
![]() |
|
||||
ты как-то уж очень невнимательно читаешь... Это (уже в который раз) я кому написал:
Цитата:
Это означает, что все необходимые библиотеки должны присутствовать в приложении, а не в интернете. Не загружена - значит в ведро такое приложение, т.к. это лишь неработающая часть приложения, а не полноценное приложение. Не вижу никаких трудностей в том, чтобы сразу добавить всё что нужно, не грузя этим пользователя или админа. Цитата:
![]() ? Кроме того, в CHM-мануале, прилагающемуся к шаблону, имеется раздел "Дополнительные каталоги поиска", в котором на конкретных примерах для LISP-приложений обозначено решение твоего вопроса. Цитата:
Тогда всё ещё проще.
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome: |
||||
![]() |
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,839
|
Короче - поверь на слово, если делать с учетом лиспа (а под автокад большинство "плагинов" все-же на нем), в том формате каком ты говоришь есть очень "слабое звено" с библиотечными функциями (либо сто раз продублировать, либо делать в КАЖДОЙ программе загрузчик с рекурсивным поиском по папкам автокада - ИХМО это еще хуже).
__________________
Когда в руках молоток все вокруг кажется гвоздями. |
|||
![]() |
|
||||
для ста приложений так и будет - это своего рода "плата" за независимость.
Ума не приложу, где это может потребоваться, особенно с учётом того, что имеется findfile. Элементарный пример (код) в студию...
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome: |
||||
![]() |
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,839
|
Только, если ВНЕЗАПНО, потребуется внести изменения в библиотечную функцию (для совместимости с х64, найденной ошибкой и пр.) - все сто надо как переделать создателю (а я не думаю что он это захочет делать), так обновить все администратору - собственно это и есть слабое звено твоего подхода "автономности плагинов".
__________________
Когда в руках молоток все вокруг кажется гвоздями. |
|||
![]() |
|
||||
Цитата:
мне всё же было бы интересно увидеть пример, соответствующий этой фразе: Цитата:
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome: Последний раз редактировалось hwd, 26.04.2012 в 21:10. |
||||
![]() |
|
||||
Цитата:
Цитата:
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome: |
||||
![]() |
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,839
|
Цитата:
з.ы. более того лисп программа может быть и не загруженна, а сгенерированна другой программой... з.з.ы у лиспа мусором считаются как раз программы которые знают, где их библиотеки (ну или dcl описание) - где нибудь в c:\super_proga\...
__________________
Когда в руках молоток все вокруг кажется гвоздями. |
|||
![]() |
|
||||
строю, ломаю Регистрация: 03.04.2008
Украина
Сообщений: 5,515
|
как то слишком запутанно все... у файла нпи есть вспомогательный mnl-"загрузчик", который загружается автоматически и подгружает необходимые лисп-библиотеки, в качестве ориентира служит файл меню, больше ничего не надо... такая вот рекурсия
|
|||
![]() |
|
|||||||
это не так. Даже моих скромных познаний в лиспе хватает на то, чтобы видеть общепринятые грубые ошибки лиспописателей, о которых сейчас и пишу.
Цитата:
Цитата:
"Установлено" не то же самое что "Загружено". Разницу чувствуешь? Что (кроме лени) мешает программисту, прежде чем начать грузить лисп, выполнить предварительную проверку, мол а надо ли его грузить? Может он уже загружен др. лисп-программой? Зачем повторно грузить то, что уже загружено, выжирая тем самым оперативную память, которую автокад и так безжалостно расходует? Цитата:
Цитата:
Цитата:
Цитата:
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome: |
|||||||
![]() |
|
||||
Цитата:
![]()
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome: |
||||
![]() |
|
||||||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,839
|
ну давай посмторим
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
з.ы. твоя модель хороша, но не учитывает, автоматическую загрузку лисп библиотек, при наличии модулей их использующих - в лиспе сама система связи модулей устроена по другому - а минусы принципа добавлять библиотечные функции во все файлы я уже описал. з.з.ы Я все к чему это говорю - ты предлагаешь "универсальный" шаблон описания акад модулей, и с точки зрения нет модулей ты все продумал (версии, локализацию и пр) - молодец, но я как "немножко листописатель" вижу "явный" прокол - "стандартные" библиотеки в твоем варианте предлагаешь добавлять в каждый модуль (это все равно что тебе предложить с каждой длл-кой класть соответствующею версию дотнета). А чтобы мне сложить все в одну библиотеку и грузить по надобности из нее - мне с точки зрения лиспа в КАЖДОЙ программе надо левой пяткой правое ухо чесать - подходы в функциональных и императивных языках разные и то что логично в одной технологии, кажется бредом в другой (видимо по этому мы с тобой тут такой срач и развели) - я просто к тому что с таким подходом "лисповики" к твоей технологии вряд-ли потянутся - "кривая" она для них - хотя я естественно могу ошибаться.
__________________
Когда в руках молоток все вокруг кажется гвоздями. Последний раз редактировалось Дима_, 26.04.2012 в 23:54. |
|||||||
![]() |
|
||||
КЖ; C# Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,611
|
Я так понимаю, что шаблон в первую очередь создавался под DLL и ARX приложения, для них, все что описано в шаблоне, вполне корректно и замечаний не вызывает. Может стоит повременить пока с добавлением в шаблон Lisp программ и посмотреть как это все заработает с dll?
|
|||
![]() |
|
||||
нет, я ориентируюсь и на lisp. уже внёс для этого необходимые изменения в некоторые XSD-файлы. Имеется пример упаковки в шаблон одного пользовательского lisp-сборника (мусора, ибо написано в нём всё через одно место). Чуть позже могу выложить обновлённый шаблон, с внесёнными в XSD изменениями и пример упаковки lisp-контента, если это интересует...
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome: |
||||
![]() |
|
||||
Перезалил оба архива. В шаблонах внёс некоторые изменения в файлы XSD, а так же в файл versions.xml, для возможности корректного описания LISP-программ. В архив samples.zip, по просьбам телезрителей добавил пример упаковки LISP-сборника. В тот же архив упаковал и ещё одно приложение от Александра Ривилиса (SelSim). В примере упаковки LISP-программ я, в качестве опять же примера, в таблицу загрузок добавил несколько записей, указав, что загружать следует все файлы с расширениями lsp, fas и vlx, хотя на самом деле в примере имеются только lsp-файлы.
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome: |
||||
![]() |
|
||||
что подразумевается под "просто таблицей"? что мешает кликнуть мышью на странице и из контекстного меню выбрать пункт "посмотреть исходный код страницы"?
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome: |
||||
![]() |
|
||||
На основе того, что описывалось выше создана динамически формируемая справочная система (отдельное exe-приложение), которая выглядит следующим образом:
Логика такая: каталогов с плагинами (на скрине показан только один - "Песочница") может быть сколько угодно (на усмотрение администратора CAD). Например - в одном размещается то, что относится к нормоконтролю и стандарту предприятия, а в другом - дополнительные утилиты, полезные в работе. В GUI каждый такой каталог отображает вместо своего имени "человеческое" (например "Песочница" - это на самом деле каталог "sandbox"), понятное пользователю. Все плагины группируются по их авторам (инфа считывается из соответствующих XML-файлов и подставляется в нужных местах в GUI). Те плагины, напротив которых юзер устанавливает галочки, будут автоматом загружаться в автокад (если под запущенную версию автокада имеется соответствующая версия плагина). На скрине видно, что одна из галочек включена и заблокирована - значит этот плагин установлен администратором CAD в автозагрузку для некоторой доменной группы, в состав которой входит текущий юзер). На основе снятия/установки галочек формируется XML-файл, содержащий в себе инфу о том, что следует грузить в автокад. Этой инфой пользуется загрузчик. Загрузчик сам определит нужно ли добавлять в Support Search Path какие-либо каталоги (если нужно - добавит их), а так же определит, нужно ли выполнять загрузку приложения, или же оно уже зарегистрировано в реестре с этой целью. Вся инфа считывается из соответствующих XML-файлов оболочек плагинов. При выборе в древовидной структуре интересующего плагина, в правом контроле (WebBrowser) отображается содержимое файла readme.html выбранного плагина. Если в каталог плагинов добавить новый плагин - он автоматом появится в динамически формируемой справочной системе. Ну и, конечно же присутствует поиск по ключевым словам, который выполняется по всем доступным плагинам... Я выдернул из плагинов инфу о том, пользователям каких доменных групп нужно грузить плагин - эта инфа теперь содержится в отдельном XML-файле, управляемым админом CAD (так будет правильней).
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome: Последний раз редактировалось hwd, 03.05.2012 в 17:33. |
||||
![]() |
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,839
|
Все последующее - мысли вслух:
Скажу честно, я хоть и сам делал "установщики" плагинов используя данный алгоритм (установка под "запущенную версию"), но все-же данный метод ИХМО "кривоват" и скажем так для ленивых, (особенно, для Вашего проекта - так сказать "с претензией"), если настройка под запущенную версию, то она и должна запускаться непосредственно изнутри (перекомпилировать и собрать в твой-же сверток помеченный администратором + setup'ка для автозапуска, либо (startapp exe)) - в общем не суть, как реализовать. А если "отдельный exe" (что в общем правильно) - то типо выбрать все доступные версии (с предупреждением, если для некоторых нет плагинов), либо поддерево галочек из установленных&доступных в "свертке" версий автокада. Ведь это-же не инсталяшка 1-го плагина - а целая "система". p.s. А в общем весьма красиво.
__________________
Когда в руках молоток все вокруг кажется гвоздями. |
|||
![]() |
|
||||
у меня другое мнение на этот счёт. Метод избавляет юзера от необходимости изучения того, какие манипуляции от него требуются для того, чтобы плагин заработал. Наличие данной программы не является обязательным, поскольку плагины самодостаточны и самодокументированы - любой юзер, прочитав readme.html узнает, для каких версий автокада плагин будет работать, а так же что следует для этого сделать.
Цитата:
Цитата:
дин. справка - отдельное, не обязательное приложение. загрузчик плагинов ориентирован на работу с плагинами, построенными на основе шаблона (т.е. загрузчик имеет зависимость от структуры плагинов). В то же время плагины, построенные на базе шаблона независимы ни от чего (за исключением версии автокада) - их можно грузить вручную, не имея на руках загрузчик или дин. справку.
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome: Последний раз редактировалось hwd, 03.05.2012 в 18:27. |
||||
![]() |
|
||||
Внёс ряд изменений в состав шаблона и показанных выше примеров (обновлять ссылки пока не стал, т.к. возможно ещё что-нить изменю):
1. Убрал из обёртки информацию о доменных группах, которым грузится плагин (об этом уже писал выше). Эта информация теперь хранится в одном общем файле, чтобы с ней было удобней работать администратору CAD. 2. Добавил в оглавление новую страницу - "Программирование", в которой разработчикам размещается информация о vba и lisp-функциях (не путать с пользовательскими командами), предоставляемых библиотекой. Блок содержит полную информацию о каждой функции, с детальным описанием её назначения, а так же всех её параметров и результата работы. Помимо этого каждое описание функции содержит произвольное количество примеров, демонстрирующих работу функции с подробными примечаниями. Так же каждой функции имеется блок информации, предназначенный для размещения в нём произвольного количества важных примечаний, касающихся работы функции. С каждой функцией ассоциируется произвольное количество ключевых слов, как это сделано для команд, чтобы в динамической справке (скрин показан выше в топике) можно было искать не только команды, но и функции. 3. Помимо информации, относящейся непосредственно к функциям, имеется блок произвольных примеров, написанных на LISP, VBA, ObjectARX и .NET (на усмотрение разработчика). 4. Добавил возможность назначения ключевых слов плагину в целом. Это сделано для того, чтобы по ключевым словам можно было искать такие плагины, которые не содержат лисп-функций и команд, а работают в фоновом режиме (например программы нормоконтроля). 5. Добавил блок, сообщающий о наличии файлов меню доступных для плагина, их описании и расположении (рекомендуется хранить в ./settings).
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome: Последний раз редактировалось hwd, 05.05.2012 в 17:38. |
||||
![]() |
|
||||
Релиз-кандидат. Пара скринов:
Первый Второй Ну и, на YouTube видео по теме, т.к. скринами много не покажешь: http://www.youtube.com/watch?v=M8Mk9VHC9Yc
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome: |
||||
![]() |
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,839
|
Красиво ничего не скажешь, поясни пож. еще разок (я чуток уплыл по теме), твоя гуишка настраивает конфигурационный файл для твоего "основного корпаративного загрузчика", или вносит изменения напрямую в автозагрузку соответствующего автокада? (ну и если второе - то выкладывай что-ли).
Offtop: Прошу прощения за брюзжание, но всплывающие окошко со списком всех версий, это ИХМО совсем не айс, ну добавляй "нерабочие" как ReadOnly флажки в конец каждой ветки (с пунктом в контекстном меню - типо показывать все/рабочие или крыжиком), ну или еще как - а то это окошко смотриться как инородное тело (да и пункт в котором может не оказаться ни одной версии под установленные акады - тоже как-то не очень будет гармонировать). p.s. про то что настраиваеться увидел на видео - жаль что не самостоятельная - но оно понятно. p.p.s. просмотрев видео ВДРУГ понял, что совсем не учтено (системно так сказать) возможные отличия функционала в плагинах под различные версии (кроме как написать все в кучу или в доп. информацию по версии) - хотя это конечно не "большая беда" но продумать явно стоит.
__________________
Когда в руках молоток все вокруг кажется гвоздями. Последний раз редактировалось Дима_, 23.05.2012 в 02:03. |
|||
![]() |
|
|||||
Цитата:
Цитата:
Цитата:
Цитата:
п.с. шаблон, документацию и примеры в первом посте я пока не обновляю, т.к. документацию ещё не подкорректировал.
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome: Последний раз редактировалось hwd, 23.05.2012 в 08:46. |
|||||
![]() |
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,839
|
Про первый вопрос - что настройки применяються не сразу а меняется конфиг загрузчика.
все верно - просто упускаеться момент что НОВЫЙ плагин может иметь частично ограниченный функционал для СТАРЫХ версий автокада - то есть используеться например аннатотивность или параметризация - понятное дело что она может быть не во всех версиях - но это мелочи - и для учета всего загрузчик действительно "разрастется".
__________________
Когда в руках молоток все вокруг кажется гвоздями. |
|||
![]() |
|
||||
Цитата:
Цитата:
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome: |
||||
![]() |
|
||||
Пользователям (на которых тестировал) понравилось - с их стороны претензий не было... Доделываю .Net API.
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome: |
||||
![]() |
![]() |
|
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Проблема с запуском AutoCad | This | AutoCAD | 22 | 15.02.2016 20:07 |
AUTOCAD 2010 перестал переключаться в многооконный режим. Проблемы с переменными | Андрей Х. | AutoCAD | 24 | 27.05.2015 10:17 |
Autocad MEP Выбери итересующую тему! | VitalyAF | Вертикальные решения на базе AutoCAD | 13 | 14.09.2012 11:40 |
Превратить AutoCAD Map 3D в обычный AutoCAD (по панелям) | gizmo_zx | Вертикальные решения на базе AutoCAD | 3 | 24.08.2011 11:25 |
Где в реестре хранится информация о том, что в системе когда-то был установлен AutoCAD? | Archeo | AutoCAD | 12 | 14.10.2009 15:24 |