当前位置: 首页 > news >正文

.net 支持跨平台(桌面)系列技术汇总

1. 首先微软老大哥的.net core 。

.NET Core 是微软开发的一个跨平台、高性能的开源框架,用于构建云和互联网连接的新型应用。 它允许开发者在 Windows、macOS 和 Linux 上使用喜爱的开发工具进行开发,并支持部署到云或本地环境。 .NET Core 是对 .NET Framework 的重新设计,它更加精简和模块化,具有以下优点:

  • 统一的场景生成 Web UI 和 Web API。
  • 为可测试性而构建。
  • Razor Pages 简化了基于页面的编码。
  • Blazor 允许在浏览器中使用 C# 和 JavaScript,共享服务器端和客户端应用逻辑。
  • 支持跨平台开发和运行。
  • 开源和社区驱动。
  • 集成现代客户端框架和开发工作流。
  • 支持使用 gRPC 托管远程过程调用 (RPC)。
  • 基于环境的云就绪配置系统。
  • 内置依赖注入。
  • 轻型高性能模块化 HTTP 请求管道。
  • 能够托管于多种环境,如 Kestrel、IIS、HTTP.sys、Nginx 和 Docker。
  • 并行版本控制。
  • 简化新式 Web 开发的工具

2. 第二个可就是MAUI技术。

.NET MAUI(.NET Multi-Platform App UI)是一个跨平台框架,用于使用 C# 和 XAML 创建本机移动和桌面应用。 它允许开发者从单个共享代码库开发可在 Android、iOS、macOS 和 Windows 上运行的应用。 .NET MAUI 是 Xamarin.Forms 的进化版,它扩展了移动场景到桌面场景,并从头重新生成了 UI 控件,以提高性能和可扩展性。 使用 .NET MAUI,开发者可以使用单个项目创建多平台应用,同时也可以添加特定于平台的源代码和资源。 .NET MAUI 的主要目的之一是使开发者能够在单个代码库中实现尽可能多的应用逻辑和 UI 布局。

3. Photino.net技术跨平台。

Photino.NET 是一个轻量级的开源框架,用于使用 Web UI 技术构建本机跨平台桌面应用程序。 它允许开发者使用 C#、C++、Java 等快速、本地编译的语言,并支持使用 .NET 开发框架。 Photino 使用操作系统内置的基于 Chromium 或 WebKit 的浏览器控件,为 Windows、macOS 和 Linux 提供支持。 与 Electron 相比,Photino 应用更小、更轻量级,不需要捆绑 Chromium 引擎或 NodeJS 运行时。 Photino 的目标是使开发者能够在不同平台上使用 Web UI(HTML、JavaScript、CSS 等)构建原生应用程序,而不需要学习平台特定的 UI 技术。 Photino 还提供了对 .NET 的支持,允许开发者构建具有 .NET 后端和所选 Web 框架的桌面应用程序。

4.  Avalonia 

Avalonia 是一个开源的跨平台 UI 框架,允许开发者使用 .NET 创建跨平台应用程序。以下是对 Avalonia 的详细介绍:

  1. 跨平台支持:Avalonia 支持在多个操作系统上构建应用程序,包括 Windows、macOS、Linux、Android、iOS 和 WebAssembly。这意味着开发者可以共享 UI 代码,并在不同的目标平台上保持统一的外观和感觉。

  2. 开发体验:Avalonia 提供了类似于 WPF 的开发体验,允许开发者创建丰富、高性能的桌面应用程序。它支持从单个代码库创建适用于多个操作系统的应用。

  3. 嵌入式开发:Avalonia 支持 FBDev 和 DRM,可以在运行精简版 Linux 的嵌入式设备上提供高质量的用户体验,适合部署到低功耗设备。

  4. 浏览器部署:Avalonia 允许将应用程序直接部署到任何浏览器,无需更改代码,从而覆盖更广泛的用户群体。

  5. 移动应用开发:Avalonia 支持创建在 iOS 和 Android 上均能提供完美视觉效果和无缝性能的移动应用。

  6. 开发工具支持:Avalonia 与 Visual Studio 和 JetBrains Rider 兼容,提供 XAML IntelliSense 和内置的 XAML 预览器,使得在 Visual Studio 中开发跨平台应用变得简单。

  7. 编程语言:开发者可以使用 C#、F# 或 XAML 来构建 UI。Avalonia 提供了现代的 XAML 风味,也可以完全使用 C# 或 F# 构建 UI。

  8. WPF 兼容性:Avalonia XPF 允许开发者轻松地将 WPF 应用程序带到新平台,几乎不需要更改代码,实现跨平台功能。

  9. 社区和企业支持:Avalonia 拥有一个强大的社区,并且被许多企业所信任和使用。它的流行度正在迅速增长,社区也在不断扩大。

  10. 架构:Avalonia 应用程序的架构类似于其他传统的跨平台应用程序,通常包括一个核心项目,其中包含共享代码,以及特定于平台的项目来使用这些共享代码。

  11. UI 组件和布局:Avalonia 提供了各种 UI 组件、布局系统、定制样式和事件处理功能,允许开发者利用其绘制 UI 的能力,创建响应式和高性能的用户界面。

  12. 性能:与其他可能受限于有限 API 或性能较差的工具包不同,Avalonia 应用程序拥有访问平台能力的优势,并且由于组合式渲染器的存在,具备出色的性能。

