【C#生态园】打造现代化跨平台应用:深度解析.NET桌面应用工具

news2024/12/22 14:21:22

选择最适合你的.NET UI框架:全面解析六种热门选择

前言

在现代软件开发中,选择合适的桌面应用框架和UI库对于开发人员来说至关重要。本文将介绍几种流行的.NET桌面应用框架和UI库,包括Eto.Forms、Avalonia、ReactiveUI、MahApps.Metro、MaterialDesignInXAML和Uno Platform。通过对每种工具的核心功能、使用场景、安装与配置以及API概览进行全面介绍,读者将能够更好地了解其特性和适用情况,从而为自己的项目选择合适的工具提供参考。

欢迎订阅专栏:C#生态园

文章目录

  • 选择最适合你的.NET UI框架:全面解析六种热门选择
    • 前言
    • 1. Eto.Forms:一个跨平台的桌面应用框架
      • 1.1 简介
        • 1.1.1 核心功能
        • 1.1.2 使用场景
      • 1.2 安装与配置
        • 1.2.1 安装指南
        • 1.2.2 基本配置
      • 1.3 API 概览
        • 1.3.1 控件创建
        • 1.3.2 事件处理
    • 2. Avalonia:一个跨平台的.NET UI框架
      • 2.1 简介
        • 2.1.1 核心功能
        • 2.1.2 使用场景
      • 2.2 安装与配置
        • 2.2.1 安装方法
        • 2.2.2 基本设置
      • 2.3 API 概览
        • 2.3.1 XAML布局
        • 2.3.2 数据绑定
    • 3. ReactiveUI:一个响应式编程库
      • 3.1 简介
        • 3.1.1 核心功能
        • 3.1.2 使用场景
      • 3.2 安装与配置
        • 3.2.1 安装指南
        • 3.2.2 基本设置
      • 3.3 API 概览
        • 3.3.1 响应式属性
        • 3.3.2 命令绑定
    • 4. MahApps.Metro:一个现代化风格的WPF UI库
      • 4.1 简介
        • 4.1.1 核心功能
        • 4.1.2 使用场景
      • 4.2 安装与配置
        • 4.2.1 安装指导
        • 4.2.2 基本配置
      • 4.3 API 概览
        • 4.3.1 样式定义
        • 4.3.2 控件模板
    • 5. MaterialDesignInXAML:一个Material Design风格的XAML库
      • 5.1 简介
        • 5.1.1 核心功能
        • 5.1.2 使用场景
      • 5.2 安装与配置
        • 5.2.1 安装指南
        • 5.2.2 基本设置
      • 5.3 API 概览
        • 5.3.1 主题设置
        • 5.3.2 控件使用
    • 6. Uno Platform:一个支持跨平台的XAML和C#解决方案
      • 6.1 简介
        • 6.1.1 核心功能
        • 6.1.2 使用场景
      • 6.2 安装与配置
        • 6.2.1 安装指南
        • 6.2.2 基本设置
      • 6.3 API 概览
        • 6.3.1 XAML布局
        • 6.3.2 数据绑定
    • 总结

1. Eto.Forms:一个跨平台的桌面应用框架

Eto.Forms 是一个开源的 .NET 跨平台桌面应用程序框架,可以用于创建跨平台的用户界面。它能够在不同的操作系统上使用本地的用户界面组件,同时提供了简洁、易懂的 API,使得开发者可以轻松地编写可跨平台运行的桌面应用程序。

1.1 简介

1.1.1 核心功能

Eto.Forms 提供了一套统一的 API,用于创建并管理跨平台的用户界面,包括窗体、按钮、文本框、下拉框等各种常见控件。它还支持事件处理、布局管理等功能,让开发者可以专注于应用程序的业务逻辑,而不必过多关注不同平台下的界面实现细节。

1.1.2 使用场景

Eto.Forms 适用于需要同时在 Windows、Mac 和 Linux 等多个操作系统上运行的桌面应用程序。无论是企业应用、工具软件还是个人项目,都可以使用 Eto.Forms 来构建跨平台的用户界面。

1.2 安装与配置

1.2.1 安装指南

通过 NuGet 可以很方便地安装 Eto.Forms。在 Visual Studio 中,打开 NuGet 包管理器控制台,执行以下命令即可安装:

Install-Package Eto.Forms

更多安装方式和更新日志可以参考Eto.Forms 官方网站。

1.2.2 基本配置

