4

我正在使用 C#.NET 2010

我正在为 20 个网点开展 POS 项目,并且它已经在每个网点安装和使用。有一天表单发生变化说支付方式,我必须重新设计UI表单以及修改逻辑代码。然后我重新编译项目并将更新发送到所有网点,这并不容易。然后我有一个想法,我需要将项目中的每个表单作为模块分开(如果可以的话我会使用DLL文件),所以当我修改一个表单时我不需要重新编译所有。我只是修改和编译所需的表格并将其更新到网点。

那么我可以将表单编译为 DLL 吗?如果是这样,如何实现?或者,也许我没有走上正确的道路来理解我的想法?

提前致谢..

4

5 回答 5

3

更新

正如CP文章的评论所指出的那样,之前的答案有很多缺陷。本文在 C# 中更好地实现了插件架构。您也可以参考此答案以获取更多选项。

上一个答案

您可以使用插件架构来做到这一点。这是一篇非常好的文章,可能会对您有所帮助。

本文向您展示了如何合并单个模块,作为另一个应用程序的插件或将其用作独立应用程序。本文将演示如何需要进行最小的更改才能获得上述结果。

于 2012-04-18T05:55:44.287 回答
0

您可以在 DLL 中拥有一个表单。表单只是另一个类,实际上通常是多个类(即部分类),就像 DLL 中的任何其他类一样,您将引用相同的类。您只需要确保它是公开的,以便外部程序集可以访问它。

您只需要保持警惕,在同一个程序集中保持紧密合作的表单(即公共引用)可能是一个好主意。您可能会因过度调制而遇到困难。

于 2012-04-18T05:24:16.920 回答
0

我认为分发 DLL 没有任何问题。确保其已签名对安全性来说是个好主意(这可以在 VS 2010 中通过项目属性完成)。您可能应该为您的支付 UI 功能定义一个接口,然后由您的 DLL 中的类实现。然后,应用程序的调用部分(不变的 UI)可以通过此接口而不是通过实际(具体)表单对象进行调用。

于 2012-04-18T05:29:02.190 回答
0

您可以发布 ClickOnce 应用程序,它将减少更新应用程序的难度。

于 2012-04-18T05:38:34.917 回答
0

我对你说“然后我重新编译项目并将更新发送到所有网点的原因更感兴趣,这并不容易做到,为什么你认为“将每个表单作为模块/DLL”会解决你的问题..它是因为从所有项目编译的 DLL 的大小太大而无法发送?如果您试图将每个表单分成自己的模块/dll,那么您最终可能会使用一个解决方案来拥有多个项目...

于 2012-04-18T05:40:45.380 回答