将窗口从C#应用程序转换为n层和n层面向服务的应用程序

时间:2015-01-05 07:30:42

标签: c# winforms linq visual-studio-2012 linq-to-sql

我们正在为医院开发一个现有的Windows人力资源程序,该程序是用C#,L2S(DBML)和Sql2005编写的,查询是使用LINQ进行硬编码的

当前的应用程序不支持多分支概念,我在应用程序方面没有这方面的经验,我目前对基础架构的了解是:

  1. 两家医院之间将建立VPN连接
  2. 人力资源部门将为两家医院提供服务,它将是中央部门
  3. 每家医院都有自己的组织结构图
  4. 基于上述基础设施,我想知道应该在我们的应用程序中进行哪些更改?

    我正在考虑使用Web Service和Repository模式,在我们的情况下是否推荐?但我仍然不确定该做什么,使用什么以及使用哪种技术

    任何想法都将受到高度赞赏

1 个答案:

答案 0 :(得分:0)

Phew ......我会选择传统的" n层和n层应用程序。使用中央数据库,用户可以分开"分离"由他们在或为其工作的特定医院。虽然,也许超级用户也可以全面了解两家医院的数据。

为什么这些天使用VPN连接?互联网连接是一种选择吗?

传统的设置可能是这样的:

  1. 数据库(SQL Server)
  2. 数据访问层(实体框架)
  3. WPF(MVVM)中的Web应用程序(ASP.NET MVC)/ Windows应用程序
  4. 关于这种设置的一个很好的介绍可以遵循here。这可能会给你一些具体的帮助,并指出你正确的方向。

    初始数据库设计看起来像这样(多分支;):

    <强>医院

    • ID
    • 名称

    <强>员工

    • ID
    • 名称
    • HospitalID(FK - &gt; Hospital.ID)

    用户

    • ID
    • 名称
    • HospitalID(FK - &gt; Hospital.ID)

    从右

    • ID
    • 名称

    <强> UserRight

    • UserID(FK - &gt; User.ID)
    • RightID(FK - &gt; Right.ID)

    多分支部分由UserRight表实现。这里给予用户(关系耦合)查看特定类型数据(员工,工资,评论等)的权利。 UserRight系统中的信息(业务规则)将转换为业务访问层和UI。当用户登录(验证)时,您可以根据自己的权限轻松启用/禁用某些功能

    必须说这对您,您的同事和您的客户来说是一个很好的机会,可以选择使用新的现代框架。正如您已经说过的Web服务,Repository模式。请注意,熟悉新技术和框架可能需要一段时间。

    做一个Google search并让自己了解情况。祝你好运!