WTM 构建DotNetCore开源生态,坐而论道不如起而行之

    作为一个8岁开始学习编程,至今40岁的老程序员,这辈子使用过无数种语言,从basic开始,到pascal, C, C++,到后来的 java, c#,perl,php,再到现在流行的python。小时候的我总觉得多掌握一门语言,我的技术能力就又前进了一步;后来长大了慢慢明白,编程语言就和我们说的语言一样,如果你只会骂街,即使精通18国外语也成不了文学家,因为:

640?wx_fmt=png

我记得大约是189岁的时候接触的java,比dotnet更早,毕竟java更早出来的。但是后来有了C#之后,我喜新厌旧了,原因很简单,好比两个姑娘,C#更美,更能体现我心目中编程是一种艺术的理念。当然,总有“高手”跳出来说,那只是语法糖而已,可是高级语言里哪个语法不是语法糖,你为啥不去用汇编或者干脆用打孔纸带。

640?wx_fmt=png

  国内Java一家独大原因很多,有BAT的示范效应,也有微软自己战略的失误。好在微软这两年终于想明白了, dotnet core的横空出世和收购github都是非常正确的方向。当然要想达到java一样的生态还有很长的路要走,那我就贡献一点绵薄之力吧。

640?wx_fmt=png

WTM框架,全称WalkingTec MVVM, 不是“我特么”的拼音首字母。。。WalkingTec是当初自己瞎折腾创业时候的公司名,框架原型的初衷也是为了解决公司内部开发效率低,代码风格不统一,维护困难的问题。经过45年数十个项目的积累,WTM算是成熟了,我们把它移植到了dotnetcore上并且开源了。

640?wx_fmt=png

  WTM是一个快速开发框架,有多快?至少目前dotnetcore的开源项目中,我还没有见到更接地气,开发速度更快的框架。WTM的设计理念就是最大程度的加快开发速度,降低开发成本。对于一个主流BS结构后台管理系统来说,30%是最基础的增删改查,50%是稍微复杂一点的增删改查,只有20%是真正有难度的复杂需求,但其实也是增删改查。对于前30%WTM可以一键生成代码,不需要手写任何代码;对于中间的50%,可以在生成代码之后重写一些函数来快速的实现;对于最后的20%,可以只使用框架提供的最基础的功能来自定义开发。



640?wx_fmt=png


WTM同时支持传统模式和前后端分离模式。传统模式我们使用LayUI最为前台UILayUI是一个非常优秀的前台UI库,其返璞归真,开箱即用的理念和WTM框架非常契合。WTM框架通过TagHelper整合了LayUI包含的几乎所有控件,让开发者编写前台也毫不费力。

 

虽然我个人认为一个后台系统完全没必要进行前后端分离,但是也有很多ToB的管理系统是面向最终客户的,需要追求用户体验。所以WTM也开始支持前后端分离模式,目前React+Antd已经是RTM版,可以正常使用;VUE+Element还在开发中,Angular目前还没有支持计划。WTM的前后端分离模式定义了普遍通用的前后端通信的数据格式,并且同样支持一键生成前端代码和后台api,极大的降低了分离所造成的沟通和维护成本。

640?wx_fmt=png


WTM开源半年以来,受到了越来越多开发者的喜爱,目前github上已有超过400星,并在快速增长中。后续的一个大计划是一个代号“无码”的sass平台,把模型构建和代码生成再向前推进一步,力争让一半以上的常见需求只需要通过简单配置即可实现,敬请关注。郑重声明,“无码”平台的意思是没有代码,不是你们想的那个无码。

640?wx_fmt=png

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

一键生成WTM项目

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

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

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

支持sqlservermysqlpgsql三种数据库

封装了LayuiAntDElement的大部分控件,编写前台更加简便

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

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

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

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

 

 

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

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

640?wx_fmt=png


如果WTM框架帮助到了你,请转发~~~



.NET社区新闻,深度好文,欢迎访问公众号文章汇总 http://www.csharpkit.com 

640?wx_fmt=jpeg


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/314790.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

架构杂谈《六》

超时处理模式在服务化或者微服务架构里,传统的整体应用拆分成多个职责单一的微服务,微服务之间通过某种网络通信协议互相通信和交互,完成特定的功能,然而由于网络通信的不稳定,在设计系统时必须考虑到对网络通信的容错…

【BZOJ4543】Hotel加强版【神仙树形dp】【长链剖分】

题意:给一棵 nnn 个点的树,求两两距离相等的三元组个数。 n≤105n\leq 10^5n≤105 显然相当于是找一个点到这三个点距离相等。子树内和子树外到当前点的距离为某个值的点的个数可以长链剖分快速得到,但统计答案非常棘手。 接下来是个鬼才想…

基于surging 的stage组件设计,谈谈我眼中的微服务

一、前言surging 开源地址:https://github.com/dotnetcore/surging随着业务的发展,并发量的增多,业务的复杂度越来越大,对于系统架构能力要求越来越高,这时候微服务的设计思想应运而生,但是对于微服务需要引…

HDU - 6971 K - I love max and multiply sosdp

传送门 文章目录题意:思路:题意: 思路: 直接求i&j>ki\And j>ki&j>k不是很好求,所以转换成i&jki\And jki&jk的情况。 考虑对a,ba,ba,b求一遍超集,让后从[0,n−1][0,n-1][0,n−1]扫…

推荐10个技术圈优质的公众号大号

