![]() |
#1 |
Участник
|
Обновление рабочего приложения: проектами или слоем?
****** Выделено из темы Изменение идентификаторов(id) полей ******
Это до тех пор пока вы проектами все обновляете. А когда объем доработок большой, а время простоя базы не более часа в неделю - то приходится слоем обновлять - для таких случаев актуально чтобы id-ники выделялись в одном месте и не менялись. Последний раз редактировалось Dron AKA andy; 17.06.2009 в 10:10. |
|
![]() |
#2 |
Участник
|
для таких целей заводят еще одно приложение (копия рабочего) на который накатывают проектами, а потом его слой копируют (в определенное время) на рабочее
|
|
![]() |
#3 |
NavAx
|
Цитата:
ЗЫ. Даже очень большой проект можно накатить через *.xpo Есть ли у кого-нибудь такая штучечка? Последний раз редактировалось raz; 21.05.2009 в 11:31. |
|
![]() |
#4 |
Участник
|
Понятно. А расскажите поподробнее что может быть плохого ?
Цитата:
Сообщение от raz
![]() ЗЫ. Даже очень большой проект можно накатить через *.xpo
Есть ли у кого-нибудь такая штучечка? Это все правильно. Но если проектов 15, даже не очень больших, то по-моему проще слоем. Не забывайте про ограничение по времени простоя базы. Лучше в таком случае сделать как ice предложил. Правда все равно может потребоваться иногда лечить идентификаторы. |
|
![]() |
#5 |
NavAx
|
После накатки приложения нужно синхронизировать, вот тут и вылазят проблемы с разными идентификаторами. Можно ненароком потерять данные в несовпадающих полях.
Тут согласен. Делаем текущую копию реального приложения, переносим на нее попроектно при помощи *.xpo новые наработки (с инкрементной компиляцией). Полученное приложение накатываем вместо рабочего. Синхронизируем. |
|
![]() |
#6 |
Участник
|
Цитата:
![]() У меня абсолютно противоположное мнение. В общем случае, обновление рабочего приложения желательно проводить только слоем (слоями) из приложения разработки. А если все же дело доходит до проектов (в крайних случаях), то экспорт/импорт только с идентификаторами. И вот почему: 1) Не все клиенты покупают лицензии на разработку, и опция "инкрементная компиляция" у них отсутствует. 2) Не у всех клиентов есть лицензии на разработку в тех слоях, в которых ведет разработку партнер. Если у вас разработка в VAR, а в рабочем приложении все "лежит" на CUS или USR - это, как минимум, выглядит криво. 3) Как обновить проектом удаленную (переименованную) в разработке форму/таблицу/класс/...? 4) Если рабочее приложение развернуто на нескольких АОСах (да еще и с балансировщиком), обновление проектом может привести как раз к ОЧЕНЬ большому геморрою (особенно при наличии новых таблиц/полей, как показала практика). 5) При различиях в идентификаторах таблиц и полей невозможно (в общем случае) корректно подменить данные приложения разработки из рабочей базы при помощи резервного копирования и восстановления (а такая необходимость иногда возникает). 6) В "стандарте" нет инструментов, позволяющих проверять, что проект включает все "затронутые" объекты, и это "проверяется" лишь на этапе импорта. В добавок к этому, обновление проектами ухудшает качество разработки, т.к. всегда можно "быстренько все подправить", если что... |
|
|
За это сообщение автора поблагодарили: Dron AKA andy (2). |
![]() |
#7 |
Axapta
|
Цитата:
По-моему, на эту тему уже был опрос, но что-то я его не нашел. |
|
![]() |
#8 |
Участник
|
Цитата:
Сообщение от oip
![]() Только поправлю, что в общем случае - не из приложения разработки, а из тестового приложения. А так я тоже считаю, что рабочее приложение должно обновляться слоем целиком. Правда тут тоже возникают проблемы с тем, что для того, чтобы перенести какую-либо не очень большую модификацию по хорошему требуется, чтобы и все (ну или по-крайней мере критически важные) другие модификации к данному моменту уже были протестирована. А если это невозможно по каким-либо причинам (скажем, внедрение еще в самом разгаре, но какая-то часть функционала уже работает), то начинаются танцы с бубнами и дополнительными приложениями.
По-моему, на эту тему уже был опрос, но что-то я его не нашел. Мы для этой цели попробовали применить схему похожую на то как в ax3.0 sp5 объединили восточно-европейский функционал - там везде понатыкана проверка что если конфигурационный ключ для такой-то страны включен, то выполнять определенный код иначе пропускать. Применив такую схему и при условии аккуратного кодирования, можно переносить слой с не до конца оттестированными модифами. |
|
|
За это сообщение автора поблагодарили: Dron AKA andy (2). |
![]() |
#9 |
Moderator
|
Цитата:
По пунктам: Цитата:
Сообщение от Bishop
![]() 1) Не все клиенты покупают лицензии на разработку, и опция "инкрементная компиляция" у них отсутствует.
2) Не у всех клиентов есть лицензии на разработку в тех слоях, в которых ведет разработку партнер. Если у вас разработка в VAR, а в рабочем приложении все "лежит" на CUS или USR - это, как минимум, выглядит криво. Цитата:
Цитата:
Цитата:
Цитата:
![]() По мне, основной минус в переносе слоем - уже упоминавшаяся вероятность поднять на рабочую неоттестированные модификации. При достаточно большом объеме доработок между отдельными подъемами эта вероятность стремится к 100%, что чревато. Хотя, подъем проектами лишь снижает эту самую вероятность, т.к. остается вариант пересечения модификаций по объекту... Вариант Цитата:
![]()
__________________
Андрей. Последний раз редактировалось Dron AKA andy; 17.06.2009 в 11:00. |
|
|
За это сообщение автора поблагодарили: Logger (5). |
![]() |
#10 |
Ищущий знания...
|
Мы переносим проектами...
Потому что, на мой взгляд, в рамках одного проекта, проще отследить все не нужные утечки из других не оттестированных проектов. Элементарно при переносе выполнять внимательное сравнение и всё. А вот если переносить слоями, то это уже лотерея ![]() Переносить с тестового нужно с IDшниками, а между разработкой и тестовой соответствие не важно.
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с) С Уважением, Елизаров Артем |
|
![]() |
#11 |
Участник
|
Цитата:
Если изначально задаться целью делать модификации отключаемыми (что, конечно, привносит дополнительные "накладные расходы", а в случае изменения дизайна форм/отчетов и вовсе затруднительно, но такое, к счастью, бывает нужно не так часто), то всё, как говорится, реально ![]() Кроме того, бывают ситуации, когда одно приложение используется в различных филиалах компании со своей спецификой ведения бизнеса, своими, может, печатными формами для тех или иных документов, etc. В этом случае использование тех же конфигурационных ключей (к примеру, специфичных для того или иного филиала) с целью управления тем, какой функционал должен работать, а какой - нет, как нельзя лучше решает эту проблему. |
|
|
За это сообщение автора поблагодарили: Dron AKA andy (2). |
![]() |
#12 |
Moderator
|
Согласен, возможность включать/отключать некую функциональность очень удобна, а иногда просто необходима. Но чтоб КАЖДУЮ модификацию со своим собственным ключом... Не думаю...
Хотя это мысли из той серии: "На вкус не пробовал, но читал - не понравилось" ![]()
__________________
Андрей. |
|
![]() |
#13 |
Участник
|
Цитата:
![]() X++: return isConfigurationKeyEnabled(configurationkeynum(AlwaysOffInLiveDB)); X++: return true; |
|
![]() |
#14 |
Участник
|
Мне так представляется, что перенос слоя - частный случай переноса проектами, просто вместо создания проекта со всеми изменениями на слое переносится готовый файл.
Переносить так или иначе для себя всегда выбирал исходя из регламента разработки и специфики бизнеса. Если вести "релизы", т.е. напрограммировали, оттестировали, перенесли - то слой. Если же разработка и тестирование идут параллельно и / или по нескольким несмежным областям - то проекты. У каждого регламента есть свои плюсы и минусы, зависит от ресурсов: как исполнителей, так и выделенного на проект времени. Аккуратность же нужна и там, и там.
__________________
Ivanhoe as is.. |
|
![]() |
#15 |
Участник
|
Цитата:
Сообщение от gl00mie
![]() Кроме того, бывают ситуации, когда одно приложение используется в различных филиалах компании со своей спецификой ведения бизнеса, своими, может, печатными формами для тех или иных документов, etc. В этом случае использование тех же конфигурационных ключей (к примеру, специфичных для того или иного филиала) с целью управления тем, какой функционал должен работать, а какой - нет, как нельзя лучше решает эту проблему.
|
|
![]() |
#16 |
Member
|
Я, конечно, понимаю, что сейчас еще достаточно много пользователей 2.5. Не говоря уже про 3.0.
Но что вы будете делать в 6.0? По слухам там код приложения затолкают в БД, как раньше было в Навижине/Аттейне (да и сейчас, наверное, так и осталось).
__________________
С уважением, glibs® |
|
![]() |
#17 |
Участник
|
Цитата:
Кроме того до Ax 6.0 еще дожить надо. На Ax2009 народ почти не работает. Кстати, сколько сейчас в России проектов на Ax2009 ? Я пока знаю только один. |
|
![]() |
#18 |
Участник
|
А зачем гадать? Посмотрим, что там по слухам будет с развертыванием приложения (в вольном переводе):
Цитата:
Сообщение от Blog bot
![]() Источник: http://blogs.msdn.com/mfp/archive/20...w-sql-aod.aspx
============== ...Но подождитве, ведь AOD-файлы были не просто базой данных, они также служили средством развертывания приложения - что же придет им на замену? Dynamics AX поддерживает новый формат файлов - файлы axmodel (с одноименным расширением, например "AxSYS.axmodel"). Они являются бинарными и предоставляют те же возможности для развертывания приложения, которые предоставляли AOD-файлы, но при этом они вдвое меньше размером. Используя специальную новую утилиту, вы сможете импортировать/экспортировать файлы axmodel в/из БД SQL. Вы также сможете импортировать AOD-файлы в БД SQL. |
|
Теги |
upgrade, xpo, как правильно, обновление, слой приложения, ax2012 |
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|