.NET Core/.NET5/.NET6 开源项目汇总9:客户端跨平台UI框架
.NET Core 实现了跨平台,支持在 Windwos、Linux、macOS上开发与部署,但是也仅限于Web应用程序。对于Windows桌面端应用程序,WinForm 与 WPF 技术是当前最成熟、应用最多的解决方案。因为它们的UI与Windwos操作系统的底层技术紧密关联,所以在Linux、macOS上无法实现相同的UI功能。目前对于跨平台的桌面端UI需求,.NET还没有统一完整的解决方案。期待.NET6中的MAUI能给大家带来惊喜。下面整理了几款桌面端跨平台解决方案。
.NET MAUI是.NET多平台应用程序UI,是一个用于构建跨移动、平板和桌面的本机设备应用程序的框架。
产品特征
- 提供支持多平台的原生UI
- 跨移动和桌面部署到多个设备
- 使用统一单一项目、单一代码库
- 由Xamarin.Forms 演变进化而来
- 作为.NET6的一个重要组件,将于2021年11月与.NET6一起正式发布
开源地址:https://github.com/dotnet/maui
Avalonia 是一个基于 WPF XAML 的跨平台UI框架,并支持多种操作系统:Windows(.NET Framework,.NET Core),Linux(GTK),MacOS,Android和iOS。
产品特征
- 开源。永久开源、免费使用。
- 跨平台。轻松部署到目标平台。移动支持正在公开预览中。
- 支持 Visual Studio 扩展项目模板
- 复用现有技能。利用现有的知识(WPF、XAML)、代码和包来开发、运行项目。
- 技术支持。提供收费技术支持。
官网:http://avaloniaui.net
教程:http://avaloniaui.net/docs/quickstart
GitHub: https://github.com/AvaloniaUI/Avalonia
优秀示例项目
AvalonEdit是SharpDevelop中使用的基于WPF的文本编辑器。此软件包中包含三个版本的AvaloneEdit:.NET 4.0、4.5和.NET Core 3.0。
使用AvalonEdit的项目
- https://github.com/icsharpcode/ILSpy/ ILSpy .NET decompiler
- https://github.com/KirillOsenkov/MSBuildStructuredLog A logger for MSBuild
- https://github.com/aelij/RoslynPad RoslynPad
- https://github.com/huangjia2107/XamlViewer LightWeight Xaml Editor
- 地图 https://github.com/Mapsui/Mapsui、https://github.com/ahopper/Mapsui/tree/initial-avalonia-port(Avalonia)
- 图形组件 https://github.com/oxyplot/oxyplot-avalonia、https://github.com/dotnet-ad/Microcharts
- 控件 https://github.com/Splitwirez/Mechanism-for-Avalonia
- Ribbon https://github.com/amazerol/AvaloniaRibbon、https://github.com/Splitwirez/AvaloniaRibbon
- 主题编辑器 https://github.com/wieslawsoltes/ThemeEditor
- 浮动窗口 https://github.com/wieslawsoltes/Dock
- 样式资源使用 https://habr.com/en/post/471342/
- 布局 https://www.nequalsonelifestyle.com/2019/06/11/avalonia-grid-panel-layout-part1/
- 社区项目 https://github.com/AvaloniaCommunity/awesome-avalonia.git
- 控件例子 https://github.com/AvaloniaUI/ControlCatalogStandalone.git
UNO是一款具有C#和WinUI的像素级多平台应用程序。它也是第一个也是唯一一个针对Windows、WebAssembly、iOS、macOS、Android和Linux的单一代码应用程序的跨平台UI框架。可以理解为终极跨平台解决方案。
产品特征
- 针对所有操作系统和浏览器 UNO是唯一用于创建真正的单一来源、多平台应用程序的开放源代码平台。跨本机移动、web和桌面重用99%的业务逻辑和UI层。
- 像素无处不在 在开发特定于平台的应用程序或定制应用程序的外观和感觉时,保持像素对像素位置的完美控制。
- C#和XAML提高生产率 使用C#和XAML的熟悉性和丰富性,以及热重新加载、热重启、编辑和继续等方面的生产力提升开发效率。
- 强大的IDE支持。Visual Studio、Visual Studio Code、Visual Studio for Mac、Rider都可以开发。
- 技术支持。社区和团队提供免费和有偿的支持。聊天、屏幕分享等方式。
- 代码片段和示例应用程序。在实践中学习。请参阅工程师提供的代码示例。探索Uno平台打开的可能性。
- 支持WebAssembly
- 视屏教程
- 真实客户 以下公司使用Uno平台开发其应用程序
教程:https://gallery.platform.uno
示例:https://platform.uno/code-samples
开源地址:https://github.com/unoplatform/uno
参考博客:https://mp.weixin.qq.com/s/xg_St9OHy3hfkk71NzFiPw

