Skip to content
/ dt Public
forked from Daoting/dt

利用 C# + XAML 进行快速业务开发的跨平台框架

Notifications You must be signed in to change notification settings

Ponderfly/dt

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

利用 C# + XAML 进行快速业务开发的跨平台框架

GitHub Stars NuGet Downloads

概述

框架全名“数据的搬运工(Data Transfer)”,简称搬运工,缩写dt。

涉及技术:.NET、UWP/WinUI、C# + Xaml、Uno Platform 、云原生。

搬运工由客户端和服务端两部分组成,是一套用于快速构建业务系统的基础技术实现和规范集,本身与具体业务无关。

  • 客户端部分通过Uno Platform支持在Windows、 浏览器(WebAssembly)、手机上跨平台运行,包括一系列可复用的前端控件和各种基础功能模块;

  • 服务端部分全面采用.NET云原生开发,提供4个通用的微服务,利用这些预定义的内容可直接快速的开发出符合常规要求的业务系统;

  • 同时,两部分都支持独立使用,也可根据规范在不同层面、不同粒度下扩展框架,从而满足特定的业务需求。

客户端

客户端样例已升级到.NET7.0 + WinAppSdk1.2(WinUI3.0) + Uno.WinUI 4.6.x,请在应用商店搜索【搬运工样例】或使用以下链接进行安装:

客户端在界面布局上有个创新,内置两种界面模式:windows模式和phone模式,iOS和Android上是Phone模式;windows和wasm上支持两种模式的自动切换,当应用界面的实际宽度足够时按照windows模式显示,宽度较小时自动切换到Phone模式,两种模式的可视树根节点完全不同。

1-win_1.mp4

这样既能发挥windows上复杂布局时各区域之间的联动性

1-win.mp4

也能保证phone模式时的正确导航

1-win_2.mp4

客户端已完成到 .NET7.0 + WinAppSdk1.2(WinUI3.0) + Uno.WinUI 4.6.x 的迁移。

客户端完整功能请参考《搬运工客户端手册

服务端

全面采用基于.NET Core的云原生应用开发,所有服务既可以使用 Kubernetes 调度,也支持简单部署到IIS。

系统未严格按照当前常见的某种具体的服务架构进行设计,而是根据自身整体架构的特点,借鉴常见架构的思想,比如DDD模式的领域事件、充血模式、数据仓库,CQRS架构的读写分离,六边形架构的微服务API设计等,结合客户端xaml的优势,使用MVVM(Model-View-ViewModel)模式开发客户端控件,完美实现技术与业务解耦、业务逻辑解耦、业务封装复用等关键功能,为业务开发提供一种易懂易用的框架风格。总体框架图:

fm

目前提供4个通用的微服务:

  • 内核模型服务(cm),CM是Core Model的缩写,为平台提供基础的内核模型服务
  • 消息服务(msg),平台内置的基础消息服务,支持多副本部署,所有已注册的客户端在启动时调用服务端的Register方法,该Api采用基于http2协议的ServerStream模式,即:客户端发送一个请求,服务端返回数据流响应,相当于在服务端和客户端建立了长连接,服务端可以实时向客户端推送信息
  • 文件服务(fsm),统一管理应用范围内使用的文件,在k8s中支持多副本部署,支持分卷存储文件,可通过ConfigMap将数据卷Volume挂载到指定目录,该服务只负责文件的上传下载和文件管理功能,不涉及具体的业务问题,在功能和Api上较稳定。
  • 网页发布服务(pub),是静态网页服务,包括html富文本编辑器和动态生成的网页两部分,html编辑器用于编辑网页内容,编辑后的网页内容可以保存在数据库或根据模板生成完整网页。

服务端已升级到 .NET7.0。

服务端完整功能请参考《搬运工服务端手册

开始使用

为了提高搬运工的使用体验,请在VS管理扩展中安装“搬运工”扩展工具,下载慢也可 本地下载,手动安装。 image

详细使用过程请参考《开始搬运

About

利用 C# + XAML 进行快速业务开发的跨平台框架

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C# 97.8%
  • CSS 2.0%
  • HTML 0.2%
  • JavaScript 0.0%
  • TypeScript 0.0%
  • PowerShell 0.0%