2010-10-23 107 views
0

我正在研究一个学校部门的简单标记管理系统(让我们假设它是数学部门)。他们希望有一个简单的系统让用户在每个学生进步时输入分数,每学期输入分数,获得年度平均分,老师分类等。创建一个简单的多用户桌面应用程序

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

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

我正在寻找一些有关我应该用什么来创建实际前端的见解。我倾向于一个C#WPF应用程序。虽然我已经通过DreamSpark为uni使用了专业版(或者是旗舰版),但这个项目并未被许可证所覆盖,所以我将不得不使用Express版。

我想知道什么功能缺失,可能会阻碍我。数据库方面并不是真正的问题 - 虽然LINQ或EF是可取的,但我并没有Sqlite与Linq合作,我也不确定EF是否在Express版本中。有了这个说法,但是如果我需要的话,我并不介意自己做所有的数据库工作。我真正需要的是一种与数据库连接的方式。使用VS 2010 Express执行此操作的最佳方法是什么?有没有免费的解决方案,我可以用它来使这更容易?

使用WPF,缺少的是什么?所有(最?)的控件是否可用?

基本上我只是想弄清楚会对我施加什么限制,什么可能会给我带来麻烦。

如果您有任何其他建议,我很乐意听到他们。另外,我还记得听说微软有一些程序可以让初学开发者便宜或免费使用这些工具几年或几年。任何想法它被称为 - 没有运气谷歌搜索它。

回答

2

我一直在使用MS-访问自1995年以来已经有足够的与MS-访问不好的经验,在通过局域网并发多用户的读/写的情况下,特别是当网络传输层不稳固时。可能导致错误时刻的超时连接和数据损坏。我也在Oracle和SQL-Server上编程,但有些客户根本不想承担真正的客户端服务器(与共享文件不同)的额外成本,无论你告诉他们什么恐怖故事。

您可以使用System.Data连接到SQLite。SQLite库可用到http://sqlite.phxsoftware.com/,但由于SQLite在写入操作期间使用独占文件锁定,它也可能因传输层异常而受到破坏,当涉及无线连接时,这种异常并不少见。

我倾向于推荐:a)如果您选择像Access或SQLite这样的共享文件体系结构,或者b)一个真正的客户端 - 服务器引擎,并且客户端运行时向后端提供Web界面在桌面上。如果您选择使用它们而不是开放源代码,您的学术客户可能有资格获得主要商业公司的特许折扣。

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

+0

+1 web前端解决了这种情况下的大部分基本问题。这非常简单(即不是实时股票交易),不足以保证高级本地客户承担通常引入的所有维护负担和通信问题。如果这是您所熟悉的,则可以在Web服务器端访问,从中删除LAN和多客户端连接问题。 – 2010-10-23 13:55:13

0

而且,我记得听到微软 有一些程序,开始了向 工具 开发廉价或免费接入几年或什么的。 任何想法它被称为 - 没有 运气谷歌搜索它。

WebSiteSpark程序

+0

BizSpark适用于新开发人员 - 并且与桌面更相关。 WebSiteSpark适用于Web开发人员,他们不必成为初创公司。 – 2011-03-26 01:22:05

0

不要忘记,Sql Server最近出现在free版本中。

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

什么是重新启动数据库软件的挂断,如果您重新启动服务器,文件共享将会脱机。另外,你不应该使用VS2010 Express遇到任何严重的限制,值得注意的是,缺少的组件是单元测试,插件支持,源代码控制集成。

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

+0

我刚刚在大学完成了一个WPF的学期,所以我很舒服。这不是真的问题。问题是我没有任何控制权的服务器。我在那里开发和部署应用程序。他们只需要一些简单的东西,并且考虑到所有因素,PHP/Sqlite解决方案目前看起来相当不错。我在部署后需要最少的维护。 – NRaf 2010-10-25 06:55:04

相关问题