开箱即用~基于.NET Core的敏捷开发框架规划

前言

  多年的开发积累让我一直在思考一个问题:如何能拥有一个开箱即用的框架?或者说针对不同的业务规模,能有一系列相应的框架版本,这样每次新项目上线的时候,或者业务增长变更的时候,都无需重新造轮子,我们所要做的是对号入座,即根据业务实际拿一个相应的版本过来微调即可高效上路且不翻车?做到用最少的时间,最低的成本,最好的质量把项目给收掉了,这就是我构想基于.net core敏捷开发框架的初衷。

框架的定义

  请允许我把框架分成技术框架和应用框架,技术框架主要是做底层基础工作的,也叫基础框架,比如微软原始的框架和第三方著名框架;应用框架主要是面向业务,比如支付功能,权限功能等,但是也是属于业务里头的通用的部分。那么大部分的中小团队需要的是什么样的敏捷框架呢?

  最理想的情况是,不管是什么项目,不管是技术框架还是应用框架,我都有足够多的基础框架组件,不管用得着还是用不着的,都在我的工具箱里面,我只要排列组合着用就够了。因为对于中小团队,时间就是生命。我们不可能因为过分追求技术而牺牲业务,因为市场决定了我们的生死存亡。

  我深知做这件事的不容易,所以一开始就抱着明天就要烂尾的心态在做,所以将来没能做起来,请大家不要嘲笑我。

  我不会去步入Abp或Nop的后尘,因为那样是没有意义的,但是我会借鉴着,并尽可能的设计得面向国人的现状,面向中小团队的痛点,更加的丰满和完善,毕竟只有解决解决目前升级过程中的问题,才是有价值的。

框架的价值

  有了这个框架的好处,总结起来

从大的方面来说就是:

  • 提升中小企业的研发效能

  • 赋能中小企业业务规模化创新

  • 推进遗留系统的现代化转型升级

从小的方面来看就是:

  • 初学者可以用来学习成长;

  • 小团队尽快交付高质量的项目;

  • 老项目可以快速导入,进行技术的现代化升级。

框架特点

  那么这个框架应该具备哪些特点呢?不同的业务,团队规模和技术规划必然无法只用一套框架就能一招鲜吃遍天的银弹。所以,这个框架会分多个系列的,好比华为手机有mate系列,p系列。每个系列有重复,又有各自的定位和差异,各自服务着不同的开发团队。

从技术层面来看,共同点包括:

  • 简单易用,应届生也能快速上手,基本不需要文档,或者只要简单的说明即可入门

  • 规范性好,代码优雅可读性极高,代码整洁,本人有代码洁癖,每行代码都经过反复斟酌。

  • 可扩展好,在业务演进过程无需大改

  • 逻辑分层结构清晰,代码耦合低

  • 面向云原生:以微服务为理念,支持容器化打包和编排,支持DevOps和自动化理念

从业务层面看,共同点包括:

  • 有单体精品,有面向微服务,有微服务

  • 赋能不同业务的阶段性发展

  该框架不同于市面上的框架,而是一款真正面向中小团队(7-8个人)国产框架,是一款能真正用于生产的框架;也会区别于视频培训内容,因为看视频太慢,一个视频要几十分钟,而且需要自己再敲代码,距离生产级别那就更远了。

  因为是生产级别的,所以不同于开源产品,我期望将来的每一个细节都需要精心设计和手工敲打。虽然目前v1.0版本还有很多不完美和需要完善的地方,但是都是自己踩坑的总结。如果您在使用过程当中有疑问可以加入敏捷开发群进行咨询,如果您想让我给您培训,会适当收取费用,请理解,因为我也要活着。

  该敏捷框架会经历一个循环迭代的过程,如果您在使用当中有新需求,请您提交issue。当然也希望您能为这个框架贡献源码。这个框架会吸收Abp的特点,融入当前最优秀的开源框架为我所用,但是会更加面向国产用户,考虑国人的业务特点和使用感受。

  如果你是个优秀的开发者,欢迎你加入框架的开发。

  因为框架开发是一个重活,急需要一些骨干大佬的加入,做一些底层的基础研究工作。如果您在厦门最好不过,我们会定期举行线下活动。如果您不在厦门也没关系,我们会通过远程视频和您进行沟通。

面向读者

  • 架构初学者,但不是.net初学者。
  • 如果你是.Net初学者,基本的Crud(增删改查)尚且完成不了,请缓一年再来。
  • 你可能已经有了一些项目经验,甚至已经开发多年,但你的项目依然进度缓慢,很难按时交付,代码质量糟糕,难以继续维护,你迫切希望找到一种方法来改善这个过程。
  • 如果你手里没有任何积累,该敏捷框架将是你搭建自己框架的一个很好的起点。
  • 如果你已经身经百战,自己的框架也比较成熟,该框架对你的帮助不会太大。