Electron是一个使用 JavaScript、HTML 和 CSS 构建桌面应用程序的框架。通过将Chromium和Node.js嵌入其二进制文件,Electron允许您维护一个JavaScript代码库,并创建可在Windows、macOS和Linux上运行的跨平台应用程序,最主要的是开发者无需本地开发经验。
如果你可以建一个网站,你就可以建一个桌面应用程序。 Electron 是一个使用 JavaScript, HTML 和 CSS 等 Web 技术创建原生程序的框架,它负责比较难搞的部分,你只需把精力放在你的应用的核心上即可。
产品特征
- Web技术 Electron 基于 Chromium 和 Node.js, 让你可以使用 HTML, CSS 和 JavaScript 构建应用。
- 开源 Electron 是一个由 GitHub 及众多贡献者组成的活跃社区共同维护的开源项目。
- 跨平台 Electron 兼容 Mac、Windows 和 Linux,可以构建出三个平台的应用程序。
- 案例产品 数千个跨行业的组织使用 Electron 构建跨平台软件。
简洁、直观、强悍的netcore跨平台UI开发框架。框架理念和WPF类似,但是没有Xaml,直接用CSS和C#代码描述。
官网:http://cpf.cskin.net
入门教程:https://www.cnblogs.com/dskin/p/13490921.html
参考项目:https://mp.weixin.qq.com/s/Psc69OUw6ceGPMlGi3t-eQ
.NET Core/.NET5/.NET6 开源项目汇总9:客户端跨平台UI框架的更多相关文章
- .NET Core/.NET5/.NET6 开源项目汇总12:WPF组件库2
系列目录 [已更新最新开发文章,点击查看详细] WPF(Windows Presentation Foundation)是微软推出的基于Windows 的用户界面框架,属于.NET Frame ...
- .NET Core/.NET5/.NET6 开源项目汇总5:权限管理系统项目
系列目录 [已更新最新开发文章,点击查看详细] 企业管理系统一般包含后台管理UI.组织机构管理.权限管理.日志.数据访问.表单.工作流等常用必备功能.下面收集的几款优秀开源的管理系统,值得大家 ...
- .NET Core/.NET5/.NET6 开源项目汇总6:框架与架构设计(DDD、云原生/微服务/容器/DevOps/CICD等)项目
系列目录 [已更新最新开发文章,点击查看详细] 开源项目是众多组织与个人分享的组件或项目,作者付出的心血我们是无法体会的,所以首先大家要心存感激.尊重.请严格遵守每个项目的开源协议后再使用.尊 ...
- .NET Core/.NET5/.NET6 开源项目汇总10:实用工具
系列目录 [已更新最新开发文章,点击查看详细] 开源项目是众多组织与个人分享的组件或项目,作者付出的心血我们是无法体会的,所以首先大家要心存感激.尊重.请严格遵守每个项目的开源协议后再使用.尊 ...
- .NET Core/.NET5/.NET6 开源项目汇总1:常用必备组件
系列目录 [已更新最新开发文章,点击查看详细] 开源项目是众多组织与个人分享的组件或项目,作者付出的心血我们是无法体会的,所以首先大家要心存感激.尊重.请严格遵守每个项目的开源协议后再使用.尊 ...
- .NET Core/.NET5/.NET6 开源项目汇总2:任务调度组件
系列目录 [已更新最新开发文章,点击查看详细] 开源项目是众多组织与个人分享的组件或项目,作者付出的心血我们是无法体会的,所以首先大家要心存感激.尊重.请严格遵守每个项目的开源协议后再使用.尊 ...
- .NET Core/.NET5/.NET6 开源项目汇总3:工作流组件
系列目录 [已更新最新开发文章,点击查看详细] 开源项目是众多组织与个人分享的组件或项目,作者付出的心血我们是无法体会的,所以首先大家要心存感激.尊重.请严格遵守每个项目的开源协议后再使用.尊 ...
- .NET Core/.NET5/.NET6 开源项目汇总4:CMS、Blog项目
系列目录 [已更新最新开发文章,点击查看详细] 开源项目是众多组织与个人分享的组件或项目,作者付出的心血我们是无法体会的,所以首先大家要心存感激.尊重.请严格遵守每个项目的开源协议后再使用.尊 ...
- .NET Core/.NET5/.NET6 开源项目汇总7:电商项目
系列目录 [已更新最新开发文章,点击查看详细] 谈起.NET/.NET Core的企业级实战案例,电商项目是典型代表.其中高负载.高并发.高可用性等问题是考核.NET技术性能的重要指标.下面整 ...
随机推荐
- Linux单设备多路USB串口的实现方法介绍
某设备需要提供多路USB串口的功能给主机端使用,比如一路用作业务1通信功能,一路用作业务2通信功能,一路用作debug抓log用途,诸如此类.如下图所示. 要实现上述设备功能,可以参考如下步骤. 1) ...
- JSX语法详解
一.基础1.JSX是什么JSX是一种像下面这样的语法: const element = <h1>Hello, world!</h1>;1它是一种JavaScript语法扩展,在 ...
- java基础——数组及其应用
数组 数组时相同类型数据的有序集合 数组描述的时相同类型的若干数据,按照一个定的先后次序排列组合而成 其中,每一个数据成为数组元素,每个数组元素可以通过一个下标来访问他们 数组的声明&创建 首 ...
- 面试阿里P6难在哪?(面试难点)
对于很多没有学历优势的人来说,面试大厂是非常困难的,这对我而言,也是一样,出身于二本,原本以为就三点一线的生活度过一生,直到生活上的变故,才让我有了新的想法和目标,因此我这个二本渣渣也奋斗了起来,竟拿 ...
- xpath元素定位语法
举个栗子 -------------------------------------------------------------------------------------- <?xml ...
- 013.Kubernetes认证授权
一 Kubernetes认证系统介绍 1.1 访问控制 Kubernetes API的每个请求都会经过多阶段的访问控制之后才会被接受,这包括认证.授权以及准入控制(Admission Control) ...
- C语言变量和函数命名规范
C 语言变量和函数命名规范: 关于C语言变量和函数命名规范 据考察,没有一种命名规则可以让所有的程序员赞同,程序设计教科书一般都不指定命名规则.命名规则对软件产品而言并不是"成败悠关&quo ...
- centos7 的Linux下ip命令替换ifconfig命令的用法
linux的ip命令和ifconfig类似,但前者功能更强大,并旨在取代后者.使用ip命令,只需一个命令,你就能很轻松地执行一些网络管理任务.ifconfig是net-tools中已被废弃使用的一个命 ...
- 推荐:C#命名规范12条
编码规范对于程序员而言尤为重要,有以下几个原因: 1.一个项目的生命周期中,80%的花费在于维护; 2.几乎没有任何一个项目,在其整个生命周期中,均由最初的开发人员来维护; 3.命名规范可以改善项目的 ...
- 对标 Spring Boot & Cloud ,轻量框架 Solon 1.4.8 发布
Solon 是一个轻量的Java基础开发框架.强调,克制 + 简洁 + 开放的原则:力求,更小.更快.更自由的体验.支持:RPC.REST API.MVC.Job.Micro service.WebS ...