作为一个8岁开始学习编程,至今40岁的老程序员,这辈子使用过无数种语言,从basic开始,到pascal, C, C++,到后来的 java, c#,perl,php,再到现在流行的python。

小时候的我总觉得多掌握一门语言,我的技术能力就又前进了一步;

后来长大了慢慢明白,编程语言就和我们说的语言一样,如果你只会骂街,即使精通18国外语也成不了文学家,因为:

我记得大约是18、9岁的时候接触的java,比dotnet更早,毕竟java更早出来的。

但是后来有了C#之后,我喜新厌旧了,原因很简单,好比两个姑娘,C#更美,更能体现我心目中编程是一种艺术的理念。

当然,总有“高手”跳出来说,那只是语法糖而已,可是高级语言里哪个语法不是语法糖,你为啥不去用汇编或者干脆用打孔纸带。

国内Java一家独大原因很多,有BAT的示范效应,也有微软自己战略的失误。

好在微软这两年终于想明白了, dotnet core的横空出世和收购github都是非常正确的方向。

当然要想达到java一样的生态还有很长的路要走,那我就贡献一点绵薄之力吧。

WTM框架,全称WalkingTec MVVM, 不是“我特么”的拼音首字母。。。

WalkingTec是当初自己瞎折腾创业时候的公司名,框架原型的初衷也是为了解决公司内部开发效率低,代码风格不统一,维护困难的问题。

经过4,5年数十个项目的积累,WTM算是成熟了,我们把它移植到了dotnetcore上并且开源了。

WTM是一个快速开发框架,有多快?至少目前dotnetcore的开源项目中,我还没有见到更接地气,开发速度更快的框架。WTM的设计理念就是最大程度的加快开发速度,降低开发成本。

对于一个主流BS结构后台管理系统来说,30%是最基础的增删改查,50%是稍微复杂一点的增删改查,只有20%是真正有难度的复杂需求,但其实也是增删改查。

对于前30%,WTM可以一键生成代码,不需要手写任何代码;

对于中间的50%,可以在生成代码之后重写一些函数来快速的实现;

对于最后的20%,可以只使用框架提供的最基础的功能来自定义开发。

WTM同时支持传统模式和前后端分离模式。

传统模式我们使用LayUI最为前台UI,LayUI是一个非常优秀的前台UI库,其返璞归真,开箱即用的理念和WTM框架非常契合。

WTM框架通过TagHelper整合了LayUI包含的几乎所有控件,让开发者编写前台也毫不费力。

虽然我个人认为一个后台系统完全没必要进行前后端分离,但是也有很多ToB的管理系统是面向最终客户的,需要追求用户体验。

所以WTM也开始支持前后端分离模式,目前React+Antd已经是RTM版,可以正常使用;VUE+Element还在开发中,Angular目前还没有支持计划。

WTM的前后端分离模式定义了普遍通用的前后端通信的数据格式,并且同样支持一键生成前端代码和后台api,极大的降低了分离所造成的沟通和维护成本。

WTM开源半年以来,受到了越来越多开发者的喜爱,目前github上已有超过500星,并在快速增长中。

后续的一个大计划是一个代号“无码”的sass平台,把模型构建和代码生成再向前推进一步,力争让一半以上的常见需求只需要通过简单配置即可实现,敬请关注。

郑重声明,“无码”平台的意思是没有代码,不是你们想的那个无码。

最后列举一下WTM主要功能亮点:

l 一键生成WTM项目

l 一键生成增删改查,导入导出,批量操作代码

l 支持一对多,多对多关联模型的识别和代码生成

l 支持分离和不分离两种模式

l 支持sqlserver,mysql,pgsql三种数据库

l 封装了Layui,AntD,Element的大部分控件,编写前台更加简便

l 提供了很多基类,封装了绝大部分后台常用操作

l 提供了用户,角色,用户组,菜单,日志等常用模块

l 支持数据权限的开发和配置

l 支持读写分离和数据库分库

Github开源地址:https://github.com/dotnetcore/WTM

WTM文档地址:https://wtmdoc.walkingtec.cn/

 

在看