Avalonia 是一个成熟的平台,用于构建桌面、嵌入式、移动和 Web 应用程序,提供了一个强大的工具集,使开发者能够创建具有各种功能和样式的跨平台应用程序。

相关文章:

.net 支持跨平台(桌面)系列技术汇总

1. 首先微软老大哥的.net core 。 .NET Core 是微软开发的一个跨平台、高性能的开源框架,用于构建云和互联网连接的新型应用。 它允许开发者在 Windows、macOS 和 Linux 上使用喜爱的开发工具进行开发,并支持部署到云或本地环境。 .NET Core 是对 .NET …...

springboot 静态资源访问

最近在学习springboot,在学习中一个静态资源访问,难道了我三天,在网上找了很多的资料,又是配置,又是重写WebMvcConfigurationSupport,因为以前没有接触,本来很简单的事情走了很多弯路&#xff0…...

【linux学习指南】初识Linux进程信号与使用

文章目录 📝信号快速认识📶⽣活⻆度的信号📶 技术应⽤⻆度的信号🌉 前台进程(键盘)🌉⼀个系统函数 📶信号概念📶查看信号 🌠 信号处理🌉 忽略此信…...

L1G1000 书生大模型全链路开源开放体系笔记

关卡任务 观看本关卡视频后,写一篇关于书生大模型全链路开源开放体系的笔记。 视频链接:【书生浦语大模型全链路开源体系】 : 书生浦语大模型开源开放体系_哔哩哔哩_bilibili 书生大模型全链路开源开放体系笔记 在人工智能领域,大模型的…...

亚信安全与飞书达成深度合作

近日,亚信安全联合飞书举办的“走近先进”系列活动正式走进亚信。活动以“安全护航信息化 共筑数字未来路”为主题,吸引了众多数字化转型前沿企业的近百位领导参会。作为“走近先进”系列的第二场活动,本场活动更加深入挖掘了数字化转型的基础…...

深入讲解Spring Boot和Spring Cloud,外加图书管理系统实战!

很抱歉,我的疏忽,说了这么久还没有给大家详细讲解过Spring Boot和Spring Cloud,那今天给大家详细讲解一下。 大家可以和下面这三篇博客一起看: 1、Spring Boot 和 Spring Cloud 微服务开发实践详解https://blog.csdn.net/speaking_me/artic…...

【三维生成】Edify 3D:可扩展的高质量的3D资产生成(英伟达)

标题:Edify 3D: Scalable High-Quality 3D Asset Generation 项目:https://research.nvidia.com/labs/dir/edify-3d demo:https://build.nvidia.com/Shutterstock/edify-3d 文章目录 摘要一、前言二、多视图扩散模型2.1.消融研究 三、重建模型…...

Java求职招聘网站开发实践

一、项目介绍 本文将介绍如何使用Java技术栈开发一个求职招聘网站。该网站主要实现求职者和招聘方的双向选择功能,包含用户管理、职位发布、简历投递等核心功能。 二、技术选型 后端框架:Spring Boot 2.7.0数据库:MySQL 8.0前端框架&#…...

