zoukankan      html  css  js  c++  java
  • 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 是表现层项目的测试项目。

  • 相关阅读:
    【C++】资源管理
    【Shell脚本】逐行处理文本文件
    【算法题】rand5()产生rand7()
    【Shell脚本】字符串处理
    Apple iOS产品硬件参数. 不及格的程序员
    与iPhone的差距! 不及格的程序员
    iPhone游戏 Mr.Karoshi"过劳死"通关. 不及格的程序员
    XCode V4 发布了, 苹果的却是个变态. 不及格的程序员
    何时readonly 字段不是 readonly 的?结果出呼你想象!!! 不及格的程序员
    object file format unrecognized, invalid, or unsuitable Command 不及格的程序员
  • 原文地址:https://www.cnblogs.com/yersans/p/4384523.html
Copyright © 2011-2022 走看看