C# 维护本地资产缓存
我正在编写一个GUI远程处理客户端,服务器在其中定义并执行屏幕,一个小型GUI应用程序在客户端上将其可视化。我知道这听起来很像一个网站,这个系统将有一个web客户端,但现在我主要关注WPF客户端的实现 这个系统的一部分是我需要在服务器和客户端之间同步资产。服务器将所有资产存储在.zip文件中或作为文件系统上的目录结构;我还没决定。这些资产可能会发生变化:资产可能会被添加、删除或修改。这些修改需要与客户端同步 我遇到的问题是如何在客户机上存储这些资产。我提出了以下要求: 资产通过类似路径的键设置关键帧,例如图像/图标/16/add.png 必须为每项资产维护CRC32,以检测chagnes 大约有100到200个资产 资产的大小将在1 KB到500 KB之间,只有一个或两个;中等大小为8KB;主要是.png图像文件 由于加载的资产将被缓存在内存中,所以检索不必非常快 由于资产不会经常更改,因此更新本地缓存不必非常快 我想出了以下方法: 光盘上的文件。这有以下优点: 易于实施 快速更新和检索 还有以下缺点: 光盘上的许多文件 无法存储元数据CRC32 将文件存储在.zip文件中。这有以下优点: 定义良好的存储机制,具有良好的.NET支持 我相信为我维护一个CRC32 还有以下缺点: 我相信随机文件的更新和检索相对较慢 不可能存储额外的元数据,但我不知道我是否需要它 在SQLite数据库中存储文件。这有以下优点: 定义良好的存储机制,具有良好的.NET支持 允许存储各种元数据 快速更新和检索随机文件 还有以下缺点: 可能是完全过火了 我担心SQLite的二进制支持C# 维护本地资产缓存,c#,.net,wpf,resources,C#,.net,Wpf,Resources,我正在编写一个GUI远程处理客户端,服务器在其中定义并执行屏幕,一个小型GUI应用程序在客户端上将其可视化。我知道这听起来很像一个网站,这个系统将有一个web客户端,但现在我主要关注WPF客户端的实现 这个系统的一部分是我需要在服务器和客户端之间同步资产。服务器将所有资产存储在.zip文件中或作为文件系统上的目录结构;我还没决定。这些资产可能会发生变化:资产可能会被添加、删除或修改。这些修改需要与客户端同步 我遇到的问题是如何在客户机上存储这些资产。我提出了以下要求: 资产通过类似路径的键设置关
我的问题是1。我是否忽略了一个明显的替代方案和/或2。什么方法是最好的。就我个人而言,我会选择SQLLite或MySql,它是开源和免费的 根据我的经验,即使是小的应用程序也有一种成长为大的应用程序的方式,你会很高兴你使用了正确的技术,即使在一开始它有点过分。采用了KISS方法:只需将整个资源文件下载到客户端
资源库不会那么大,从1MB到2MB。整个.zip文件可以通过一个散列检查更改,并且仅在更改时更新。由于这种情况每月最多不会发生一次,因此这不会是一个问题。此客户端背后的整个理念是使功能绝对最少。它就像一个最小的浏览器或TTY客户端putty,安装需要保持在绝对最小值,比如1MB,没有依赖项。这是一个要求,它不能成长为一个大型应用程序。哦,我明白了。您还可以考虑安装MS Access运行时。这是一个相当小的占地面积,提供了一个像样的关系数据库。不确定这是否会将您推到1mb以上。