创建一个简单的多用户桌面应用程序

时间:2010-10-23 13:10:31

标签: wpf database visual-studio ms-access sqlite

我正在为学校部门制作一个简单的标记管理系统(让我们假设它是数学系)。他们想要一个简单的系统,让用户在每个学生进步时输入分数,为每个学期输入分数,获得年度平均分,由老师分类等。

对负责该部门的人员说,他说最多可能有12到15人通过有线和无线连接访问数据库。我最初觉得Access应该足够了,但经过一些研究,似乎它可能不是理想的选择(15个用户接近推动它,加上无线连接不理想)。

因此,我决定使用基于Sqlite的解决方案。我选择Sqlite的原因是为了缓解每次服务器重启时重启数据库软件等问题。让Sqlite驻留在中心位置,让软件通过LAN连接与之通信。希望它应该可以正常工作。

我正在寻找一些关于我应该用什么来创建实际前端的见解。我倾向于使用C#WPF应用程序。虽然我通过DreamSpark for uni使用了Professional(或者它是Ultimate?)版本,但是这个项目不在许可证范围内,所以我将不得不使用Express版本。

我想知道哪些功能可能会阻碍我。数据库方面并不是真正的问题 - 虽然linq或EF更可取,我不是Sqlite与Linq合作,我不确定EF是否在Express版本中。话虽如此,如果我需要的话,我真的不介意自己做所有数据库的东西。我真正需要的只是一种与数据库连接的方法。使用VS 2010 Express最好的方法是什么?我可以使用免费解决方案来简化这项工作吗?

使用WPF,缺少什么?是否所有(大多数?)控件都可用?

基本上我只想弄清楚会给我带来什么样的限制,以及什么可能给我带来麻烦。

如果您有任何其他建议,我很高兴听到他们的意见。此外,我还记得听说微软有一些程序可以让初级开发人员在几年或几年内便宜或免费访问这些工具。知道它叫什么 - 没有运气用谷歌搜索它。

3 个答案:

答案 0 :(得分:2)

自1995年以来,我一直在使用MS-Access,并且在LAN上并发多用户读/写场景中有很多关于MS-Access的不良体验,尤其是当网络传输层不稳固时。在错误的时刻出现超时连接并导致数据损坏。我也在Oracle和SQL-Server中编程,但是有些客户根本不想承担真正的客户端服务器(不同于共享文件)架构的额外成本,而不管你告诉他们的恐怖故事。 / p>

您可以使用可通过http://sqlite.phxsoftware.com/获得的System.Data.SQLite库连接到SQLite,但由于SQLite在写操作期间使用了独占文件锁,因此它也可能被传输层异常损坏,这些异常是在涉及无线连接时并不罕见。

如果您选择Access或SQLite等共享文件架构,或者b)真正的客户端 - 服务器引擎,客户端运行,我倾向于建议a)后端的Web界面桌面。如果您选择使用它们而非开源,您的学术客户可能有资格获得主要商业公司的大幅许可折扣。

Web界面还允许非Microsoft客户端使用该应用程序。

答案 1 :(得分:0)

  

另外,我记得听说过微软   有一些程序开始   开发商便宜或免费访问   工具几年或什么的。   知道它叫什么 - 没有   用谷歌搜索它。

WebSiteSpark 计划

答案 2 :(得分:0)

不要忘记最近Sql Server有free版本。

有一些限制,但在您的方案中不应该是一个问题。

重新启动数据库软件的问题是什么,如果重新启动服务器,文件共享将会脱机。

此外,您不应该使用VS2010 Express达到任何严格限制,值得注意的缺失组件是单元测试,插件支持,源代码控制集成。

WPF应该为您提供生成丰富界面所需的一切,但是您最大的障碍将是学习曲线。如果你能克服这一点,那么WPF将很好地为你服务。