我有一个大型的自定义电子商务引擎,该引擎当前正在使用SQL Server数据库(处理大多数数据任务的存储过程),WCF中间层(处理业务逻辑)和MVC前端站点(不了解任何数据库) )。我们对内容管理系统的需求正在迅速增长,考虑到我们非常繁重的开发资源,我正在尝试找出实现该系统的最佳方法。
我的第一个想法是仅拥有两个网站,一个Orchard CMS网站和我们的电子商务网站。我可以设置某种类型的请求路由,该请求路由会将用于目录浏览和购物车功能的URL发送到电子商务站点,而其他URL由Orchard站点处理。我必须在Orchard站点中构建几个模块(或小部件),这些模块将显示诸如出现在每个页面标题中的购物车摘要之类的内容。即使是短期的,这似乎也是处理此问题的最简单方法。
我的另一个想法是使用Orchard完全构建该站点。这将需要将我们的电子商务逻辑移植到模块中。看来这将是一项艰巨的任务。我们所有的工作都是通过网络服务完成的,因此,如果用户转到特定类别的URL,则该站点将调用网络服务并传递一些变量(客户ID,类别等)。 Web服务将返回该客户的类别,产品和价格-然后将其显示在屏幕上。
最后,最后一个选项的一个更复杂的版本是将产品实际存储在Orchard中,以便可通过Orchard CMS管理可编辑字段(描述,元标记等)。这将需要对我们的WCF中间层进行重大更改(或吸收)。这似乎几乎是不可能的,但是可能允许更好地处理更多媒体(照片,视频,MSDS表格,产品资料等)。
到目前为止,您对这三个模型有何想法。
最佳答案
您可以创建一个简单的Orchard模块,该模块非常类似于MVC项目中的某个区域。它使用控制器和视图,如果您熟悉MVC,则很容易做到。如果您也不想将其与Orchard高度集成。您模块的内容将位于一个文件夹中,而Orchard将管理该网站的其余内容。
要使模块中的页面使用站点中的果园主题,您只需要向控制器添加[Themed]过滤器。
hello world example in the Orchard Documentation向您显示如何执行此操作。
这将是最简单的选择,但是如果您决定将产品存储为Orchard内容项,那将是有好处的。到达那里会更加困难,但是您将能够利用其他Orchard模块并为产品添加内容部分,例如标签,评论和评论。