對系統定義模型 (SDM) 文件同時進行的簽出和變更
更新:2007 年 11 月
在 [分散式系統設計工具] 中,由於 SDM 文件 (包括 .sdm 檔和分散式系統圖表 (.ad、.sd、.dd 和 .ldd) 檔) 所包含之中繼資料 (Metadata) 的結構和複雜度,因此不建議您從原始程式碼控制合併或同時簽出這些文件。如果您使用 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 應用程式上的 Web 內容端點不會進行反向工程:針對包含這些端點之 SDM 資訊的刪除檔案重新產生新的 .sdm 檔案。如需詳細資訊,請參閱應用程式圖表疑難排解。 |
對應用程式專案檔同時進行的簽出和變更
雖然不建議,不過如果您的小組選擇對專案檔進行同時變更,也可以啟用共用簽出。不過,某些情節可能需要在簽入專案檔時合併這些變更。合併衝突可能會發生,而且需要加以解決。如需詳細資訊,請參閱 HOW TO:設定簽出設定 (如果您使用 Team Foundation)。
這類的一般情節發生的情境,通常會牽涉到多位開發人員,他們要在共用的專案中處理不同的原始程式碼檔。此專案會在多個方案之間共用,其中的每個方案可能都會包含自己的應用程式圖表。如果方案包含應用程式圖表,而且專案包含 .sdm 檔案,則在專案中對程式碼檔或組態檔進行變更或同時變更時,可能需要更新 .sdm 檔案。因此,簽入專案時,您必須將同時變更合併到 .sdm 檔案,或捨棄對 .sdm 檔案的一組變更。
例如,假設有兩位開發人員在相同的方案中工作。第一位開發人員想要使用 ASP.NET 應用程式的 Web 服務類別檔案,並簽出包含應用程式專案的方案。此開發人員可以使用專案程式碼,而不需要開啟應用程式圖表,或可能存在於方案中的其他圖表。不過,對程式碼檔的變更仍會影響這些圖表。當這位開發人員開啟應用程式圖表時,系統就會提示他簽出圖表以及進行同步處理所需的其他專案檔。
注意事項: |
---|
如果開發人員取消簽出,或者圖表由於任何原因而無法簽出時,圖表就會鎖定。不過,此開發人員可以繼續對程式碼進行變更。如需詳細資訊,請參閱應用程式圖表疑難排解。 |
假設第二位開發人員必須在相同方案中的相同專案上工作,而且根據使用的特定原始程式碼控制方案簽出該專案。不過,第二位開發人員會在相同的應用程式上,使用不同 Web 服務的類別檔案。如果第二位開發人員想要檢視應用程式圖表,以查看反映變更的方式,則因第一位開發人員已將該圖表簽出,所以第二位開發人員將只能在唯讀狀態下檢視該圖表。不過,第二位開發人員可以利用程式碼編輯器,繼續對程式碼進行變更。
當其中一位開發人員完成變更時,會將變更簽入原始程式碼控制。此時,必須先解決同時簽出檔案的合併衝突。在大多數情況下,將會針對 .sdm 檔案的眾多變更有所取捨 (選擇部分的變更,放棄其他部分),而且應用程式圖表會根據合併的程式碼與 .sdm 檔案同步化。不過,在此情節中,第二位開發人員使用不同的 Web 服務類別檔案,最好是全然接受其中一個 .sdm 檔案的變更 (放棄另一個),因為應用程式圖表會與程式碼同步化,然後將 .sdm 檔案同步化。
如需詳細資訊,請參閱 HOW TO:解決系統定義模型 (SDM) 文件中的衝突。