Avalonia学习记录(环境配置、项目创建)

一、环境配置

需要.net 8.0, jetbrains rider以及 AvaloniaRider插件

1. .net 8.0下载

在windows linux macos都能使用,如果有物理安装的linux的话推荐用,毕竟更省电。

在linux上安装 .net根据文档:

https://learn.microsoft.com/zh-cn/dotnet/core/install/linux-ubuntu

windows和macOS系统可以按照文档前两章安装。

在使用Windows系统安装时,发现x86的SDK安装程序会自动将SDK安装到"C:\Program Files (x86)“下,而非读取时的默认路径"C:\Program Files”,可以手动将donet文件夹复制过来,也可以修改默认路径或配置环境变量。

2. jetbrains rider下载

在官网https://www.jetbrains.com/zh-cn/rider/下载,或下载管理工具JetBrains Toolbox并查找下载,不同系统下载对应软件即可。

学生可以访问https://www.jetbrains.com/shop/eform/students,登录账号进行学生认证,免费使用。

Linux下可使用以下命令解压缩

tar -xzvf yourfile.tar.gz    //直接解压缩
tar -xzvf yourfile.tar.gz -C /path/to/destination/    //解压到特定目录

Linux下进入JetBrains Rider-version/bin目录,找到rider.sh文件,使用以下命令运行。

 ./rider.sh
  • 如果使用Linux 的 Windows 子系统 (WSL),无法打开图形化界面,可以参考官方文档

https://learn.microsoft.com/zh-cn/windows/wsl/tutorials/gui-apps

3. AvaloniaRider插件下载

在插件中搜索AvaloniaRider,下载后重启IDE。

在这里插入图片描述

4.安装Avalonia.Templates

未安装时,新建项目无法选择Avalonia模板

在这里插入图片描述

在终端运行命令

dotnet new install Avalonia.Templates

安装成功

在这里插入图片描述

现在新建项目,即可在左下角选择Avalonia .NET MVVM App 并新建。

二、新建第一个项目(链接数据库)

1.新建模板

不同系统的创建方式相同,选择左下角的Avalonia .NET MVVM App,点击create新建。

在这里插入图片描述
如下就创建好了我们的第一个Avalonia .NET MVVM项目。

在这里插入图片描述
点击运行成功启动。

在这里插入图片描述

2.添加模型类

在Models中新建Poetry.cs

public class Poetry
{
    public int Id { get; set; }

    public string Name { get; set; } = string.Empty;
}

3.添加Services

在项目中新建Services文件夹,Services下新建IPoetryStorage接口(.net命名风格中接口以I开头)

using System.Threading.Tasks;
using AvaloniaApplication1.Models;

namespace AvaloniaApplication1.Services;

public interface IPoetryStorage {
    Task InitializeAsync();
    Task InsertAsync(Poetry poetry); 
}
using System.Threading.Tasks;
using AvaloniaApplication1.Helpers;
using AvaloniaApplication1.Models;
using SQLite;

namespace AvaloniaApplication1.Services;

public class PoetryStorage : IPoetryStorage
{
    public const string DbName = "poetrydb.sqlite3"; //自定义的数据库文件名
  
    public static readonly string PoetryDbPath =
        PathHelper.GetLocalFilePath(DbName); //这一步在PathHelper创建好后添加
    
    private SQLiteAsyncConnection _connection;

    private SQLiteAsyncConnection Connection =>
        _connection ??= new SQLiteAsyncConnection(PoetryDbPath); //语法糖
    
    public async Task InitializeAsync()
    {
        await Connection.CreateTableAsync<Poetry>();
    }
    
    public async Task InsertAsync(Poetry poetry)
    {
        throw new System.NotImplementedException();
    }
}

public const string 和 public static readonly string 的区别:

const需要的值在编译时就要确定,编译时就是常量

static readonly 运行时是常量就可以

4.安装sqlite-net-pcl

在项目上(不是解决方案)右键,选择Manage NuGet Packages,在搜索框中搜索sqlite-net-pcl(不是sqlite.Net-PCL),点击加号并下载。

在这里插入图片描述

5.确定数据库存储位置

在项目下新建文件夹Helpers, 新建PathHelper.cs

using System;
using System.IO;

namespace AvaloniaApplication1.Helpers;

public static class PathHelper {
    private static string _localFolder = string.Empty; //使用了懒加载

    private static string LocalFolder {
        get
        {
            if (!string.IsNullOrEmpty(_localFolder)) {
                return _localFolder;
            }
            //在系统规定的应用数据存储文件夹下创建一个项目文件夹
            _localFolder =
                Path.Combine(
                    Environment.GetFolderPath(Environment.SpecialFolder
                        .LocalApplicationData), nameof(AvaloniaApplication1));//这里填入项目名
            
            if (!Directory.Exists(_localFolder)) {
                Directory.CreateDirectory(_localFolder);
            }

            return _localFolder;
        }
    }

    public static string GetLocalFilePath(string fileName) {
        return Path.Combine(LocalFolder, fileName);
    }
  //输入文件名,由系统处理文件应该存在哪里,由于不同系统目录符号不同
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值