Sitecore项目的最佳实践

You*_*nes 14 project sitecore

我是Sitecore的新手,想了解更多关于新项目的常规方法.因此,我愿意倾听并尝试一些经验丰富的Sitecore开发人员解决方案.我有很多问题,我不会问他们所有问题.我对其他人的做法非常好奇.

什么是启动Sitecore项目的最佳方法?你会如何设置你的项目?您将如何看待未来项目中的代码回收?

简而言之:您有什么经验(如果您曾与Sitecore项目合作或正在开展工作),您将如何推荐其他人使用Sitecore.

现在我们正在忙于构建Sitecore块,我们可以在其他项目中回收,但我知道肯定有1001个方便的提示和技巧.我希望我们有一些Sitecore pro的@ stackoverflow可以帮助一点.

小智 9

以下是一些基于我们如何做事的一般设置信息.

Subversion 这不是特定于Sitecore的,但我们像这样设置我们的存储库

  • 分支 - 用于处理可能需要一段时间的网站的大更新.比方说,我想更新网站上所有侧边栏的工作方式,这需要几周的时间才能完成.我们要做的是创建一个新的分支,并为这个dev分支设置另一个sitecore实例,并做我们需要做的事情.完成后,我们将其合并回主干进行测试和部署.
  • tags - 这用于保存永远不会合并回主干的代码副本(这是它与分支之间的区别),因此例如当我们将更新部署到站点时,我们可以创建所述代码的标记所以我们可以在必要时再回过头来.
  • trunk - 活动代码,此处签入的任何内容都应始终可部署.

Trunk 这是我们积极开发/修复错误的地方,具体取决于我们所在项目的哪个部分.我们设置这样的东西(作为一个例子,该项目被称为TheProject)

我们将解决方案文件保存在此文件夹的根目录下,这将引用src文件夹中的各个库以及网站文件夹中的Web项目.

  • docs - 放置网站文档的地方.我强烈建议您在完成功能/部分时,写一些关于它工作所需的特殊知识的指南.所以说我正在着陆页上的特色内容框上工作.除非明确覆盖,否则此框将自动提取一些内容.当我完成这样的事情时,我所做的是使用大量的屏幕截图为客户编写指南.我将指南发送给客户,并将其放在docs文件夹中.这既有助于客户培训他们的员工,也可以帮助新开发人员快速完成工作.
  • lib - 这是我们保留在项目中需要引用的任何DLL的地方.
  • test - 进行单元测试的地方.
  • src - 这是我们保留项目特定库代码的地方.所以在这里我们将有一个名为TheProject.Library的文件夹,并且在那里会有视觉工作室项目
  • 网站/网站 - 这是我们安装Sitecore的地方,也是网站的根目录.在这里,我们有一个名为TheProject.Web的项目.在项目中,我们添加了所有常规内容,如web.config/layouts文件夹等.

一般Sitecore代码库 您可以做的最好的事情是从一开始就设置一个可随时间添加的通用Sitecore库.然后,当您为不仅适用于项目的项目编写任何代码时,可以将其添加到那里.这似乎是显而易见的,但从长远来看,这确实会有所帮助.您将获得更加可靠的代码,请参阅链接文本.

因此,当我们完成所有这些工作后,我们会将此类问题作为解决方案/项目结构

项目(解决方案)

  • TheProject.Library
  • TheProject.Web
  • MyCompany.SitecoreLibrary(我们的一般sitecore库)

工具 这是另一个普遍的事情,但我发现它确实可以帮助加速Sitecore开发.如果您发现自己在Sitecore中反复做一些事情,使用API​​编写一个工具来为您完成.这不仅有助于解决您正在处理的任何问题,还有助于您更熟悉API.

Resharper 这是一个一般的.NET开发建议,使用Resharper(http://www.jetbrains.com/resharper/index.html).我有点像一个Resharper粉丝男孩,它使开发更容易,更快,制作了很多东西.在我看来,最大的优势是它重构代码是多么容易,随着时间的推移,保持清洁和易懂是非常重要的.

我希望其中一些有所帮助.

加布


Zoo*_*ing 8

正如你所说,这是一个很大的问题.以下是我的一些想法:

发展环境

首先,当我开始一个新项目时,我在我的开发环境中安装Sitecore,并确保一切正常.在安装期间或将数据库放在单独的SQL服务器上并相应地更改连接字符串之后.

我打开Visual Studio并创建一个解决方案并包含所需的文件.我创建了一些HelloWorld渲染并尝试构建解决方案,以便我可以验证一切正常.

当一切都运行起来后,我创建了整个解决方案的zip文件,包括数据文件夹.现在是时候将它添加到某种版本控制系统,在我的情况下是Subversion.

我将zip文件添加到subversion并添加我认为将在项目期间更改的所有文件,通常我告诉subversion忽略sitecore文件夹,这会在检入文件时大大加快性能.

在我执行提交操作后,我的项目的其他团队成员可以检查代码并开始开发(解压缩zip文件后,偏离课程)

我们都朝着同一个数据库工作,虽然这违反了Sitecore的建议,我们没有遇到任何问题,但是由一个开发人员创建/更改的GUI中的项目需要一些时间才能为所有其他人创建/更改.

我们可以使用相同的Sitecore安装来开发几个不同的项目,但由于几乎所有客户都使用不同版本的Sitecore,我们发现这种方法有点麻烦.

我们经常设置一个自动构建服务器,但这是另一个问题.

可重复使用的代码和渲染

我想说我们基于相同的代码库创建整齐的包,可以在项目之间重用,但不幸的是我们还没有.今天,解决方案之间存在很多削减和粘贴.

将代码上传到客户

这是通过sitecore软件包完成的,通常会对要包含的文件进行某种动态选择,比如说特定文件夹中的所有ascx文件都会在过去5天内更改.

你有它.