在开始使用 Eto.Forms 之前,需要确保已经正确配置了 .NET 开发环境,并且理解了不同平台上的 UI 差异。另外,还需要引入 Eto.Forms 名称空间:

using Eto.Forms;

1.3 API 概览

1.3.1 控件创建

以下是一个简单的示例,演示了如何创建一个窗体并添加一个按钮控件:

using Eto.Forms;

public class MyForm : Form
{
    public MyForm()
    {
        Title = "Hello, Eto.Forms!";
        
        var button = new Button { Text = "Click me!" };
        button.Click += (sender, e) => MessageBox.Show("Button Clicked!");
        
        Content = button;
    }
}

在这个示例中,我们创建了一个名为 MyForm 的窗体,并在窗体中添加了一个按钮控件。当按钮被点击时,会弹出一个消息框显示 “Button Clicked!”。

1.3.2 事件处理

Eto.Forms 支持事件处理机制,可以方便地响应用户交互。例如,为按钮的点击事件添加处理方法:

button.Click += (sender, e) => MessageBox.Show("Button Clicked!");

点击按钮时,会弹出一个消息框显示 “Button Clicked!”。

更详细的 API 说明和示例可以参考Eto.Forms 文档。

2. Avalonia:一个跨平台的.NET UI框架

2.1 简介

Avalonia是一个跨平台的开源.NET UI框架,可用于构建现代桌面应用程序。它的设计灵感来自于WPF和Silverlight,旨在提供高性能、可扩展、可定制的用户界面。Avalonia支持XAML布局和数据绑定,使开发者能够快速构建功能丰富、美观的跨平台桌面应用。

2.1.1 核心功能
  • 跨平台支持:Avalonia可以在Windows、Linux和macOS上运行,为开发者提供了更大的目标受众。
  • XAML布局:借助XAML语言,开发者可以轻松创建复杂的用户界面布局。
  • 数据绑定:Avalonia支持强大的数据绑定机制,使UI与数据模型之间的交互变得更加便捷。
2.1.2 使用场景

Avalonia适用于需要构建跨平台桌面应用的开发者,尤其是那些熟悉或已经使用过XAML和.NET技术栈的开发团队。

2.2 安装与配置

2.2.1 安装方法

开发者可以通过NuGet包管理器将Avalonia集成到他们的.NET项目中。具体的安装步骤可以参考Avalonia官方文档。

2.2.2 基本设置

在项目中引用Avalonia库后,通常需要创建一个 AppBuilder 对象并调用 UsePlatformDetect() 方法来启用Avalonia的跨平台支持。以下是一个基本的配置示例:

using Avalonia;
using Avalonia.Controls.ApplicationLifetimes;

class Program
{
    static void Main(string[] args)
    {
        BuildAvaloniaApp().StartWithClassicDesktopLifetime(args);
    }

    public static AppBuilder BuildAvaloniaApp()
    {
        return AppBuilder.Configure<App>()
            .UsePlatformDetect()
            .LogToTrace();
    }
}

2.3 API 概览

2.3.1 XAML布局

Avalonia的XAML布局功能类似于WPF,开发者可以使用XAML定义复杂的UI界面。以下是一个简单的XAML布局示例,其中包含一个按钮和一个文本框:

<Window xmlns="https://github.com/avaloniaui"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
    <StackPanel>
        <Button Content="Click Me" Click="ButtonClick"/>
        <TextBox Text="{Binding Path=Name, Mode=TwoWay}"/>
    </StackPanel>
</Window>
2.3.2 数据绑定

Avalonia支持多种数据绑定方式,如单向绑定、双向绑定等。下面是一个简单的数据绑定示例,其中文本框的内容与ViewModel中的属性进行双向绑定:

public class MainViewModel : ViewModelBase
{
    private string _name;
    
    public string Name
    {
        get => _name;
        set => this.RaiseAndSetIfChanged(ref _name, value);
    }
}

// 在窗口代码中设置DataContext
this.DataContext = new MainViewModel();

更多关于Avalonia的API和使用方法,请参考Avalonia官方文档。

3. ReactiveUI:一个响应式编程库

ReactiveUI 是一个基于响应式编程原理的桌面应用框架,它提供了一种优雅的方��来处理用户界面和状态变化。通过结合响应式编程和 MVVM 模式,ReactiveUI 可以使得开发人员更容易地构建具有高度交互性和可维护性的桌面应用程序。

3.1 简介

3.1.1 核心功能

