使用Microsoft的应用程序块

时间:2008-09-10 22:30:38

标签: .net design-patterns application-blocks

我没有做过很多.NET编程,但我已经检查了微软的模式和实践小组发布的一些应用程序块。我想知道这些通常是如何使用的:

  • 直接链接到应用程序
  • 将源添加到应用程序中并使用它们构建,可能还有一些自定义的
  • 在编写特定于应用程序的代码时用作参考的示例代码

我确信所有这三种用法都很常见,但最典型的使用模式是什么?

“每个人”都使用了一些特定的应用程序块吗?

注意:此问题与Enterprise Library Application Blocks OR Home Grown Framework?有关,但不一样。

6 个答案:

答案 0 :(得分:3)

我已经尝试了几个Enterprise Lib 3.1的应用程序块(2007年5月),这里有一些评论:

缓存应用程序块:在简单场景中比System.Web.Caching更不感兴趣(如内存缓存) 异常处理&记录:过于复杂。 NLog或Log4Net是更好的解决方案。

我查看了其他街区,但它们似乎不适合我们的项目。

最后我们完全删除了EntLib,因为定制很痛苦... 我建议你真的考虑一个比EntLib更少的单片解决方案。

答案 1 :(得分:3)

我广泛使用了微软的企业库。如果可能,通常不应将它们包含在您的项目中。增加的编译成本可能很高。此外,没有理由让项目中的源代码使用这些类。只要在项目中添加对DLL的引用,您仍将在编码期间获得智能。建议避免在开发人员环境中放置多个代码库。如果您需要自定义类,请在自己的解决方案中打开它们并保持一个版本处于活动状态。当然,如果您需要回滚更改,我总是强烈建议使用版本控制(VSS或Subversion)。

还有Microsoft类的开源替代品,通常编码更好(即Log4Net,nUnit等)。 Microsoft代码往往臃肿且效率低下。

答案 2 :(得分:2)

我通常将源码放入我的项目中,然后我可以获得更好的智能感知(并更好地理解它们)。我根本不倾向于定制它们。我喜欢让它们存货,所以我可以随时分发股票二进制文件。

答案 3 :(得分:2)

我们只是将EntLib 3.1二进制文件放在全局程序集缓存中,并在我们的项目中添加引用。但是,我们通常只使用日志框架。

答案 4 :(得分:1)

我认为最方便的方法是添加App blocks \ EntLib作为解决方案项。这样,每次构建项目时都不会重新编译它们(它们根本不会参与构建过程),您可以轻松访问它们的源代码\ set breakpoint等。

答案 5 :(得分:0)

我们通过添加对DLL的引用来使用块,确保设置“copy local”,以便将它们与应用程序一起部署到应用程序的bin文件夹中。这意味着我们不必再与GAC打交道 - 更简单!

调试时,只要您的硬盘上有EntLib源代码,Visual Studio仍然可以进入源代码,即使它没有直接包含在您的项目中。它将在第一次使用时提示您输入位置,然后记住它。

我们目前使用缓存,异常和日志记录块。我们还没有考虑过剩下的用例。