一:【nopcommerce系列】Nop整体架构的简单介绍,在看nop代码之前,你需要懂哪些东西
首先,我看的是Nop 3.80,最新版
百度资料很多,Nop用到的主要的技术有:
1、Mvc,最新版用的是 5.2.3.0
2、entity framework
3、autofac
4、插件化
5、(因为我是边看代码边写这个博客,怕忘记了一些东西,所以边看便记录,后面我看到感觉有好处的会添加到这里来)
1、mvc,不说了,百度一堆资料。如果不熟悉的同学可以参考 这里 这篇文章里面有一个很基础的mvc教程。非常不错。
2、entity framework,这个讲真,我以前不用,因为做的是电商类项目,然后之前的框架根本没用到这个。所以不是很理解它。对它的第一次接触,便是这个nop项目阅读,然后感觉不搞懂它就有些地方看不明白,所以花了点时间去学习entity framework,mvc的教程里面包含了entity framework。这里说明一下,nop用的是code-first,也就是代码创建数据库。
关于entity framework 的资料,可以参考一下 这里 (ps:这些是我在阅读nop源代码的时候,看的一些资料,还有挺多地址,我这里不一一贴出来,大家百度一下。博客园还是有很多好文章的。)
需要说明的是,如果你对entity framework 不是很感兴趣,那大致了解一下就可以。但是最基本的,怎么配置映射表名,怎么配置约束,怎么配置一对多 多对多等。最好了解一下。有助于后面说理解nop的代码。
3、autofac,这个依赖注入与控制反转的第三方库,具体用法可以看 这里 这个做作业有一个系列,还是很不错的。说明:一定要理解autofac的作用,因为nop的代码很多地方都是面向接口设计,如果不理解autofac的作用和写法,后面理解代码比较困难。我花了大概一天多的时间去各种百度各种测试。。。。。
4、插件化:讲真,还没仔细理解它的插件化结构,先不写,后面补上。不会影响阅读和理解nop的代码。我保证。
如果你跟着我上面说的,把那几个文章仔细认真看完了。现在你应该能能够搭建一个简单的,基于mvc+entity framework的增删改查的例子了。对的,你可以按照mvc例子上一模一样的例子写一个。只要理解就可以。先不要急着去看nop的代码,因为现在打开nop的代码,如果你不懂上面说的那几个,绝对是一脸蒙逼表情的。讲真,第一次打算看nop的源代码是一年多前,一个朋友给我推荐的,但是我下载完了看了一下,几乎不知道是怎么回事。放弃之。。。第二次另外一个朋友又推荐,才下决心要看。。。
so,如果你也感兴趣,跟着我的步伐,共同进步。
下一篇,会初识一下nop代码。了解它的结构和程序是怎么运行的。
一:【nopcommerce系列】Nop整体架构的简单介绍,在看nop代码之前,你需要懂哪些东西的更多相关文章
- Https系列之一:https的简单介绍及SSL证书的生成
Https系列会在下面几篇文章中分别作介绍: 一:https的简单介绍及SSL证书的生成二:https的SSL证书在服务器端的部署,基于tomcat,spring boot三:让服务器同时支持http ...
- Bootstrap源码分析系列之整体架构
作为一名合格的前端工程师,你肯定听说过Bootstarp框架.确实可以说Bootstrap框架是最流行的前端框架之一.可是也有人说Bootstrap是给后端和前端小白用的,我认为只要学习它能给我们前端 ...
- LevelDB系列之整体架构
LevelDb本质上是一套存储系统以及在这套存储系统上提供的一些操作接口.为了便于理解整个系统及其处理流程,我们可以从两个不同的角度来看待LevleDb:静态角度和动态角度.从静态角度,可以假想整个系 ...
- iOS开发:iOS的整体架构以及API介绍
iOS的整体架构分为4层——Cocoa Touch层.Media层.Core Services层和Core OS层,下面概要介绍一下这4层. Cocoa Touch:构建iOS应用的一些基本系统服务, ...
- jQuery系列 第一章 jQuery框架简单介绍
第一章 jQuery框架简单介绍 1.1 jQuery简介 jQuery是一款优秀的javaScript库(框架),该框架凭借简洁的语法和跨平台的兼容性,极大的简化了开发人员对HTML文档,DOM,事 ...
- UML简单介绍-如何看懂UML(一)
在计算复杂的数学题时,我们必然会打草稿计算 在绘画课中,我们可以素描出来看到的事物 那么在程序设计中呢? 如何描绘传达你脑海中的关于这个程序 ,设计的蓝图草稿? OOP的程序设计中,最多的自然 ...
- Spark系列(四)整体架构分析
架构流程图 说明 Driver端流程说明(Standalone模式) 使用spark-submit提交Spark应用程序Application. 通过反射的方式创建和构造一个DriverActor进 ...
- [MySQL] 高可用架构MMM简单介绍
一.来源及原理: 众所周知,MySQL自身提供了AB复制(主从复制),然后可以很轻松实现master-master双向复制,同时再为其中一个Master节点搭建一个Slave库. 这样就实现了MySQ ...
- JMeter专题系列(一)工具简单介绍
一.JMeter 介绍 Apache JMeter是100%纯JAVA桌面应用程序,被设计为用于测试客户端/服务端结构的软件(例如web应用程序).它可以用来测试静态和动态资源的性能,例如:静态文件, ...
随机推荐
- springboot hessian
注意把hessian的依赖换成4.0.38或者把git文件里的4.0.37放到maven私服中去,推荐使用4.0.37版本.38版本存在序列化bigdecimal的问题. <dependency ...
- stackView的隐藏与显示注意事项
1.想要通过变换stackView的y值来让stackView显现/隐藏,同时让其中的button能点击响应,得用topCons 2.导航栏的tinBar要设置为非透明状态
- 详解JavaScript模块化开发
什么是模块化开发? 前端开发中,起初只要在script标签中嵌入几十上百行代码就能实现一些基本的交互效果,后来js得到重视,应用也广泛起来了,jQuery,Ajax,Node.Js,MVC,MVVM等 ...
- JavaScript的陷阱
这本来是翻译Estelle Weyl的<15 JavaScript Gotchas>,里面介绍的都是在JavaScript编程实践中平时容易出错或需要注意的地方,并提供避开这些陷阱的方法, ...
- Oracle IF & CASE语句
IF语句主要有以下三种基本形式: 一. IF-THEN语句 IF CONDITION THEN STATEMENT 1; ... STATE ...
- Unity3D 常用插件
1.FX Maker FX Maker是一款制作特效的工具,它专为移动操作系统做了优化.FX Maker包括300种Prefab特效,300种纹理结构.100种网格.100种曲线效果.支持英文和韩文, ...
- Javascript定时器(三)——setTimeout(func, 0)
setTimeout(func, 0)可以使用在很多地方,拆分循环.模拟事件捕获.页面渲染等 一.setTimeout中的delay参数为0,并不是指马上执行 <script type=&quo ...
- Linux - Screen
GNU's Screen homepage Screen是由GNU计划开发的用于命令行终端切换的自由软件,可以看作是窗口管理器的命令行界面版本. 可以通过该软件同时连接多个本地或远程的命令行会话,并在 ...
- 漫谈可视化Prefuse(四)---被玩坏的Prefuse API
这个双12,别人都在抢红包.逛淘宝.上京东,我选择再续我的“漫谈可视化”系列(好了,不装了,其实是郎中羞涩...) 上篇<漫谈可视化Prefuse(三)---Prefuse API数据结构阅读有 ...
- CSS侧边栏宽度不动(更改页面宽度时),内容区宽度自适应
一个页面,左栏是内容栏content,右栏是侧边栏sidebar.如何使侧边栏宽度不动(更改页面宽度时),内容区宽度自适应呢?为了保证内容区宽度自适应,先不设定其宽度,使其填充整个DIV区域,设定足够 ...