ReactiveUI 的核心功能包括:

  • 提供了一组响应式属性和命令绑定,简化了用户界面元素与数据模型之间的交互。
  • 支持异步编程模式,使得处理任务和事件变得更加便捷和灵活。
  • 提供了强大的路由机制,能够很好地处理导航和页面切换。
3.1.2 使用场景

ReactiveUI 适用于需要构建高度交互性、实时更新的桌面应用程序,尤其是需要处理复杂用户界面和数据流的场景。

3.2 安装与配置

3.2.1 安装指南

你可以通过 NuGet 来安装 ReactiveUI 包,以下为在 Visual Studio 中如何安装:

PM> Install-Package ReactiveUI

更多关于安装指南的信息可以参考 ReactiveUI 官方文档

3.2.2 基本设置

在使用 ReactiveUI 之前,需要进行一些基本设置,比如在应用程序启动时初始化 ReactiveUI:

public partial class App : Application
{
    public App()
    {
        this.InitializeReactiveUI();
    }
}

更多关于基本设置的内容可以参考 ReactiveUI 官方文档

3.3 API 概览

3.3.1 响应式属性

ReactiveUI 提供了一组便捷的 API 来创建和管理响应式属性。下面是一个简单的例子:

private string _name;
public string Name
{
    get => this._name;
    set => this.RaiseAndSetIfChanged(ref this._name, value);
}

以上代码演示了如何定义一个响应式属性 Name,并且使用 this.RaiseAndSetIfChanged 方法来通知属性值的变化。

更多关于响应式属性的API可以参考 ReactiveUI 属性绑定

3.3.2 命令绑定

ReactiveUI 也提供了便捷的 API 来实现命令绑定,以下是一个简单的例子:

public ReactiveCommand<Unit, Unit> GreetUser { get; }

// 在构造函数中初始化命令
this.GreetUser = ReactiveCommand.CreateFromTask(async () =>
{
    await this._dialogService.ShowMessage("Hello, " + this.Name);
});

以上代码演示了如何定义一个命令 GreetUser 并通过 ReactiveCommand.CreateFromTask 来指定命令执行的异步操作。

更多关于命令绑定的 API 可以参考 ReactiveUI 命令绑定

通过上述示例,我们对 ReactiveUI 这个响应式编程库有了初步的了解。希望这篇文章对你有所帮助!

4. MahApps.Metro:一个现代化风格的WPF UI库

MahApps.Metro 是一个流行的开源桌面应用程序框架,它为 WPF 应用程序提供了现代化的用户界面设计和丰富的控件样式。通过 MahApps.Metro,开发人员可以轻松地为他们的应用程序添加漂亮的外观和新颖的交互功能。

4.1 简介

4.1.1 核心功能

MahApps.Metro 提供了丰富的现代化 UI 控件和样式,包括各种按钮、输入框、消息框、菜单等,同时还支持主题定制和国际化。此外,MahApps.Metro 还提供了一些实用的扩展功能,如窗口拖动、命令绑定等,以简化开发过程。

4.1.2 使用场景

MahApps.Metro 可以被广泛应用于需要现代化界面设计的 WPF 桌面应用程序中,尤其适合于企业内部管理系统、工具类软件等。

4.2 安装与配置

4.2.1 安装指导

首先,在 Visual Studio 中创建一个 WPF 项目。然后,在 NuGet 包管理器中搜索并安装 MahApps.Metro 包。

Install-Package MahApps.Metro
4.2.2 基本配置

在 App.xaml 文件中添加以下代码,引入 MahApps.Metro 主题:

<Application.Resources>
    <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Controls.xaml" />
            <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Fonts.xaml" />
            <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Colors.xaml" />
        </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>
</Application.Resources>

4.3 API 概览

4.3.1 样式定义

MahApps.Metro 提供了一系列精美的控件样式定义,例如按钮、文本框、下拉列表等。开发者可以通过简单的 XAML 代码或者 C# 代码来使用这些样式。

<Button Style="{StaticResource MetroButton}" Content="Click Me" />

或者在 C# 代码中使用:

var button = new Button();
button.Style = FindResource("MetroButton") as Style;

更多样式定义,请参考 MahApps.Metro Styles。

4.3.2 控件模板

MahApps.Metro 还提供了丰富的控件模板,开发者可以根据自己的需求对控件的外观和交互行为进行定制。

<controls:TextBox Template="{StaticResource MetroTextBox}" />

或者在代码中应用模板:

