【发布时间】:2016-03-29 21:52:13
【问题描述】:
我正在编写一个软件套件,它本质上由使用 WPF 的 C# .Net 中的两个独立应用程序组成。尽管它们看起来可能有点不同,但它们本质上就像同一软件包的精简版和完整版一样工作。完整版包含精简版的所有功能。
我之前通过创建两个独立的应用程序来实现这一点,它们共享一个所有常用用户控件所在的类库。但我现在想知道这种架构是否有更好的设计。
我什至在考虑创建一个应用程序,并在运行时让它决定要使用哪个版本。
任何有此类问题经验的人都可以为我指出正确的方向。
【问题讨论】:
-
默认情况下在精简模式下工作并且需要某种授权才能充满的单个应用程序怎么样?现在没有人关心MB。搜索试用版,和我一样的问题(click)。
-
如果您可以将您的应用程序变成模块化应用程序,那么您可以使用不同的模块(插件)集制作两个版本。
-
您在第 3 段中的想法听起来不错。在 WPF 中,根据某些全局设置让部分 UI 隐藏或修改自己是相当自然的。您还可以使用大量模板选择器并使用名称为“FooTemplate_Full”和“FooTemplate_Lite”的重复模板——当 XAML 需要
templateName时,您可以查找templateName + "_" + App.VersionID或类似的东西。 -
@Sinatr 这就是我想作为使用共享类库的替代方案。我只是犹豫要不要这样做,因为我觉得这可能是不好的做法。如果精简版的要求发生变化以至于与完整版有很大不同怎么办?然后我会得到大量特定于一个应用程序但与另一个应用程序无关的代码。
-
@Dennis 这对我很有吸引力。我可能会这样做,这感觉像是一个更好的解决方案,然后将两者的所有代码打包到同一个类库中。
标签: c# wpf architecture