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

告别Visual Studio Code?在麒麟系统里用Rider+Avalonia搭建.NET 6桌面开发环境

告别Visual Studio Code?在麒麟系统里用Rider+Avalonia搭建.NET 6桌面开发环境

在国产操作系统逐渐崛起的今天,麒麟系统作为国内主流的Linux发行版之一,正在吸引越来越多的开发者关注。对于.NET开发者而言,如何在麒麟系统上搭建高效、顺手的开发环境,成为一个值得探讨的话题。本文将分享我在麒麟系统上使用JetBrains Rider和Avalonia进行.NET 6桌面应用开发的完整经验,特别适合那些对开发工具选型有困惑、追求更高开发效率的C#程序员。

1. 为什么选择Rider而非VSCode

在Linux环境下进行.NET开发,Visual Studio Code(VSCode)往往是大多数人的第一选择。它轻量、免费且拥有丰富的扩展生态。然而,在实际开发桌面应用时,特别是使用Avalonia这样的UI框架时,VSCode的局限性开始显现:

  • 项目模板支持不足:VSCode需要手动配置各种项目文件,而Rider提供开箱即用的Avalonia项目模板
  • UI设计体验差距:VSCode缺乏可视化设计器,而Rider内置了Avalonia预览器
  • 调试功能差异:Rider提供更强大的调试工具链,包括热重载、高级断点等功能
  • 代码智能提示:Rider的C#支持基于ReSharper引擎,比VSCode的Omnisharp更智能

提示:如果你主要开发控制台应用或Web API,VSCode仍然是不错的选择。但对于桌面UI开发,专业IDE的优势更为明显。

2. 麒麟系统开发环境准备

麒麟系统基于Ubuntu,因此大多数Ubuntu的软件安装方法都适用。以下是环境配置的关键步骤:

2.1 安装.NET 6 SDK

首先确认你的麒麟系统版本,然后执行以下命令添加微软包仓库:

wget https://packages.microsoft.com/config/ubuntu/20.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb sudo dpkg -i packages-microsoft-prod.deb rm packages-microsoft-prod.deb

安装.NET 6 SDK:

sudo apt-get update && \ sudo apt-get install -y dotnet-sdk-6.0

验证安装:

dotnet --version

2.2 安装Rider

在麒麟系统中安装Rider有以下几种方式:

  1. 通过应用商店安装:部分麒麟版本的应用商店已收录Rider
  2. 手动下载安装
    • 从JetBrains官网下载Linux版Rider
    • 解压后运行bin目录下的rider.sh
  3. 使用Toolbox App:JetBrains提供的统一管理工具

安装完成后,建议配置以下优化:

  • 调整JVM内存参数(Help → Edit Custom VM Options)
  • 安装中文语言包(Plugins中搜索Chinese)
  • 配置代码风格(Settings → Editor → Code Style)

3. Avalonia开发环境配置

Avalonia是一个跨平台的.NET UI框架,支持Windows、Linux和macOS。以下是完整的配置流程:

3.1 安装Avalonia模板

在终端执行以下命令安装项目模板:

dotnet new --install Avalonia.Templates

安装完成后,可以查看可用的模板列表:

dotnet new avalonia --list

3.2 Rider中配置Avalonia插件

  1. 打开Rider,进入Settings → Plugins
  2. 搜索"Avalonia"并安装官方插件
  3. 重启Rider使插件生效

插件提供的主要功能包括:

  • Avalonia XAML智能提示
  • 实时预览器
  • 项目模板支持
  • 特定于Avalonia的代码补全

4. 创建并运行Avalonia MVVM项目

4.1 创建新项目

在Rider中有两种创建Avalonia项目的方式:

方法一:通过Rider界面创建

  1. File → New → Solution
  2. 选择"Avalonia MVVM Application"
  3. 设置项目名称和位置
  4. 点击创建

方法二:通过命令行创建

dotnet new avalonia.mvvm -n MyAvaloniaApp

4.2 项目结构解析

典型的Avalonia MVVM项目包含以下关键部分:

目录/文件说明
Views/存放XAML视图文件
ViewModels/存放ViewModel类
Assets/静态资源(图片、字体等)
App.axaml应用程序入口点
MainWindow.axaml主窗口定义

4.3 解决字体问题

在Linux环境下运行Avalonia应用时,可能会遇到字体缺失的问题。解决方案:

  1. 将字体文件(如msyh.ttf)放入Assets目录
  2. 修改Program.cs中的字体配置:
public static AppBuilder BuildAvaloniaApp() => AppBuilder.Configure<App>() .UsePlatformDetect() .WithInterFont() .LogToTrace() .UseReactiveUI() .With(new FontManagerOptions { DefaultFamilyName = "avares://MyAvaloniaApp/Assets/msyh.ttf#Microsoft YaHei" });

5. 开发效率提升技巧

5.1 利用Rider的Avalonia预览器

Rider的Avalonia插件提供了实时预览功能:

  • 打开XAML文件时自动显示预览
  • 支持数据绑定预览
  • 可切换浅色/深色主题查看效果

5.2 热重载配置

在开发过程中,启用热重载可以大幅提升效率:

  1. 确保项目文件中有:
