NopCommerce 框架系列(二)

这一篇,让我们一起来认识一下 NopCommerce 的整体目录结构

1. Libraries 文件夹目录:

(1)Nop.Core:核心库,包含了大量可重用代码,和系统业务无关,可以单独抽取出来,放到其他项目中也可使用。里面包含了依赖注入组件,Cache,业务对象等内容

(2)Nop.Data:包含一系列的数据访问类和方法以从数据库或其他数据媒介读取和保存数据。它也有助于把数据访问逻辑和你的业务对象分离。nopcommerce使用Entity Framework (EF) Code-First方法,允许你在nopcommerce代码中定义实体 (所有的核心实体类都在Nop.Core中定义),再让EF生成数据库。你也可以用LINQ来查询对象,它自己会把查询转换为SQL语句并在数据库里执行。nopcommerce拥有现成的API让你完全定制持久映射。

(3)Nop.Services:此项包含了一系列的核心服务,业务逻辑验证。好比三层架构中的 BAL 业务逻辑层

2. Plugins 文件夹目录:是系统的插件部分,在Nopcommerce 里内置了很多插件,比如支付(payment)的插件,如果我们要支持支付宝,快钱,等等,就可以写对应的插件,还有一些系统挂件(widget),在 Nopcommerce 2.8里,首页的Flash轮换图就是一个插件。它是VS的解决方案文件夹,硬盘中它是在你解决方案的根目录下。由于项目在编译时的输入路径是”..\..\Presentation\Nop.Web\Plugins\{Group}.{Name}\”,这样插件的DLL会自动地放到 \Presentation\Nop.Web\Plugins\文件夹中,用来放置已部署插件。这样也能让插件包含静态文件比如CSS或JS,就不用在项目之间拷贝这些文件了。

3. Presentation 文件夹目录:这个是UI层,使用了MVC。

(1)Nop.Admin:UI层的管理后台,管理员使用。

(2)Nop.Web: 这个是商城的UI,使用的是MVC项目,整个系统的起始项目。

(3)Nop.Web.Framework:是一个表示层的类库项目,包括可以让后台和前台使用的一些共用的展示功能Web部分相关的公共方法,和内核一样值得研究。

4. Tests 文件夹目录:测试程序

Nop.Core.Tests:Nop.Core 的测试程序。

Nop.Data.Tests:Nop.Data 的测试程序。

Nop.Services.Tests:Nop.Services 的测试程序。

Nop.Tests:是一个类库,包含其它测试项目中要用的一共有类和辅助方法,此项目不包含任何测试用例。

Nop.Web.MVC.Tests:Nop.Web 测试程序。

理解了整个框架的目录结构,后续要学习的,就是要具体去理解框架里的内容了。

时间: 2024-08-16 19:26:35

NopCommerce 框架系列(二)的相关文章

NopCommerce 框架系列(一)

今天,终于抽出时间来写写博文,也希望自己能养成写博文的好习惯,大神勿喷. 我从NopCommerce官网上下载了源码,以便自己学习研究,如有需要下载源码的朋友,请点击链接: http://www.nopcommerce.com/  进行下载.该官网需要账号才能进行源码下载,如果没有账号,请自行注册一个. 有了源码,请先将Persentation/Nop.Web 设置为启动项: 然后编译运行,不过 NopCommerce 是使用 MVC Code First 模式.所以你直接运行后,系统会跳转到

Quartz.NET开源作业调度框架系列(二):CronTrigger-转

CronTriggers比SimpleTrigger更加的灵活和有用,对于比较复杂的任务触发规则,例如"每个星期天的晚上12:00"进行备份任务,SimpleTrigger就不能胜任,只能选择CronTriggers.利用CronTrigger, 你不但能实现在"每个星期天的晚上12:00"进行备份的任务,还可以执行  "在每个星期一/星期三/星期五的上午9:00到10:00期间每隔5 分钟"进行某个自动化任务. 1 Cron Expressio

Quartz.NET开源作业调度框架系列