var textBox = new TextBox();
textBox.Template = FindResource("MetroTextBox") as ControlTemplate;

有关更多控件模板的信息,请查看 MahApps.Metro Control Templates。

5. MaterialDesignInXAML:一个Material Design风格的XAML库

MaterialDesignInXAML是一个用于创建Material Design风格桌面应用的开源XAML库。它提供了一系列的控件和主题,可以帮助开发者快速构建现代化、美观的桌面应用程序。

5.1 简介

5.1.1 核心功能

MaterialDesignInXAML提供了丰富的Material Design风格控件,包括按钮、文本框、进度条等。同时,它还支持自定义主题,让开发者可以轻松实现应用程序的个性化定制。

5.1.2 使用场景

适用于需要在WPF应用中使用Material Design风格的开发者,尤其是那些希望快速搭建现代化界面的人群。

5.2 安装与配置

5.2.1 安装指南

首先,在Visual Studio中创建一个新的WPF项目。然后,可以通过NuGet包管理器来安装MaterialDesignInXAML。在NuGet包管理器控制台中执行以下命令:

Install-Package MaterialDesignThemes
5.2.2 基本设置

在WPF项目中,可以通过引入MaterialDesign的命名空间来使用其提供的控件和样式。在XAML文件中,可以通过下面的方式引入:

xmlns:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes"

5.3 API 概览

5.3.1 主题设置

MaterialDesignInXAML允许开发者通过修改主题颜色、字体大小等来自定义应用程序的外观。以下是一个示例,演示如何设置主题为深色:

var paletteHelper = new PaletteHelper();
var theme = paletteHelper.GetTheme();
theme.SetBaseTheme(Theme.Dark);
paletteHelper.SetTheme(theme);

更多关于主题设置的信息,请参考官方文档

5.3.2 控件使用

MaterialDesignInXAML提供了丰富的Material Design控件,例如按钮、文本框和进度条等。以下是一个简单的示例,展示如何使用Material Design风格的按钮:

<Button Style="{StaticResource MaterialDesignRaisedButton}" Content="Save" />

官方文档中还提供了更加详细的控件使用说明,可以通过这里找到更多信息。

以上是MaterialDesignInXAML库的简要介绍和基本使用方法,希望对您有所帮助。

6. Uno Platform:一个支持跨平台的XAML和C#解决方案

6.1 简介

Uno Platform 是一个支持使用 XAML 和 C# 跨平台开发的解决方案。它允许开发人员使用单一的代码库来构建适用于多个平台的应用程序,包括 iOS、Android、Windows 和 Web。

6.1.1 核心功能

Uno Platform 的核心功能包括跨平台的 XAML 布局系统和强大的数据绑定机制。开发人员可以使用熟悉的工具和语言来构建原生级别的用户界面,并实现数据模型与视图之间的无缝连接。

6.1.2 使用场景

Uno Platform 适用于需要在多个平台上构建一致性用户体验的项目。开发人员可以通过 Uno Platform 实现代码重用,并最大限度地减少针对不同平台的定制化开发工作量。

6.2 安装与配置

6.2.1 安装指南

要开始使用 Uno Platform,首先需要安装 Visual Studio 2019 或更高版本,并安装 Uno Platform 的 Visual Studio 插件。安装完成后,即可创建 Uno Platform 项目。

安装 Uno Platform 插件:

Extensions -> Manage Extensions -> Online -> Search for "Uno Platform" -> Install
6.2.2 基本设置

在 Visual Studio 中创建 Uno Platform 项目后,需要根据目标平台进行适当的配置。例如,对于 Android 平台,需要确保已经配置了正确的 Android 开发环境和模拟器。

6.3 API 概览

6.3.1 XAML布局

Uno Platform 的 XAML 布局系统类似于 UWP(Universal Windows Platform),支持使用标签和属性定义用户界面元素的布局和外观。

<Grid>
    <TextBlock Text="Hello, Uno Platform!" />
</Grid>

官网链接:Uno Platform - XAML

6.3.2 数据绑定

Uno Platform 支持使用 C# 代码进行数据绑定,实现数据模型与视图之间的自动更新。

public class Person : INotifyPropertyChanged
{
    private string _name;
    public string Name
    {
        get { return _name; }
        set
        {
            if (_name != value)
            {
                _name = value;
                RaisePropertyChanged(nameof(Name));
            }
        }
    }

    public event PropertyChangedEventHandler PropertyChanged;

    protected void RaisePropertyChanged(string propertyName)
    {
        PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
    }
}

