6

我们目前正在查看 MVC 中 NopCommerce 的最新版本 (2.60),我们将很快对其进行集成……我们已经下载了源代码并为用户指南文档支付了 20 美元。文档很棒!我的意思是……它很好地解释了如何部署、安装以及如何围绕 UI 前端和后端工作。这对于整体概述非常有用,但它缺乏的是对如何与 NopCommerce 作为一个团队合作的理解。什么是/是最佳实践等...

作为示例(或平行),如果您决定与 Dotnetnuke 作为一个团队一起工作,您通常以以下方式工作:

  • 每个开发人员都在他们的机器上本地下载/安装 Dotnetnuke。
  • 您还可以在专用服务器(比如说 dev-server)上下载/安装 Dotnetnuke。
  • 作为开发人员,您工作并创建在 Dotnetnuke 安装中本地测试的模块。
  • 完成后,将模块(以及模块附带的任何 SQL 脚本)打包成一个 zip 文件。
  • 包准备好后,您可以在专用服务器 (dev-server) 上上传/安装该包。

这种方法非常适合 Dotnetnuke,更重要的是,如果您有一个开发人员团队创建模块。

我的问题是团队如何使用 NopCommerce MVC?

我假设直接在源代码中工作是一个坏主意,以防您的团队决定修改核心元素/源代码,这将导致无法升级到新版本(或中断更改)。

我不确定我与 Dotnetnuke 的对比是否正确……但有人知道(或帮助我澄清)团队如何与 NopCommerce MVC 合作。

此外,团队是否应该只依赖为 NopCommerce 创建插件而远离修改核心,还是应该无关紧要?

如果最终 NopCommerce MVC 升级创建类似的对象和/或覆盖它们,我们应该在我们的对象前面加上 SQL 中添加新对象(或修改现有对象)怎么样?

感谢您帮助我阐明这一点。

真挚地

文斯

4

1 回答 1

6

NopCommerce 中的插件几乎就像 DNN 中的模块。根据您的需要,有时需要修改核心代码。

我一直在为服务做的是创建一个新类并从现有服务继承,然后覆盖您要更改的功能。创建一个新的 DependencyRegistrar 类并将您的新服务类设置为该特定接口的实现。还要确保 Order 属性为 1,以便您的 DR 类在 stock 之后加载。由于您是从核心类继承的,因此您未覆盖的任何函数都将由父类处理。如果我需要添加一个新函数,我只是修改接口,在 stock 类中放置一个存根,并在我自己的中实现它。

Nop.Web 项目中的视图可以被主题覆盖。Admin 的东西和 Web 控制器变得更加棘手。我只是直接修改这些文件。

Core 和 Data 类可以使用部分类来添加新字段。

在任何情况下,当更新发布时,您仍然需要将更改与您的解决方案合并。我的观点是,你最好现在编写干净、可读的代码,并在合并时咬紧牙关。

我现在并不真正担心 SQL 脚本,因为我是一个开发人员,但也许您可以为 ALTER 脚本添加一个文件夹,并在它们创建的那一天命名它们。然后每个开发人员都知道他们在获得最新版本时需要运行哪些脚本。

于 2012-08-09T14:40:45.913 回答