我有一个使用C#为Windows平台创建应用程序。
通常,我所做的所有工作都在一台机器上:它有Visual Studio 2010,Microsoft SQL Server和一系列其他工具。
例如,如果我使用Entity Framework,我知道它会起作用,因为我安装了一个SQL引擎。
这是我的问题以及这个问题的要点:
您会用什么来保存信息?这个软件将出售给各个第三方公司,我无法想象公司会安装SQL Server公司,然后表格然后最终它会起作用。它需要Just Work™
我需要能够搜索“记录”;按日期,ID,名称,位置等。使用SQL会非常简单,但我会回到数字1的问题。
我确信我错过了每个开发人员在某些方面都学到的东西,所以请事先感谢你的指导。
编辑:错过了问题中最重要的部分,项目是什么?
基本上它会保存收据中的信息,然后您可以扫描收据(我将使用Office API),并将该扫描与之前输入的条目相关联。所以它将是 ID,Name,Amount,ScannedImage 。简而言之。
编辑2:另一点重要信息:
这只有一个并发用户,而且我使用它的持久性工具必须能够保存大量信息。我真的不知道有多少空间明文与ocassional图像占用,但我宁愿有额外的空间而不是想要更多的空间。
答案 0 :(得分:15)
您可以查看SQLite。它是可移植的,不需要安装任何东西,它由普通的ORM支持。
答案 1 :(得分:3)
您可以在安装时自动安装sql server express edition并以编程方式设置SQL数据库。这是常见的做法
如果您不需要SQL服务器的所有功能,那么请使用SQL紧凑版。这样安装起来要简单得多,但不是多用户等。
SQLite也很酷
SQL Express限制为4GB。另一个常见的策略是默认执行sql express安装和数据库设置但允许用户选择现有的sql server安装,然后你只需设置数据库(使用相同的设置代码)
您应该告诉我们有多少数据,有多少用户等
答案 2 :(得分:3)
答案 3 :(得分:1)
我在几个项目上使用了Firebird。它可以部署xcopy,如果需要改变,也可以成为一个体面的服务器。如果需要,它可以在Linux和MacOSX上运行(使用Mono进行.Net实现)。
这只是为了提供一个额外的选择。 SQLite看起来也是一个不错的选择。
答案 4 :(得分:1)
我将在这里冒一个疯狂而疯狂的风险并提出一个完全荒谬的建议。
您是否认真将XML视为您的数据存储? LINQ to XML使得查询这些东西变得轻而易举,而且性能非常高。无需额外安装即可支持。它满足您的It Just Works™要求。这只会留下磁盘空间问题。
但是,磁盘空间很便宜。而且,如果您将从其他软件安装中节省空间,那么您可能不会像想象的那样担心。
这是一个值得考虑(或重新考虑)的选择。
把它扔掉那里。
答案 5 :(得分:1)
如果您使用.net,我认为最简单的方法是设置一个Sql Server Compact数据库,它是一种由Microsoft软件制作的sqlite,易于集成到VS .Net。
以下是来自网站http://www.microsoft.com/sqlserver/2008/en/us/compact.aspx的说明粘贴,您可以在该网站免费下载。
用于构建客户端应用程序的嵌入式数据库
Microsoft SQL Server Compact是一个免费的SQL Server嵌入式数据库,非常适合为移动设备,桌面和Web客户端构建独立和偶尔连接的应用程序。
热门功能
答案 6 :(得分:0)
根据您提供的所有详细信息,嵌入式数据库将是最佳解决方案,请使用System.Data.SQLite。