WTM 构建DotNetCore开源生态,坐而论道不如起而行之的更多相关文章

  1. .net开源生态,WTM与NCC

    天下大势,分久必合,合久必分.改朝换代都如花开花谢,过眼云烟,更别提开发语言的更迭了. 我们所坚持的,只是那最初的感动,那“只是在人群中多看了你一眼”的惊艳.三十年河东,三十年河西,不忘初心,方得始终 ...

  2. Wtm携手LayUI -- .netcore 开源生态我们是认真的!

    经过WTM团队和LayUI团队多次深入协商,双方于2019年7月29日在北京中国国际展览中心正式达成战略合作意向, 双方签署了战略合作框架协议,LayUI团队承诺使用WTM框架的任何项目都可以免费使用 ...

  3. TARS基金会:构建微服务开源生态

    导语 在20世纪60至70年代,软件开发人员通常在大型机和小型机上使用单体架构进行软件开发,没有一个应用程序能够满足大多数最终用户的需求.垂直行业使用的软件代码量更小,与其他应用程序的接口更简单,而可 ...

  4. 微服务开源生态报告 No.6

    「微服务开源生态报告」,汇集各个开源项目近期的社区动态,帮助开发者们更高效的了解到各开源项目的最新进展. 社区动态包括,但不限于:版本发布.人员动态.项目动态和规划.培训和活动. 非常欢迎国内其他微服 ...

  5. 微服务开源生态报告 No.4

    「微服务开源生态报告」,汇集各个开源项目近期的社区动态,帮助开发者们更高效的了解到各开源项目的最新进展. 社区动态包括,但不限于:版本发布.人员动态.项目动态和规划.培训和活动. 非常欢迎国内其他微服 ...

  6. 微服务开源生态报告 No.1

    从关注开源,到使用开源,再到参与开源贡献,越来越多的国内开发者通过开源技术来构建业务. 截止目前,Arthas / Dubbo / ChaosBalde / Nacos / RocketMQ / Se ...

  7. 阿里云应用实时监控 ARMS 再升级,支持 Prometheus 开源生态

    摘要: 应用实时监控服务 (ARMS) 是一款APM类的监控产品. 用户可基于 ARMS 的前端.应用.自定义监控,快速构建实时的应用性能和业务监控能力.ARMS 让所有性能问题“一屏了然”,不遗余力 ...

  8. 微服务开源生态报告 No.10

    「微服务开源生态报告」,汇集各个开源项目近期的社区动态,帮助开发者们更高效的了解到各开源项目的最新进展. 社区动态包括,但不限于:版本发布.人员动态.项目动态和规划.培训和活动. 非常欢迎国内其他微服 ...

  9. 微服务开源生态报告 No.8

    「微服务开源生态报告」,汇集各个开源项目近期的社区动态,帮助开发者们更高效的了解到各开源项目的最新进展. 社区动态包括,但不限于:版本发布.人员动态.项目动态和规划.培训和活动. 非常欢迎国内其他微服 ...

随机推荐

  1. VsCode 快捷键(Mac)

    按键使用符号: Shift (⇧) Control(或 Ctrl)⌃ Command(或 Cmd)⌘ Option(或 Alt)⌥ 打开文件夹 Cmd+o 调试 // 开启调试 F5 // 停止调试 ...

  2. Fish and Oh My Fish in Ubuntu

    After install Fish shell, then install Oh My Fish . Oh My Fish(shortly OMF) can make our Fish shell ...

  3. android开发环境配置和一些坑

    要开发安卓应用,首先就是要配置安卓的开发环境. 新手在这个步骤时,会发现安卓的开发环境配置不是一般的麻烦,因为一般人是选择eclipse+a sdk+adt的,需要java环境,需要翻 墙,需要有非一 ...

  4. 基于SpringBoot从零构建博客网站 - 开发设置主页标识和修改个人信息功能

    由于守望博客系统中支持由用户自己设置个人主页的URL的后半段,所以必须要用户设置该标识的功能,而且是用户注册登录之后自动弹出的页面,如果用户没有设置该标识,其它的操作是不能够操作的,同时要求主页标识只 ...

  5. BZOJ 3990 排序

    [题目描述]: 小A有一个1~2N的排列A[1..2N],他希望将数组A从小到大排序.小A可以执行的操作有N种,每种操作最多可以执行一次.对于所有的i(1<=i<=N),第i种操作为:将序 ...

  6. 如何确保TCP协议传输稳定可靠?

    TCP,控制传输协议,它充分实现了数据传输时的各种控制功能:针对发送端发出的数据包确认应答信号ACK:针对数据包丢失或者出现定时器超时的重发机制:针对数据包到达接收端主机顺序乱掉的顺序控制:针对高效传 ...

  7. leadcode的Hot100系列--78. 子集--位运算

    看一个数组的子集有多少,其实就是排列组合, 比如:[0,1] 对应的子集有:[] [0] [1] [1,1] 这四种. 一般对应有两种方法:位运算 和 回溯. 这里先使用位运算来做. 位运算 一个长度 ...

  8. iOS 唤起APP之Universal Link(通用链接)

    什么是Universal Link(通用链接) Universal Link(通用链接)是Apple在iOS9推出的一种能够方便的通过传统HTTPS链接来启动APP的功能,可以使用相同的网址打开网址和 ...

  9. .NET项目迁移到.NET Core操作指南

    为什么要从.NET迁移到.NET Core? .NET Core提供的特性 .NET Core性能提升 .NET如何迁移到.NET Core? 迁移工作量评估(API兼容性分析) 迁移方案制定 通过类 ...

  10. leetcode的Hot100系列--3. 无重复字符的最长子串--滑动窗口

    可以先想下这两个问题: 1.怎样使用滑动窗口? 2.如何快速的解决字符查重问题? 滑动窗口 可以想象一下有两个指针,一个叫begin,一个叫now 这两个指针就指定了当前正在比较无重复的字符串,当再往 ...