返回总目录《一步一步使用ABP框架搭建正式项目系列教程》


经过前面十二篇的基础教程,现在终于该做个总结了。

回顾

第一篇,我们建议新手朋友们先通过ABP官网的启动模板生成解决方案,因为这样既快速又准确,不会因为项目的搭建,而让新手畏而却步。

第二篇,我们说了实体类的创建,这是放在核心层(Core Layer)的,每个实体类最终和数据库中的表是一一对应的。

第三篇,我们讲了创建数据库上下文DbContext,这是连接应用程序和数据库的桥梁,是数据在应用和数据库之间流通的管道。

第四篇,有了前面的桥梁、管道,那么接下来就应该彻底第一次打通该通道了,这就是数据库迁移,完成了这一步,核心层的实体类就和数据库中的表一一对应上了。

第五篇,通道有了,数据库也有了,假如数据库中有了很多数据,那么我们如何将这些数据取出来供应用程序使用呢?这就需要仓储出马了,它就像是应用程序中一个临时存储数据的仓库一样。而在第五篇中,我们主要说的是仓储接口的定义,而这个仓储接口,一般是一些自定义的方法,因为绝大多数的方法如Insert(),Delete(),Get(),Update()等都已经定义在了泛型接口IRepository<T>中,一般我们是不需要定义的。注意仓储接口的定义是放在核心层的。

第六篇,上面定义了仓储接口,这里自然就要实现这些接口了。注意,仓储的实现是放在ABP的基础设施层的,比如,你项目中使用的EF,那么仓储接口的实现就要放在EntityFramework那个类库项目。

第七篇,构建应用层服务。创建这一层的目的是为了解耦表现层和核心层,这样表现层就像皮肤一样可以灵活更换,而核心层也可以随着业务的变化而改变,也不会影响到表现层。

第八篇,上面构建了应用层服务,而一般来说,应用程序的输入都要经过两次验证,一次是在客户端,一次是在服务端,因此第八篇说的数据校验就是应用服务层的服务端校验。应用服务层方法的参数一般是一个Dto类,而该Dto类继承了ABP中定义的验证接口(如IInputDto)的话,ABP会通过拦截器进行拦截验证,详细信息请查看对应的文档。

第九篇,介绍了ABP中的一大特色,就是可以将上面创建的应用服务层的方法动态地生成Web API,这样,我们的Web层就可变得很薄,而且,在客户端直接调用Web API有时也是很方便的事情。

第十篇,应用程序的最顶端,也就是UI层了。这里主要给展示了一下我在项目中使用了哪些脚本或插件来实现一些界面上的功能,没有具体讲什么客户端技术,因为涉及知识面太广,因此,以后可能会讲。

第十一篇,也是ABP中的一大特色,本地化系统灵活,强大,健壮,本地化资源可以存储为xml,json,资源文件,还可以存储在数据库中,而且使用非常方便。请查看详细文档进行阅读。

第十二篇,通过一个小例子展示了一下ABP中单元测试的构建。特点是在同一个解决方案中另建一个类库项目即可完成,此外,更加真实的测试(只有初始数据是伪造的)使得测试格外具有价值。

忠告

我相信,如果你认真地阅读了本教程,并且跟着我的节奏动手实践的话,那么使用ABP搭建属于你的项目已经不是难事了。

最近很多园友都通过下面的连接加入了QQ群,但是依然还有很多园友在群里问着很简单的问题,其实很多问题我已经在博客中说明解决方法了,所以希望看到这里的园友或者今后加到QQ群的园友,如果你真的希望灵活使用ABP这个框架,掌握一些基本原理,那么我希望你能好好地阅读我的所有关于ABP的文章,如果你急功近利,只是图快,尽快使用ABP搭建好项目,这样是学不好ABP的,总之,态度一定要端正。记住,所有的框架都是由很多相同的基本知识点构成的,这些基本知识点掌握了,学习任何一个框架都会是得心应手的感觉。就像学习编程语言一样,基本语法和编程思想掌握了,所有的编程语言都是一通百通的事情。

计划

该系列教程的知识点也回顾完了,楼主的忠告也说完了,接下来楼主说说后面博客的打算。

ABP理论基础和实践基础系列教程都完成了,下面最先要完成的是《ABP理论高级》,这里面主要介绍一些理论基础中没有谈到的知识点。然后是《ABP实践高级》,从头到尾做一个完整的项目【只有两三项功能哦】,太多功能的实现本质都是差不多的,所以也就不在重复造轮子!

最后,希望大家关注这篇博客ABP框架理论研究总结(典藏版),随时关注ABP高级的链接是否已激活。

