nopCommerce开发者指南(一):nopCommerce源码的组织架构

原文链接:http://docs.nopcommerce.com/pages/viewpage.action?pageId=1442491

翻译 by:yersans,如有不妥,敬请指正,博主邮箱:zhanglei0591@qq.com。转载请注明出处。

 

本篇是关于nopCommerce解决方案设计结构的开发者指南。如果你是nopCommerce新手开发者,那么通过阅读本篇可以帮助你对nopCommerce的源代码有一个基本了解。首先,您很容易获取nopCommerce的源代码,它是一个开源项目,您只需要从nopCommerce官网下载即可。用Visual Studio打开项目解决方案,其组织结构如下图所以。我们推荐您在阅读本文的同时,使用Visual Studio打开并浏览解决方案的相关文件。

 

方案中的大部分项目文件和文件夹都被适当命名,以便您能借此对其功能有一个粗略的印象。比如,我不需要看Nop.Plugin.Payments.PayPalStandard项目的具体内容就可以猜到它是用来做什么的。

 

\Libraries\Nop.Core

Nop.Core项目文件包含了nopCommerce的核心类,诸如缓存、事件和业务对象(例如,Order 和 Customer 实体)。

 

\Libraries\Nop.Data

Nop.Data项目文件包含数据库读写相关的类和函数。我们借此将数据访问逻辑与业务对象分离。nopCommerce 使用 Entity Framework (EF) Code-First 进行数据库访问。它允许你在源码中定义实体(所有核心实体定义在 Nop.Core项目文件中),然后用EF把它生成对应的数据库。这就是它被称为代码优先(Code-First)的原因。之后,你就可以用LINQ查询对象了,LINQ语句会在后台被翻译为SQL语句并对数据库执行相关操作。nopCommerces 统一使用 Fluent API 进行实体映射。你可以点击下面的连接对Code-First做进一步的了解。

http://weblogs.asp.net/scottgu/archive/2010/07/16/code-first-development-with-entity-framework-4.aspx

http://blogs.msdn.com/b/adonet/archive/2011/03/15/ef-4-1-code-first-walkthrough.aspx

 

\Libraries\Nop.Services

Nop.Services项目文件包含核心服务、业务逻辑,以及与数据相关的必要的验证和运算。即所谓的业务逻辑层。

 

\Plugins\ 文件夹下的项目

\Plugins 是存放各种插件项目的解决方案文件夹。它的物理路径在解决方案的根目录下。由于所有插件项目的生成输出路径被设置为"..\..\Presentation\Nop.Web\Plugins\{Group}.{Name}\",因此每个插件的DLL会自动复制到\Presentation\Nop.Web\Plugins\文件夹下,它被用来存放那些已发布的插件。通过这种方式可以允许插件包含一些外部文件,诸如一些静态内容(CSS或JS文件),而无需在项目之间复制即可正常运行。

 

\Presentation\Nop.Admin

Nop.Admin 是一个MVC 网站项目,如果您之前还没有使用过ASP.NET MVC,可以点击http://www.asp.net/mvc了解更多相关内容。如你所料,它是表现层的管理功能区域。它的物理路径是\Presentation\Nop.Web\Administration。这个项目不能直接运行。

 

\Presentation\Nop.Web

Nop.Web 同样是一个MVC 网站项目,它是商城的表现层,是实际运行时的项目,也是整个解决方案的启动项目。

 

\Presentation\Nop.Web.Framework

Nop.Web.Framework 是一个类库项目,它包含了一些Nop.Admin和 Nop.Web公用的表现层相关内容。

 

\Test\Nop.Core.Tests

Nop.Core.Tests 是Nop.Core项目的测试项目。

 

\Test\Nop.Data.Tests

Nop.Data.Tests是 Nop.Data的测试项目。

 

\Test\Nop.Services.Tests

Nop.Services.Tests 是 Nop.Services 项目的测试项目。

 

\Test\Nop.Tests

Nop.Tests 是包含一些其他项目所需的公用测试类和助手类的类库项目,它不包含任何测试代码。

 

\Test\Nop.Web.MVC.Tests

Nop.Web.MVC.Tests 是表现层项目的测试项目。

posted on 2015-04-01 17:23  用语言表达世界  阅读(547)  评论(0编辑  收藏  举报