我们干开发也有几年经验了,web应用、桌面应用也都做过,需求简单或复杂,实现优雅或凑楼。一个基本的事实是:我们只是基类了一些经验或者提高了对.net的熟悉程度。

随着开发经验的不断增加,我们发现其实很多工作都是机械的,重复的,而且随着软件的复杂度不断提神,以往依靠经验完成一些简单的增删改查的做法已经行不通了。特别是用户的要求越来越高,希望添加的功能越来多,目前这种开发模式,已经捉襟见肘。我很难想象如何在现有的模式下进行多系统的持续集成并添加一些新的特性。
开发一个系统时,我们不可避免的会使用各种框架。数据持久层实现、日志、ASP.NET MVC、IOC以及自动映射等。一个高质量的软件系统往往还有全局容错,消息队列等组件。
把上述这些组件组合到一起的时候,其复杂度会急剧上升。一般个人和小团队的技术水平,很难设计出一个均衡协调的框架。对于传统的所谓三层架构,我也是很持怀疑态度的。(月薪15k的程序员搞的三层架构,我也仔细读过,也是问题多多,并不能解释为什么要使用三层)。
其实,我们无非是希望在编程的时候,把大部分的注意力全部集中到业务实现上。不要过多的考虑基础的软件结构上的种种问题。应该有一个框框或者一种范式来提供基本的服务,如日志、容错和AOP,DI等。
稍微正规一点的公司经过多年沉淀都形成了自己的内部软件框架,他们在开发软件的时候并不是从一片空白开始的。而是从一个非常牢固的基础平台上开始构建的。这样大大提高了开发速度,而且一种架构往往也决定了分工协作的模式。我们目前之所以无法分工协作,根本原因也是缺少一套成熟稳定的基础开发架构和工作流程。
目前.NET上有不少开源框架。比如Apworks和ABP。其中Apworks是中国人写的一套开源框架。它是一个全功能的,不仅可以写分布式应用,也可以写桌面应用。ABP的全称是Asp.net boilerplate project(asp.net样板工程)。是github上非常活跃的一个开源项目。它并没有使用任何新的技术,只是由两名架构师将asp.net开发中常用的一些工具整合到了一起,并且部分实现了DDD的概念。是一个开箱即用的框架,可以作为asp.net分布式应用的一个良好起点。
使用框架当然有代价,你必须受到框架强API的侵入,抑或要使用他的方言。而且这个框架想要吃透,也要付出很大的学习成本。但是好处也是显而易见的。业界顶尖的架构师已经为你搭建好了一套基础架构,很好的回应了关于一个软件系统应该如何设计,如何规划的问题,并且提供了一套最佳实践和范例。
学习虽然要付出成本,但是经过漫长的跋涉,我们从一无所知已经站到了工业级开发的门槛上。基于这个框架,我们可以很好的来划分任务,进行单元测试等。大大降低了软件出现BUG的几率。
不能因为我们是业余开发人员,就止步不前,要积极拥抱新的技术趋势。不断巩固提升自己的基础知识。革命尚未成功,诸君努力!

