.NET Core 实现了跨平台,支持在 Windwos、Linux、macOS上开发与部署,但是也仅限于Web应用程序。对于Windows桌面端应用程序,WinForm 与 WPF 技术是当前最成熟、应用最多的解决方案。因为它们的UI与Windwos操作系统的底层技术紧密关联,所以在Linux、macOS上无法实现相同的UI功能。目前对于跨平台的桌面端UI需求,.NET还没有统一完整的解决方案。期待.NET6中的MAUI能给大家带来惊喜。下面整理了几款桌面端跨平台解决方案。

1、.NET Multi-platform App UI (MAUI)

.NET MAUI是.NET多平台应用程序UI,是一个用于构建跨移动、平板和桌面的本机设备应用程序的框架。

产品特征

  • 提供支持多平台的原生UI
  • 跨移动和桌面部署到多个设备
  • 使用统一单一项目、单一代码库
  • 由Xamarin.Forms 演变进化而来
  • 作为.NET6的一个重要组件,将于2021年11月与.NET6一起正式发布

开源地址:https://github.com/dotnet/maui

2、Avalonia

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的项目

3、UNO【终极跨平台解决方案】

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://platform.uno

教程:https://gallery.platform.uno

示例:https://platform.uno/code-samples

开源地址:https://github.com/unoplatform/uno

参考博客:https://mp.weixin.qq.com/s/xg_St9OHy3hfkk71NzFiPw

4、Electron

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 构建跨平台软件。

官网:https://www.electronjs.org

教程:https://www.electronjs.org/docs

开源地址:https://github.com/electron

5、CPF

简洁、直观、强悍的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框架的更多相关文章

  1. .NET Core/.NET5/.NET6 开源项目汇总12:WPF组件库2

    系列目录     [已更新最新开发文章,点击查看详细] WPF(Windows Presentation Foundation)是微软推出的基于Windows 的用户界面框架,属于.NET Frame ...

  2. .NET Core/.NET5/.NET6 开源项目汇总5:权限管理系统项目

    系列目录     [已更新最新开发文章,点击查看详细] 企业管理系统一般包含后台管理UI.组织机构管理.权限管理.日志.数据访问.表单.工作流等常用必备功能.下面收集的几款优秀开源的管理系统,值得大家 ...

  3. .NET Core/.NET5/.NET6 开源项目汇总6:框架与架构设计(DDD、云原生/微服务/容器/DevOps/CICD等)项目

    系列目录     [已更新最新开发文章,点击查看详细] 开源项目是众多组织与个人分享的组件或项目,作者付出的心血我们是无法体会的,所以首先大家要心存感激.尊重.请严格遵守每个项目的开源协议后再使用.尊 ...

  4. .NET Core/.NET5/.NET6 开源项目汇总10:实用工具

    系列目录     [已更新最新开发文章,点击查看详细] 开源项目是众多组织与个人分享的组件或项目,作者付出的心血我们是无法体会的,所以首先大家要心存感激.尊重.请严格遵守每个项目的开源协议后再使用.尊 ...

  5. .NET Core/.NET5/.NET6 开源项目汇总1:常用必备组件

    系列目录     [已更新最新开发文章,点击查看详细] 开源项目是众多组织与个人分享的组件或项目,作者付出的心血我们是无法体会的,所以首先大家要心存感激.尊重.请严格遵守每个项目的开源协议后再使用.尊 ...

  6. .NET Core/.NET5/.NET6 开源项目汇总2:任务调度组件

    系列目录     [已更新最新开发文章,点击查看详细] 开源项目是众多组织与个人分享的组件或项目,作者付出的心血我们是无法体会的,所以首先大家要心存感激.尊重.请严格遵守每个项目的开源协议后再使用.尊 ...

  7. .NET Core/.NET5/.NET6 开源项目汇总3:工作流组件

    系列目录     [已更新最新开发文章,点击查看详细] 开源项目是众多组织与个人分享的组件或项目,作者付出的心血我们是无法体会的,所以首先大家要心存感激.尊重.请严格遵守每个项目的开源协议后再使用.尊 ...

  8. .NET Core/.NET5/.NET6 开源项目汇总4:CMS、Blog项目

    系列目录     [已更新最新开发文章,点击查看详细] 开源项目是众多组织与个人分享的组件或项目,作者付出的心血我们是无法体会的,所以首先大家要心存感激.尊重.请严格遵守每个项目的开源协议后再使用.尊 ...

  9. .NET Core/.NET5/.NET6 开源项目汇总7:电商项目

    系列目录     [已更新最新开发文章,点击查看详细] 谈起.NET/.NET Core的企业级实战案例,电商项目是典型代表.其中高负载.高并发.高可用性等问题是考核.NET技术性能的重要指标.下面整 ...

随机推荐

  1. 在微信框架模块中,基于Vue&Element前端的事件和内容的管理

    在微信后台管理中,我们需要定义好菜单对应的事件管理,因为微信通过菜单触发相关的事件,因此菜单事件的响应关系,我们如果处理好,就能构建出我们的微信应用入口了.通过入口,我们可以响应用户菜单的事件,如响应 ...

  2. JAVA的基本介绍和JDK的安装

    JAVA帝国 JAVA特性和优势 简单 面向对象 可复制性 高性能 分布式 动态性 多线性 安全性 健壮性 JAVA三大版本 javaSE:标准版(桌面程序.控制台开发) javaME(嵌入式开发) ...

  3. [bug] Junit initializationError

    原因 导包错误 解决 先删除 import org.junit.Test; 再导入正确的包 参考 https://blog.csdn.net/javae100/article/details/7978 ...

  4. CentOS7中下载RPM及其所有的依赖包

    CentOS7中下载RPM及其所有的依赖包 转载beeworkshop 最后发布于2019-09-28 07:43:40 阅读数 1096  收藏 展开 利用 Downloadonly 插件下载 RP ...

  5. Netperf测试技巧

    Netperf测试技巧   Netperf测试技巧 1.概况 Netperf是一种网络性能的测量工具,主要针对基于TCP或UDP的传输.Netperf根据应用的不同,可以进行不同模式的网络性能测试,即 ...

  6. Centos7如何安装开源办公软件Libreoffice

    在Centos7安装了WPS,但是用了没两月就出问题,无法正常使用.(准确来说,安装的WPS一直都有各种问题存在,但是没有影响到主要功能也就将就着用,后来是直接输入不了文字) 既然是开源系统,自然而然 ...

  7. xpath定位中starts-with、contains、text()的用法

    starts-with 顾名思义,匹配一个属性开始位置的关键字 contains 匹配一个属性值中包含的字符串 text() 匹配的是显示文本信息,此处也可以用来做定位用 eg //input[sta ...

  8. Centos7环境初始化

    最近在做公司的一个环境搭建的任务的时候,要用到三台Centos7服务器,在上面要预装java1.8,docker,zookeeper并且要在docker中跑一个mysql,还要部署其他的软件.由于不是 ...

  9. Python数模笔记-StatsModels 统计回归(4)可视化

    1.如何认识可视化? 图形总是比数据更加醒目.直观.解决统计回归问题,无论在分析问题的过程中,还是在结果的呈现和发表时,都需要可视化工具的帮助和支持. 需要指出的是,虽然不同绘图工具包的功能.效果会有 ...

  10. 某SPI设备驱动引起的开关机压力测试死机问题一例

    环境 硬件平台:某ARM SoC 软件平台:Linux 问题现象:产品做开关机压力测试,发生死机. 分析 用crash工具解析两次死机dump信息,得到死机前的log如下.两次死机的backtrace ...