一:【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应用程序).它可以用来测试静态和动态资源的性能,例如:静态文件, ...
随机推荐
- SQLServer查看死锁
SQLServer查看死锁 if exists ( select * from sys.procedures where name like '%USP_ShowLocks%' ) drop proc ...
- Java EE开发平台随手记4——Mybatis扩展3
接着昨天的Mybatis扩展——IDaoTemplate接口. 扩展9:批量执行 1.明确什么是批量执行 首先说明一下,这里的批量执行不是利用<foreach>标签生成一长串的sql字符串 ...
- Python中的字符串与字符编码
本节内容: 前言 相关概念 Python中的默认编码 Python2与Python3中对字符串的支持 字符编码转换 一.前言 Python中的字符编码是个老生常谈的话题,同行们都写过很多这方面的文章. ...
- python中paramiko模块的使用
paramiko是python一个模块,遵循SSH2协议,支持以加密和认证的方式,进行远程服务器的连接1.可以远程操作服务器文件 例如: df:查看磁盘使用情况 mkdir:创建目录 mv/cp/mk ...
- dropzone的使用方法
http://www.renfei.org/blog/dropzone-js-introduction.html dropzone.js 是一个开源的 JavaScript 库,提供 AJAX 异步上 ...
- 深入理解PHP内核(四)概览-PHP脚本的执行
本文链接:http://www.orlion.ml/236/ 下面以php命令行程序为例解释PHP脚本是怎么被执行的.例如如下脚本: <?php $str = 'hello world'; ec ...
- Mybatis之Oracle增删查改示例--转
http://blog.csdn.net/bingjie1217/article/details/21088431?utm_source=tuicool&utm_medium=referral ...
- [java] 汇率换算器实现(3)
[java] 汇率换算器实现(3) // */ // ]]> [java] 汇率换算器实现(3) Table of Contents 1 系列文章地址 2 前言 3 提取简单表单信息 3.1 ...
- java nio之SocketChannel
Java NIO中的SocketChannel是一个连接到TCP网络套接字的通道.可以通过以下2种方式创建SocketChannel: 打开一个SocketChannel并连接到互联网上的某台服务器. ...
- Windows Azure HandBook (3) 浅谈Azure安全性
<Windows Azure Platform 系列文章目录> 2015年3月5日-6日,参加了上海的Azure University活动.作为桌长与微软合作伙伴交流了Azure相关的技术 ...