Quartz.NET是一个被广泛使用的开源作业调度框架 , 由于是用C#语言创建,可方便的用于winform和asp.net应用程序中.Quartz.NET提供了巨大的灵活性但又兼具简单性.开发人员可用它快捷的创建并执行一个自动化作业.Quartz.NET有很多特征,如:数据库支持,集群,插件,支持cron-like表达式等. 针对Quartz.NET的使用,从基础入门,Cron表达式,不同job间进行参数传递进行了介绍,并对插件任务进行了描述,最后将AdoJobStore如何保持到数据库中进行

VS Extension+NVelocity系列(二)——让VS支持 NVelocity的智能提示(上)

一.基础概念 应该庆幸的是,VS的插件是靠着MEF实现而不是MAF,这让你所做的工作减轻了许多.如果在这之前,您已经了解了MEF的原理,我想对于VS插件的编写,您应该是很容易就能理解的.看看几个VS2010 SDK提供的例子,您就能熟练的编写了. 不过我还是简单的介绍一下MEF几个特点,目前来说,只要您了解这几个特点就足够了: 组合容器 部件 目录 使用特性导入.导出 这是一张博主 周金根 介绍MEF的图: 其中,CompositionContainer就是组合容器,Part就是部件,而VS插件

C#制作Windows service服务系列二:演示一个定期执行的windows服务及调试(windows service)

系列一: 制作一个可安装.可启动.可停止.可卸载的Windows service(downmoon原创) 系列二:演示一个定期执行的windows服务及调试(windows service)(downmoon) 系列三: windows service系列三--制作可控制界面的windows service 一.经常有人问起如何让程序定期自动执行? 除了像系统任务和SQL JOB/DTS等都可以满足不同的用户需求外,这里演示了如何做一个简单的windows serivce的框架.主要的功能是按照

Cordova Android源码分析系列二(CordovaWebView相关类分析)

本篇文章是Cordova Android源码分析系列文章的第二篇,主要分析CordovaWebView和CordovaWebViewClient类,通过分析代码可以知道Web网页加载的过程,错误出来,多线程处理等. CordovaWebView类分析 CordovaWebView类继承了Android WebView类,这是一个很自然的实现,共1000多行代码.包含了PluginManager pluginManager,BroadcastReceiver receiver,CordovaInt

COMET探索系列二【Ajax轮询复用模型】

COMET探索系列二[Ajax轮询复用模型] 写在前面:Ajax轮询相信大家都信手拈来在用,可是有这么一个问题,如果一个网站中同时有好多个地方需要用到这种轮询呢?就拿我们网站来说,有一个未读消息数提醒.还有一个时实时加载最新说说.昨天又加了一个全网喊话,以后还会要有类似功能添加是肯定的,难道要为每个功能都创建一个独立的轮询?要知道轮询请求中有大半是无用,会对服务器资源和宽带造成巨大的浪费.因此在页面中每增加一个轮询点,对服务器的压力及宽带浪费都将成倍的增长.再考虑一个情况,如果当前网页中需要的不

数据分页模块系列 (二) 完美封装PageModel实现分页模块

先说一下框架分页技术,在我们之前那个高校项目中使用DWZ实现的分页用了自定义标签使用起来也比较方便,除了DWZ很多框架已经给我们做好了分页我们需要做的仅仅是把一些分页参数传给我们的框架,俗话说你用别人的东西就得按着别人的来,得按着别人的框架进行布局了.传参了等等,这样灵活性大大降低,况且感觉使用框架频繁的一些软件一般是一些管理类型的,对界面的美观方便需求并不是很高,工整.能用就可以,然而呢,还有些界面需要灵活配置分页按钮.分页条等,这就需要把类似于这样的功能封装起来. 分页的模块很多人都在写都在

[CXF REST标准实战系列] 二、Spring4.0 整合 CXF3.0,实现测试接口(转)

转自:[CXF REST标准实战系列] 二.Spring4.0 整合 CXF3.0,实现测试接口 文章Points: 1.介绍RESTful架构风格 2.Spring配置CXF 3.三层初设计,实现WebService接口层 4.撰写HTTPClient 客户端,并实现简单调用 介绍RESTful架构风格 REST是REST之父Roy Thomas创造的,当时提出来了REST的6个特点:客户端-服务器的.无状态的.可缓存的.统一接口.分层系统和按需编码.其具有跨语言和跨平台的优势. REST是一