我现在要着手一个新的项目,也打算用这个框架,所以想要将我一步一步用这个框架的做项目的步骤和想法跟大家分享出来。 经过前面十二篇的基础教程,现在终于该做个总结了。

第一篇,我们建议新手朋友们先通过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高级的链接是否已激活。

原文地址:http://www.cnblogs.com/farb/p/ABPPracticeSummary.html


.NET社区新闻,深度好文,微信中搜索dotNET跨平台或扫描二维码关注

ABP框架搭建项目系列教程基础版相关推荐

  1. Vue SEO 优化 使用 Vapper SSR 服务器渲染框架 搭建项目 新手教程

    Vapper 简介 Vapper 是一个基于 Vue 的服务端渲染(SSR)框架,它的核心目标是:简 单.灵活.强大. 简单:尽最大的努力让开发 SSR 应用与开发 SPA 应用保持一致的体验,降&g ...

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

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

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

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

  4. 基于 abp vNext 和 .NET Core 开发博客项目 - 使用 abp cli 搭建项目

    基于 abp vNext 和 .NET Core 开发博客项目 - 使用 abp cli 搭建项目 转载于:https://github.com/Meowv/Blog 首先,默认咱们已经有了.net ...

  5. Laravel大型项目系列教程(五)之文章和标签管理

    Laravel大型项目系列教程(五)之文章和标签管理 本节教程将大概完成文章和标签管理. 1.文章管理 首先创建管理后台文章列表视图: $ php artisan generate:view admi ...

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

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

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

    Laravel大型项目系列教程(二) 一.前言 本节教程将大概实现用户的注册.修改个人信息.管理用户功能 二.Let's go 1.创建用户注册视图 <span style="font ...

  8. 建军节献礼!J20航模遥控器开源项目系列教程(一)制作教程 | 基础版V1.0发布,从0到1

    我们的开源宗旨:自由 协调 开放 合作 共享 拥抱开源,丰富国内开源生态,开展多人运动,欢迎加入我们哈~ 和一群志同道合的人,做自己所热爱的事! 项目开源地址:https://github.com/C ...

  9. [转载]SSH框架搭建详细图文教程

    什么是SSH? SSH对应 struts spring hibernatestruts 采用MVC模式,主要是作用于用户交互spring 采用IOC和AOP~作用比较抽象,是用于项目的松耦合hiber ...

最新文章

  1. 群晖套件来源_群晖套件系列五:Moments的安装与使用
  2. 【渝粤教育】国家开放大学2018年春季 0176-22T电机学(一) 参考试题
  3. MySQL中(delete、truncate、drop) 的区别
  4. 2019-4-21 - plan
  5. ANDROID笔记:Activity之间的传值
  6. 关于PMP考试的流程,很实用
  7. java 10000以内的质数_10000以内有多少质数
  8. 内网服务器如何提供外网远程连接访问
  9. macOS升级node
  10. 泳道流程图:跨职能流程图
  11. 云服务器的主要性能参数,云服务器参数到配置,一文让您从小白到高手
  12. 总结一周:变量,数据类型,循环,函数
  13. 云服务器挂软件用哪个系统,云服务器挂软件用什么系统
  14. Ubuntu mysql 重置密码
  15. 启用FM模块后VA01创建销售订单报错,消息号 FI311 “未在项目00001 11AA 中输入承诺项目”
  16. 单播地址与多播地址区别
  17. 瑞星杀毒软件、奇虎360杀毒软件、360卫士、百度卫士联手,搞不定弹出广告 恶意广告图标
  18. 某查查 sign和token研究
  19. 夜光:计算机网络笔记(三十三)
  20. Linux(RHEL7及CentOS7)的时间设置篇(timedatectl,date,hwclock)-系统管理(2)

热门文章

  1. 医疗大数据:商业保险、移动医疗的崛起,正在形成闭环(二)
  2. MVVM架构~knockoutjs系列之包括区域级联列表的增删改
  3. SqlDataReader对象的NextResult方法读取存储过程多个结果集
  4. 如何实现一个线程安全的 ConcurrentHashSet ?
  5. System.Text.Json 自定义 Conveter
  6. 【需要重视的BUG】:偷权限的情况
  7. 在 .NET 6 Preview 3 ASP.NET Core 更新
  8. GPU迎来投资热潮 退潮后谁在裸泳
  9. netcore使用 jenkins + supervisor 实现standalone下多副本自动化发布
  10. 程序员过关斩将--解决分布式session问题