昨天发表了<如何用ABP框架快速完成项目 - 自动化测试 - 前端angular e2e protractor>后,大家十分热情,几个小时内就收到了不少问题,包括: 对于ui自动化测试这方面,是不是ui变化了,无论使用何种测试框架,都避免不了重新编写测试用例的代码? 12月的活动是不是只讲angular,不讲MVC了? abp怎么一个人搞定一个项目的? 坐等群主来开DDD培训 按照老师您的文章来做,跑测试时在最后一步捕捉“注销”按钮处失败了. 特别是最后一个问题,证明了这个同学有按照我的文章去…
要想快速完成一个项目, 自动化是很关键很有用的一块. 自动化测试比人工测试快很多. 特别是在回归测试中. 实践证明, 虽然投入了时间在写自动化测试代码上, 但是在回归测试中节省了大量的时间,同时及时发现bug挽救回来时间收益大大超过了早期写自动化测试代码的投入. 特别是要测试浏览器兼容性的时候,只写一遍自动化测试代码,就能自动的快速的在所有浏览器跑完测试. 我们这系列文章是使用abp里的asp.net core + angular结构. angular里的UI自动化测试(简称e2e)使用的是pr…
正如我在<如何用ABP框架快速完成项目(2) - 快的定义!>提到的, 很多同学在使用ABP中遇到很多问题, 花了很多时间和精力, 然而从最根本的角度和方向上来看这些问题应该是不存在. 这些问题如果你正确使用了ABP是根本不会遇到这些问题的.   那么如何正确使用ABP呢? 首先我们要与时俱进,既然选择了ABP,其他同时代的技术和思想也要一并选择. 举个例子, 我们既然选择了飞机, 就要把导弹也选上, 不要开着飞机然后用弓箭去和敌人开战.   那么同时代和ABP这架飞机匹配的武器有啥呢? .N…
做为一个程序员, 深深知道计算机自动化的速度是比人手动的速度快的, 所以”快速”完成项目的一个重要武器就是: 能自动化就不要手动.   BDD/TDD有很多优势, 其中之一就是自动化, 我们这节文章先讲自动化, 在后面的文章里面会讲到BDD/TDD的其他优势.   在ABP .NET Core + SPA版本和52ABP里面, 可以在以下层面做自动化测试: 前端Angular项目的e2e自动化测试 前端Angular项目的unit test 后端.NET Core项目的unit test 后端.…
一个人写代码不需要担心会和别人的代码冲突, 不需要做代码合并, 不需要担心自己的代码被覆盖. 但是多个人一起写代码就需要担心这些问题.   解决这些问题的方法很多, 比如用AzureDevOps(TFS)来进行代码管理和版本控制等等. 其中有两个办法就是, 业务模块组件化和微服务.   首先ABP是支持业务模块组件化的, 然而我并不推荐在ABP使用业务模块组件化, 因为: ABP更新太快了, 每2周更新一个版本. 除了ABP更新快, 其他技术\框架\工具也更新很快. 正如我在<如何用ABP框架快…
首先先讲为什么要使用ABP? 当然是因为使用ABP可以快速完成项目啦. 时间就是金钱, 效率就是生命嘛   有了ABP, 你就节省了写如下模块的时间: CRUD数据库基本操作 校验 异常处理 日志 权限 审计 其他   嗯, 节省时间这个理由已经很有力很充分了, 那么接下来介绍一下ABP.   ABP是ASP.NET Boilerplate的简称. 官网是: https://aspnetboilerplate.com/ 官宣是:  ASP.NET Boilerplate是一个用最佳实践和流行技术…
用ABP一个人快速完成项目有如下要点: 站在巨人的肩膀上 - 使用代码生成器 站在巨人的肩膀上 - 使用成熟控件框架, 一个框架不够就上两个, 两个不够就上三个 通过微服务模式而不是盖楼式来避免难度升级 运用BDD/TDD等先进方法论 运用DevOps 注意!一个人的项目不要执着于设计模式和DDD理论,一切都是自然而然, 要理论为你服务,而不是你为理论服务   要想快速完成项目, 站在巨人的肩膀上是一个很重要很好使的招数. 这节我们先讲代码生成.   首先我们先去https://www.52ab…
正如我在<程序员英语二三事(2) - 从听开始>里说的, 任何技术/工具/语言都有其适用场景和上下文环境. DDD理论同样是如此.   现在, 终于到了发挥DDD理论优势的时候啦!   一个人做一个项目不用担心代码风格不一致,不用代码看不懂别人写的代码 一个团队做项目就要考虑一致的代码风格,要保证能看得懂团队其他人的代码. 两个人一个用英语,一个用中文是很难交流的. DDD理论保证了大家使用同一种语言去交流.ABP保证了具体实施细节的一致. DDD理论相当于中文/英语,ABP相当于普通话或粤语…
这节文章十分重要!十分重要!十分重要!   很多同学在使用ABP的过程中遇到很多问题, 花费了很多时间和精力都还无法解决, 就是卡在这节文章这里.   Talk is cheap, just show your code! 让我们上实例.   以很多人都会遇到的导入excel功能为例吧. 因为LinqToExcel是那么的优秀, 我们选择使用它来操作Excel数据. 很多同学直接在ABP项目里面用nuget安装LinqToExcel, 然后使用, 这就是盖楼式. 在ABP这层楼上再盖上LinqT…
正如我在<office365的开发者训练营,免费,在微软广州举办>课程里面所讲的, 站在巨人的肩膀上的其中一项就是, 尽量使用别人成熟的框架. 其中也包括了控件框架   abp和52abp都使用了成熟的UI框架. 其中52abp的angular版本使用了ng Zorro框架.   然而一个框架不能涵盖所有东西, ng Zorro框架也同样如此. 比如框架里面的table和select控件就缺少很多功能.   那怎么办? 一个框架不够, 那就上两个框架罗, 两个框架不够那就上三个框架罗.   P…