VB.NET应用程序块

时间:2012-10-17 19:37:42

标签: asp.net vb.net

对ASP.NET / VB.NET应用程序使用ApplicationBlocks(An Introduction and Overview of the Microsoft Application Blocks)有什么限制?我发现很多网站谈论的好处,例如从Web层离开数据层,但我找不到讨论限制的网页。

1 个答案:

答案 0 :(得分:0)

我认为你不能真正得到一个明显的劣势列表。 Microsoft Enterprise Library是一个很好的库,文档齐全,丰富且具有大量功能。

您应该将问题更改为“当我不需要使用它时”。当然,每个街区都应该重复这个问题。我会尝试总结一下。

对于每个块,您应该考虑在不需要其复杂性时不使用该库。功能不是没有成本,最明显的是复杂性(首先在部署和配置中)。如果您必须提交文档并且您的用户必须更改应用程序的配置,则可能需要提供一些工具或大量文档。复杂性也可以隐藏在代码中,即使EL设计师试图让一切变得简单,也不会像原始解决方案那样容易。

第二个重要的缺点显然是速度。抽象层不能是免费的,你将支付速度成本。在某些情况下,您可能不关心(例如,简单的记录),但在其他情况下可能会出现问题(因此,答案是“它取决于”)。例如,想想Unity应用程序块:您将获得所有注入的强大功能,但您将为此付出巨大代价。

所以什么时候应该使用它?在我看来,这个库的一个重要目标是你不需要一起使用它。您可以在需要时选择需要的块。例如,使用记录和异常处理非常常见,但您可能在整个生命中都不需要Unity。数据访问应用程序块是ADO之上的一个非常薄的层,它简化了许多常见任务,但是您没有获得自己的抽象级别,例如,使用LINQ to SQL或实体(嘿,不要忘记它们有非常不同的用途)并且你应该考虑只在其他一切都不适合你需要的时候使用它。

所以,最后,在我看来,您应该考虑每个块并仅使用,并且只有确实需要企业级库附带的所有复杂性。它不是为小型单用户应用程序设计的(即使有时您可能会发现某些应用程序块可能对特定任务很有用)。它的缺点并不少:复杂性和速度不容忽视(短期解决方案和长期维护计划)。此外,如果你真的需要它的所有功能,你会发现它并不像“随时可用”的解决方案那么容易,你需要编写更多代码来控制它。