2014-03-27 120 views
3

一般指導似乎是將Sitecore安裝到一個文件夾中,例如, D:\ Websites \ MyWebSite,然後在單獨的文件夾中創建Visual Studio項目,例如C:\項目\ MyWebProject。然後,您可以將自定義代碼從Visual Studio發佈到Sitecore文件夾中(該視頻解釋了我在約13分鐘內描述https://www.youtube.com/watch?v=i3Mwcphtz4w的內容)。什麼是爲Sitecore設置開發環境的最佳方式

我有以下問題: -

  1. 千萬人只存儲在源countrol他們的Visual Studio項目,而不是Sitecore的代碼?
  2. 從VS發佈到Sitecore文件夾的選項只有添加文件或刪除不在VS項目中的任何選項。從VS項目中刪除的文件如果沒有手動執行就會被刪除?
  3. 我們使用web-deploy將站點發布到舞臺和現場環境。在這種情況下,你會從你的VS項目發佈還是你設置了發佈Sitecore文件夾的方式(如果是這樣)?
  4. 這實際上是一個很好的設置,或者你有什麼不同嗎?

回答

7

幾年前我們開始Sitecore開發時,我做了大量的研究。我記得讀肖恩科爾尼一個職位,做了很多的意義,我:http://seankearney.com/post/Visual-Studio-Projects-and-Sitecore

我們結束了使用這種方法對大型和小型規模的項目,它已經很大。你也想看看一對夫婦的其他工具:

因此,要回答你的問題:

  1. 所有的代碼和某些Sitecore項目的存儲在源代碼管理中。您想要採取的方法是隻存儲您創建的新Sitecore項目(佈局,子佈局,模板等)以及您可能需要自定義的任何項目。您不需要存儲所有的sitecore源代碼,內容或模塊......只需要重新應用即可獲得全新的環境。你可以手動管理這個,但像TDS這樣的工具使得這個更容易。
  2. 我們使用TDS來管理髮布/部署到我們的每個環境。 TDS具有用於處理已刪除項目的可配置設置,包括將其移至Sitecore回收站或將其刪除的功能。你必須小心,但它確實有效。
  3. 我們使用單獨的構建環境來組裝和運行使用TDS和Jenkins的部署。基本上,所有代碼都從源代碼管理系統檢索到Sitecore服務器,並使用MSBuild和TDS構建。在大多數情況下,我們直接使用webdeploy到Sitecore webroot,但爲了生產,我們構建了TDS包,然後在每個Content Delivery Server上運行它們。
  4. 我們已將此設置用於7個sitecore項目,我非常滿意它已經解決了。我們質疑TDS是否值得牌照費,但回答總是回覆爲是。替代方案對我們的開發人員來說不是很吸引人,節省的時間遠遠超出了成本。
+0

偉大的答案,凱文。 Tim,爲了補充這一點,我想提一下擴展TDS版本的能力,特別是刪除已經從VS項目中刪除的文件。 Pavel Veller在這裏對此進行了博客。 http://jockstothecore.com/clean-up-after-tds-file-replacement/ –

+0

什麼時候通過Sitecore桌面創建新的佈局/子佈局?當然,這樣做會在部署的Web根目錄下創建.NET文件(.aspx,.ascx等),而不是在實際的源項目中。是否有解決這個問題的好方法,還是需要在創建後將這些文件複製回源解決方案? – geedubb

1
  1. 一切都存儲在源代碼控制!......剛纔並不總是在他們居住的Web服務器上的同一區域。在源代碼管理中存儲Sitecore文件夾是一個好主意,因爲在安裝模塊時會有變化,但是您不會將Sitecore文件夾添加爲解決方案/項目的一部分,並且如果需要的話,而不是被追蹤/監控的東西。

  2. 安裝Sitecore後,創建一個駐留在網站文件夾中的新項目,並只添加諸如properties文件夾,佈局,xml和其他所需文件夾等項目。我甚至沒有在我的項目中包含app_config。哦,並且要清楚,最好將Sitecore文件夾保存爲源代碼管理中的參考文件夾,但不能將其作爲網站中繼的一部分。我們將它放在源代碼管理中的網站文件夾忽略列表中。但是,這就是說,請記住,您將需要在您的網站文件夾。

  3. 從技術上講,推薦的方法是將Sitecore作爲獨立的空實例安裝到服務器本身上。就像使用帶有客戶端模式的安裝程序(未完成)一樣,以便獲得空的站點框架到位。然後你可以創建部署包/包/任何東西,它將全部是你自己的代碼。您應該永遠不必手動更改/刪除基本Sitecore文件系統。

  4. 見上。一般來說,除非您有這樣做的理由:將Sitecore安裝爲空實例...然後通過部署來管理您的代碼/文件,並且只保留Sitecore文件夾文件。在升級之外,您幾乎沒有理由觸碰它們或Sitecore文件夾本身。

+0

您對2的回答似乎與視頻顯示的內容相矛盾。在視頻中,具有網站實施的項目不駐留在IIS使用的文件夾中,而是一個普通的用戶開發文件夾。然後使用VS發佈將代碼部署到IIS文件夾。或者我誤解了一些東西? – bzlm

+0

因此,如果我已經在生產服務器上正確理解了您,我將安裝Sitecore以獲取基礎文件,然後將文件從單獨的項目發佈到其中(如在視頻中)。 假設我已經完成了這一步,然後在稍後的日期我有一些更改,刪除一些控件,如何將這些從服務器上刪除。我的理解是發佈工具可以刪除不在項目中的所有內容,但這也會刪除Sitecore文件。 –

+0

@TimGriffiths,這隻會是你開發環境中的一個真正的問題。發佈到演示環境或實時環境時,您只會發佈實際需要的材料。而且基於部署的設置可以讓您始終從乾淨的Sitecore安裝開始 - 只要您將Sitecore修改作爲實現的一部分(視頻中未包含)進行包含即可。因此,在現實生活中,這幾乎不存在問題的風險,視頻中的開發方法可以完全消除這種風險。 – bzlm

1
  1. 添加Sitecore的自身源代碼控制應避免,因爲你不會被部署Sitecore的爲您實現的一部分。要將修改爲到Sitecore本身,您需要一種處理您的實現內部的方法,但配置補丁系統和其他機制爲此提供了方法。在Web站點文件夾

  2. 冗餘文件只會在你的開發環境一個真正問題。發佈到演示環境或實時環境時,您只會發佈實際需要的材料。而且基於部署的設置可以讓您始終從乾淨的Sitecore安裝開始 - 只要您將Sitecore修改作爲實現的一部分(視頻中未包含)進行包含即可。因此,在現實生活中,這幾乎不存在問題的風險,視頻中的開發方法可以完全消除這種風險。

  3. 的Sitecore的安裝應外界的部署實施的處理

  4. 這是一個很好的設置,因爲在視頻中的方法是方法Sitecore的建議發展,而且它也是發展課程方法Sitecore的教給開發者。這種方法的最明顯的優勢是你的網站實施和Sitecore的安裝之間

    • 完全分離。沒有意外地損壞Sitecore安裝的風險,並且不存在忘記Sitecore的非託管手動修改所需的運行網站的風險。如果您沒有在視頻中使用該方法,則很難實現此分離。

    • 通過使用發佈來部署您的實現,您知道您的實現可以在乾淨的Sitecore安裝之上部署 - 並且可以運行。這意味着將來部署到生產或演示服務器時,情況將會一樣,並且不會有任何意外。如果您沒有在視頻中使用該方法,則很難確定。

    • 要在不同版本的Sitecore上測試您的實施,您可以將其部署到不同版本的乾淨安裝。如果您沒有在視頻中使用該方法,則很難進行測試。

sample source code for the video on GitHub,對如何建立開發環境,包括出版的部分指令一起。此示例源直接或間接地回答了您的一些問題。

+0

感謝您的回覆。這一切對我來說都很有意義,我只是在理解代碼更新(例如佈局,組件等)在涉及刪除文件時如何發佈。 如果我是正確的,視頻中的發佈方法只能將文件添加/更新到目標。您可以選擇刪除不在解決方案中的文件,但由於Sitecore不在您的解決方案中,因此會導致Sitecore被刪除。 –

+0

@TimGriffiths,這隻會是你的開發環境中的一個真正的問題。發佈到演示環境或實時環境時,您只會發佈實際需要的材料。而且基於部署的設置可以讓您始終從乾淨的Sitecore安裝開始 - 只要您將Sitecore修改作爲實現的一部分(視頻中未包含)進行包含即可。因此,在現實生活中,這幾乎不存在問題的風險,視頻中的開發方法可以完全消除這種風險。 – bzlm

+0

@TimGriffiths刪除文件刪除,請參閱我對Kevin Bechard上面的答案的評論。 –

相關問題