2010-11-25 138 views
1

我設置了兩個開發環境(一個將在我的本地服務器上,另一個在雲服務提供程序上,我將在其中執行可能需要比本地服務器更多內存的工作)。如何保持需要保持同步的獨立開發環境,同步?

我能做些什麼來確保兩個環境始終完全同步?我正在考慮集中部署應用程序,並使用工具來同步SQL Server數據庫,以及另一種保持Sharepoint服務器同步的工具,這兩個虛擬機之間的環境非常類似。還有什麼可以幫助實現這個嗎?

謝謝

回答

1

這是SharePoint開發的一個非常棘手的問題。

只要SQL服務器(對於非SharePoint的東西),你可以使用SQL Server提供的工具同步你的數據庫。例如,複製數據庫嚮導,或者如果您需要自定義工作,您甚至可以編寫自己的SSIS包。

儘管SharePoint是另一回事。您不能僅通過跨數據庫複製數據庫將站點集合/ Web應用程序從一臺服務器同步到另一臺服務器,它不起作用(出於許多原因,但主要是因爲當您在服務器上創建Web應用程序時,它會使用GUID作爲應用程序ID,該GUID用於數據庫中的任何地方,並且如果嘗試更改它,則表之間的所有鏈接都將被破壞)。 SharePoint數據庫的結構沒有記錄,MS建議不要手動修改它。說實話,即使你確實設法從SQL服務器同步你的數據庫,你也會遇到其他問題,因爲你所做的所有自定義都沒有保存到數據庫中(很多東西進入了12個配置單元)。

所以這歸結於你想要達到的目標。

如果您嘗試同步已編碼的自定義項(即您的內容類型,列表模板,Web部件等)。我建議您只從開發環境構建WSP包,並且每次需要同步時都要部署它們。

如果您只是試圖同步數據(即列表項),則可以使用備份/恢復解決方案(可以在管理中心找到它)。請注意,如果您進行了自定義,它並不太可靠。它可以在開箱即用的網站上正常工作,但使用自己的列表模板後可能會很棘手。

您也可以使用web servicesContent Deployment API編寫代碼以查看它是否適合您的需求。

您還可以查看將完成全部或部分工作的工具。 Here is one

所以基本上,無論你如何決定這麼做,它都不會像你期望的那麼簡單。 DEV/TEST/PROD環境同步問題是SharePoint開發的經典之作。

我上一個高度定製的SharePoint Web應用程序工作,我們找到了最好的解決辦法是:

  • 在我們的代碼非常有紀律:通過代碼做你的自定義,並與該代碼建立WSP封裝。沒有SharePoint設計器。一旦您使用SharePoint設計器自定義頁面,您無法同步任何內容。
  • 同步使用網絡服務的服務器之間的列表
+0

這是一個非常好的答案。謝謝! – dotnetdev 2010-11-27 15:25:34