C#中的冗余,可靠性和容错性 - 在哪里查找示例?

时间:2008-12-09 17:09:19

标签: c# reliability redundancy

我想学习如何在.net中创建真正健壮的应用程序 - 具有容错能力且能够承受意外情况的应用程序。我在哪里可以找到关于这个主题的文献/指导?到目前为止,我没有太多运气。

3 个答案:

答案 0 :(得分:4)

我至少知道几个资源。首先,在MSDN上有一篇非常有用的文章标题为Keep Your Code Running with the Reliability Features of the .NET Framework

Chris Brumme在设计可靠性功能时也有post on hosting。这可以提供一些有用的背景信息

您可能会觉得有用的搜索字词包括“高可用性”“CER”和“约束执行区域”。

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

答案 1 :(得分:0)

如果您从软件实施的角度来看,那么可能值得研究Design by Contract (DbC)

根据this source,合同设计的好处包括:

  • 更好地理解面向对象的方法,更一般地说,是软件构建。
  • 构建无错误的面向对象系统的系统方法。
  • 一个有效的调试,测试和更一般的质量保证框架。
  • 记录软件组件的方法。
  • 更好地理解和控制继承机制。
  • 处理异常情况的技术,为异常处理提供安全有效的语言结构。

此外,我建议采用Test Driven Development (TDD)方法,这应该有助于推动更强大的设计。

答案 2 :(得分:0)

就我个人而言,我发现Stephen Toub的文章是约束执行区域的最佳来源:Using the Reliability Features of the .NET Framework。最后CER是任何容错代码的面包和黄油,因此本文包含了您需要知道的所有内容,并以简洁明了的方式进行了解释。

话虽如此,你可能宁愿选择支持更激进的设计,你会立即求助于破坏应用程序域(或者在托管CLR时依赖于这种模式)。例如,您可以查看隔板模式(如果您对此模式感兴趣并面临复杂的数据流,则可能是reactive manifesto。)

话虽如此,"让它失败"如果你不能在那之后完全恢复,那么方法会适得其反,如demonstrated by Ariane V