摘要: 目前很多低代码平台都是基于Web用拖拽方式生成界面,确实可以极大的提高开发效率,但也存在一些问题: 大部分平台灵活性不够,特殊需求需要较大的自定义开发; 解析json配置的执行效率不是太高; 大部分平台缺乏后端支持或复杂的业务逻辑支持; 与后端的数据结构及业务服务不存在强关联,修改后端容易造成前端配 阅读全文
posted @ 2024-02-21 21:29 白菜园 阅读(764) 评论(1) 推荐(8)
摘要: 之前为了应对客制化大屏设计的需求,在框架内实现了拖拽方式(动态化)生成用户界面的功能,跟大部分实现方式差不多,设计时生成配置json,然后在运行时解析json生成用户界面。这次完善了一下该功能,支持类似于零代码平台生成增删改查界面,下面简单介绍一下操作步骤。 一、准备数据结构 参考之前的文章准备好所 阅读全文
posted @ 2025-06-13 10:38 白菜园 阅读(344) 评论(0) 推荐(0)
摘要: 前一阵子帮朋友开发个微信小程序,一开始使用Wechat Devtools开发,实在受不了转用uniapp开发。后来突发奇想能否将C#写的PixUI编译成WebAssembly,由微信小程序加载运行。先上网搜了下小程序使用blazor的文章,都是用WebView包了一下blazor应用,没有参考价值, 阅读全文
posted @ 2025-05-15 09:58 白菜园 阅读(4212) 评论(12) 推荐(36)
摘要: 最近在写数据库程序,需要一个高性能的结构化日志记录组件,简单研究了一下Microsoft.Extensions.Logging和Serilog,还是决定重造一个轮子。 一、使用方法 直接参考以下示例代码: NanoLogger.Start(); DateTime? nullable = null; 阅读全文
posted @ 2024-06-11 10:50 白菜园 阅读(868) 评论(1) 推荐(6)
摘要: 最近框架中的可视化界面设计需要使用到表达式引擎(解析代码字符串并动态执行),之前旧框架的实现是将表达式字符串解析为语法树后解释执行该表达式,本文介绍如何使用Roslyn解析表达式字符串,并直接转换为Linq的表达式后编译执行。 一、语法(Syntax)与语义(Semantic) C#的代码通过Ros 阅读全文
posted @ 2024-01-08 11:34 白菜园 阅读(811) 评论(0) 推荐(2)
摘要: 作者之前介绍了开发中的PixUI,为了适配Web应用采用了将C#通过Roslyn语法语义分析后转换为Javascript的方案,但是这样带来的问题是工程量较大,在短时间内无法达到生产级质量。因此在简单评估了Blazor技术后决定暂使用Blazor WebAssembly来实现PixUI的Web端。本文记录一些Blazor链接原生(C/C++)库过程中所踩过的坑,同时为了庆祝儿子考完10年内最难中考提前宣布PixUI正式开放源码 阅读全文
posted @ 2023-06-19 10:15 白菜园 阅读(2891) 评论(29) 推荐(27)
摘要: 一、源起 作者是名超大龄程序员,曾涉及了包括Web端、桌面端、移动端等各类前端技术,深受这些前端技术的苦,主要但不限于: 每种技术编写代码的语言及技术完全不同,同样呈现形式的组件各端无法通用; 大部分前端开发语言跟后端开发语言不同,不能共用一些数据结构; 前端UI的本质是在显示器上呈现由像素点组成的 阅读全文
posted @ 2023-03-14 13:21 白菜园 阅读(2169) 评论(11) 推荐(19)
摘要: 前一阵子拜访了一些小伙伴,大家都表示苦前端太久了,需要花费不少时间在前端开发上。本着在不损失灵活性的前提下尽可能提高开发效率的原则,作者尝试在框架内集成了拖拽方式生成Vue用户界面的功能作为补充,以方便快速生成增删改查界面,也可以用于大屏展示及简单的网页制作。 一、技术原理 1.1 布局 目前仅实现 阅读全文
posted @ 2021-03-29 15:12 白菜园 阅读(2992) 评论(8) 推荐(3)
摘要: 异步响应式编程可以极大的提高系统的并发呑吐量,但由于Java没有类似于其他语言的Async/Await机制,所以只能通过CompletableFuture.thenXXX()来串联各个异步任务,这给习惯了写同步增删改查的小伙伴们带来了些小麻烦。如果说C#基于状态机在编译时实现了await转换,那么J 阅读全文
posted @ 2021-01-18 14:08 白菜园 阅读(2079) 评论(4) 推荐(1)
摘要: Java的ORM框架有很多,但由于Java语言的限制大部分都不够优雅也不够简单,所以作者只能另辟蹊径造轮子了。照旧先看示例代码了解个大概,然后再解释实现原理。 一、ORM示例 1. Insert public CompletableFuture<Void> insert() { var obj = 阅读全文
posted @ 2021-01-13 16:30 白菜园 阅读(3782) 评论(35) 推荐(10)