在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
ABP相关岗位招聘:给热爱.NET新技术和ABP框架的朋友带来一个高薪的工作机会ABP交流会录像视频:ABP架构设计交流群-7月18日上海线下交流会的内容分享(有高清录像视频的链接)代码自动生成:分享一个与ABP配套使用的代码生成器源码
我按照ABP官方文档的结构大概列出了我准备写的文章系列,以后文章中的内容将会是部分为翻译部分为自己的经验和感受。这一系列文章也正好作为我团队新成员的培训教材。
背景介绍:有几次在技术交流会和QQ群上我提到ABP项目,几乎没有人知道这个开源项目,张善友、蟋蟀等不少朋友问过我,怎么在中文社区都搜不到ABP这个项目的介绍文章呢? 是呀,这么好的东西,应该让更多人知道。我在博客园写第一篇文章的时候就想介绍它,但因为工作太忙,文字表达效率太低,就一拖再拖。今天在netfocus汤兄的ENode群里聊到ABP项目,有不少朋友还挺感兴趣,所以建了一个QQ群(134710707),供大家以后讨论ABP的架构设计、DDD话题。 去年我们公司在规划一个新的O2O项目时,我重新考虑了技术选型(具体情况我在第1、2篇博客文章里有介绍http://www.cnblogs.com/mienreal/p/4340864.html)。我大量的学习了新技术和开源项目,决定要开发一套适合自己的框架,准备使用的思想和技术包括DDD领域驱动设计、分布式架构、模块化开发、ASP.NET MVC 5、Web Api、C# 5.0、EF 6、AutoMapper、SqlServer或MySql、Redis、XUnit、SPA等。 为了有一个好的参考对象,我研究了国内外10多个框架项目,最深入研究的有dax.net的Apworks、微软的Orchard。后来在Github上按照关注度由高到低列出所有C#项目,我看了前1000个项目的介绍,在其中找到了这个让我非常惊喜的ABP项目,它几乎完全满足我前面所列出的那些条件。它不仅功能强大,项目结构和编码风格都非常优雅,很有艺术感。 我在ABP源码的基础上,按照自己的需求做了一些修改,已用于实际开发项目数月,在这期间,我的技术也得到了很大提升。为了让更多朋友了解和使用ABP,我会写一系列的文章来介绍他的架构思想和运用方法,今天列个目录和总体介绍。英文比较好的朋友可以直接看他的官方网站,文档已经写得非常好了。 ABP的官方网站:http://www.aspnetboilerplate.com ABP在Github上的开源项目:https://github.com/aspnetboilerplate ABP框架于2014年5月4日首次在Github开源,截止到2015年5月25日,总共进行了1271次代码提交,49次版本发布,现在的版本号是0.6.1.1。
我在其他项目中看到的很多优秀设计,在ABP项目中都已存在,而且可能实现得更好。ABP框架的代码,都通过xUnit进行了单元测试。作者一直在用ABP框架开发他们的实际项目,从Github和他官方论坛上的信息可以看到,有很多国外的开发者在将ABP用作生产项目的基础框架。如果需要直接使用ABP组件,可以通过Nuget安装(在VS的Nuget包管理界面搜索Abp)。 为了更好地将ABP适用于自己的项目,我对ABP的源码做了一些修改,而没有直接使用ABP组件。 我的前篇文章中有介绍:新思想、新技术、新架构——更好更快的开发现代ASP.NET应用程序(续1)
欢迎加QQ群:
2015-5-28 13:30 补充 首先很感谢那么多朋友对本系列文章的高度关注,QQ群刚创建3天(5月28日),就有400多人加入了。有些朋友是对新技术感兴趣,有些对架构设计感兴趣,有些对领域驱动设计(DDD)感兴趣,而ABP刚好结合了这些热门的话题。 有些DDD的忠实爱好者可能发现了ABP框架并没有实现所有DDD的概念,而且在简单的示例中也完全没有体现出DDD的设计思想。 在此我补充谈一下我的想法: 因为我是创业团队的技术合伙人,工作非常很忙,同时也因为能力有限,我能做的就是让更多的人了解到ABP框架在技术和设计模式上的精妙从而并产生研究它的兴趣,通过大家的共同努力才能对.NET技术社区产生积极的影响。 由于想在尽量短的时间让更多人对ABP有个大致了解,我现在只是简单大概地翻译了原作者的文章和例子,并没有按照DDD的规范来做。对于还没有太了解DDD的朋友,我没办法在这么短的文章讲清楚(网上已经有很多好的DDD文章,我在QQ群里也共享了一些DDD的学习资料)。我是想等大家对ABP框架和用法有一些了解以后,咱们再开发一个完整的功能(比如团购)来实践DDD,先设计领域模型,再一步一步编码实现。 DDD推出来已经11年了,为什么极少公司把它用于项目生产呢?我的感觉:一是因为DDD本身确实有难度,又要颠覆以前惯用的数据库驱动思维,对个人能力有挑战;二是因为完全按照DDD来做,对不能熟悉运用的团队来说,会影响开发效率,延长开发周期,对公司眼前利益有挑战。但是用DDD思想开发的项目,可维护性要高很多。怎么才可以又要好又要快的呢? 我觉得一个高质量的基础架构就非常重要,有了好的框架,我们就可以减少重复写代码的时间,可以把更多精力花在领域设计上,从而缩短开发周期。这样就能达到我在第一篇文章所说的“新思想、新技术、新架构——更好更快的开发现代ASP.NET应用程序”。尽管ABP没有完全实现DDD,尽管它还有不完善的地方,正如作者所说“它是一个让我们开发新的现代WEB应用程序的新起点”。我们就在这个起点上,来不断完善吧。大家共同努力,让新思想、新技术、新架构流行起来! 希望英文能力比较好的朋友可以参与翻译原作者的文档,这样我就可以腾出精力来准备ABP源码解读和谈实际使用中的经验。
欢迎加QQ群: ABP架构设计交流3群: 291304962 |
请发表评论