我没有做过很多.NET编程,但我已经检查了微软的模式和实践小组发布的一些应用程序块。我想知道这些通常是如何使用的:
我确信所有这三种用法都很常见,但最典型的使用模式是什么?
“每个人”都使用了一些特定的应用程序块吗?
注意:此问题与Enterprise Library Application Blocks OR Home Grown Framework?有关,但不一样。
答案 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仍然可以进入源代码,即使它没有直接包含在您的项目中。它将在第一次使用时提示您输入位置,然后记住它。
我们目前使用缓存,异常和日志记录块。我们还没有考虑过剩下的用例。