摘要:"微服务"加个引号是因为这不是传统定义的微服务架构,顶多算是"小服务"架构,因为服务实例由集群节点统一加载,非独立部署。下面以图说明一下服务调用流程。 一、服务调用流程 节点主进程:类似于Istio的SideCar,负责对外网络及集群内节点间的通信,另外提供内置分布式的存储引擎(目前元数据均存储于此 阅读全文
posted @ 2020-12-24 19:58 白菜园 阅读(421) 评论(0) 推荐(1) 编辑
摘要:本来想尽量做完美一点再开放,但个人能力实在有限,无法专注于实现内置分布式数据库,所以想借助社区的力量来验证与推进。 一、框架设计目标: 简单:能有更多的时间专注于业务领域; 灵活:不能有任何限制,能够灵活扩展; 快速:能够尽可能快的开发应用系统; 二、框架整体结构: 左图为整体结构,右图为每个应用节 阅读全文
posted @ 2020-03-06 16:40 白菜园 阅读(2184) 评论(4) 推荐(7) 编辑
摘要:异步响应式编程可以极大的提高系统的并发呑吐量,但由于Java没有类似于其他语言的Async/Await机制,所以只能通过CompletableFuture.thenXXX()来串联各个异步任务,这给习惯了写同步增删改查的小伙伴们带来了些小麻烦。如果说C#基于状态机在编译时实现了await转换,那么J 阅读全文
posted @ 2021-01-18 14:08 白菜园 阅读(544) 评论(4) 推荐(1) 编辑
摘要:Java的ORM框架有很多,但由于Java语言的限制大部分都不够优雅也不够简单,所以作者只能另辟蹊径造轮子了。照旧先看示例代码了解个大概,然后再解释实现原理。 一、ORM示例 1. Insert public CompletableFuture<Void> insert() { var obj = 阅读全文
posted @ 2021-01-13 16:30 白菜园 阅读(2350) 评论(36) 推荐(8) 编辑
摘要:"微服务"加个引号是因为这不是传统定义的微服务架构,顶多算是"小服务"架构,因为服务实例由集群节点统一加载,非独立部署。下面以图说明一下服务调用流程。 一、服务调用流程 节点主进程:类似于Istio的SideCar,负责对外网络及集群内节点间的通信,另外提供内置分布式的存储引擎(目前元数据均存储于此 阅读全文
posted @ 2020-12-24 19:58 白菜园 阅读(421) 评论(0) 推荐(1) 编辑
摘要:企业应用需要打印各类单证及报表,为了方便开发此类应用作者在框架内集成了报表引擎,并且实现了基于Canvas的Web在线报表设计及基于PDFJS的报表查看与打印。 一、原理浅析 报表模型:由Xml描述各类报表元素组成(表格、图形、条码等),通过报表设计器生成; 数据源:通过推(Push)或拉(Pull 阅读全文
posted @ 2020-04-24 11:37 白菜园 阅读(938) 评论(0) 推荐(5) 编辑
摘要:框架是用抽象模型驱动的方式来生成应用系统的,这样可以将这些模型序列化为相应的模型包文件,通过反序列化导入至其他部署环境内,从而实现开发环境与生产环境的同步,包括对应的数据库结构的同步。下面通过示例来演示如何操作: 一、准备测试应用 通过New Application创建一个新应用,名称如:erp; 阅读全文
posted @ 2020-03-12 13:16 白菜园 阅读(452) 评论(0) 推荐(4) 编辑
摘要:本来想尽量做完美一点再开放,但个人能力实在有限,无法专注于实现内置分布式数据库,所以想借助社区的力量来验证与推进。 一、框架设计目标: 简单:能有更多的时间专注于业务领域; 灵活:不能有任何限制,能够灵活扩展; 快速:能够尽可能快的开发应用系统; 二、框架整体结构: 左图为整体结构,右图为每个应用节 阅读全文
posted @ 2020-03-06 16:40 白菜园 阅读(2184) 评论(4) 推荐(7) 编辑
摘要:本篇通过完整示例介绍如何实现一对多关系表单的相应服务及视图。 一、准备数据结构 示例所采用的数据结构为“物资需求”一对多“物资清单”,通过IDE的实体设计器如下所示: 1. 物资(DonateItem) 主键为Id(Guid) 2. 物资需求(Requirement) 主键为Id(Guid) 3. 阅读全文
posted @ 2020-02-18 18:20 白菜园 阅读(442) 评论(0) 推荐(1) 编辑
摘要:上篇介绍集成第三方Sql数据库时未实现如导航属性、子查询等功能,经过大半个月的努力作者初步实现了这些功能,基本上能满足80% 90%查询需求,特别复杂的查询可以用原生sql来处理,下面分别示例介绍。 Like/In/NotIn 分页查询 EntityRef属性自动Left Join 适用于实体建模时 阅读全文
posted @ 2019-12-26 11:55 白菜园 阅读(370) 评论(0) 推荐(2) 编辑
摘要:  框架设计之初是不准备支持第三方数据库的,但最近几个朋友都提到需要将旧的基于传统Sql数据库的应用迁移到框架内,主要是考虑到一方面目前框架内置的分布式数据库尚未完善,另一方面是希望能逐步迭代旧应用替换传统数据库。因此作者还是决定支持第三方数据库,下面介绍如何集成第三方数据库,并 阅读全文
posted @ 2019-11-28 16:16 白菜园 阅读(416) 评论(0) 推荐(2) 编辑
摘要:  框架内的服务模型(ServiceModel)用于处理各类业务逻辑(如最简单的CRUD操作),在设计时以类似于伪代码的形式存在,发布时后端会通过Roslyn转换并编译为运行时代码。为了方便开发者作者初步实现了在线调试服务与监测服务调用性能的功能,下面分别介绍。 一、服务在线调试 阅读全文
posted @ 2019-10-24 20:18 白菜园 阅读(408) 评论(0) 推荐(1) 编辑