【发布时间】:2015-11-16 19:13:56
【问题描述】:
我有一个可在单台 PC 上运行的 WPF 应用程序。我使用 SQL server 数据库,Entity Framework 与数据库通信 和应用程序中的 RDLC 报告。现在,需要使此应用程序在本地公司网络上运行,在该网络中,多个用户(通常最多 25 个左右)将根据角色和权限集访问应用程序。我对此进行了一些研发,主要使用了这里提到的架构http://www.codeproject.com/Articles/434282/A-N-Tier-Architecture-Sample-with-ASP-NET-MVC-WCF,在这样做之后,我做了一个看起来像这样的应用程序设计/架构
在公司网络内的高端服务器上运行的 WCF 服务
- GPC.Service 本身 - 定义连接到服务的协议 以及所有其他必要信息
- GPC.Algorithm - 将是主要的业务逻辑层 包含逻辑并将成为客户端调用的接口 数据库层方法
- GPC.Persistance - 将具有实际的数据库交互方法,例如 获取/存储/更新/删除数据库中的记录
- GPC.Data - 这将包含实体的 edmx 架构 框架
- GPC.Entites - 这将包含数据库架构的实体 和额外的部分类
**
客户:
客户端现在将是一个基于 MVVM 模式的 WPF 应用程序(可能将来我们需要迁移到 Web 应用程序,但现在不需要)。该应用程序的主要组件是:
- 从 excel 导入:目前所有数据都在 Excel 文件中。这一切 数据需要导入系统。
- 编辑/更新/删除:一旦数据被导入,允许用户界面 编辑/更新/删除记录
- 生成报告(为此使用 RDLC)
- 用户/角色管理等
共享: 这是一个包含不同类的库,例如读取 excel 文件的代码、处理错误、将绑定到 UI 的集合等。
数据库上下文:将在 Persistance 层内的 using 语句中为每个方法创建,以确保不留下过时的信息。
此架构是否遵循 n 层架构,是否灵活?这需要哪些改进,请指导我如何改进存在的任何问题。在继续更改现有应用程序之前,我想确保这是一个良好的架构。
【问题讨论】:
标签: c# sql-server wpf design-patterns n-tier-architecture