从开发者的角度来看Sitecore

时间:2011-05-20 13:12:59

标签: sitecore sitecore6

我刚刚开始研究Sitecore,我想知道是否有人可以从开发人员的角度帮助我启发它是什么/如何。

我已经浏览了大量的文档以及他们的SDN - 在我看来,到目前为止他们中的大多数只是通过他们的界面(即通过他们的“Sitecore桌面”)拖拽点击这里和非常小的实际编程。

这是真的吗?或者是他们实际的C#/ ASP.Net编程背后的场景来实现业务逻辑等?

我完成了他们的基本教程(为产品创建基本网站),就像我上面提到的,所有这些都是通过他们的界面完成的,没有任何真正的编程 - 而不是使用ASP.Net MVC3 Music Store教程。可以看到一些C#编程。

谢谢!

5 个答案:

答案 0 :(得分:31)

Sitecore开发人员应该对Sitecore有最深刻和最深刻的理解。开发人员需要了解CMS用户的观点(即内容编辑者的POV),他们需要了解内容树中内容的体系结构,并且他们需要知道他们构建的代码。开发人员应该对Sitecore解决方案有最深入的了解,因为您需要了解架构以了解如何编码。了解架构意味着您知道内容编辑器将如何与内容进行交互。

建筑

Sitecore是一个加强数据库。想想就好。您可以按照自己的方式构建网站。但是一旦你开始学习Sitecore架构和最佳实践的原理,你就会注意到一种模式。内容树中的所有内容都是项目。每个项目的模型(在Sitecore术语中称为模板)由架构师(通常是开发人员)定义。事实上,即使建筑师角色有一个单独的人,他们也可能拥有开发人员知识,因为架构定义了开发方式。事实上,架构是最重要的事情之一。

代码

代码分为不同类型,但最简单的形式有两个主要内容:布局子布局

布局视为ASP.NET应用程序使用MasterPage的常规内容。在Sitecore中,布局实际上是一个ASPX WebForm,但它充当母版页。您可以在站点上使用的一些布局示例包括:一列布局,两列布局,打印布局。这些将分别转换为具有一个主要内容区域的页眉和页脚,具有主列和侧栏的页眉和页脚,以及可能具有徽标和主要内容的打印优化布局。

子布局是构成网页的所有小组件。示例包括:主导航,侧栏中的促销框,5个最近新闻的列表,促销的CTA,侧边栏幻灯片等。这些组件可以是模块化的,并由内容编辑器移动,或者它们可以在布局的位置内修复,例如促销框总是可以作为代码中定义的业务规则出现在“双列”布局的侧边栏中。

回答你的问题是否有实际编码,是的。您使用Sitecore和Sitecore的C#API的ASP.NET控件编写代码,以访问填充到每个项目的模板中的数据。因此,如果您有一个页面的项目具有标题标签的页面标题,您的代码将使用Sitecore API从模板访问“标题标签”字段(请记住Sitecore中的模板说的是数据模型)在Sitecore。

编码Sitecore

我想说有两种编码方法。我相信你确定了其中一个,它使用Sitecore界面中的内部工具。 Sitecore有一个名为Developer Center的部分,可让您创建布局和子布局。坦率地说,将其与设计模式中的Visual Studio进行比较。我从未使用开发人员中心进行编码。相反,我在Visual Studio中编码,这是人们为Sitecore编码的最常用技术(至少我认为是这样)。现在,如果您想知道,编码如何连接到Sitecore的数据......那么答案就在Sitecore中。树的一部分称为Layouts。这里是您的布局和子布局的名称。每个布局和子布局项都有一个路径,分别映射到ASPX WebForm或ASCX用户控件。这就是您在Visual Studio中编写的文件系统上的代码实际上被Sitecore使用的方式。然后通过Presentation>使用这些布局和子布局项。 Sitecore中每个项目的详细信息选项卡。

初学者

Sitecore最难的事情之一就是学习曲线。我已经使用Sitecore多年了,并且喜欢它。事实上,我所做的一切。它是迄今为止我最喜欢的CMS,它完全可定制,非常适合开发人员。 Sitecore建议新开发人员参加开发人员培训课程,以便他们基本上可以在实际的培训课程中解释我上面解释的内容。在本次培训中,您将学习架构,然后了解代码如何连接到架构。培训涉及内容树中的实际操作架构工作和动手编码。新开发人员推荐的培训课程是:

