Avalonia 初学笔记(1):环境配置

news2025/1/17 3:11:45

文章目录

  • 相关链接
  • 前言
  • Avalonia 官方文档
  • Avalonia 环境配置
    • 我的本地环境
    • 下载Visual Studio Avalonia 插件
  • Avalonia 新建项目
    • 平台选择
    • 新建项目
      • 平台选择
      • 设计器选择
      • 扩展选择
      • 最终选择
    • 默认项目运行
  • Avalonia 官方Demo
  • 总结

相关链接

Avalonia学习笔记 CSDN博客专栏

前言

最近想了解一下Avalonia,毕竟是WPF的上位替代。WPF 作为一个2006年开发的应用,已经进入维护阶段了,基本不会新增什么新功能了。而且WPF不能跨平台,而C#能跨平台就这么几个框架:

收费情况跨平台程度优点缺点使用场景
Avalonia开源桌面端支持比较好,移动端较差使用起来和WPF差不多,在WPF原有功能上进行扩展移动端支持较差,没有被微软收编Linux/Windows双端跨平台
MAUI开源仅不支持Avalonia移动端适配较好Bug太多了,开发人员接受度不高自己私下玩玩,不能商用
Unity商用可以跨平台,但是我了解的不多非常成熟的框架,社区资源和解决方案非常丰富,如果要做3D效果的首选Unity写前端有点大材小用,Unity运营问题导致开发人员逃离有3D效果的需求
Godot开源跨平台完全开源,Mono历史包袱小,已使用.net core 开发了新版本社区支持,更新速度没商业的快自己玩玩

Avalonia 官方文档

Avalonia 官方文档

在这里插入图片描述

Avalonia 环境配置

Avalonia UI 官网

在这里插入图片描述

我的本地环境

我这里的本地环境是

  • visual studio 2022
  • .net core 6.0/7.0/8.0
  • windows 10

下载Visual Studio Avalonia 插件

在这里插入图片描述

Visual Studio 2022 Avalonia 扩展

下载速度可能会有点慢

在这里插入图片描述
在这里插入图片描述
如果下载或者实在太慢,可以使用Visual Studio 内部搜索

在这里插入图片描述
安装Avalonia项目模板

打开PowerShell运行下面的指令

dotnet new install Avalonia.Templates

在这里插入图片描述

安装成功!

在这里插入图片描述

Avalonia 新建项目

平台选择

我们这里选择第一个

在这里插入图片描述
作为商业化工控软件,跨平台的优先顺序是

  • Windows
  • Android
  • Linux
  • IOS/MAC OS

苹果的设备放在最后,原因有

  • 是工控行业不用苹果
  • Linux有信创的需求,需要跑在国产Linux上面,比如麒麟。
  • IOS审核比较麻烦,生态封闭

新建项目

在这里插入图片描述

平台选择

在这里插入图片描述
这里我们先选择桌面端,第一个

设计器选择

在这里插入图片描述

Reactive UI Github地址

在这里插入图片描述

在这里插入图片描述

CommunityToolkit
在这里插入图片描述

在这里插入图片描述

我之前用过CommunityToolkit.MVVM,Reactive UI没用过。两个的区别更像补丁和框架之间的区别,CommunityToolkit.MVVM更轻量,Reactive UI 提供了一个自己的解决方案。我们这里是了解Avalonia,所以先用CommunityToolkit.MVVM看看。

mvvm toolkit vs reactiveui

在这里插入图片描述

扩展选择

在这里插入图片描述

最终选择

在这里插入图片描述

默认项目运行

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

启动成功!

在这里插入图片描述

Avalonia 官方Demo

在这里插入图片描述

Avalonia.Samples 简单项目

在这里插入图片描述

这里我就不展开了,可以自己去了解一下。

总结

这里就是简单的跑一下代码,把环境配置好了。但是我看官方更加推荐使用Reactive UI。我后面的选择就是先学Reactive UI还是先学Avalonia。我目前打算先去了解一下Reactive UI。毕竟我还是随大流主义,如果我在选择上面纠结,那么哪个框架星星多我就用哪个。当然我也可以边学Avalonia边学Reactive UI。这个我得先琢磨一下。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1458701.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

DAY55:动态规划(买卖股票的最佳时机3)

