19.02.2016, 17:27 | #1 |
Участник
|
Как правильно выкладывать проекты по Аксапте на github, например?
Такой вопрос,
Как правильно выкладывать проекты по Аксапте на github, например? так, чтобы и было удобно пользоваться (как полностью проектом, так и частями) так, чтобы можно было выкладывать проекты для разных версий аксапты так, чтобы можно было выкладывать и темплейты, и метки, и доп.скрипты, библиотеки так, чтобы можно было нормально выкладывать unit test'ы (как аксаптовские, так и внешние) причем хотелось бы такую методику выкладывания, чтобы можно было не только загружать в аксапту, но и просматривать код классов/джобов непосредственно в гитхабе? пример аксаптовских проектов https://github.com/mcarrowd/dax-document-builder https://github.com/AXbusiness/AxIssues https://github.com/Go-ERP/Ax2Git https://github.com/fraga/dynamicsperf может быть, лучше не гитхаб, а codeplex? может быть, есть еще какой репозиторий? |
|
19.02.2016, 17:30 | #2 |
Участник
|
Так как система контроля версия работает в аксапте - XPO по элементам. Собирать релизы автоматически при помощи cobinexpos
|
|
19.02.2016, 19:23 | #3 |
Участник
|
|
|
19.02.2016, 20:23 | #4 |
Участник
|
- все вроде сначала превращают узлы аот в файлики
- узлы вот типа формы таблицы и т.д. http://blogs.msdn.com/b/mfp/archive/...xpo-files.aspx Последний раз редактировалось belugin; 19.02.2016 в 20:46. |
|
|
За это сообщение автора поблагодарили: mazzy (2). |
19.02.2016, 21:10 | #5 |
Участник
|
Цитата:
Сообщение от belugin
- все вроде сначала превращают узлы аот в файлики
- узлы вот типа формы таблицы и т.д. http://blogs.msdn.com/b/mfp/archive/...xpo-files.aspx насчет XPO-файликов. 1. спасибо за ссылку 2. да, идея понятная. именно так сейчас в проектах-примерах и делают https://github.com/mcarrowd/dax-docu...entBuilder.xpo НО в xpo-файле неудобно просматривать код в отдельном виде. 2.1. предположим, у нас есть xpo для узла с монстро-формой типа SalesTable. предположим, я хочу задать тебе вопрос по мамнадцатой строчке метода init датасорса dirPartyAddress (какой-нибудь шеварнадцатый датасорс на форме) это ж свихнешься ссылку давать, чтобы вопрос задать а потом отвечающий свихнется искать. а требовать номер строки с вопрошающего - это лучший способ избавиться от вопросов ))))) 2.2. код в xpo отбит дополнительными пробелами и # если отвечающий захочет скопировать себе кусочек кода, то отвечающему придется убирать "лишние" первые символы... 2.3. кроме того "самоборка" затруднит последовательность в случае зависимостей. например, узлы-АОТ для unit теста имеет смысл загружать ПОСЛЕ тестируемых узлов 2.4. думаю, что лучше все-таки выкладывать и собственно проекты как здесь https://github.com/mcarrowd/dax-docu...aster/Projects только полностью а с узлами - надо подумать Последний раз редактировалось mazzy; 19.02.2016 в 21:13. |
|
19.02.2016, 23:59 | #6 |
Участник
|
Кстати, подумал, что многие не включают систему контроля версий.
поэтому для многих сложно получить отдельные XPO по каждому элементу. может, поэтому и проектов на гитхабе мало. может, поэтому и проекты, выложенные на аксфоруме, это архив с одним xpo-проектом... |
|
20.02.2016, 07:31 | #7 |
Участник
|
Можно добавить свои 5 копеек от джуниора?
Давно в идеях прикрутить контроль версии и внешний репозиторий (bitbucket, GitHub и т.п.) Пока придумал только выгрузку XPO. Краткая суть проекта. Есть форма ExportXPO с двумя вкладками, на первой список проектов, на второй параметры выгрузки. На первой вкладке выбираем проект и наживаем "Экспорт проекта", после чего происходит 2 выгрузки. 1) Выгружает полностью проект в папку %путь%\Projects\Shared 2) Выгружает по элементам %путь%\Jobs, %путь%\Data Dictionary\Tables Т.е. для коммита у нас есть большой проект и все элементы этого проекта по отдельности. Дальше в планах есть желания развить загрузку автоматическую из проектов, но это только в планах пока =) Прошу профессионал посмотреть и дать советы, как и что можно улучшить в моем проекте. Большое спасибо. |
|
20.02.2016, 08:52 | #8 |
Участник
|
Цитата:
но мне кажется, что стоит кроме самих элементов выгрузить и методы в отдельные файлы. тупо чтобы этим пользоваться можно было, не загружая проект в аксапту. но, если хранить код одновременно в нескольких местах, возникает вопрос - как решать конфликты обновления в разных файлах, если по-разному поправили xpo и отдельный файл. насчет тулзы выделил в отдельную ветку ExportXPO - замечания и предложения по проекту ========================== но кроме выгрузки одних объектов АОТ меня также интересует как правильно хранить в СКВ другие необходимые файлы - метки, темплейты, файлы с данными, инструкции по инициализации и инструкции по встраиванию (например, не стоит хранить в СКВ меню Администрирование, лучше написать инструкции куда вставить menuItem) и т.п. Последний раз редактировалось mazzy; 20.02.2016 в 09:16. |
|
20.02.2016, 09:28 | #9 |
Участник
|
MS внутри использует разбиение по application nodes особых проблем с этим не вижу. Code review более менее понятное. В принципе можно указывать не строчку, номер корой может сильно поменяться со временем, а фрагмент кода.
Еще разбиение по application nodes поддерживается IDE, а для разбиения по более мелким нодам придется поддерживать что-то свое. Для заливки выкладывать xpo шники полученные combinexpos билдскриптом |
|
20.02.2016, 10:16 | #10 |
Участник
|
это да...
но внутри MS и нет людей, которые не имеют доступа к аксапте. меня например частенько спрашивают, а у меня под рукой аксапты нет. или аксапта не той версии. Цитата:
вопрос "как правильно" и "как удобнее" Цитата:
да, понял. хотя объединять можно любым скриптом (например на PowerShell) или в той же аксапте ) там дело не хитрое. вопрос - удобно ли это потенциальным пользователям. как и во всех остальных проектах разработки... нет проблемы что-то сделать в принципе - разработать можно все что угодно. есть сугубо экономический вопрос - будут ли затраченные усилия пользователя меньше, чем разобраться и сделать самому свой велосипед. если необходимо приложить усилия больше некоего порога, то люди просто не будут пользоваться "этой фигней". например, сейчас проекты по аксапте на гитхаб не выкладываются. например, на аксфоруме проекты выкладываются одним xpo-шником. и никто не следит за версиями... повторное использование проектов с аксфорума - та еще задача по затратам усилий. Последний раз редактировалось mazzy; 20.02.2016 в 10:39. |
|
20.02.2016, 10:41 | #11 |
Участник
|
подумав хорошенько, понимаю, что задал неправильный вопрос.
правильный вопрос: Как правильно обмениваться проектами на Аксапте? другими словами, какие условия нужно соблюсти, чтобы и "выкладывать", и "использовать выложенное" было удобно всем сторонам процесса "обмен проектами" ну, а гитхаб - это всего лишь один из возможных вариантов для публичного хранилища проектов. |
|
20.02.2016, 12:07 | #12 |
Участник
|
выйдет ах7, будет вам всем счастье
зашел в магазин приложений, загрузил то что нужно, пользуешь |
|
20.02.2016, 14:01 | #13 |
Участник
|
|
|
20.02.2016, 14:16 | #14 |
Moderator
|
Цитата:
Как правильно обмениваться проектами на Аксапте?
другими словами, какие условия нужно соблюсти, чтобы и "выкладывать", и "использовать выложенное" было удобно всем сторонам процесса "обмен проектами" Я этим ничего не нарушаю ? |
|
|
За это сообщение автора поблагодарили: mazzy (2). |
20.02.2016, 14:34 | #15 |
Участник
|
хороший вопрос.
насколько я помню, выкладывая в общий доступ код ОТКРЫТОГО объекта - ничего не нарушается. в лицензии оговаривается reverse engineering. насколько я понимаю, это этот пункт касается кода exe, dll и закрытых системных объектов типа List, Map, Dict* и прочих системных. но надо перечитать. ============== точно известно, что сотрудники майкрософт публикуют xpo-проекты. но никогда не обращал внимание на наличие там стандартных объектов. ============== ок, правильный вопрос: Как правильно обмениваться аксаптовскими проектами, которые содержат только нестандартные объекты? |
|
20.02.2016, 15:24 | #16 |
Moderator
|
Цитата:
Как правильно обмениваться аксаптовскими проектами, которые содержат только нестандартные объекты?
Ну, ты же не пишешь, что именно из этого ты хотел бы получить. Точнее пишешь, но, на мой взгляд это не те вопросы Цитата:
так, чтобы и было удобно пользоваться (как полностью проектом, так и частями)
Цитата:
так, чтобы можно было выкладывать проекты для разных версий аксапты
Цитата:
так, чтобы можно было выкладывать и темплейты, и метки, и доп.скрипты, библиотеки
так, чтобы можно было нормально выкладывать unit test'ы (как аксаптовские, так и внешние) Гораздо хуже то, что главное в Git (а тем более GitHub) - это коллективная работа, когда разработка ведется параллельно разработчиками в нескольких системах, а потом все изменения сливаются вместе. Cделать полноценный merge с разрешением конфликтов в связке Ax+Git я, когда этим занимался не смог. А это убивает всю социальную составляющую. p.s. И приведенные тобой репозитории наглядно демонстрируют эту проблему. Посмотри на список коммитов - все эти проекты разрабатываются одним человеком. Как послать туда pull request нормально, я даже не представляю. Последний раз редактировалось Андре; 20.02.2016 в 15:34. |
|
20.02.2016, 15:41 | #17 |
Участник
|
Цитата:
я об этом я уже говорил Как правильно выкладывать проекты по Аксапте на github, например? аксфорум - один из вариантов такого хранилища законченный пример download ========================== но в моем вопросе есть также ключевое слово - удобно ребяты, вы все отвечаете на вопрос "можно ли в принципе сделать?" это не вопрос. ответ - гавно вопрос. вопрос - как сделать это настолько удобно, чтобы этим стали пользоваться? ========================== гитхаб позволяет создавать ветки, подключать контрибуторов, что позволяет сообществу развивать проект. гитхаб позволяет просматривать отдельные файлы, не загружая их на локальный комп и в аксапту. гитхаб позволяет просматривать результаты сравнения файлов в разных ветках, не загружая их на локальный комп и в аксапту. просто гитхаб - это инструмент с дополнительными функциями для работы с версиями. почему сообществам не развиваются проекты импорта/экспорта в эксель? табакс? расширенный браузер таблиц? практически все делают расширения для контейнеров и енумераторов. практически все делают расширения для Query практически у всех есть свои реализации стрингов и прочих базовых типов keySum на map'ах - это вообще ослиный мостик, который есть у всех. скрипты в редактор для генерации кода... проверки bestPractice генератор документации улучшения в перекрестных ссылках и т.п. и т.д. а где это в общем доступе? мало того, многое есть на аксфоруме.... а как уже имеющееся сделать более доступным и более удобным для использования? собственно отсюда и родился вопрос: Как правильно обмениваться аксаптовскими проектами [, которые содержат только нестандартные объекты]? поскольку сейчас мы занимаемся подготовкой к апгрейду аксфорума, эта тема достаточно актуальна для меня ) Последний раз редактировалось mazzy; 20.02.2016 в 15:48. |
|
20.02.2016, 15:51 | #18 |
Moderator
|
Цитата:
почему сообществам не развиваются проекты импорта/экспорта в эксель? табакс? расширенный браузер таблиц?
Цитата:
практически все делают расширения для контейнеров и енумераторов.
практически все делают расширения для Query практически у всех есть свои реализации стрингов и прочих базовых типов Цитата:
вопрос - как сделать это настолько удобно, чтобы этим стали пользоваться?
|
|
20.02.2016, 16:06 | #19 |
Участник
|
Цитата:
собственно говоря, я и хочу понять - а почему так правильно? не удобнее ли с точностью до методов? и раз уж выкладывать и пообъектную, и собранную (и огребать проблемы с конфликтом правок) то можно выкладыдать и методы. не так ли? ведь каталог CIL кодом сейчас содержит туеву хучу фаликов для каждого метода. и ничего, живет. а почему бранчи, а не подкаталоги, например? или не отдельные проекты? я не ехидничаю, я действительно не знаю и хотел бы услышать аргументы. согласен. но не совсем. просто для каждого языка (ну, или для каждой платформы уже есть устоявшиеся соглашения). например, исходный код в каталоге src, юнит-тесты в каталоге test, документация в каталоге doc. а вот, например, с зависимыми проектами уже общих соглашений нет. кто называет каталог dependences, кто ext, кто packages. Я думал, что может кто уже размышлял на тему что нужно выкладывать для аксапты. Хотел послушать. вот какая общая структура каталогов у меня пока получается для аксаптовских проектов
каждый проект - это отдельный полностью компилируемый блок, который может использовать другой проект, указанный в модулях. примерно так... Цитата:
Сообщение от Андре
Гораздо хуже то, что главное в Git (а тем более GitHub) - это коллективная работа, когда разработка ведется параллельно разработчиками в нескольких системах, а потом все изменения сливаются вместе. Cделать полноценный merge с разрешением конфликтов в связке Ax+Git я, когда этим занимался не смог. А это убивает всю социальную составляющую.
можешь подробнее? Цитата:
собственно вопрос - а как сделать так, чтобы было нормально? чтобы было удобно? чтобы было правильно? что нужно объяснить людям? что написать в FAQ? (например, меня останавливало масса мелких xpo-шников, про combinexpos я только здесь узнал. а собирать руками - это "ну его нафиг". если бы я знал об этой тулзе раньше!) собственно вопрос: Как правильно обмениваться аксаптовскими проектами [, которые содержат только нестандартные объекты]? Последний раз редактировалось mazzy; 20.02.2016 в 16:14. |
|
20.02.2016, 16:10 | #20 |
Участник
|
Цитата:
но уровень усилий для включения в проект слишком высок. нам платят за другое. Цитата:
однако ж масса проектов, где есть... хм... читатели. я думаю, что сначала решить бы вопрос - как распространять так, чтобы было удобно использовать. один xpo-файл - это неудобно. для него надо где-то иметь тестовую Аксапту, которую не жалко загубить неудачным импортом. я видел много людей, которым ИНТЕРЕСНО. но я видел ОЧЕНЬ мало людей, у которых была бы отдельная аксапта для исследовательских нужд. Цитата:
но так, чтобы в будущем было не так уж и сложно и подключаться к проекту в роли контрибьютора. ключевое слово "удобно" ) Последний раз редактировалось mazzy; 20.02.2016 в 16:18. |
|