会有一个应用程序,它会做3件大事。 A
,B
和C
。这将是一个C#winforms应用程序。设计的产品套件,同时建设/只保持一条
我们的CEO希望这个应用程序将被分为6种不同的产品。
- 只是一个(简单)
- A + B(高级)
- A + B + C(旗舰版)
而这一切对一个或多个用户(许可)。因此,我们现在有6个项目!
如果我们假设三个主要部分确实分开,可以在自己的工作中,我们如何保持一个项目并销售6?
目前有三种方法可以做到这一点,浮现在我的脑海里:
答:有一个基本的骨架,并建立每个A,B,C的一个模块。这样我们只需要处理一个/多个用户的问题。
B:创建一种固体产物,并使用预处理器指令在编译时设置的功能。这非常困难,并且使代码变得丑陋。此外,可能会打破该项目。
C:创建一个版本控制机制,该机制将被设置为允许应用程序具有某些功能。这是最简单的但有两个缺点。这很容易破解,我们为简单用户提供Ultimate版本,这很糟糕。
这是类似Windows的版本问题(住房,基础,专业版,旗舰版)
我们应该怎样设计这个项目?