一文详细了解websocket应用以及连接断开的解决方案

文章目录 websocketvite 热启动探索websocket -心跳websocket 事件监听应用过程中问题总结 websocket Websocket简介 定义和工作原理 Websocket是一种在单个TCP连接上进行全双工通信的协议。与传统的HTTP请求 - 响应模式不同,它允许服务器主动向客户端推送数据。例…...

如何做含有identify抓信号的fpga版本(image或者Bit)

在数字的FPGA debug中除了ila就是identify了,identify是synopsys公司的RTL级的调试工具。要用起来idetify,第一步就是要做出含有identify的信号的FPGA版本,quartus的是image,Ximlinx的是Bit或者Bin文件。具体有以下几步&#xff1…...

AIGC实践-使用Amazon Bedrock的SDXL模型进行文生图

一、Bedrock 简介 Amazon Bedrock 是 Amazon Web Services (AWS) 提供的一种生成式 AI 服务。通过 Bedrock,用户可以方便地使用多种基础模型(Foundation Models),包括 OpenAI 的 GPT、Anthropic 的 Claude 等。这些模型可以用于各…...

【源码】Sharding-JDBC源码分析之SQL中分片键路由ShardingSQLRouter的原理

Sharding-JDBC系列 1、Sharding-JDBC分库分表的基本使用 2、Sharding-JDBC分库分表之SpringBoot分片策略 3、Sharding-JDBC分库分表之SpringBoot主从配置 4、SpringBoot集成Sharding-JDBC-5.3.0分库分表 5、SpringBoot集成Sharding-JDBC-5.3.0实现按月动态建表分表 6、【…...

初学 flutter 环境变量配置

一、jdk(jdk11) 1)配置环境变量 新增:JAVA_HOMEC:\Program Files\Java\jdk-11 //你的jdk目录 在path新增:%JAVA_HOME%\bin2)验证是否配置成功(cmd运行命令) java java -version …...

蓝牙 AVRCP 协议详解

前言 随着无线音频设备的普及,蓝牙已经成为智能设备间通信的主流方式之一。除了传输音频流的 A2DP 协议外,AVRCP(Audio/Video Remote Control Profile,音频/视频远程控制协议)为用户提供了对蓝牙音频设备的控制能力&am…...

在 Ubuntu 18.04 上安装 MySQL 5.7和MySQL 8

1.Ubuntu安装MySQL 5.72.Ubuntu安装MySQL 8 在 Ubuntu 18.04 上安装 MySQL 5.7,可以按照以下步骤操作: 1. 更新系统包列表 运行以下命令以确保系统包列表是最新的: sudo apt update2. 检查默认 MySQL 版本 Ubuntu 18.04 默认提供 MySQL 5.…...

第4章 Spring Boot自动配置

自动配置概述 SpringBoot的两大核心 Spring Boot 框架的两大核心特性可以概括为“启动器”(Starter)和“自动配置”(Auto-configuration)。 启动器(Starter): Spring Boot 提供了一系列的 Star…...

显存:存储,GPU:计算;Pipeline Parallelism(管道并行)

目录 显存:存储,GPU:计算 流水线切分策略:(数据并并,多头并行,单头MLP切片) 存储(显存)和计算(GPU)负载不均衡的问题 1,2,3,4,5指的计算任务(数据切分) 大方块代表GPU计算 黄色代表显存 解决办法:重计算和流水线切分策略 重计算策略: 流水线切分策略:…...

费曼路径积分简单示例

费曼路径积分简单示例 费曼路径积分是量子力学中的一种计算方法,它通过对所有可能路径的贡献进行积分,来计算粒子从一个点到另一个点的概率幅。与经典力学不同,经典力学中粒子沿着使作用量最小的路径运动,而在量子力学中&#xf…...

40分钟学 Go 语言高并发:【实战】并发安全的配置管理器(功能扩展)

【实战】并发安全的配置管理器(功能扩展) 一、扩展思考 分布式配置中心 实现配置的集中管理支持多节点配置同步实现配置的版本一致性 配置加密 敏感配置的加密存储配置的安全传输访问权限控制 配置格式支持 支持YAML、TOML等多种格式配置格式自动…...