答案 1 :(得分:6)

Sitecore是一个ASP.NET应用程序。这意味着您可以编写任何您喜欢的代码。我们的团队自己在Visual Studio中创建所有Sublayouts(ASCX文件)和Layouts(ASPX文件),而不是Sitecore内置的编辑器。

我见过的一些Sitecore安装几乎不依赖CMS来进行渲染。而是通过代码隐藏来提取值,就像Sitecore只是一个数据库一样。在某些情况下,这可以正常工作。

最令人印象深刻的Sitecore实例使用开发人员可以访问的所有可用工具。使用Sitecore工具按照设计使用的方式为(通常是非技术性的)内容编辑器提供了一些非常令人印象深刻的编辑选项。

例如:使用Sitecore Fieldrenderer而不仅仅是占位符或标签,不仅会自动呈现内容(无论是图像还是富文本),还会允许内容编辑器直接编辑内容网页,而不是所有CMS系统唯一的后端。

工作流程是另一个杀手级功能,适合支持Sitecore的客户。它允许您为树中的项目构建批准过程。法律,市场营销和图形团队呼叫所有人在新页面上线之前都会签名。然后,当所有批准都完成后,该网站会自动发布。

总结一下:Sitecore是一个.NET应用程序,您可以编写任何您想要的代码。这意味着您应该专注于CMS功能,并从内容编辑器和财务角度确保它非常适合您。

答案 2 :(得分:4)

Sitecore在大多数情况下只是拖累和放大正如您在内容创作方面所描述的那样,但实际上将此内容转换为您需要实现布局,子布局等的网页。

布局是通用的ASP.NET页面(aspx),子布局只是Web控件(ascx),如果您愿意,也可以使用XSLT生成HTML,但它仅对基础知识有用(Sitecore目前仅支持XSLT 1) 。这些ASP.NET控件与代码隐藏的标准Web窗体控件相差无几,等等。不同之处在于Sitecore是您的数据源,它为您提供了访问所有相关应用程序的API。

但Sitecore API也超越了这一点,并允许您对框架的几乎任何组件进行编程访问。这些API编写得很好,很容易理解,可以用于更复杂的场景。

最新版本的Sitecore(6.4)允许您使用MVC框架进行布局/子布局创建,如果您不喜欢Web表单那么多。

答案 3 :(得分:1)

布局和子布局是从编码角度来看任何自定义的好方法,但是第三种方法在这里没有提到。我们称之为sitecore扩展。我经常发现,为满足客户需求,为工作流操作或模板命令创建自定义程序集是唯一的方法。 例如,进入工作流状态时的标准电子邮件通知仅允许您将服务器,收件人,描述等应用于操作项字段。在我们的例子中,这些值不断变化,因此我们需要更加动态。应用于操作的自定义程序集允许我们灵活地执行标准操作不会执行的许多操作。另一个例子是我们需要在项目中滚动一个treelist并突出显示当前项目。这样做的方法是使用我们的自定义程序集覆盖核心树形列表操作。 请记住,在布局中添加大量代码(可能是大量页面的母版页)会增加运行时开销。

答案 4 :(得分:0)

从UX的角度来看,Sitecore不切实际,功能强大且过于复杂,因此对于具有典型内容提供者和编辑者的团队无法有效实施。没有考虑过简化内容创建或简单页面模板维护。如果没有以下条件,我永远不会向团队推荐Sitecore:

  • HTML创作/编辑技巧
  • FTP概念和站点树理解
  • 数据管理技能

该系统是为开发人员构建的,与用户的想法很遥远。以我的经验,它提供了很多好处-对于每天的内容作者而言,成为一个可用的系统并不是这些好处之一。该系统是如此模块化和过度管理,它迫使各个级别的用户做出决定,而这些决定只会使原本简单的操作变得复杂。内容发布是非常模块化的,对开发人员来说是一大好处;对于日常用户来说,这是一场灾难。

如果您是开发人员,Sitecore是一个绝佳的建筑环境。它强大而灵活。

如果您是用户,Sitecore可以处理大量任务,并提供我在CMS中遇到的最陡峭的学习曲线。 UAT是一场噩梦。