我对Sitecore很陌生,想了解更多关于新项目的常规方法。因此,我愿意倾听并尝试一些经验丰富的Sitecore开发人员解决方案。我有很多问题,我不会问他们所有问题。我对其他人的做法非常好奇。
启动Sitecore项目的最佳方法是什么? 你会如何设置你的项目? 您将如何看待未来项目中的代码回收?
简而言之:您有什么经验(如果您曾与Sitecore项目合作或正在开展工作),您会如何推荐其他人使用Sitecore。
目前我们正在忙于构建Sitecore块,我们可以在其他项目中回收,但我知道肯定有1001个方便的提示和技巧。我希望我们有一些Sitecore pro的@ stackoverflow可能有所帮助。
答案 0 :(得分:9)
以下是一些基于我们工作方式的常规设置信息。
<强>的Subversion 强> 这不是特定于Sitecore的,但我们像这样设置我们的存储库
主干 这是我们积极开发/修复错误的地方,具体取决于我们所在项目的哪个部分。我们设置了这样的东西(作为一个例子,项目被称为TheProject)
我们将解决方案文件保存在此文件夹的根目录下,这将引用src文件夹中的各种库以及网站文件夹中的Web项目。
常规Sitecore代码库 您可以做的最好的事情是从一开始就设置一个可随时间添加的通用Sitecore库。然后,当您为不仅适用于项目的项目编写任何代码时,可以将其添加到那里。这似乎是显而易见的,但从长远来看,这确实会有所帮助。您最终会获得更加可靠的代码,请参阅link text。
因此,当我们完成所有这些工作后,我们就会有这样的解决方案/项目结构
TheProject(解决方案)
工具强> 这是另一个普遍的事情,但我发现它确实可以帮助加速Sitecore开发。如果您发现自己在Sitecore中反复做一些事情,使用API编写一个工具来为您完成。这不仅有助于解决您正在处理的任何问题,还有助于您更熟悉API。
<强> ReSharper的强> 这是一个通用的.NET开发建议,使用Resharper(http://www.jetbrains.com/resharper/index.html)。我是一个Resharper粉丝男孩,它使开发更容易,更快速地制作了很多东西。在我看来,最大的优势在于重构代码是多么容易,随着时间的推移,保持清洁和易懂是非常重要的。
我希望其中一些有帮助。
加布
答案 1 :(得分:8)
正如你所说,这是一个很大的问题。以下是我的一些想法:
开发环境
首先,当我开始一个新项目时,我在我的开发环境中安装Sitecore,并确保一切正常。在安装期间或在将数据库放在单独的SQL服务器上并相应地更改连接字符串之后。
我打开Visual Studio并创建一个解决方案并包含所需的文件。我创建了一些HelloWorld渲染并尝试构建解决方案,以便我可以验证一切正常。
当一切正常并且正在运行时,我创建了整个解决方案的zip文件,包括数据文件夹。现在是时候将它添加到某种版本控制系统中,在我的例子中是Subversion。
我将zip文件添加到subversion中,并添加我认为在项目期间会更改的所有文件,通常我告诉subversion忽略sitecore文件夹,这会在检入文件时大大提高性能。
执行提交操作后,我的项目的其他团队成员可以检查代码并开始开发(解压缩zip文件后,非正式)
我们都朝着同一个数据库工作,虽然这违反了Sitecore的建议,但我们没有遇到任何问题,但是由一个开发人员创建/更改的GUI中的项目需要一些时间才能为所有其他人创建/更改。< / p>
我们可以使用相同的Sitecore安装来开发几个不同的项目,但由于几乎所有客户都使用不同版本的Sitecore,我们发现这种方法有点麻烦。
我们经常设置一个自动构建服务器,但这是另一个问题。
可重复使用的代码和效果图
我想说我们根据在项目之间重用的相同代码库创建整洁的包,但不幸的是我们还没有。今天,解决方案之间存在很多削减和粘贴。
将代码上传到客户
这是通过sitecore软件包完成的,通常会对要包含的文件进行某种动态选择,比如说特定文件夹中的所有ascx文件都会在过去5天内发生更改。
你有它。
答案 2 :(得分:3)
看看this series。
特别是组件架构部分提高了我们的可重用性。
答案 3 :(得分:1)
当您在Sitecore的Web根文件夹中创建Visual Studio的项目并且您将所有Sitecore的dll文件保存在bin目录中时,不要忘记向项目的引用添加所有这些文件:
bin\ComponentArt.Web.UI.dll
bin\HtmlAgilityPack.dll
bin\ITHit.WebDAV.Server.dll
bin\Lucene.Net.dll
bin\Mvp.Xml.dll
bin\Newtonsoft.Json.dll
bin\RadEditor.Net2.dll
bin\Sitecore.Kernel.dll
bin\Sitecore.Logging.dll
bin\Sitecore.NVelocity.dll
bin\Sitecore.Zip.dll
因为当您清理项目并且只引用Sitecore.Kernel.dll(在大多数情况下)时,您将从bin目录丢失大部分dll !!