生成用户可定义文档的动态 CRUD 应用程序的设计模式

本文关键字:动态 CRUD 应用程序 设计模式 文档 用户 可定义 | 更新日期: 2023-09-27 18:33:31

我正在构建一个 C# 桌面应用程序,用于管理 HR 决策(例如,终止合同、批准请求的休假,...(。这些决定将产生几份主管局文件(例如,合同、清单......

最终用户必须能够:

  • 定义新的决策类型,
  • 定义相应文档的内容(我的意思是定义样板文本,以及需要插入字段中数据的位置(,
  • 更改给定决策类型的文档内容。

我想到的设计

类决策具有字段决策类型。类 DecisionType 有一个属性 FieldsList,它列出了 DecisionType 具有的所有字段的名称及其数据类型。

当最终用户单击按钮输入新决策时,应用程序会生成一个用户表单(我想 WPF 比 WinForms 更适合此,尽管我从未使用过它(,该表单允许创建所选决策类型的新决策。此窗体仅包含该类型的决策使用的字段所需的控件。应用程序将添加所有必需的数据绑定。

最终用户管理每个决策类型的文档内容

  • 样板文本,
  • 需要插入持久数据的位置。

这被保存为一个字符串,其中需要插入字段中的数据的位置由代码指示(例如,字段 BeginDate 的"/[bd]"(。

数据库对所有决策

使用单个表(尽管大多数决策类型不会使用所有字段(。

但。。。也许你们知道更好的方法?

生成用户可定义文档的动态 CRUD 应用程序的设计模式

好吧,似乎只有一张桌子无济于事。我的意思是,除了决策类之外,你还必须创建一个 Person 类。每个人都可以有一个或多个决定,一个决定应该可以由另一个人编辑。

让我们举个例子:

  1. 约翰做出了一个决定,并将其保存为Decision A
  2. 保罗同意Decision A,但希望对此有其他的意见。

我想你可以看到这是怎么回事。
关于技术,我肯定会使用 WPF - 尽管它的学习曲线更陡峭,但一旦你掌握了它,你实际上可以做任何事情。WPF 还建议采用 MVVM 方法,这将大大缩短数据绑定的时间。
至于数据库,我推荐Entityframework。它的Code First方案非常容易理解,你会发现很多信息。

一些有用的链接:
www.wpftutorial.net - 非常基本的介绍性 WPF 信息,非常适合初学者

代码项目 - 面向初学者的 MVVM 示例

Julie Lerman的实体框架网站 - 她是最擅长的之一!

不要放弃,祝你好运。