返回总目录《一步一步使用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. 高性能IO模型浅析

    高性能IO模型浅析 服务器端编程经常需要构造高性能的IO模型,常见的IO模型有四种: (1)同步阻塞IO(Blocking IO):即传统的IO模型. (2)同步非阻塞IO(Non-blocking  ...

  2. ABP源码分析一:整体项目结构及目录

    ABP是一套非常优秀的web应用程序架构,适合用来搭建集中式架构的web应用程序. 整个Abp的Infrastructure是以Abp这个package为核心模块(core)+15个模块(module ...

  3. LeetCode-4MedianofTwoSortedArrays(C#)

    # 题目 4. Median of Two Sorted Arrays There are two sorted arrays nums1 and nums2 of size m and n resp ...

  4. 【开源】分享2011-2015年全国城市历史天气数据库【Sqlite+C#访问程序】

    由于个人研究需要,需要采集天气历史数据,前一篇文章:C#+HtmlAgilityPack+XPath带你采集数据(以采集天气数据为例子),介绍了基本的采集思路和核心代码,经过1个星期的采集,历史数据库 ...

  5. 引人瞩目的 CSS 变量(CSS Variable)

    这是一个令人激动的革新. CSS 变量,顾名思义,也就是由网页的作者或用户定义的实体,用来指定文档中的特定变量. 更准确的说法,应该称之为 CSS 自定义属性 ,不过下文为了好理解都称之为 CSS 变 ...

  6. CSS垂直居中的11种实现方式

    今天是邓呆呆球衣退役的日子,在这个颇具纪念意义的日子里我写下自己的第一篇博客,还望前辈们多多提携,多多指教! 接下来,就进入正文,来说说关于垂直居中的事.(以下这11种垂直居中的实现方式均为笔者在日常 ...

  7. 阿里云服务器上配置并使用: PHP + Redis + Mysql 从配置到使用

    (原创出处为本博客,http://www.cnblogs.com/linguanh/) 目录: 一,下载 二,解压 三,配置与启动 四,测试 Redis 五,配置 phpRedis 扩展 六,综合测试 ...

  8. C++ 事件驱动型银行排队模拟

    最近重拾之前半途而废的C++,恰好看到了<C++ 实现银行排队服务模拟>,但是没有实验楼的会员,看不到具体的实现,正好用来作为练习. 模拟的是银行的排队叫号系统,所有顾客以先来后到的顺序在 ...

  9. iOS开源项目周报1222

    由OpenDigg 出品的iOS开源项目周报第二期来啦.我们的iOS开源周报集合了OpenDigg一周来新收录的优质的iOS开发方面的开源项目,方便iOS开发人员便捷的找到自己需要的项目工具等. io ...

  10. iOS网络4——Reachability检测网络状态

    一.整体介绍 前面已经介绍了网络访问的NSURLSession.NSURLConnection,还有网页加载有关的webview,基本满足通常的网络相关的开发. 其实在网络开发中还有比较常用的就是网络 ...