4

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

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

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

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

注意:这个问题与Enterprise Library Application Blocks OR Home Grown Framework相关,但不一样?.

4

6 回答 6

3

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

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

于 2008-12-04T21:41:47.303 回答
2

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

于 2008-09-10T22:35:48.190 回答
2

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

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

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

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

于 2008-09-10T22:46:21.067 回答
2

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

于 2008-09-10T23:05:36.263 回答
1

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

于 2008-09-10T22:51:49.540 回答
0

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

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

我们目前使用 Caching、Exception 和 Logging 块。我们还没有想到其余的用例。

于 2009-08-30T18:46:46.223 回答