一:【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应用程序).它可以用来测试静态和动态资源的性能,例如:静态文件, ...
随机推荐
- jQuery_03之事件、动画、类数组操作
一.事件: 1.模式触发事件: ①DOM:elem.onXXX();只能触发直接用onXXX绑定的事件处理函数:用addEventistener添加的事件监听无法模拟出发触发: ②jQuery:$ ...
- artTemplate 这么叼
artTemplate 这么叼 高性能JavaScript模板引擎原理解析 http://www.itfeed.com/blog/10016.html
- python socket 学习
Python在网络通讯方面功能强大,今天学习一下Socket通讯的基本方式,分别是UDP通讯和TCP通讯. UDP通讯 upd 服务端 #!/usr/bin/env python # -*- codi ...
- Hidden File For Mac
显示所有隐藏文件的方法: terminal中输入: defaults write com.apple.finder AppleShowAllFiles -bool true 同理,再次隐藏就输入: d ...
- CSS弹性盒模型flex在布局中的应用
× 目录 [1]元素居中 [2]两端对齐 [3]底端对齐[4]输入框按钮[5]等分布局[6]自适应布局[7]悬挂布局[8]全屏布局 前面的话 前面已经详细介绍过flex弹性盒模型的基本语法和兼容写法, ...
- Codeforces Round #277(Div. 2) (A Calculating Function, B OR in Matrix, C Palindrome Transformation)
#include<iostream> #include<cstring> #include<cstdio> /* 题意:计算f(n) = -1 + 2 -3 +4. ...
- hdu1548 A strange lift(bfs 或Dijkstra最短路径)
#include<iostream> #include<cstdio> #include<algorithm> #include<cstring> #d ...
- IIS 6中mimemap属性的默认设置
Collapse this tableExpand this table Extension MIME type .ra audio/x-pn-realaudio .sv4crc applicatio ...
- 应用在tomcat下的四种部署方式(原创)
1.XML主动部署 2.XML自动部署 3.WAR自动部署 4.DIR自动部署 主动部署就是在server中配置部署,自动部署不需要在server中部署. 自动部署要比主动部署多一些功能,例如监测特定 ...
- c#事件与委托
C#.net 目录(?)[-] 将方法作为方法的参数 将方法绑定到委托 事件的由来 事件和委托的编译代码 委托事件与Observer设计模式 范例说明 Observer设计模式简介 实现范例的Obse ...