ABP框架搭建项目系列教程基础版完结篇的更多相关文章

  1. NET使用ABP框架搭建项目

    NET使用ABP框架搭建博客项目(一) 有很多学NET开发的小伙伴建项目都比较茫然,我用什么开发?我都使用什么框架?我怎么起名字?种种问题,让一些低等.中等的工程师(甚至是高级工程师)很烦躁. 推荐一 ...

  2. 一步一步使用ABP框架搭建正式项目系列教程

    研究ABP框架好多天了,第一次看到这个框架的名称到现在已经很久了,但由于当时内功有限,看不太懂,所以就只是大概记住了ABP这个名字.最近几天,看到了园友@阳光铭睿的系列ABP教程,又点燃了我内心要研究 ...

  3. 一步一步使用ABP框架搭建正式项目系列教程之本地化详解

    返回总目录<一步一步使用ABP框架搭建正式项目系列教程> 本篇目录 扯扯本地化 ABP中的本地化 小结 扯扯本地化 本节来说说本地化,也有叫国际化.全球化的,不管怎么个叫法,反正道理都是一 ...

  4. 关于使用ABP框架搭建的项目升级时需要注意的问题汇总

    ABP理论学习总目录 一步一步使用ABP框架搭建正式项目系列教程 ABP之Module-Zero学习目录 本篇目录 说明 升级方法 问题_01:Log4Net导致编译不成功 2015/12/18更新 ...

  5. Laravel大型项目系列教程(一)

    Laravel大型项目系列教程(一) 一.课程概述 1.课程介绍 本教程将使用Laravel完成一个多用户的博客系统,大概会包含如下内容: 路由管理. 用户管理,如用户注册.修改信息.锁定用户等. 文 ...

  6. SSM 框架-06-详细整合教程(IDEA版)(Spring+SpringMVC+MyBatis)

    SSM 框架-06-详细整合教程(IDEA版)(Spring+SpringMVC+MyBatis) SSM(Spring.Spring MVC和Mybatis)如果你使用的是 Eclipse,请查看: ...

  7. SSM 框架-05-详细整合教程(Eclipse版)(Spring+SpringMVC+MyBatis)

    SSM 框架-05-详细整合教程(Eclipse版)(Spring+SpringMVC+MyBatis) 如果你使用的是 Intellij IDEA,请查看: SSM的配置流程详细的写了出来,方便很少 ...

  8. Laravel大型项目系列教程(三)之发表文章

    Laravel大型项目系列教程(三)之发表文章 一.前言 上一节教程中完成了用户管理,这节教程将大概完成发表Markdown格式文章并展示的功能. 二.Let's go 1.数据库迁移 文章模块中我们 ...

  9. Laravel大型项目系列教程(二)之用户管理

    Laravel大型项目系列教程(二) 一.前言 本节教程将大概实现用户的注册.修改个人信息.管理用户功能. 二.Let's go 1.创建用户注册视图 $ php artisan generate:v ...

随机推荐

  1. 【小程序分享篇 一 】开发了个JAVA小程序, 用于清除内存卡或者U盘里的垃圾文件非常有用

    有一种场景, 手机内存卡空间被用光了,但又不知道哪个文件占用了太大,一个个文件夹去找又太麻烦,所以我开发了个小程序把手机所有文件(包括路径下所有层次子文件夹下的文件)进行一个排序,这样你就可以找出哪个 ...

  2. Tomcat shutdown执行后无法退出进程问题排查及解决

    问题定位及排查 上周无意中调试程序在Linux上ps -ef|grep tomcat发现有许多tomcat的进程,当时因为没有影响系统运行就没当回事.而且我内心总觉得这可能是tomcat像nginx一 ...

  3. Enterprise Solution 3.1 企业应用开发框架 .NET ERP/CRM/MIS 开发框架,C/S架构,SQL Server + ORM(LLBL Gen Pro) + Infragistics WinForms

    行业:基于数据库的制造行业管理软件,包含ERP.MRP.CRM.MIS.MES等企业管理软件 数据库平台:SQL Server 2005或以上 系统架构:C/S 开发技术 序号 领域 技术 1 数据库 ...

  4. HTML 事件(四) 模拟事件操作

    本篇主要介绍HTML DOM中事件的模拟操作. 其他事件文章 1. HTML 事件(一) 事件的介绍 2. HTML 事件(二) 事件的注册与注销 3. HTML 事件(三) 事件流与事件委托 4.  ...

  5. CENTOS 6.5 平台离线编译安装 Mysql5.6.22

    一.下载源码包 http://cdn.mysql.com/archives/mysql-5.6/mysql-5.6.22.tar.gz 二.准备工作 卸载之前本机自带的MYSQL 安装 cmake,编 ...

  6. ASP.NET Core的路由[1]:注册URL模式与HttpHandler的映射关系

    ASP.NET Core的路由是通过一个类型为RouterMiddleware的中间件来实现的.如果我们将最终处理HTTP请求的组件称为HttpHandler,那么RouterMiddleware中间 ...

  7. 从零开始编写自己的C#框架(26)——小结

    一直想写个总结,不过实在太忙了,所以一直拖啊拖啊,拖到现在,不过也好,有了这段时间的沉淀,发现自己又有了小小的进步.哈哈...... 原想框架开发的相关开发步骤.文档.代码.功能.部署等都简单的讲过了 ...

  8. MVC如何使用开源分页插件shenniu.pager.js

    最近比较忙,前期忙公司手机端接口项目,各种开发+调试+发布现在几乎上线无问题了:虽然公司项目忙不过在期间抽空做了两件个人觉得有意义的事情,一者使用aspnetcore开发了个人线上项目(要说线上其实只 ...

  9. 分布式系列文章——从ACID到CAP/BASE

    事务 事务的定义: 事务(Transaction)是由一系列对系统中数据进行访问与更新的操作所组成的一个程序执行逻辑单元(Unit),狭义上的事务特指数据库事务. 事务的作用: 当多个应用程序并发访问 ...

  10. 代码的坏味道(19)——狎昵关系(Inappropriate Intimacy)

    坏味道--狎昵关系(Inappropriate Intimacy) 特征 一个类大量使用另一个类的内部字段和方法. 问题原因 类和类之间应该尽量少的感知彼此(减少耦合).这样的类更容易维护和复用. 解 ...