我在 Visual Studio 中开发一个内部 Web 应用程序,这是一个 Visual Basic 项目。该网络应用程序在一个设施中使用,并将针对其他设施进行更大的扩展。我正在寻找管理此 Web 应用程序 4-5 个不同版本的最佳方法。我最大的想法是如何让它们略有不同,如果公共更新必须跨越所有应用程序,我不必单独打开每个项目。
有什么想法吗?
我不会有 5 份不同的副本。不要走那条路。
在一个应用程序中编写所有代码和功能。
如果 2 个站点存在一些“微小”差异,则在表格或其他内容中进行一些设置,然后对差异进行编码。
这样,您只需维护一份副本、一个应用程序即可,因此更好的是您可以使用 GitHub,然后开始比赛。
如果这 5 个站点差异很大呢?然后您就有了 5 个站点,故事就结束了。
事实上,在大多数情况下,您计划拥有多个站点,但每个站点都非常接近,但又有点不同?这表明缺乏数据库规范化,并且简单地说缺乏开发人员的能力。
我一次又一次地看到这个! - 您最终将获得 5 倍的工作量和 5 倍的维护成本。
我的意思是,公司构建一个会计包,它可以适用于一百万种不同类型的业务。
作为开发人员,您需要建立一个网站。如果所有这些人都说 5 个站点 99% 相同,那么这只是设计师的懒惰,他们缺乏正确设计软件和代码来处理给定任务的客户的能力。
起初,您似乎节省了金钱和时间。嘿,我们只是制作一份完整的副本,然后为一位客户进行一些更改。随着时间的推移,您将形成我们行业中所谓的“技术赤字”。
这意味着您正在用未来的工作换取“现在”,并做出巨大的妥协设计决策。
随着时间的推移,你最终会拥有 5 个不同的网站,只希望你不要听从这里的建议。
如果会计包可以提供灵活性,可以在任何企业附近运行,从花店到建筑公司,根据劳动力或材料处理工作成本,然后是一些只卖时间来打扫房子的夫妻店?
然后你也可以用正确的方式设计软件。在几乎所有情况下,我发现缺乏正确的数据库规范化会导致设计仅略有不同。这是一个非常糟糕的主意,不要这样做。
现在这似乎很容易,但每个月,这 5 个站点中越来越多的代码将必须单独维护,接下来您就会知道:您有 5 个站点需要维护,还有 5 个代码库。升级网站、改进代码、添加新功能还要花钱吗?现在,您必须将其复制 5 倍或您拥有的任何其他网站。
一遍又一遍地剪切和粘贴代码是不好的,因为你通常可以设计一组例程或一个好的类来实现所需的结果。
整个网站也是如此。您所做的实际上就是进行“巨大的”剪切+粘贴,但它实际上是网站的整个“副本”,并且相当于无意识地剪切+粘贴代码“更糟糕”。但这实际上就是您在这里所建议的。
如果这些网站“非常”相似,或者做很多相同的事情:然后构建您的代码,并添加一些业务规则和代码,允许这些网站具有一些不同的功能,甚至启用功能等。
现在,听起来很容易剪切+粘贴一些代码。现在,“复制”项目听起来很容易。除非无法通过所有其他合理努力来构建一个代码库和一个站点,否则不要走这条路。