无服务器多用户应用程序/数据库的解决方案?

时间:2014-07-30 11:31:33

标签: c# sqlite silverlight file-io architecture

我已经死路一条,我真的可以使用一些帮助。

我是一家大公司的实习生。我的项目涉及创建一个应用程序来自动化/简化退休员工的工作。

这里的问题在于严格的公司政策。我是公司业务端的开发人员。因此IT没有给我任何东西:

  1. 我没有服务器(也没有网络或数据库)
  2. 我无法创建服务器,因为没有电脑正在运行,我们无法通过公司卡单点登录来保持登录状态。
  3. 我无法在网络上的电脑上安装任何内容。
  4. 我可以访问每天备份的共享文件服务器。
  5. 所涉及的图书馆必须是免费的
  6. 中央数据库必须由十几个用户(一次性)访问
  7. 数据库每天都会收到新数据并会相应增长
  8. 用户将同时读写数据库
  9. 最好是C#.NET或WPF解决方案
  10. 应用程序需要打开存储在共享驱动器上的文件。 (只有一次,重要信息将被提取并存储在数据库中......文件将被删除)
  11. 我最初的想法是将Silverlight(独立运行)与SQLite结合使用。我运行了一个测试和存储在共享驱动器上的Silverlight文件。 (Silverlight安装在网络上的每台电脑上)这是我首选的前端。但是(如果我错了,请纠正我)我尝试了SQLite-net,我需要将sqlite3.dll添加到我的windows / system32文件夹中,但是在网络PC上我无法访问到Windows文件夹,所以无法完成。

    另外,我读到SQLite或文件一般在多个用户作为一个用户访问时会损坏,所以也许我认为锁定是一个想法。

    我的问题有哪些解决方案?

3 个答案:

答案 0 :(得分:2)

我在一家公司工作了几年,为警察部门编写软件来管理交通碰撞报告。警察局通常几乎没有IT支持,因此我们面临许多类似的限制。该公司实际上使用Microsoft Access数据库做得很好,设置看起来像这样:

共享驱动器有一个Access数据库文件(.mdb或.accdb),它是实际的“数据库”。 客户端计算机(在官员办公桌上)具有Access应用程序,其具有用于临时存储的本地“实用程序”表,在表单中定义的UI以及在模块中定义的逻辑。每个客户端计算机都使用链接表连接到共享驱动器上的存储库。本地客户端配置存储在配置表中的Access应用程序中,或存储在计算机上的文本文件中。

这不是最干净的解决方案,但它允许您使用不需要安装的文件来创建和维护统一的解决方案,并且不需要任何有趣的权限,只要每个人都具有读/写访问权限共享驱动器。

答案 1 :(得分:1)

创建一个网站。今天,你可以在一个独立的.exe中托管ASP网络应用程序。通过这样做,您可以确保共享文件只能由一个进程访问。您还可以限制对sqlite的访问。

这也意味着您不必分发任何东西。只需启动您的应用程序,并告诉您的用户他们也必须浏览哪个网址和端口。

对于权限,只有运行webhost的帐户才需要访问共享文件等。

答案 2 :(得分:1)

你应该看看ScimoreDB。它是一个支持多进程读/写访问的嵌入式数据库。如果需要,它还可以充当客户端/服务器数据库;即使是具有多个节点的分布式数据库。

可以免费使用和部署。它支持C ++和.NET。唯一的缺点是它只适用于Windows。