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

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

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

是否有一些“每个人”都使用的特定应用程序块?

笔记:这个问题与以下内容相关,但不一样: 企业库应用程序块还是自制框架?.

有帮助吗?

解决方案

我通常将源代码放入我的项目中,然后我可以获得更好的智能感知(以及更好地理解它们)。但我根本不倾向于定制它们。我喜欢拥有它们的库存,这样我就可以在需要时随时分发库存二进制文件。

其他提示

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

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

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

缓存应用程序块:在简单的方案(例如内存中的缓存)中,web.Counting不太有趣。过于复杂。NLog 或 Log4Net 是更好的解决方案。

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

最后我们完全放弃了 EntLib,因为定制起来很痛苦......我建议您真正考虑一个比 EntLib 更不单一的解决方案。

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

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

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

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

我们当前使用缓存、异常和日志记录块。我们还没有想到其余部分的用例。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top