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 测试程序。
理解了整个框架的目录结构,后续要学习的,就是要具体去理解框架里的内容了。
NopCommerce 框架系列(二)的更多相关文章
- NopCommerce 框架系列(一)
今天,终于抽出时间来写写博文,也希望自己能养成写博文的好习惯,大神勿喷. 我从NopCommerce官网上下载了源码,以便自己学习研究,如有需要下载源码的朋友,请点击链接: http://www.no ...
- Spring框架系列(二)--装配和注入Bean
企业日常开发中,几乎都是Spring系的框架,无论是SSM.还是现在大火的SpringBoot+JPA/MyBatis,使用最大的目的就是简化开发 基本模块: 核心容器:Beans.Core.Cont ...
- Quartz.NET开源作业调度框架系列(二):CronTrigger
CronTriggers比SimpleTrigger更加的灵活和有用,对于比较复杂的任务触发规则,例如"每个星期天的晚上12:00"进行备份任务,SimpleTrigger就不能胜 ...
- Quartz.NET开源作业调度框架系列(二):CronTrigger-转
CronTriggers比SimpleTrigger更加的灵活和有用,对于比较复杂的任务触发规则,例如"每个星期天的晚上12:00"进行备份任务,SimpleTrigger就不能胜 ...
- Quartz.NET开源作业调度框架系列
Quartz.NET是一个被广泛使用的开源作业调度框架 , 由于是用C#语言创建,可方便的用于winform和asp.net应用程序中.Quartz.NET提供了巨大的灵活性但又兼具简单性.开发人员可 ...
- MVC系列——MVC源码学习:打造自己的MVC框架(二:附源码)
前言:上篇介绍了下 MVC5 的核心原理,整篇文章比较偏理论,所以相对比较枯燥.今天就来根据上篇的理论一步一步进行实践,通过自己写的一个简易MVC框架逐步理解,相信通过这一篇的实践,你会对MVC有一个 ...
- Spring框架系列(二)之Bean的注解管理
微信公众号:compassblog 欢迎关注.转发,互相学习,共同进步! 有任何问题,请后台留言联系! 1.Spring中的两种容器 在系列(一)中我们已经知道,Spring 是管理对象的容器,其中有 ...
- “造轮运动”之 ORM框架系列(二)~ 说说我心目中的ORM框架
ORM概念解析 首先梳理一下ORM的概念,ORM的全拼是Object Relation Mapping (对象关系映射),其中Object就是面向对象语言中的对象,本文使用的是c#语言,所以就是.ne ...
- 【原创】NIO框架入门(二):服务端基于MINA2的UDP双向通信Demo演示
前言 NIO框架的流行,使得开发大并发.高性能的互联网服务端成为可能.这其中最流行的无非就是MINA和Netty了,MINA目前的主要版本是MINA2.而Netty的主要版本是Netty3和Netty ...
随机推荐
- Ninject之旅之五:Ninject XML配置
摘要 使用XML配置,需要添加Ninject XML扩展的引用.下一步是添加一个或多个包含类型注册的XML文件.记得这些文件应该跟应用程序一起发布.因此不要忘记将XML文件的属性设置成“Copy if ...
- 金山云—ubuntu-web服务器完整部署笔记
金山云-ubuntu-web (jdk环境配置+tomcat配置+nginx反向代理)服务器完整部署文档第一步:挂载数据盘 参考金山云帮助文档 http://www.ksyun.com/doc/art ...
- 魅族Java面经
1. 面试官问题怎么获取Memcached里面的session,我答request.getSession().这是通过cookie里面的sessionID获取session的,Memcached里面也 ...
- VS有效序列号
VS2005 : KYTYH-TQKW6-VWPBQ-DKC8F-HWC4J VS2008 : PYHYP-WXB3B-B2CCM-V9DX9-VDY8T VS2010 : YCFHQ-9DWCY-D ...
- js面向对象笔记
JavaScript 私有成员实现 到此为止,如果您任然对 JavaScript 面向对象持怀疑态度,那么这个怀疑一定是,JavaScript 没有实现面向对象中的信息隐藏,即私有和公有.与其他类式面 ...
- 学习制作第一个 openfire 插件
本文地址:http://www.cnblogs.com/jying/p/3683409.html 蛋疼的自学路~~~ 开始想法是修改openfire源码,但修改后发现不好测试,不会发布,不会使用,各种 ...
- VC++ GDI 总结 一一 CBitmap类
class CBitmap : public CGdiObject { DECLARE_DYNAMIC(CBitmap) public: static CBitmap* PASCAL FromHand ...
- Spring boot配置文件 application.properties
http://www.tuicool.com/articles/veUjQba 本文记录Spring Boot application.propertis配置文件的相关通用属性 # ========= ...
- Math
Math.sin(t) // sin(t) Math.power(x,2*i) // x的2i次方 (double)(Math.round(sum*1000000))/1000000; / ...
- 使用命令行执行webpagetest进行测试
背景 使用webpagetest进行性能分析,需要一个一个url的去执行,需要人为去等,比较繁琐.而api很好的解决了这个问题,可以通过命令行等执行测试,也可以写成一个常规脚本,针对每个版本的常规ur ...