需要一个比XML简单的数据源

时间:2012-11-28 15:24:43

标签: c# xml

我目前正在开发一个项目,该项目将在一段时间内收集大量数据。我目前无法访问我的软件将部署在网络上的任何数据库引擎。因此,我正在使用XML数据集,并使用MVC类型框架。我最初选择XML是因为它可以模仿数据库的关系设计。我将数据存储在单例中,我的win-forms通过我的单例中的对象访问数据,而win-forms没有直接了解底层数据结构。

我正在使用.NET 3.5,因为PC的我的软件将部署在XP计算机上,而不是互联网连接,因此,无法下载.NET 4.0。 我正在使用LINQ to XML对象访问XML,并将元素/属性值存储到可以通过数据访问层中的属性和方法访问的对象和集合中。

我主要担心的是,随着XML文件越来越大,开销可能会变得过于繁琐。除了设置数据库服务器之外,还有一个比XML更好的数据存储系统吗?我需要我的数据遵循我试图完成的关系格式。我已经研究过使用delimited / csv格式,但这些格式不满足我的项目要求。

编辑:此数据源无法嵌入到应用程序中,并且将有多个应用程序访问数据源。将使用2个应用程序,将管理数据的“主机”应用程序和将用于数据收集的“客户端”应用程序。 “客户端”应用程序将在LAN上的多个工作站上具有多个实例。

3 个答案:

答案 0 :(得分:3)

SQL Server Express LocalDB是SQL Server的嵌入式版本,但只需要运行它的计算机上的文件。这可能是一个不错的选择,比XML更小,更快,更容易使用,与真正的SQL服务器具有相同的语法和类似的性能,您可以使用所有内置的.Net SQL库和功能而无需安装第三方数据存储。

您还可以将多个应用连接到同一个数据库文件,并且仍然可以获得SQL Server的ACID功能。

http://www.microsoft.com/sqlserver/en/us/editions/2012-editions/express.aspx

http://blogs.msdn.com/b/sqlexpress/archive/2011/07/12/introducing-localdb-a-better-sql-express.aspx

答案 1 :(得分:2)

如果文件大小是您主要关心的问题,您可以对文件使用压缩以使它们在磁盘上保持较小。 .NET 3.5内置了一些压缩算法.XML是非常重复的文本,可以很好地压缩。如果您可以自由地将数据分解为多个文件,那么许多文件也可以帮助您缩小尺寸。

答案 2 :(得分:1)

JSON比XML轻。至于你是否可以以关系方式使用它,这将取决于你想要做什么。这里介绍了JSON的一些关系用法:

Using JSon like a Relational SQL Database (Javascript)