公众号有很多但需要什么只有自己知道本次筛选了一批技术圈优质的公众号,主要与python、人工智能、机器学习、技术人生相关希望对你有所帮助!▼★长按二维码,选择“识别二维码”进行关注。▲长按二维码,识别关注简介:Python爱好者社…

使用Kubeadm创建k8s集群之部署规划(三十一)

前言 上一篇我们讲述了使用Kubectl管理k8s集群,那么接下来,我们将使用kubeadm来启动k8s集群。部署k8s集群存在一定的挑战,尤其是部署高可用的k8s集群更是颇为复杂(后续会讲)。因此本教程会在部署的过程中穿插讲…

HDU - 6967 G I love data structure 线段树维护矩阵 + 细节

传送门 文章目录题意:思路:题意: 给你两个长度为nnn的数组a,ba,ba,b,你需要完成如下四种操作: 思路: 思路还是比较简单的,首先建一颗线段树,线段树中维护a,b,a2,b2,aba,b,a^2,b^…

荐读|属性与可直接访问的数据成员之间应该如何选

写在前面在书写C#代码的时候你是否有过这样的经历:经常混用属性以及公有的数据成员。毕竟他们的用法基本一致,对于使用来说好像没什么区别啊。其实我也经常使用类的公有的数据成员来定义一些常量,为了简单,在一些仅仅需要对外暴露…

2021牛客暑期多校训练营3 I Kuriyama Mirai and Exclusive Or 差分 + 二进制分治

传送门 文章目录题意:思路:题意: 给你一个数组aaa,让你实现以下两个操作之后输出数组aaa。 n≤6e5,ai≤230−1n\le6e5,a_i\le2^{30}-1n≤6e5,ai​≤230−1 思路: 下面介绍的思路清奇,反正我想不到。 对…

Lock VS Monitor

介绍介绍对开发人员来说,处理关键代码部分的多线程应用程序是非常重要的。Monitor和lock是c#语言中多线程应用程序中提供线程安全的方法(lock关键字的本质就是对Monitor的封装)。两者都提供了一种机制来确保只有一个线程同时执行代码,以避免代码功能被其…

程序员修神之路--做好分库分表其实很难之二

菜菜哥,上次听你给我讲了分库的情况后,我明白了很多,能再给我讲讲分表吗有收获就好,分表其实有很多情况和分库类似还有不一样的情况吗?有呀,本来数据库和表是不同层面的东西,肯定有差异那你给讲…

2021牛客暑期多校训练营3 B Black and white 最小生成树 + 思维

传送门 文章目录题意:思路:题意: 思路: 对于每个数的位置(i,j)(i,j)(i,j),如果将这个位置染黑,那么我们连一个i−>jni->jni−>jn的边,可以发现我们的操作不影响连通性。如果想要全部染…

关于WinForms的跨显示器DPI自适应

点击上方蓝字关注“汪宇杰博客”导语WinForms 是运行在Windows上的传统.NET桌面应用技术框架。由于历史原因,它对高DPI以及跨不同DPI屏幕的支持有些问题,本文将探索尽可能的解决方案。Windows 的“黑历史”Windows 系统的默认DPI(更确切的说法…

.NET开发框架(九)-NLB网络负载平衡配置实战(视频)

(NLB配置实战教程-有声视频-第二节)请持续关注公众号,第三节(NLBARR)正在录制中~第六章IIS负载均衡教程,至今共有37人参与学习尚未学习第六章-IIS负载均衡-视频教程的童靴,赶紧跟上进度,别掉队了…

C#各版本新增加功能

本系列文章主要整理并介绍 C# 各版本的新增功能。C#8.0 于 2019年4月 随 .NET Framework 4.8 与 Visual Studio 2019 一同发布,但是当前处于预览状态。预计在2019年9月正式发布。目前提供以下功能可供试用:Readonly 成员默认接口成员【*重要,…

宣告推出.NET Core 3.0 Preview 7

译:艾心0626今天,我们宣布推出.NET Core 3.0 Preview 7。我们已经从创建新特性阶段过渡到了完善版本阶段。对于接下来的预览版,我们将把重点放在质量(改进)上。在Windows,macOS和Linux上下载.NET Core 3.0 Preview 7。.NET Core 3…

基于Masstransit实现Eventbus的功能

Masstransit 是一个非常优秀的基于消息进行通信的分布式应用程序框架,详情参考官网。在介绍AA.ServiceBus之前,先介绍下几个概念.分布式分布式系统如何定义?这里引用一下Distributed Systems Concepts and Design(Third Edition)中的一句话&a…

微软解释为什么Rust是系统编程的最佳选择

上周,MSRC(微软安全响应中心)透露出拥抱 Rust 的打算,随后他们将这个话题扩展为一个系列,进一步阐述了使用安全的系统编程语言的的必要性,以及选择 Rust 的原因。在该系列最新一篇文章中,MSRC 团…

你可能不知道的Docker资源限制

本篇内容涉及Docker的内存与CPU限制,可以用于在实际开发中为指定容器设置限制最大使用的资源量,预计阅读时间为5分钟。01—What is 资源限制?默认情况下,容器是没有资源限制的,它会尽可能地使用宿主机能够分配给它的资…

东南亚的IT公司,我劝你善良!

来源公众号:半佛仙人(ID:banfoSB)“真的救我一条‘狗命’,可以吗,谢谢您了,我真的撑不住了。”5月3日,小巴在朋友圈看到这条信息,附着一张长图,定位&#xff…