官网链接:Uno Platform - Data Binding

总结

通过本文的介绍,我们对多个.NET桌面应用框架和UI库有了全面的了解。Eto.Forms提供跨平台的桌面应用开发解决方案,Avalonia则专注于.NET UI框架的跨平台实现。ReactiveUI支持响应式编程,MahApps.Metro和MaterialDesignInXAML则分别提供现代化风格和Material Design风格的UI组件。Uno Platform则是一个支持跨平台的XAML和C#解决方案。通过比较和总结,我们可以根据项目需求选取最适合的工具,以提升开发效率和用户体验。

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

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

相关文章

Conditional Generative Adversarial Nets

条件生成对抗网络 1.生成对抗网络 生成对网络由两个“对抗性”模型组成&#xff1a;一个生成模型 G&#xff0c;用于捕获数据分布&#xff0c;另一个判别模型 D&#xff0c;用于估计样本来自训练数据而不是 G 的概率。G 和 D 都可以是非线性映射函数。 为了学习数据 x 上的生…

设计模式-生成器模式/建造者模式Builder

构建起模式&#xff1a;将一个复杂类的表示与其构造分离&#xff0c;使得相同的构建过程能够得出不同的表示。&#xff08;建造者其实和工厂模式差不多&#xff09; 详细的UML类图 图文说明&#xff1a;距离相同的构建过程 得出不同的展示。此时就用两个类&#xff08;文本生成…

探索未来:hbmqtt,Python中的AI驱动MQTT

文章目录 **探索未来&#xff1a;hbmqtt&#xff0c;Python中的AI驱动MQTT**1. 背景介绍2. hbmqtt是什么&#xff1f;3. 安装hbmqtt4. 简单的库函数使用方法4.1 连接到MQTT服务器4.2 发布消息4.3 订阅主题4.4 接收消息4.5 断开连接 5. 应用场景示例5.1 智能家居控制5.2 环境监测…

WebGIS之Cesium三维软件开发

目录 第 1 章 三维 WebGIS 概述 1.1 Google Earth 1 1.2 SkylineGlobe 2 1.3 LocaSpace Viewe 2 1.4 Cesium 3 1.5 Cesium API 概要 4 第 2 章 Cesium 快速入门 2.1 Cesium 环境搭建 7 2.1.1 安装 Node.js 环境 7 2.1.2 配置 Cesium 依赖 8 2.2 搭建第一个 Cesi…

【2006.07】UMLS工具——MetaMap原理深度解析

文献&#xff1a;《MetaMap: Mapping Text to the UMLS Metathesaurus》2006 年 7 月 14 日 https://lhncbc.nlm.nih.gov/ii/information/Papers/metamap06.pdf MetaMap&#xff1a;将文本映射到 UMLS 元数据库 总结 解决的问题 自动概念映射问题&#xff1a;解决如何将文本…

Vue3丨进一步了解这 20 个响应式 API,写码如有神

前面说的话 在 Vue2 中&#xff0c;个人觉得对于数据的操作比较 “黑盒” 。而 Vue3 把响应式系统更显式地暴露出来&#xff0c;使得我们对数据的操作有了更多的灵活性。所以&#xff0c;对于 Vue3 的几个响应式的 API &#xff0c;我们需要更加的理解掌握&#xff0c;才能在实…

【MySQL】子查询、合并查询、表的连接

目录 一、子查询 1、单行子查询 显示SMITH同一部门的员工信息 2、多行子查询 in关键字 查询和10号部门的工作岗位相同的雇员的名字、岗位、工资、部门号&#xff0c;但是筛选出的雇员的部门不能有10号部门 all关键字 查询工资比30号部门中所有雇员工资高的雇员的姓名、…

TS(type,属性修饰符,抽象类,interface)一次性全部总结

目录 1.type 1.基本用法 2.联合类型 3.交叉类型 2.属性修饰符 1.public 属性修饰符 属性的简写形式 2.proteced 属性修饰符 3.private 属性修饰符 4.readonly 属性修饰符 3.抽象类 4.interface 1.定义类结构 2.定义对象结构 3.定义函数结构 4.接口之间的继…

postgresql|数据库|postgis编译完成后的插件迁移应该如何做(postgis插件最终章)

一、 本文的写作理由 postgis插件一般是编译安装&#xff0c;编译安装的原因是可以选择自己喜欢的版本&#xff0c;但编译的难度也是比较高的&#xff0c;因为有各种依赖&#xff0c;依赖之间还有依赖&#xff0c;非常容易形成依赖循环&#xff0c;因此&#xff0c;失败率是比…