版本规划

迭代周期

  每一个版本目标是一周一个迭代,考虑当前人手和精力,为了出更好的精品,前期会按一个月一个迭代来推进。

迭代计划

  每次计划安排会按优先级队列进行编排,结合网友需求,甄选出最重要最紧急的功能进行编排。这个计划一般会提前一个月进行。

欢迎大牛加入

  欢迎各界有.net core生产级别的大佬加入。

  成为骨干需要做三个事:

  • 首先,需要您提供能证明您实力的文章、博客、开源代码。
  • 其次,为了您能重视这个事需要你提供一定的时间。
  • 再次,希望您能加我的QQ,我们单独聊一聊。

  因为我们不是为了输赢,我们是认真的。希望您是一位技术爱好者,喜欢主动学习,有广博的知识和技术敏锐度,欢迎您的加入!

社区活动

  敏捷框架不是目的,目的是结交各方好友,技术会友,帮助.net生态圈能有一个重新发展的机会。

  希望在框架发展到一定阶段,能举行一场线下技术交流会,聊一聊技术之外的理想,人生,家庭,爱好,文学,当然还有我们立命之本的技术和发展趋势。如果您本人在厦门是最好不过,欢迎您随时和我联系。

版本系列

  • 单体敏捷框架
    • AF3(Agile Framework3),基于三层逻辑概念划分;
    • AFD(Agile Framework DDD),基于DDD驱动设计原理划分;
  • 微服务敏捷框架
    • AMFS(Agile Microservice Framework Single Repository),基于单体代码仓库划分;
    • AMFM(Agile Microservice Framework Muti-Repository),基于代码多仓库划分;

目前进度

  请参考《开箱即用~基于.NET Core的统一应用逻辑分层框架设计》

敏捷框架技术支持

  一套得心应手的应用框架,能让你的团队如虎添翼,开发效率和开发质量将同时提升N倍,那是不是意味着,只要有了这么一套应用框架,你的团队马上就能脱胎换骨呢? 非也,梅花香自苦寒来,宝剑锋从磨砺出,路漫漫其修远兮,你将上下而求索。

  但是我们会提供尽可能全面的文档,同时也会在群里对你遇到的问题进行解答。

贡献与反馈

  • 如果你在阅读或使用发现Bug,或有更佳实现方式,请通知我们。
  • 为了保持代码简单,目前很多功能只建立了基本结构,细节特性未进行迁移,在后续需要时进行添加,如果你发现某个类无法满足你的需求,请通知我们。
  • 你可以通过github的Issue或Pull Request向我们提交问题和代码,如果你更喜欢使用QQ进行交流,请加入我们的交流QQ群。
  • 对于你提交的代码,如果我们决定采纳,可能会进行相应重构,以统一代码风格。 

  该逻辑分层框架可以理解是敏捷框架,为了顺口我把敏捷去掉了。为什么叫逻辑分层,是为了区别物理分层。该框架的目标是减少小伙伴重复搭建麻烦,同时也是保证团队各个应用之间的规范统一,目前是v1.0版本,欢迎您持续关注~

环境及将来依赖

IDE工具:

  • Visual Studio 2019
  • Resharper

数据库

  • Sql Server
  • Mysql
  • PostgreSQL

版本控制

  • Git

部署环境

  • Ubunt16.04
  • Centos7.x
  • Windows Server2012
  • Docker

SDK及Runtime

  • 当前SDK 64位版本:Sdk v2.2.104,开发机器安装
  • 当前Runtime 64位版本:Runtime v2.2.2,服务器安装

单元测试及模拟框架

  • XUnit
  • NSubstitute

数据访问框架

  • EntityFrameworkCore
  • Dapper

Ioc框架

  • Autofac

Aop框架

  • AspectCore

Json框架

  • Json.Net

映射框架

  • AutoMapper

日志框架

  • NLog
  • Exceptionless

缓存

  • EasyCaching

事件总线

  • CAP
  • MeditR

Id生成器

  • ECommon.Utilities.ObjectId

RSA加密算法

  • DotnetCore.RSA

二维码操作

  • QRCoder

短信操作

  • Luosimao

定时任务调度框架

  • Quartz.Net

权限

  • Asp Net Core Identity
  • Identity Server

代码生成器

  • CodeSmith 6.5
  • T4

参考应用框架

  • ABP
  • Nop

 

你可能感兴趣的:(开箱即用~基于.NET Core的敏捷开发框架规划)