首页 > 其他分享 >Jot:方便.Net开发者状态和应用数据持久化的开源库

Jot:方便.Net开发者状态和应用数据持久化的开源库

时间:2025-01-12 21:46:14浏览次数:1  
标签:持久 开源 Tracker 开发者 Services Jot Net 跟踪

C#开源工具

为了提升用户体验,特别是一些应用桌面软件,我们会记住窗口的大小、最后点击的选项卡、窗口布局等一些数据,方便下一次软件启动的时候,恢复到最后的状态。
下面推荐一个开源库,方便我们来实现这个功能,以及实现任何状态和应用数据持久化。 

01项目简介

Jot 是一个开源的 .NET 库,专注于简化应用程序的状态持久化。它允许开发者轻松跟踪和管理应用状态,例如UI元素的位置和大小、用户偏好和设置等。使用Jot可以大量减少我们的代码量、提升开发效率,使代码更加简洁和易于维护。 

02项目特点

1、状态跟踪:提供了灵活的配置选项,允许自定义如何跟踪特定类型的对象,以及何时持久化和应用数据。这样,开发人员不需要编写大量重复的代码来在应用程序设置和持久化存储之间同步数据。

2、扩展性:内置的 JsonFileStore 实现将数据以 JSON 文件的形式存储在用户的 AppData 文件夹中。开发者也可以实现自定义存储,只需实现IStore 接口来存储数据,例如将数据保存到云端或数据库中。

3、ITrackingAware :当编译时无法确定要跟踪的属性时,跟踪的对象可以实现 ITrackingAware 接口,以在运行时动态配置跟踪。

4、IoC 容器集成:Jot 可以与 IoC 容器集成,自动跟踪容器创建的所有对象。

5、支持:可用于WinForm、WPF、Avalonia UI等。 

03使用示例

1、安装依赖库

Install-Package Jot

2、新建WinForm项目

 

 

3、新建类创建类:Services,代码如下,窗口关闭时,持久化窗口宽度、高度、坐标等信息。

using Jot;
namespace WinFormsApp1{ static class Services { public static Tracker Tracker = new Tracker();
static Services() { Tracker.Configure<Form>() .Id(w => w.Name) .Properties(w => new { w.Height, w.Width, w.Left, w.Top, w.WindowState })                .PersistOn(nameof(Form.FormClosed)); } }}

4、窗口引用

namespace WinFormsApp1{    public partial class Form1 : Form    {        public Form1()        {            InitializeComponent();
Services.Tracker.Track(this); } }}

 
04项目地址
https://github.com/anakic/Jot

 

标签:持久,开源,Tracker,开发者,Services,Jot,Net,跟踪
From: https://www.cnblogs.com/firespeed/p/18667371

相关文章

  • 分析基于ASP.NET Core Kernel的gRPC服务在不同.NET版本的不同部署方式的不同线程池下
    分析基于ASP.NETCoreKernel的gRPC服务在不同.NET版本的不同部署方式的不同线程池下的性能表现使用默认的gRPC项目模板创建,垃圾回收器类型为ServerGC(Servergarbagecollection)。使用ghz工具在不同的请求总数、连接数、并发数的参数下,进行压力测试,接口为/greet.G......
  • .NET 响应式编程 System.Reactive 系列文章(一):基础概念
    .NET响应式编程System.Reactive系列文章(一):基础概念引言在现代软件开发中,处理异步事件和数据流已经成为常见的需求,比如用户输入、网络请求、传感器数据等。这些数据流通常是无限的、异步的、实时的,而传统的编程方式往往无法优雅地处理这些情况。响应式编程(ReactivePro......
  • .NET 中管理 Web API 文档的两种方式
    前言在.NET开发中管理WebAPI文档是确保API易用性、可维护性和一致性的关键。今天大姚给大家分享两种在.NET中管理WebAPI文档的方式,希望可以帮助到有需要的同学。SwashbuckleSwashbuckle.AspNetCore是一个流行的.NET库,它使得在ASP.NETCore项目中自动生成Swag......
  • ASP.NET Core - 日志记录系统(二)
    本篇接着上一篇[ASP.NETCore-日志记录系统(一)]往下讲,所以目录不是从1开始的。2.4日志提供程序2.4.1内置日志提供程序ASP.NETCore包括以下日志记录提供程序作为共享框架的一部分:ConsoleDebugEventSourceEventLog除此之外,还有一些微软官方提供的,但是没有和......
  • .NET 9.0 WebApi 发布到 IIS 详细步骤
            微软表示,.NET9是迄今为止性能最高的.NET版本,对运行时、工作负载和语言方面进行了1,000多项与性能相关的改进,并采用了更高效的算法来生成更好的代码。        .NET9是.NET8的继任者,特别侧重于云原生应用和性能。作为标准期限支持(STS)......
  • Explaining Graph Neural Networks for Vulnerability Discovery
    本篇论文题目为:ExplainingGraphNeuralNetworksforVulnerabilityDiscovery发表于CCS2021本文主要内容是介绍GNNs->前人对GNNs的应用与改进->提出一种对GNNs的评估解释本文并未实际构建一种方法去进行漏洞挖掘,而侧重于对GNNs在漏洞挖掘中的应用针对应用文献进行梳理:......
  • 如何开启苹果手机(IOS)系统的开发者模式?
    如何开启开发者模式?一、打开设置二、隐私与安全性三、找到开发者模式四、开启开发者模式------------------------------------------------------------如果发现没有开发者模式的选项一、电脑下载爱思助手二、连接手机三、工具箱——虚拟定位——打开虚拟定位——提示需......
  • 《DevEco CodeGenie——人工智能开发者的得力助手》
    在当今人工智能技术蓬勃发展的时代,华为推出的DevEcoCodeGenie为人工智能开发者带来了前所未有的便利,成为了开发过程中的得力助手。智能知识问答,快速解决难题DevEcoCodeGenie的智能知识问答功能基于生成式搜索能力,能够高效理解开发者的自然语言输入,并以问答交互的方式提......
  • C# .NetCore HttpClient 标题名称 Content-Type、content-md5、Accept误用 确保请求头
    异常消息:        异常1、Misusedheadername,'Content-Type'.MakesurerequestheadersareusedwithHttpRequestMessage,responseheaderswithHttpResponseMessage,andcontentheaderswithHttpContentobjects        大概意思:标题名称“Cont......
  • 新模型设计:Hybrid Quantum-Classical Neural Network (HQCNN) for Image Classificati
    新模型设计:HybridQuantum-ClassicalNeuralNetwork(HQCNN)forImageClassification目录新模型设计:HybridQuantum-ClassicalNeuralNetwork(HQCNN)forImageClassification引言1.HybridQuantum-ClassicalNeuralNetwork简介2.HybridQuantum-Classi......