使用微软的应用程序块

问题描述:

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

  • 直接链接到应用
  • 源添加到应用程序,并与他们建立,也许在写应用程序特定代码
  • 作为参考一些定制的
  • 示例代码

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

是否有几个特定的​​应用程序块被“所有人?”使用?

注意:这个问题与Enterprise Library Application Blocks OR Home Grown Framework?有关,但不相同。

我通常会将源代码放入我的项目中,然后我可以获得更好的智能感知(并更好地理解它们)。尽管如此,我并不倾向于定制它们。我喜欢将它们存储起来,以便随时随地分发库存二进制文件。

我已经试过企业库3.1(2007年5月)的几个应用程序块和这里有一些评论:

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

我看着其他的块,但他们似乎不适合我们的项目。

最后,我们完全放弃了EntLib,因为它很难定制... 我会建议你真的考虑一个比EntLib更小的整体解决方案。

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

+0

供参考:您可以完整地添加它们,并在配置管理器中指定它们不要使用解决方案进行构建。 – GEOCHET 2008-09-10 22:54:15

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

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

对于通常编码更好的Microsoft类(即Log4Net,nUnit等),也有开源的替代方案。微软的代码往往臃肿且效率低下。

我们通过添加对DLL的引用来使用这些块,确保设置了“copy local”,以便将它们与应用一起部署到应用的bin文件夹中。这意味着我们不必与GAC混为一谈 - 简单得多!

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

我们目前使用缓存,例外和日志记录块。其余的我们还没有想到一个用例。