麒麟安全增强-kysec

DAC: 自主访问控制是linux下默认的接入控制机制,通过对资源读、写、执行操作,保证系统安全 MAC:安全接入控制机制,由操作系统约束的访问控制,默认情况下,MAC不允许任何访问,用户可以自定义策略规则制定允许什么 ,从而避免很多攻击。 MAC强制访问控制常见的实现方式:…...

OpenLayers 可视化之热力图

注:当前使用的是 ol 5.3.0 版本,天地图使用的key请到天地图官网申请,并替换为自己的key 热力图(Heatmap)又叫热点图,是一种通过特殊高亮显示事物密度分布、变化趋势的数据可视化技术。采用颜色的深浅来显示…...

微信小程序之bind和catch

这两个呢,都是绑定事件用的,具体使用有些小区别。 官方文档: 事件冒泡处理不同 bind:绑定的事件会向上冒泡,即触发当前组件的事件后,还会继续触发父组件的相同事件。例如,有一个子视图绑定了b…...

Opencv中的addweighted函数

一.addweighted函数作用 addweighted()是OpenCV库中用于图像处理的函数,主要功能是将两个输入图像(尺寸和类型相同)按照指定的权重进行加权叠加(图像融合),并添加一个标量值&#x…...

苍穹外卖--缓存菜品

1.问题说明 用户端小程序展示的菜品数据都是通过查询数据库获得,如果用户端访问量比较大,数据库访问压力随之增大 2.实现思路 通过Redis来缓存菜品数据,减少数据库查询操作。 缓存逻辑分析: ①每个分类下的菜品保持一份缓存数据…...

mysql已经安装,但是通过rpm -q 没有找mysql相关的已安装包

文章目录 现象:mysql已经安装,但是通过rpm -q 没有找mysql相关的已安装包遇到 rpm 命令找不到已经安装的 MySQL 包时,可能是因为以下几个原因:1.MySQL 不是通过 RPM 包安装的2.RPM 数据库损坏3.使用了不同的包名或路径4.使用其他包…...

AI书签管理工具开发全记录(十九):嵌入资源处理

1.前言 📝 在上一篇文章中,我们完成了书签的导入导出功能。本篇文章我们研究如何处理嵌入资源,方便后续将资源打包到一个可执行文件中。 2.embed介绍 🎯 Go 1.16 引入了革命性的 embed 包,彻底改变了静态资源管理的…...

【MATLAB代码】基于最大相关熵准则(MCC)的三维鲁棒卡尔曼滤波算法(MCC-KF),附源代码|订阅专栏后可直接查看

文章所述的代码实现了基于最大相关熵准则(MCC)的三维鲁棒卡尔曼滤波算法(MCC-KF),针对传感器观测数据中存在的脉冲型异常噪声问题,通过非线性加权机制提升滤波器的抗干扰能力。代码通过对比传统KF与MCC-KF在含异常值场景下的表现,验证了后者在状态估计鲁棒性方面的显著优…...

计算机基础知识解析:从应用到架构的全面拆解

目录 前言 1、 计算机的应用领域:无处不在的数字助手 2、 计算机的进化史:从算盘到量子计算 3、计算机的分类:不止 “台式机和笔记本” 4、计算机的组件:硬件与软件的协同 4.1 硬件:五大核心部件 4.2 软件&#…...

解决:Android studio 编译后报错\app\src\main\cpp\CMakeLists.txt‘ to exist

现象: android studio报错: [CXX1409] D:\GitLab\xxxxx\app.cxx\Debug\3f3w4y1i\arm64-v8a\android_gradle_build.json : expected buildFiles file ‘D:\GitLab\xxxxx\app\src\main\cpp\CMakeLists.txt’ to exist 解决: 不要动CMakeLists.…...

适应性Java用于现代 API:REST、GraphQL 和事件驱动

在快速发展的软件开发领域,REST、GraphQL 和事件驱动架构等新的 API 标准对于构建可扩展、高效的系统至关重要。Java 在现代 API 方面以其在企业应用中的稳定性而闻名,不断适应这些现代范式的需求。随着不断发展的生态系统,Java 在现代 API 方…...