【问题标题】:Architecting/Maintaining/Deploying large applications [closed]架构/维护/部署大型应用程序[关闭]
【发布时间】:2009-02-21 03:01:50
【问题描述】:

在工作中,我们有一个非常大的应用程序,其中包含多个子应用程序。 (500 + dll)

作为开发人员,处理所有这些 dll 和依赖项非常令人沮丧。您创建一个新项目并添加 5 个以上的 dll 以使系统的核心部分正常工作(日志记录、审计、安全、消息传递等)。我们添加的每个新子应用程序,我们都会创建一个 Web 项目、一个业务层、一个数据层以及在这 3 个项目之间共享对象所需的任何其他项目,因此我们的列表不断扩大。

我的问题是管理此问题的最佳方法是什么?我似乎想不出什么是最好的..模块化方法似乎有利于可重用性和热补丁项目,而无需为一个应用程序关闭系统。但是管理 500 个 dll 的头痛是一场噩梦。

每个子系统真的需要 3-4 个项目,并参考其他 5 个核心部分吗?

还有哪些其他管理大型项目的方法要牢记管理/开发和部署?

【问题讨论】:

标签: .net architecture project-management deploying


【解决方案1】:

我在所有类型的项目(目前我从事 250 多个 dll 项目)的命名准则方面都有很好的经验。 如果您(或其他任何人)选择了良好的命名约定,您首先会看到“它”是什么,并且您知道您需要如何命名。

不用担心项目中的引用计数。如果您每次都对添加 X 引用感到沮丧,您可以创建一个宏来代替您执行此操作。或者您可以根据您的特殊要求创建模板 VS 解决方案/项目/项目(文件)。

大型项目很大,所以如果您必须处理大量的 dll、类等,这不足为奇......

【讨论】:

    【解决方案2】:

    这是一场持续的战斗。我们的系统有大约 100 个不同的项目:主要是 C#,还有一些 C++ 项目用于低级的东西。如果我们添加一个新的 C# 项目,我们必须添加对六个其他项目的引用,以获取基本功能。

    在您的示例中,您说您为每个子应用程序创建三个或更多项目(Web 项目、业务层、数据层等)。虽然我们创建了这些层,但我们尽可能地保持它们相同项目,特别是为了避免添加不必要的项目。我们不会将子应用程序分解为不同的项目,除非它要分布在多个进程中,或者如果我们知道整个系统的其他部分需要与该子系统进行通信。

    很可能每个子系统确实需要引用核心部分。它是否需要 3-4 个项目取决于您如何构建它。我们发现,将新项目的创建限制在与其他项目通信或由多个子系统使用的部分已大大减少了我们必须应对的项目数量。

    【讨论】:

    • 如果您不将层分解为不同的项目,您怎么知道您没有无意中创建循环引用,从而破坏了您以后在必要时分离它们的能力?
    • 我并不总是知道我没有创建循环引用。但没关系。如果我无意中创建了一个循环引用,那么当(如果)我必须将它们分开时,我会处理这个问题。
    • 这种分离移除循环引用的痛苦已经扼杀了许多项目并使许多团队士气低落。只创建单独的项目要容易得多,而且您已经创建了该功能。
    • @RobW - 您的里程可能会有所不同。我的经验是,解决循环引用所带来的不常见的轻微痛苦远低于维护 3 倍或 5 倍以上项目的持续烦恼。
    猜你喜欢
    • 2010-10-25
    • 1970-01-01
    • 2010-11-12
    • 1970-01-01
    • 1970-01-01
    • 2011-10-31
    • 2010-10-30
    • 1970-01-01
    • 2019-08-23
    相关资源
    最近更新 更多