为什么要使用ABP框架?相关推荐

  1. ABP框架展示异常信息

    接触ABP框架有一段时间了,也遇到了一些问题,看了官网文档,但是或许是看的不够细致的原因,实际开发中还是遇到了一些问题,耗费了时间去处理,回头一看,原来文档中早已提及. 开发环境:ABP+MPA模式+ ...

  2. ABP框架连接Mysql数据库

    开始想用Abp框架来搭建公司的新项目,虽然一切还没有定数,但是兵马未动,粮草先行,我先尝试一下整个过程,才能够更好的去争取机会. 此次技术选型:Abp(Asp.Net core mvc)+mysql( ...

  3. 【ABP框架系列学习】模块系统(4)

    [ABP框架系列学习]模块系统(4) 原文:[ABP框架系列学习]模块系统(4) 0.引言 ABP提供了构建模块和通过组合模块以创建应用程序的基础设施.一个模块可以依赖于另外一个模块.通常,程序集可以 ...

  4. ABP框架详解(三)Domain

    此处的Domain主要指Abp类库根目录下Domain文件夹.顾名思义该目录下是用来存放与领域实体,领域逻辑执行,存储,领域服务相关的内容. 1.Entities (1)为整个Abp框架后期开发的所有 ...

  5. 基于ASP.NET MVC的ABP框架入门学习教程

    为什么使用ABP 我们近几年陆续开发了一些Web应用和桌面应用,需求或简单或复杂,实现或优雅或丑陋.一个基本的事实是:我们只是积累了一些经验或提高了对,NET的熟悉程度. 随着软件开发经验的不断增加, ...

  6. AutoMapper在ABP框架中的使用说明

    为了说明AutoMapper如何使用,我专门开设了一个专题来讲,如果您还没有查看该专题,请点击这里.既然系统地学习了AutoMapper,那么接下来就是该用它实战的时候了.今天,我们就来揭开AutoM ...

  7. 我的技术回顾因ABP框架触发DevOps云原生之路-2020年

    我的技术回顾: 2015年:我的技术回顾那些与ABP框架有关的故事-2015年 2016年:从ABP框架国内社区发展回顾.NET技术变迁-2016年 2017年:我的技术回顾那些与ABP框架有关的故事 ...

  8. 我的技术回顾那些与ABP框架有关的故事-2018年

    我的技术回顾那些与ABP框架有关的故事-2018年 今天准备想写18年的,但是发现我从19年开始就在逐渐淡出社区,因为生活.工作的缘故吧.所以也没什么特别罗列的,就合并下吧. 时间真的是可以磨平太多东 ...

  9. 我的技术回顾那些与ABP框架有关的故事-2017年

    推荐阅读: 我的技术回顾那些与ABP框架有关的故事-2015年 从ABP框架国内社区发展回顾.NET技术变迁-2016年 从2022年来回顾ABP框架,我们会发现无论是商业模式还是架构设计思路,如果没 ...

  10. Abp太重了?轻量化Abp框架

    本文首发于个人博客(https://blog.zhangchi.fun/) 在进行框架的选型时,经常会听到"***框架太重了"之类的声音,比如"Abp太重了,不适合我们. ...

最新文章

  1. SQL Server 查询处理中的各个阶段(SQL执行顺序)
  2. 【渝粤教育】 国家开放大学2020年春季 2772家畜环境卫生与设施 参考试题
  3. 查看环境变量有无配置成功等命令操作
  4. yarn安装依赖包报错 error An unexpected error occurred: “https://registry.npm.taobao.orgnpm/element-ui: get
  5. shiro 角色与权限的解读
  6. unity 常用函数
  7. 网页编码utf8 gb2312 gbk的区别
  8. 编译修改OpenCV的rpath
  9. 微信小程序 Video API
  10. bypass名词解释
  11. idea导出文件支持目录结构
  12. 四川大学转专业计算机条件,四川大学转专业需要什么条件
  13. php5市场占有率,javascript,php_目前国内浏览器的市场占有率?,javascript,php,html,html5,css - phpStudy...
  14. 2018-3-28 摩尔定律
  15. thinkphp使用easywechat接入微信公众号
  16. 网页游戏外挂的设计与编写:QQ摩天大楼【二】(登陆准备-信息处理方式)
  17. 各大编辑器的常用快捷键
  18. android 6.1 app闪退,手机软件闪退怎么办 具体解决方法【图文】
  19. IOS 新增戴口罩面容ID解锁
  20. python实现四参数七参数坐标转换

热门文章

  1. 方舟手游怎么在服务器用gg修改器,方舟手游gg修改器脚本
  2. 计算机office报名时间,计算机二级office每年的报名时间和考试时间是什么时候?...
  3. web前端开发面试题(六)
  4. oracle12162错误,ORA-12162: TNS:net service name is incorrectly specified报错问题如何解决?...
  5. oracle11g本地安装,windows64位机oracle11g+pl/sql安装教程图解
  6. 磁盘精灵 4.5 版本
  7. Java项目:房产中介管理系统(java+SSM+HTML+bootstrap+layui+Mysql)
  8. 连接型CRM与社交型CRM、传统漏斗型CRM有什么区别?
  9. CODESYS Softmotion(一)功能介绍
  10. 中医药天池大数据竞赛——中医文献问题生成挑战(一)