.NET桌面应用程序的体系结构 - 客户端服务器C#,SQL

时间:2010-05-17 11:34:04

标签: c# .net sql architecture

最近,我有机会为小型物理治疗诊所开发PMS(实践管理系统)软件。

我是一名计算机科学专业的学生,​​我的课程主要是在Linux上讲的。但是,我的客户端在vista或Windows 7上运行所有计算机。

我的想法是在Visual C#中开发客户端前端并访问中央postgresql服务器。

我是Windows编程的初学者,因此我接受了有关在C#(WPF或Windows FORM)中实现用户权限和访问级别的最佳实践的建议。我已经在Visual C#和访问控制列表中查看了Credential类,但请分享您的想法。

只是详细说明:

我的想法是使用窗体表单编写前端,并根据授予用户的访问级别禁用或隐藏控件/表格/表单。

E.g。只有诊所的所有者才会出示财务报告表,而秘书只会出示预约日记表。

所以我可能需要一个对话框,要求用户登录系统,我应该在数据库中存储或映射这些登录详细信息吗?哪些库或类最适合用于处理这些任务?

我可能会对此表示不满,但这是我的第一个商业项目,所以我很想测试水域。

5 个答案:

答案 0 :(得分:5)

将这些工具和技术用于您的项目。

  • Visual Studio 2010
  • .Net framework 4.0
  • 使用MVVM的WPF
  • SQL Server 2008 Compact或Express
  • Linq to Sql

一些注意事项:

Screw Postgresql。宝贝,你正在开发MS。你会使用Sql Server(LASSP)吗?一定不行。不要试图让所有工具和代码样本与PGRE一起工作,让自己感到心痛和烦恼。

您可以使用VS 2010 Express和Sql Server 2008 Express开发出色的软件。商业软件。无需购买。是的,你在VS中失去了一些较酷的工具,而你在Sql Server中只限于4GB的数据库(R2中的10gb),但我认为你不会错过太多。

我肯定会从4.0开始。目前在3.5和2008年没有任何意义上的发展。你不是通过在3.5中开发来获得任何东西,那么为什么呢?所有3.5代码样本和信息仍然适用于4.0,但反之则不然。

Sql Server compact可以在一台或多台不需要中央数据库的计算机上进行简单部署。 Express对其余部分都有好处。您需要购买企业类型的应用程序。不要以为你不必担心。

此时我建议Linq to Sql over EF4。我对EF4不满意。看起来像成功的坑是相当该死的小。更像是成功的坑洼。对于初学者来说,L2S更容易。

答案 1 :(得分:1)

将这些工具和技术用于您的项目。

  • Visual Studio 2008
  • .Net framework 3.5
  • Windows窗体[没有WPF for timebeing]
  • SQL Server 2005或更高版本
  • Linq2Sql for Data-access

答案 2 :(得分:0)

我从未使用过Postgressql,但我认为可以只在其中添加密码用户,并允许他们访问不同的表。 然后应用程序在启动时要求输入用户名/密码并使用这些详细信息登录。然后你可以有一个用户名表和一个权限表和一个用户名权限表来将它们链接在一起。

使用以前输入的用户名查找此表中的记录,然后将其检索到您的应用,您的应用可以使用该记录来决定向用户显示的内容。

关于技术,我会使用VS2010,快速版本应该没关系我想的和任何你知道如何使用的免费数据库(有SQL Server快递,但如果你已经知道进展我会跟你做什么知道。)。这里有很多问题讨论Winforms与WPF。

答案 3 :(得分:0)

这并没有直接回答你的问题,但我很肯定你会得到一些答案,甚至可能改变你的实际设计决定:

patterns & practices: Application Architecture Guide 2.0

编辑:

这是针对安全的:

patterns & practices: Security

答案 4 :(得分:0)

我建议采用一种完全不同的方法:将其编写为Web应用程序,为其提供单站点版本的Firefox以提供UI。

你可以给他们一个运行Apache,Django和Postgres的Linux或OS X服务器,如果那个服务器能够得到他们日常IT工作的任何人(不应该是你)的正确支持,它将工作在IF和ON。如果他们无法获得维护,请使用服务器上的Windows。

如果您确实需要Windows服务器,我将使用VS2010 Express,C#4.0,带有Fluent NHibernate的ASP.NET MVC,Gallio / MBUnit以及您选择的数据库......但在这种情况下,MS SQL很可能比Windows上的Postgres更好的选择,因为你可以正确地备份它。

你可能有能力为他们做一些不错的jQuery或SmartGWT用户界面。

无论您采用哪种方式,至少您的商业模式代码,最好是所有内容,都必须针对此类应用进行单元测试。此外,您真的应该查看您的法律隐私和数据保留要求对于此应用程序...医疗记录通常受到严格监管。

相关问题