Leetcode: 309 最佳买卖股票时机含冷冻期 这道题比上面状态更多,是因为卖出股票后,你无法在第二天买入股票 (即冷冻期为1天)。 状态 状态一:持有股票状态(今天买入股票,或者是之前就买入了股票然后没有操作&#xf…

SQL查询转化为 Elasticsearch 查询

使用SQL 转化为查询 Elasticsearch 支持 sql 语句转化为 elasticsearch 的 查询语句 第一步: 打开在线转换工具的网页,进入工具页面 第二步:在指定的输入框中输入需要转换的 sql 语句。 您学会了这么简单的办法

什么是 Wake-on-LAN?如何使用 Splashtop 远程喊醒电脑

在当今数字互联的世界里,远程访问电脑已不仅仅是一种便利,而是许多人的需要。无论是远程工作、IT 支持,还是管理整个网络中的计算机群,我们都必须掌握正确的工具和技术。 其中一项在远程访问中发挥关键作用的技术是 Wake-on-LAN …

AI:133-基于深度学习的工业质检自动化

🚀点击这里跳转到本专栏,可查阅专栏顶置最新的指南宝典~ 🎉🎊🎉 你的技术旅程将在这里启航! 从基础到实践,深入学习。无论你是初学者还是经验丰富的老手,对于本专栏案例和项目实践都有参考学习意义。 ✨✨✨ 每一个案例都附带有在本地跑过的关键代码,详细讲解供…

大数据信用报告查询方式一般有几种?哪种比较好?

在了解这个问题之前,想必你对大数据信用与人行信用的区别都是比较清楚了,本文呢就着重讲一下大数据信用报告查询方式有几种,哪种比较好,感兴趣的朋友不妨一起去看看。 大数据信用报告常见的三种查询方式: 一、二维码分…

SG-8201CJA(汽车可编程晶体振荡器)

爱普生的SG-8021CJA是一款符合AEC-Q100标准的晶体振荡器,专为要求苛刻的汽车/ADAS应用(如激光雷达和相机ECU)而设计。它采用爱普生的内部低噪声小数NPLL,输出 频率高达170MHz,相位抖动小于1/25,稳定性比之前…

SpringBoot+WebSocket实现即时通讯(二)

前言 紧接着上文《SpringBootWebSocket实现即时通讯(一)》 本博客姊妹篇 SpringBootWebSocket实现即时通讯(一)SpringBootWebSocket实现即时通讯(二)SpringBootWebSocket实现即时通讯(三&…

【教3妹学编程-算法题】相同分数的最大操作数目 II

3妹:2哥,干嘛呢,怎么又在吃泡面 2哥 : 这不是过年下血本,给小侄子买了一个ps5吗, 哎,我自己都舍不得用,不能让人说咱小气不是。 3妹:神马,他才6岁吧, 就这么喜…

【4.1计算机网络】TCP-IP协议簇

目录 1.OSI七层模型2.常见协议及默认端口3.TCP与UDP的区别 1.OSI七层模型 osi七层模型: 1.应用层 2.表示层 3.会话层 4.传输层:TCP为可靠的传输层协议。 5.网络层 6.数据链路层 7.物理层 2.常见协议及默认端口 3.TCP与UDP的区别 例题1. 解析&#xff1…

APISIX 可观测性最佳实践

APISIX 介绍 Apache APISIX 是一个动态、实时、高性能的云原生 API 网关。它构建于 NGINX ngx_lua 的技术基础之上,充分利用了 LuaJIT 所提供的强大性能。 APISIX 主要分为两个部分: APISIX 核心:包括 Lua 插件、多语言插件运行时&#x…

2024年适合小白的副业—steam搬砖项目

对于普通人,找一个常年稳定,有个人全程带的项目难能可贵! 别去想快速路,别去想挂机,作弊、别去想躺赚,否则最后又是竹篮打水一场空!! 普通人也可以靠steam搬砖项目这个翻身&#xf…

Net2FTP网站搭建并结合内网穿透实现远程访问本地个人文件

文章目录 1.前言2. Net2FTP网站搭建2.1. Net2FTP下载和安装2.2. Net2FTP网页测试 3. cpolar内网穿透3.1.Cpolar云端设置3.2.Cpolar本地设置 4.公网访问测试5.结语 1.前言 文件传输可以说是互联网最主要的应用之一,特别是智能设备的大面积使用,无论是个人…

psm的stata实现

1. PSM 简介 在经济学中,我们通常希望评估某项公共政策实施后的效应,为此,我们构建 "处理组" 和 "控制组" 以评估「处理效应 (treatment effect)」。然而,我们的数据通常来自非随机的观察研究中,处…

SpringBoot集成阿里云OSS、华为云OBS、七牛云、又拍云等上传案例【附白嫖方案】【附源码】

1. 项目背景 唉!本文写起来都是泪点。不是刻意写的本文,主要是对日常用到的文件上传做了一个汇总总结,同时希望可以给用到的小伙伴带来一点帮助吧。 上传本地,这个就不水了,基本做技术的都用到过吧; 阿里…

MySQL的备份与恢复案例

新建数据库 数据库备份,数据库为school,素材如下1.创建student和score表CREATE TABLE student ( id INT(10) NOT NULL UNIQUE PRIMARY KEY , name VARCHAR(20) NOT NULL , sex VARCHAR(4) , birth YEAR, department VARCHAR(20) , address…

【ansible】自动化运维ansible之playbook剧本编写与运行

目录 一、ansible剧本playbook的组成 二、palybook的基础应用: 实操1:通过palybooks完成nginx的安装 第一种:通过yum安装nginx 第二种:通过编译安装nginx 实操2:playbook定义、引用变量​​​​​​​ 实操3:通过…

maptalks多边形区域和点位-vue组件

多边形 <!-- 地图组件 --> <template><div :id"id" class"container"></div> </template><script> import _ from "lodash"; import "maptalks/dist/maptalks.css"; import * as maptalks from &…

有趣的 Streamlit

先看一则新闻&#xff1a;「Snowflake」以8亿美元收购「Streamlit」&#xff0c;以帮助客户构建基于数据的应用程序 Streamlit 是什么&#xff1f;去年过年前好好研究学习了一番&#xff0c;的确是个很有意思的面向数据开发者的工具&#xff0c;让不懂前端&#xff0c;只懂一点…

SpringBoot配置文件日志

目录 一、SpringBoot配置文件的作用 二、SpringBoot配置文件的分类 1、application.properties 2、application.yml 3、application.yaml 三、使用配置文件实例--验证码 1、使用Kaptcha插件生成验证码 2、网页需求分析 3、前端页面 4、发送请求 5、服务器作出响应 …

反射reflecttion的入门理解+暴力反射的应用简介

反射怎么理解,&#xff08;个人白话理解,有个类,类中有很多属性、方法、构造器&#xff0c;可以通过一面镜子将类里面的东西像光一样反射出来&#xff0c;被我们看到和使用&#xff0c;reflecttion其实也可以理解为映像&#xff0c;主要为了获取类中私有的东西&#xff0c;通过…