首先让我说,自从大学 Java(我于 2005 年 12 月毕业)以来,我还没有使用过大量的 OO 编程语言进行编程。自从我毕业以来,我一直在使用 FoxPro 2.5 - VFP9 进行编程。现在,我工作的公司正在推动将我们所有的 FoxPro 应用程序转换为 C#。
我在这个项目中的一部分是转换我们的报告解析应用程序。在 VFP9 中,它由 5-6 个表单(没有一个会被继承,因为我们已经创建了一个新的 C# 前端来替换它)、一个包含我们所有标准方法的Base类和大约 575 个单独的解析器类(其中一些只设置一些解析器特定的变量/属性并调用所需的基类)。一些解析器包含他们自己的自定义方法,这些方法仍然使用基本方法和全局属性并与之交互。
现在我的问题...
从设计的角度来看,我们希望我们的新 C# 前端生成多个可执行文件(3-5 个 EXE),这些可执行文件将调用我们新的 C# 基础/解析器类库 (DLL)。我最初的想法是我将拥有一个包含 Base_Code.cs 和其他 575 个 parser.cs 文件(H1.cs、H2.cs、H3.cs 等)的解决方案/项目。但是,我们需要能够独立于其他文件构建每个 .cs 文件,因为我可能会在我的同事更新 H1.cs 时更新 Base_Code.cs。
我如何最好地构建这个?我是保留一个解决方案但创建 576 个项目,还是创建 576 个解决方案都使用与另一个团队当前正在尝试的相同命名空间?
我们在整个基本代码和每个解析器(这些将从前端应用程序传入)中使用了几个全局变量/属性,例如文件路径、文件名等,它们将是静态的,因此需要考虑到这一点在考虑设计时也要考虑。
编辑示例**
C# 前端基本上是一个排队系统和文件/状态查看器。这个前端对我们全天收集的报告进行“排队”。列表顶部的报告确定需要什么 DLL。前端应用程序和 DLL 是完全独立的。
示例:H00001_2342318.MSG - 这将调用 H00001 DLL H00002_3422551.MSG - 这将调用 H00002 DLL
每个 H00001、H00002 等(总共 575 个 DLL)都将使用 BASE DLL 中的方法。
如果我必须更新 H00001 DLL,我需要这样做,而不必重建所有 575 个 DLL。