你好,这里是 Dotnet 工具箱,定期分享 Dotnet 有趣,实用的工具和组件,希望对您有用!
LiveCharts2 是一个简单、灵活、交互式以及功能强大的跨平台图表库。
LiveCharts2 现在几乎可以在任何地方运行,包括 Maui、Uno Platform、Blazor-wasm、WPF、WinForms、Xamarin、Avalonia、WinUI、UWP。
LiveCharts2 (v2) 是LiveCharts (v0)的演变,它修复了其前身的主要设计问题,它专注于在任何地方运行,在不丢失在 v0 中已有的东西的情况下提高了灵活性。
LiveCharts2 的特点之一是性能优异,它使用了一些优化技巧,比如数据虚拟化、图形缓存、异步绘制等,能够在大数据量下仍然能保持良好的响应速度和渲染性能。另外,它还提供了丰富的文档和示例,方便开发者快速入手和使用。
LiveCharts2 提供了多种类型的图表,包括折线图、面积图、柱状图、散点图、饼图等。同时,它还支持多个图表联动显示,支持动态更新数据、自定义样式和动画效果等功能。
LiveCharts 可以在不需要任何 UI 框架的情况下呈现图像,只要安装 SkiaSharp View 包,就可以在服务器端或控制台应用程序中构建图像,它可以从 NuGet 安装:
LiveChartsCore.SkiaSharpView
using LiveChartsCore; using LiveChartsCore.Geo; using LiveChartsCore.SkiaSharpView; using LiveChartsCore.SkiaSharpView.Drawing.Geometries; using LiveChartsCore.SkiaSharpView.SKCharts; var cartesianChart = new SKCartesianChart { Width = 900, Height = 600, Series = new ISeries[] { new LineSeries<int> { Values = new int[] { 1, 5, 4, 6 } }, new ColumnSeries<int> { Values = new int[] { 4, 8, 2, 4 } } } }; // you can save the image to png (by default) // or use the second argument to specify another format. cartesianChart.SaveImage("cartesianChart.png"); var pieChart = new SKPieChart { Width = 900, Height = 600, Series = new ISeries[] { new PieSeries<int> { Values = new int[] { 10, } }, new PieSeries<int> { Values = new int[] { 6 } }, new PieSeries<int> { Values = new int[] { 4 } } } }; pieChart.SaveImage("pieChart.png"); var geoHeatMap = new SKGeoMap { Width = 900, Height = 600, Series = new IGeoSeries[] { new HeatLandSeries { Lands = new HeatLand[] { new() { Name = "mex", Value = 10 }, new() { Name = "usa", Value = 15 }, new() { Name = "can", Value = 8 } } } } }; geoHeatMap.SaveImage("geoHeatMap.png"); // alternatively you can get the image and do different operations: using var image = cartesianChart.GetImage(); using var data = image.Encode(); var base64CartesianChart = Convert.ToBase64String(data.AsSpan()); Console.WriteLine("Images saved at the root folder!");
项目地址: https://github.com/beto-rodriguez/LiveCharts2
Ryujinx 是一个开源的任天堂 Switch 模拟器,可以在 PC 上模拟运行 Switch 游戏。由 gdkchan 创建,使用 C# 编写。这个模拟器旨在提供卓越的准确性和性能、用户友好的界面和一致的构建。它是从头开始编写的,该项目的开发是从 2017 年 9 月开始。
Ryujinx 是基于 C# 语言编写的,使用了 .NET Core 和 .NET Standard 技术,可跨平台运行在 Windows、Linux 和 macOS 等操作系统上。
截止到 2022 年 11 月,Ryujinx 已经在大约 3,800 个游戏上进行了测试;超过 3,600 个进入游戏,其中大约 3,200 个被认为是可玩的。 您可以在下面的链接查看兼容性列表。
https://github.com/Ryujinx/Ryujinx-Games-List/issues
以下是一些已经在 Ryujinx 上运行良好的知名游戏:
同时,Ryujinx 还拥有一个活跃的社区,可以帮助用户解决问题并提供支持。
项目地址:https://github.com/Ryujinx/Ryujinx
Mapster 是一个 .NET 库,它提供了一种简单的方式来实现对象之间的映射。它使用了一个基于约定的自动映射策略,让你可以轻松地将一个对象转换为另一个对象。
编写映射方法是一项机器工作。不要浪费你的时间,让 Mapster 来做吧。
使用 NuGet CLI 安装 Mapster:
Install-Package Mapster
或者使用 .NET Core CLI 安装 Mapster:
dotnet add package Mapster
var destObject = sourceObject.Adapt<Destination>();
sourceObject.Adapt(destObject);
还可以通过依赖注入获取 IMapper 实例,所以在从 automapper 迁移到 Mapster 时,基本上不需更改代码。
注入 Mapster 服务。
services.AddMapster();
然后和 DI 一起使用
public class Test { public Test(IMapper mapper) { var sourceObject = mapper.Adapt<Destination>(); } }
Mapster 旨在提高速度和内存效率。它可以获得 4 倍的性能提升,同时仅仅使用了 1/3 的内存。并且可以获得高达 12 倍的性能提升。
Mapster 是一个非常方便的库,它可以大大简化 .NET 项目中对象之间的映射工作,并且具有很好的可扩展性和灵活性。
项目地址:https://github.com/MapsterMapper/Mapster