我刚开始使用.NET数据存储,我对这么多不同的技术感到困惑......这是一个学习项目。你不需要继续阅读,我需要先做一个架构建议......到目前为止感谢
我的情景:
e.g。一个可以存储和标记图像的本地应用程序。 用户可以选择是否要
条件:
正如您所看到的,无论操作是本地操作还是基于Web操作,许多操作和数据(传输)对象都是冗余的。这是我实现这一事实的主要目标之一。我正在寻找编程安慰:)
我对以下内容感兴趣:
云可以是一个选项,但我更喜欢使用wcf服务来访问数据(至少我认为我更喜欢这个:)
我看到的技术:XLinq,实体框架,hibernate,Linq to ...,WCF数据服务,带Linq的SQLite,Web服务,实体SQL ......真是太糟糕了
我读了很多关于这个主题但很难估计架构决策的后果。其他帖子也没有帮助我规划项目。
如果你能指出我正确的方向,那就是我的一天。致谢!!!
答案 0 :(得分:0)
您的主要关注点应该是从存储机制中抽象出您的存储解决方案。
确定您需要哪些方法SaveData,LoadData,GetSavedDataList,DeleteItem ...
然后创建一个接口IStorage
。这样,您可以编写许多不同的解决方案,本地+二进制/远程+ WCF,但保持应用程序逻辑的核心与存储解决方案分离。你的核心逻辑不应该关心它从哪里保存/加载信息。
真的,您使用的存储解决方案取决于您。每个人都有自己的优点和缺点,任何人都不可能给你100%正确答案,这对你来说是最好的。在一天结束时,你将最终得到3个主要工作。在本地存储数据,将数据传输到远程服务器,将数据存储在远程位置。
在本地存储它可以像保存元数据的XML文件和图像的二进制文件一样简单。你说你不想安装本地数据库,这是一个数据库引擎,还是任何数据库解决方案,是否可以使用像MsAccess / SQL CE等,因为它会使整体设计更好一点?
对于您的远程存储,您可以编写一个Web服务来传输对象,图像数据和标签等,如果您通过良好的抽象/解耦设计好您的代码,您的本地系统将不必知道任何不同的webservice(在服务器端),使用LINQ将数据保存到数据库。
有很多方法可以让这只猫受到伤害,毫无疑问,你会从其他SO社区获得大量其他建议。
答案 1 :(得分:0)
您可能需要考虑服务器上的SQL Server 2008和本地计算机上的SQL Server Compact。每个都针对这种环境进行了优化,它们提供的数据存储和管理功能非常相似。正如jasper所暗示的那样,从你的代码中抽象出访问机制,这对技术应该非常容易。
SQL Server Compact是一个嵌入式数据库引擎,它与您的应用程序一起在进程中运行,与它一起作为“单个DLL”安装,并且不需要单独的数据库服务器安装。
无论如何,我完全同意jasper你应该专注于系统的架构和设计,并将技术视为次要的。