c#和ado.net应用程序中的可移植性问题

本文关键字:可移植性 问题 应用程序 ado net | 更新日期: 2023-09-27 18:11:18

感谢各位成员花时间阅读这个问题。

我正在准备一个测验系统的应用程序,该系统将从数据库中随机抽取问题,并使用ado.net将它们放在接口(c#)中。

我的问题是我希望程序是可移植的,即你不必在所有系统上完全安装sql server,我将运行我的代码(如果我用户sql server驱动程序)。

这个问题的解决方案是什么?

c#和ado.net应用程序中的可移植性问题

您可以选择Sql CE (Compact)数据库

Scott Guthrie的博客:

SQL CE不需要运行安装程序或安装数据库服务器,以便使用它。您可以简单地复制SQL CE二进制文件放到ASP的'bin目录中。. NET应用程序,然后是web应用程序可以将其用作数据库引擎。没有设置或额外设置它需要安全权限才能运行。你不需要这么做在机器上拥有管理员帐户。复制你的网页应用程序到任何服务器上,它都可以工作。这甚至是真的中等信任的应用程序在web托管环境中运行。

不要使用SQL Server。

你可以使用像SQLite这样可以通过ADO使用的数据库。. NET与应用程序一起分发,而不需要单独安装数据库。

请注意,这种方法可能不足以满足您的实际数据库需求。

我喜欢AVD的答案,这可能是可行的方法,但是使用linq to XML将是可移植性的一个很好的选择。

将数据集序列化为二进制文件

DataSet ds = GetData();
ds.RemotingFormat = SerializationFormat.Binary;
BinaryFormatter bin = new BinaryFormatter();
bin.Serialize(stream, ds);