问题标签 [application-dependency]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1222 浏览

asp.net - 应用程序/服务器依赖映射

在我自己构建它之前,我只是好奇是否存在这样的工具(免费、开源或商业但价格合理)。

我们正在寻找一种简单的解决方案,以简化在服务器进行维护时使 Web 应用程序联机和脱机的过程。这个想法是我们能够将服务器标记为不可用,然后将所有相关(直接和间接)标记为离线。

我们的第一个概念验证正在运行,我们创建了一个 aspx 页面,其中列出了各种应用程序,这些应用程序具有 App_Offline.html 文件,并在 GridView 中显示友好的“Down for Maintenance”消息。在 GridView 中,每个应用程序都有一个 LinkBut​​ton,单击该按钮后,会将 App_Offline.htm 重命名为 App_Offline.html,反之亦然,以使应用程序联机和脱机。

下一步是设置我们所有的依赖项。例如,我们的商店定位器将依赖于我们的 Web 服务,而这些服务又依赖于我们的 SQL Server。(这是一个简单的例子。我们可以很容易地拥有多个层,或者一个应用程序依赖于多个服务器等。)在这个例子中,如果 SQL 服务器出现故障,我们需要递归下钻以找到所有依赖于它的应用程序,然后通过适当地重命名 App_Offline 文件来关闭和打开它们。

我意识到这将是相对简单的构建,但可能是复杂的管理。我相信我们不是第一个想到这个概念的团队,我想知道是否有任何开源工具,或者你们中的任何人是否做过类似的事情并且可以帮助我们避免陷阱。

编辑 - 更新

我找到了我正在寻找的软件类别。它被称为 CMDB -(配置管理数据库),它通常更像是一种网络管理类型的工具,而不是开发人员工具。我在这个类别中发现了一些开源产品,但没有一个是用 .NET 编写的。

当我意识到我正在寻找一个网络管理员类型的工具时,我曾考虑将这个问题移至 ServerFault.com,但由于我正在寻找代码和可修改的解决方案,所以我将把这个问题留在这里。

0 投票
4 回答
8606 浏览

database-design - 外键中的循环依赖:使用还是避免?

我的应用程序将大量数据从数据库加载到复杂的数据结构中。内存数据结构类似于数据库的结构,这意味着如果数据库包含以下表:

  • 表A,键为A1
  • 表B,键是B1,其中一列是表A的[键]的外键
  • 表C,键是C1,其中一列是表B的[键]的外键

然后我有 A、B 和 C 类,并且:

  • B (B::m_a) 的数据成员是指向 A 的指针
  • C (C::m_b) 的数据成员是指向 B 的指针

这意味着如果我加载数据库,我必须以正确的顺序加载它。如果我首先加载 C,那么它会抱怨它无法设置值 C::m_b,因为它应该指向的实例没有加载。

问题是当 A 中还有一个列是其他表之一的外键时,比如说 C。

我可以通过将所有外键加载为字符串来解决问题,然后在加载所有数据后执行查找,但由于有时我必须加载数百万条记录,我无法在这些上花费内存(尽管是临时的) 字符串。

在阅读了关于好的设计(例如“大规模 C++ 软件设计”一书)之后,在我看来,使用循环引用是一个坏主意。例如,如果文件 XH 包含 YH,但 YH 也包含 XH,那么您可能有一个糟糕的设计;如果 X 类依赖于 Y 类,反之亦然,你可能有一个糟糕的设计,应该通过提取这种依赖关系并引入依赖于 X 和 Y 的第三类 Z 来解决这个问题(X 和 Y 将不再相互依赖) .

将此设计规则也扩展到数据库设计是否是个好主意?换句话说:防止外键中的循环引用。

0 投票
1 回答
364 浏览

architecture - NLayerd 架构中的域服务和基础设施服务有什么区别?

另外,您如何区分域命令和域服务?