2013-06-01 3 views
1

Мы разрабатываем Caisis (Caisis.org) - систему сбора клинических данных с открытым исходным кодом. Caisis - это интерфейс ASP.NET (4.0) (C# code сзади) и конец SQL Server 2008.Как перенести изменения C# из одного приложения ASP.NET в другое?

Периодически версии CAisis обновляются. Например, мы были заняты разработкой в ​​версии Caisis версии 5.0, и теперь выпущена версия Caisis версии 6.0. Теперь нам нужно перенести все наши передние изменения & в Caisis Version 6.0.

Синхронизация различий между двумя базами данных SQL Server может быть решена с помощью Red Gate SQL/Data Compare или с использованием инструментов с открытым исходным кодом, таких как Open DBDiff.

Однако, насколько я могу судить, нет никаких эквивалентных инструментов (проприетарного или открытого источника) для синхронизации 2 приложений ASP.NET/C#. В настоящее время мы сводимся к полуавтоматическим подходам, связанным с обнаружением различий между двумя файловыми системами с использованием robocopy, а затем с применением этих изменений вручную. Есть ли более эффективный способ сделать это?

+0

Почему вы изменили основной продукт? –

+0

Ядро Caisis обеспечивает основу для общей системы сбора клинических данных. Наша группа разрабатывает систему как систему управления клиническими испытаниями с открытым исходным кодом (CTMS). В частности, мы улучшили программное обеспечение для поддержки функциональности в биобезопасности.Многие другие изменения запланированы на будущее, так как разработана полная поддержка CTMS. – user2302445

+0

@ User2302445 - Я предполагаю, что вы используете какой-то контроль источника/версии? Если вы правильно разветвляете свой источник, инструменты управления источниками должны иметь возможность автоматизировать некоторые, если не все. –

ответ

1

Я был в подобных ситуациях. Ответ просто: это непростая задача. Вы можете использовать инструмент, например Beyond Compare или Araxis Merge (Merge более удобен для пользователя, BC, на мой взгляд, более мощный). Для сравнения каталогов. С небольшой конфигурацией вы можете заставить эти инструменты скрыть все разнородные ветви и файлы директорий, оставив вас только подмножество различий. Затем вы можете использовать функцию сравнения файлов этих инструментов, чтобы точно увидеть, что изменилось в файлах, и выбрали, что нужно вытащить и что оставить.

(Мнение) Вы должны сделать это объединить на чистую кассе. - то есть, нет выдающихся файлов для проверки в Затем, после вашего слияния будет завершено, есть один большой чек-ин с только по обновлению слияние изменений. Тогда у вас есть способ откат, если вы слишком много сделали, или если вы что-то пропустили. Вы можете отменить изменения, внести исправления и повторите попытку.

+0

Спасибо - очень полезные советы – user2302445

1

Мой склон, если бы я настраивал новый проект этого типа, должен был обрабатывать его через ветвление ветвления и слияние. Я бы взял оригинальный код для продукта, который я собираюсь изменить в качестве отправной точки (назовите его моей основной веткой для обсуждения). Прежде чем вносить какие-либо изменения, я бы потом разветвил это для моей разработки (назовите это один dev). Продолжайте отсюда, с какой стратегией ветвления вы предпочитаете.

Ключом к тому, что я настраиваю, является то, что я никогда не вношу изменений в основную ветку, это остается верным исходному выпуску, на котором я основываю свои модификации. Затем, когда меняются исходные коды, я могу применить их к моей основной ветке. Оттуда я могу объединить их в свою ветку dev, а также через любые другие ветви и в мой код выпуска, если это необходимо.

Конечно, этот подход зависит от двух факторов: A) вы используете систему управления источниками, которая выполняет достойную работу по обработке ветвления и слиянию. B) вы устанавливаете эту ветвящуюся структуру в начале проекта.

Настройка этого процесса после того, как проект уже выполняется, будет довольно сложным. Некоторые инструменты управления версиями позволят вам установить ветвь связи между дискретными базами кода, но, по моему опыту, почти всегда есть осложнения для этого. Для чего-то, что уже было значительно изменено от оригинала, предложение Эли, вероятно, является одним из лучших подходов.

Смежные вопросы