【Python】CSVKit:强大的命令行CSV工具套件

CSVKit 是一个基于命令行的工具集&#xff0c;用于简化 CSV 文件的处理和管理。它提供了从数据转换、筛选、格式化到分析的全方位支持&#xff0c;特别适合需要处理复杂表格数据的用户。相比传统的 Excel 操作&#xff0c;CSVKit 更高效且功能更强大&#xff0c;非常适合数据分…

VSOMEIP代码阅读整理(1) - 网卡状态监听

一. 概述 在routing进程所使用的配置文件中&#xff0c;存在如下配置项目&#xff1a;{"unicast" : "192.168.56.101",..."service-discovery" :{"enable" : "true","multicast" : "224.244.224.245",…

线程和进程的关系和区别

目录 进程 概念 特点 生命周期 进程的通信 应用场景 线程 概念 特点 类型 状态 调度 应用场景 线程和进程的关系与区别 关系 区别 总结 僵尸进程 产生原因 解决方法 进程 概念 第一&#xff0c;进程是一个实体。每一个进程都有它自己的地址空间&#xff…

数字通信中不同信道类型对通信系统性能影响matlab仿真分析,对比AWGN,BEC,BSC以及多径信道

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 1.算法运行效果图预览 (完整程序运行后无水印) 2.算法运行软件版本 matlab2022a 3.部分核心程序 &#xff08;完整版代码包含详细中文注释和操作步骤视频&#xff09…

C0013.Clion中利用C++调用opencv打开摄像头

下载opencv https://opencv.org/get-started/ 直接官网下载opencv-4.9.0-windows.exe 安装opencv opencv配置环境变量 如上安装配置完成。

SpringBoot框架下的健康信息管理解决方案

第1章 绪论 1.1背景及意义 随着社会的快速发展&#xff0c;计算机的影响是全面且深入的。人们生活水平的不断提高&#xff0c;日常生活中人们对医院管理方面的要求也在不断提高&#xff0c;由于老龄化人数更是不断增加&#xff0c;使得师生健康信息管理系统的开发成为必需而且紧…

第三批安全可靠评测名单公布,几家欢喜几家忧

9月30号&#xff0c;赶在国庆长假之前&#xff0c;中国信息安全评测中心发布了《安全可靠评测结果公告(2024年第2号)》&#xff0c;测试结果自发布之日起有效期三年。 本期测试分为集中式数据库、分布式数据库和中央处理器三个大类&#xff0c;结果共有14家公司的16个产品入围&…

AI绘画实现数字人2D形象生成及3D数字人视频生成

概述 随着人工智能技术的不断进步&#xff0c;AI绘画已经成为数字艺术创作领域的重要工具。本章将详细介绍如何利用AI绘画技术生成数字人的2D形象&#xff0c;并进一步将其转化为3D数字人视频。通过一系列实践步骤和Python代码示例&#xff0c;您将能够掌握从平台使用到系统部…

计算机毕业设计之:音乐媒体播放及周边产品运营平台(源码+文档+讲解)

博主介绍&#xff1a; ✌我是阿龙&#xff0c;一名专注于Java技术领域的程序员&#xff0c;全网拥有10W粉丝。作为CSDN特邀作者、博客专家、新星计划导师&#xff0c;我在计算机毕业设计开发方面积累了丰富的经验。同时&#xff0c;我也是掘金、华为云、阿里云、InfoQ等平台…

看Threejs好玩示例,学习创新与技术(Noise)

给图像加一点噪声效果&#xff0c;可以起到朦胧背景的效果&#xff0c;比如下面这幅画。 除了普通的图片外&#xff0c;我们可以把这个效果应用到地图或其他方面&#xff0c;比如超过范围不允许用户了解更详细的内容。当然&#xff0c;也可以采用雾Fog效果&#xff0c;但后处理…

鸿蒙ArkUI实战开发-主打自研语言及框架

ArkUI 是 HarmonyOS 的声明式 UI 开发框架&#xff0c;而 ArkUI-X 是基于 ArkUI 框架扩展而来的跨平台开发框架。ArkUI-X 支持 HarmonyOS、OpenHarmony、Android 和 iOS 平台&#xff0c;允许开发者使用一套代码构建支持多平台的应用程序。 一、ArkUI-X 的实战开发步骤 在实战开…