Одновременное извлечение и внесение изменений в документы модели определения системы (SDM)
Обновлен: Ноябрь 2007
В конструкторах распределенных систем не рекомендуется выполнять слияние или одновременное извлечение документов SDM, включая SDM-файлы и файлы диаграмм распределенных систем (AD, SD, DD и LDD), из системы управления версиями по причине структуры и сложности метаданных в этих документах. Если используется версия Visual Studio системы управления версиями (Team Foundation или Visual SourceSafe), по умолчанию включено монопольное извлечение, и только один пользователь может извлечь файл одновременно.
Примечание. |
---|
Если приложение (поддерживающее реализацию) реализовано на диаграмме приложения, создается соответствующий проект, который появляется в решении. Определение SDM для реализованного приложения хранится в файле SDM и включено в соответствующий проект. Дополнительные сведения см. в разделах Общие сведения о модели определения системы (SDM) и Связи между документами модели определения системы (SDM). |
Диаграммы приложения не должны подвергаться слиянию. После реализации приложения код становится основным определением для приложения, и происходит синхронизация изменений схемы и кода. Поскольку файлы кода приложения и файлы конфигурации являются источниками определения SDM, результаты слияния файлов кода или файлов конфигурации в конечном итоге определяют окончательную версию определения SDM в файле SDM.
Примечание. |
---|
В Team Foundation можно включить или исключить ожидающие изменения. Однако этого не рекомендуется делать, если в результате возникает необходимость слияния документов SDM. Например, если в файлах конфигурации изменить параметры или ограничения, включить эти изменения, а затем внести в эти параметры и ограничения другие изменения, потребуется выполнить слияние документов SDM. Дополнительные сведения см. в разделе Работа с наборами отложенных изменений системы управления версиями. |
При каждом открытии или закрытии диаграммы приложения соответствующие изменения кода проекта синхронизируются с SDM-файлом и диаграммой приложения. Таким образом, если нарушается синхронизация файла диаграммы приложения (AD) или SDM-файла с кодом, то для повторной синхронизации следует закрыть диаграмму приложения и открыть ее еще раз. Дополнительные сведения см. в разделе Синхронизация документов модели определения системы (SDM).
Примечание. |
---|
Данные в документах SDM, которые невозможно создать повторно из другого источника, например, данные презентации или документы SDM, присутствующих только в SDM-файлах, будут окончательно потеряны при удалении документа или потере данных в результате операции слияния. Это единственный случай, когда невыполнение слияния схемы или SDM-файлов может привести в потере данных. По этой причине строго рекомендуется не работать одновременно с определениями, которые хранятся только в файлах SDM, или не выполнять их слияние. Например, конечные точки веб-содержимого в приложении ASP.NET не подвергаются обратной процедуре разработки, если новый файл SDM создается вместо удаленного файла, в котором содержались данные SDM для таких конечных точек. Дополнительные сведения см. в разделе Устранение неполадок на диаграммах приложений. |
Одновременное извлечение и внесение изменений в файлы проекта приложения
Если группа принимает решение о внесении одновременных изменений в файлы проекта, можно включить общее извлечение несмотря на то, что это не рекомендуется. При этом в некоторых случаях может потребоваться слияние изменений во время возврата файлов проекта. Возможны конфликты слияния, которые потребуется устранить. Если используется Team Foundation, дополнительные сведения см. в разделе Практическое руководство. Настройка параметров извлечения.
Один из таких распространенных случаев возникает, когда несколько разработчиков работают с разными файлами исходного кода в совместном проекте. Совместная работа над таким проектом может охватывать несколько решений, для каждого из которых может существовать отдельная диаграмма приложения. Если решение содержит диаграмму приложения, а проект – SDM-файл, то при изменении (или одновременном изменении) файлов кода или файлов конфигурации в проекте может потребоваться обновление SDM-файла. Таким образом, при возврате проекта необходимо выполнить слияние любых одновременных изменений SDM-файла или отменить ряд изменений, вносимых в SDM-файл.
Предположим, что над одним решением работают два разработчика. Первому разработчику требуется работать с файлом класса веб-службы для приложения ASP.NET, и он извлекает решение с проектом приложения. Этот разработчик может работать над кодом проекта, не открывая диаграмму приложения или какие-либо другие схемы, которые могут присутствовать в решении. Однако изменения, вносимые в файлы кода, по-прежнему могут влиять на эти схемы. Когда этот разработчик открывает диаграмму приложения, ему предлагается извлечь схему вместе с другими файлами проекта, которые требуется синхронизировать.
Примечание. |
---|
Если разработчик отменяет извлечение или если схему не удается извлечь по какой-либо причине, схема заблокируется. При этом разработчик сможет продолжить внесение изменений в код. Дополнительные сведения см. в разделе Устранение неполадок на диаграммах приложений. |
Допустим, второму разработчику необходимо работать над тем же проектом в том же решении, и он извлекает этот проект, что зависит от конкретного используемого решения управления версиями. Но второй разработчик работает с файлом класса для другой веб-службы того же приложения. Если второй разработчик захочет просмотреть диаграмму приложения, чтобы убедиться, что в ней отражаются изменения, то он сможет просмотреть схему в режиме только для чтения, так как она уже извлечена первым разработчиком. При этом второй разработчик сможет продолжить внесение изменений в код при помощи редактора кода.
Когда любой из разработчиков заканчивает внесение изменений, он возвращает их в систему управления версиями. На этом этапе потребуется устранить конфликты слияния одновременно возвращаемых файлов. В большинстве случаев некоторым изменениям в файле SDM будет отдаваться предпочтение, и диаграмма приложения будет синхронизироваться с SDM-файлом согласно коду слияния. При этом в описанном случае, когда второй разработчик работает над другим файлом класса веб-службы, безопасным будет принимать один SDM-файл из двух, так как диаграмма приложения будет синхронизована с кодом, а затем с SDM-файлом.
Дополнительные сведения см. в разделе Практическое руководство. Разрешение конфликтов в документах модели определения системы (SDM).
См. также
Основные понятия
Разделение решений распределенных систем для реализации