<PropertyGroup> <AvaloniaUseCompiledBindingsByDefault>true</AvaloniaUseCompiledBindingsByDefault> </PropertyGroup>
  1. 运行应用时选择"Debug"模式
  2. 修改代码后保存,Rider会自动应用更改

5.3 常用快捷键

以下是在Rider中开发Avalonia应用时的高效快捷键:

操作快捷键
生成代码Alt+Insert
重命名Shift+F6
查找用法Alt+F7
快速修复Alt+Enter
导航到声明Ctrl+B

6. 调试与发布

6.1 调试技巧

Rider提供了强大的调试支持:

  • 条件断点
  • 表达式求值
  • 对象标记
  • 异步调试

对于Avalonia特有的调试场景:

  • 检查可视化树
  • 跟踪绑定错误
  • 监控依赖属性变化

6.2 发布应用

发布Avalonia应用到麒麟系统的步骤:

  1. 添加运行时标识符:
<PropertyGroup> <RuntimeIdentifiers>linux-x64</RuntimeIdentifiers> </PropertyGroup>
  1. 发布命令:
dotnet publish -c Release -r linux-x64 --self-contained true
  1. 打包为deb:
sudo apt install dpkg mkdir -p myapp/DEBIAN cp -r bin/Release/net6.0/linux-x64/publish/* myapp/usr/local/bin/myapp

创建control文件:

Package: myapp Version: 1.0 Architecture: amd64 Maintainer: Your Name <your.email@example.com> Description: My Avalonia Application

最后打包:

dpkg-deb --build myapp

在实际项目中,我发现Rider的数据库工具、版本控制集成和终端模拟器等功能,使得整个开发流程更加流畅。特别是对于复杂的MVVM项目,Rider的导航和重构功能可以节省大量时间。

http://www.jsqmd.com/news/919527/

相关文章:

  • 深圳设备搬迁收费标准 专业高空吊装公司推荐 - 从来都是英雄出少年
  • 2026年耐磨超音速喷涂碳化钨厂家TOP5排行及选型指南:热喷涂加工/硬质合金喷涂/等离子喷涂/轴位喷涂/连杆销喷涂碳化钨/选择指南 - 优质品牌商家
  • 排烟气道系统集成有哪些推荐? - 工业品牌热点
  • 从手写代码到内存“无中生有”:硬核拆解 Java 静态代理与动态代理的架构演进
  • 断桥铝耐火窗 工程批发 品质达标
  • AI Agent的持续学习与适应:如何在运行时进化?
  • 0201火箭篇:化学火箭全域收敛实证:数十年效率停滞的本源瓶颈判定
  • 2026苏州防水补漏漏水维修哪家好?本地各区正规靠谱品牌深度测评 - 吉修匠
  • 广州GEO服务商前5家2026年:针对选型难点与避坑指南提供的专业解答汇总 - GEO优化
  • ssm219一中体育馆管理系统的设计与实现+vue(文档+源码)_kaic
  • 深圳高空吊装公司哪家好 起重搬迁收费标准 2026 - 从来都是英雄出少年
  • 2026年积家手表回收靠谱选择:沈阳理查德米勒回收、沈阳百年灵回收、沈阳百达翡丽回收、沈阳积家回收、沈阳箱包回收选择指南 - 优质品牌商家
  • AI如何重塑社会经济:从算法优化到协同主义的技术逻辑
  • 第19章 集群高可用最终验收清单
  • PHPStudy Apache配置进阶:手把手教你为mod_fcgid模块添加自定义PHP文件后缀(支持.php5/.phtml)
  • 全球2026年GEO服务商前5家:手把手教你如何快速提升品牌在AI搜索的权重 - GEO优化
  • 深圳设备搬运公司优选 精密仪器设备搬迁多少钱 2026报价及避坑指南 - 从来都是英雄出少年
  • 2026 论文降AI率平台终极测评:真实体验不踩雷,科研党救急指南 - 降AI小能手
  • Agent 安全红队:从越权、注入到数据外泄的系统性测试
  • 2026无锡哑光砖选购评测:无锡素色瓷砖、无锡纯色砖、无锡美式风瓷砖、无锡老钱风瓷砖、无锡莱姆石、无锡通体大理石瓷砖选择指南 - 优质品牌商家
  • 2026扬州意式风全屋定制技术要点与靠谱厂家解析:扬州精装改造全屋定制、扬州美式风全屋定制、扬州芦花全屋定制工厂选择指南 - 优质品牌商家
  • 0108芯片篇:硅基终局与文明换道实证:后摩尔时代的底层逻辑——从“实体几何”到“场域本源”
  • 3DS游戏存档管理终极指南:如何用JKSM保护你的珍贵游戏进度
  • QMCDecode:打破音频格式壁垒,重获音乐自由的智能解码器
  • 2026年国内GEO服务商TOP5:深度对比各家技术实力与服务口碑的权威评测 - GEO优化
  • 为高价值交易场景设计零信任 Agent Harness
  • JM多阀控制器核心技术解析与行业选型参考指南:成都污水处理设备厂家/成都污水处理设备哪家好/成都隔膜阀厂家/成都高效水处理器厂家/选择指南 - 优质品牌商家
  • 2026年管体包封板靠谱排名,推荐几家优质厂家? - 工业品牌热点
  • 产品周围的几面墙
  • 别只看R²!用Python的statsmodels库做回归分析,F检验和t检验到底在验什么?