English 中文(简体)
C#中的冗余,可靠性和容错性 - 在哪里查找示例?
原标题:
  • 时间:2008-12-09 17:09:18
  •  标签:

我想学习如何在 .net 中创建真正强大的应用程序-那些具有容错能力并能够承受意外情况的应用程序。我在哪里可以找到有关此主题的文献/指导?到目前为止,我的运气不太好。

最佳回答

我知道至少有一些资源。首先,MSDN上有一篇非常有用的文章,标题为“使用.NET框架的可靠性功能保持您的代码运行”。

克里斯·布鲁姆也在可靠性功能设计时发布了一个有关托管的帖子。 这可以提供一些有用的背景信息。

您可能会发现有用的搜索词包括“高可用性”、“CER”和“受限执行区域”。

祝你好运!真正可用的代码是相当棘手的。 :)

问题回答

如果您从软件实施的角度来看,则值得考虑使用“按合同设计(DbC)”。

根据此来源,合同设计的好处包括以下内容:

  • A better understanding of the object-oriented method and, more generally, of software construction.
  • A systematic approach to building bug-free object-oriented systems.
  • An effective framework for debugging, testing and, more generally, quality assurance.
  • A method for documenting software components.
  • Better understanding and control of the inheritance mechanism.
  • A technique for dealing with abnormal cases, leading to a safe and effective language construct for exception handling.

此外,我建议采用测试驱动开发(TDD)方法,这将有助于推动更健壮的设计。

个人觉得Stephen Toub的文章是关于约束执行区域最好的资源:使用.NET Framework的可靠性特性。最后,CER是任何容错代码的基础,因此这篇文章包含了你需要知道的几乎所有内容,并以清晰简明的方式解释。

话虽如此,您可以选择支持更激进的设计,其中您立即诉诸于应用程序域的破坏(或者在CLR托管时依赖于此模式)。例如,您可以查看隔板模式(如果您对此模式感兴趣并面临复杂的数据流,则可以查看响应宣言)。

话虽如此,“让它失败”的方法可能会出现逆反效果,如果您不能在此之后完全恢复,就像Ariane V所演示的那样。





相关问题
热门标签