惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

罗磊的独立博客
I
InfoQ
雷峰网
雷峰网
Hugging Face - Blog
Hugging Face - Blog
IT之家
IT之家
云风的 BLOG
云风的 BLOG
有赞技术团队
有赞技术团队
Martin Fowler
Martin Fowler
MyScale Blog
MyScale Blog
The GitHub Blog
The GitHub Blog
博客园_首页
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
G
Google Developers Blog
WordPress大学
WordPress大学
B
Blog
人人都是产品经理
人人都是产品经理
小众软件
小众软件
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
量子位
Apple Machine Learning Research
Apple Machine Learning Research
N
Netflix TechBlog - Medium
Last Week in AI
Last Week in AI
博客园 - 聂微东
Jina AI
Jina AI

博客园 - 白菜园

低代码 + AI = 对话方式生成UI AppBox拖拽设计增删改查用户界面 换个方式用C#开发微信小程序 开源高性能结构化日志模块NanoLog AppBox快速开发框架(开源)开发流程介绍 用Roslyn玩转代码之一: 解析与执行字符串表达式 不生成DOM的非主流Blazor UI开源啦! 给我一块画布,我可以造一个全新的跨端UI 拖拽方式生成Vue用户界面 终于可以愉快的撸Java异步代码了! 这么优雅的Java ORM没见过吧! Java“微服务”还能这么玩! AppBoxFuture: Web在线报表设计与PDF生成 AppBoxFuture实战: 如何同步开发与生产环境的模型 AppBoxFuture实战: 如何实现一对多表单的增删改查 AppBoxFuture: Sql存储的ORM查询示例 AppBoxFuture: 集成第三方Sql数据库 AppBoxFuture: 服务模型的在线调试与性能监测 AppBoxFuture: Raft快照及日志截断回收
一个浏览器搞定前后端开发的低代码框架正式开放源码啦!
白菜园 · 2020-03-06 · via 博客园 - 白菜园

  本来想尽量做完美一点再开放,但个人能力实在有限,无法专注于实现内置分布式数据库,所以想借助社区的力量来验证与推进。

一、框架设计目标:

简单:能有更多的时间专注于业务领域;

灵活:不能有任何限制,能够灵活扩展;

快速:能够尽可能快的开发应用系统;

二、框架整体结构:

  左图为整体结构,右图为每个应用节点的组件结构:

目前关系数据库支持Postgresql, NoSql支持Cassandra or ScyllaDB

三、技术原理浅析:

模型驱动:

  框架将应用系统所涉及的数据结构、业务逻辑、用户界面等抽象为各类型的模型,通过组合模型形成完整的应用系统。

虚拟代码:

  框架内的服务模型与视图模型的相关代码皆为虚拟代码(类似于伪代码),在保存发布模型时都会经过转换编译为运行时代码,视图模型的代码由IDE的TypeScript执行转换,服务模型的代码由后端的Roslyn转换。

服务容器:

  编译好的服务组件类似于插件统一由AppContainer子进程加载调用,并且支持单独调试与热更新。

四、工程结构说明:

appbox.clr

  服务端C#工程,主要包括:

  • appbox.Core: 基础项目,包含模型定义、模型对应的数据结构、表达式定义、自定义序列化、缓存等;
  • appbox.Server: 服务端基础项目,主要包括通讯协议与存储api;
  • appbox.Design: IDE设计支持项目,主要处理前端IDE的各类命令;
  • appbox.Store: 存储项目,支持内置数据库及第三方数据库;
  • appbox.Host: 服务端主项目,引用上述项目,主要包含WebHost与前端通讯;
  • appbox.AppContainer: 服务端运行时的服务子进程,管理各服务模型的实例,通过共享内存与appbox.Host主进程通讯。

appbox.dev

  前端Web IDE工程,用于设计与发布各类模型。npm run build后复制到服务端wwwroot/dev目录下,通过浏览器访问服务端地址http://ip:port/dev进入。

appbox.app

  前端应用工程,npm run build后复制到服务端wwwroot/app目录下,通过浏览器访问http://ip:port进入开发好的应用界面。

相关编译及详细说明文档将陆续在源码README内说明。

Enjoy coding! Enjoy your life!

  差点忘了GitHub地址:github.com/enjoycode,定期同步至gitee.com/appboxfuture, 别忘了点个星啊!