客户要求一个包含一组PDF表单、一个Web UI和一些不同功能(登录、管理、权限,通常)的系统,我已经确定了一些规则,希望得到一些反馈,甚至可能是关于如何进行的完全不同的想法。主要关注的是这些表单中包含的数据。(不要想WinForms,想想你填写并归档的表单)
首先,PDF表单在某种意义上是无法控制的。不是。是。被改进的。不久前,我编写了一个工具(codeplex上的pdf-orm),将PDF表单(填充类型)转换为对象,这样它们在代码中更容易使用,也更容易返回PDF。所以这部分处理得相当好。问题开始出现在表单中包含的数据以及如何最好地处理这些数据中。当然,大多数字段名都是可怕的(例如person1),但至少它们是可管理的。
这些形式将要改变,并且必须在合理的时间框架内改变(理想情况下几天),因此可维护性/灵活性是一个巨大的焦点。当然,并非所有的形式都会在同一时间发生必然的变化,但在几个月到几年的过程中,它们会发生变化。更令人担忧的是,从生成的PDF中得到的那些名称/字段可能会改变——对它们没有控制(因此我不能将字段名生成的类用作真相,必须有某种类型的转换器)。
我的第一个步骤是,我提出了以“定义”类为核心,每个窗体一个接口(并将此接口用于ViewModel…以后再说)。这些类定义表单中包含的数据。翻译人员会将定义类转换为PDF类(处理表单上的更改,以防像Person1这样的愚蠢的东西变成PersonOne)。验证也将包含在其中——所有的都是可测试的。
然后我有了一个不同的想法,一个严格关注数据本身的想法。保存的数据(XML格式)将通过一个或两个XSLT来呈现UI。这个UI将由一个管理工具(没有开发人员)创建,在该工具中,将完成PDF字段和UI字段的连接,并进行验证。我不太熟悉这种方法的工作原理,如果它可以工作的话,但是我在过去的几天里一直在探索这种方法,但成功率很低。我们还没有真正回答很多这种方法的使用方法。
我有兴趣听听其他的想法、意见和指示。