代码之家  ›  专栏  ›  技术社区  ›  Razvan Dimescu

建筑。NET桌面应用程序-客户端服务器C#,SQL

  •  2
  • Razvan Dimescu  · 技术社区  · 6 年前

    最近我有机会为一家小型理疗诊所开发PMS(Practice Management System)软件。

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

    我的想法是用Visual C#开发客户端前端,并访问一个中心postgresql服务器。

    我是Windows编程的初学者,所以我想了解如何在C#(WPF或Windows窗体)中实现用户权限和访问级别的最佳实践建议。我已经研究了Visual C#中的凭证类和访问控制列表,但请分享您的想法。

    我想详细说明一下:

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

    例如,只有诊所的所有者才会看到财务报告表,而秘书只会看到预约日记表。

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

    我可能有点不知所措,但这是我的第一个商业项目,所以我热衷于试水。

    5 回复  |  直到 13 年前
        1
  •  5
  •   user1228 user1228    15 年前

    在项目中使用这些工具和技术。

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

    注意:

    去死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可以在一台或多台不需要中央数据库的机器上进行简单部署。快车对它的其余部分有好处。您需要为企业型应用程序购买。别以为你会为此担心。

    在这一点上,我建议Linq使用Sql而不是EF4。我对EF4不满意。看来成功的机会太小了。更像是成功的坑洼。L2S对开发者来说更容易,我想。

        2
  •  1
  •   this. __curious_geek    15 年前

    在项目中使用这些工具和技术。

    • Visual Studio 2008
    • .Net framework 3.5
    • Windows窗体[暂时没有WPF]
    • SQL Server 2005或更高版本
    • 用于数据访问的Linq2Sql
        3
  •  0
  •   Hans Olsson    15 年前

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

    使用之前输入的用户名查找此表中的记录,然后将其检索到应用程序,应用程序可以使用该记录决定向用户显示什么。

    在技术方面,我会使用VS2010,我认为express版本应该很好,无论你知道如何使用任何免费数据库(有SQL Server express,但如果你已经知道了进展,我会使用你知道的)。这里有很多关于Winforms和WPF的问题。

        4
  •  0
  •   Sorin Comanescu    15 年前

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

    patterns & practices: Application Architecture Guide 2.0

    编辑:

    这是针对安全的:

    patterns & practices: Security

        5
  •  0
  •   Andrew McGregor    15 年前

    我建议采用一种完全不同的方法:把它写成一个web应用程序,给他们一个单一站点版本的Firefox来提供UI。

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

    您可能能够为他们做一些漂亮的jQuery或SmartGWT UI。

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