【问题标题】:Are you using the Microsoft Enterprise Library? [closed]您使用的是 Microsoft 企业库吗? [关闭]
【发布时间】:2010-11-02 16:53:40
【问题描述】:

在我的商店中,我们目前正在开发我认为的中小型项目。我们一直在研究企业库以及它如何能够帮助我们进行开发。我一直特别关注 Logging 块并将其与 Log4Net 进行比较。在我看来,对于简单的应用程序日志记录,Enterprise Library 块将是一个设计过度的解决方案。

话虽如此。您是否在使用 Enterprise Library 以及用于什么规模的项目?您对整个企业库有何看法?

谢谢

【问题讨论】:

    标签: c# .net asp.net vb.net enterprise-library


    【解决方案1】:

    我认为企业库在大多数情况下都过度设计了。不,我们不使用它,但我们的大多数项目都是具有促销性质的短期大容量网站。

    【讨论】:

      【解决方案2】:

      +1 表示过度设计。我们使用 log4net 而不是日志记录或异常处理块。我们使用本机 .NET System.Security 命名空间而不是 entlib 加密块。一些跟踪工具很不错,但我们在生产中没有任何使用它们的工具。

      【讨论】:

      • 这里也一样——我们最响亮的“微软做到了,所以它一定很好”的家伙最终废弃了他最初使用的日志记录块。从那以后,我们没有使用过其他任何一种。
      • 同样的日志记录体验。通过 msdn 风格的令人困惑的文档花费了太长时间,所以我用谷歌搜索,找到了 David Hayden 的例子。很快就换了。
      • 我认为 log4net 也被过度设计了(我不是为应用程序块辩护,它们肯定是过度设计的)
      【解决方案3】:

      不,我们不使用它。事实上,我是 Enterprise Library 块的强烈反对者,因为我已经看到太多新版本的块的向后兼容性问题。

      【讨论】:

        【解决方案4】:

        我们使用它(特别是 Unity、Logging 和 Validation),我不能说我是它的忠实粉丝。

        日志块绝对是过度设计的,具有讽刺意味的是仍然缺乏很大的灵活性。如果我想将更多结构化的日志消息写入数据库,而不仅仅是包含通用消息的单个表,我必须删除和替换多少代码,这让我感到惊讶。文档很粗略,很难理解记录器中实际发生的情况。

        Unity 实际上工作正常。就个人而言,我宁愿完全避免使用 DI 容器,但如果你必须使用一个,Unity 似乎很好。

        我并没有真正参与使用验证块的代码,所以我不能告诉你它是如何工作的。

        但总的来说,我会说是的,它被过度设计了,除非它完全满足您开箱即用的需要,否则您可能最好不使用它。

        【讨论】:

          【解决方案5】:

          Enterprise Library 是一种矫枉过正。它过于复杂和不灵活。所以我们不使用。

          在我们的项目中(包括那些针对 Windows Azure 上的分布式计算场景的项目),我们使用 Lokad Shared Libraries 作为轻量级替代品。它插入 log4net 进行日志记录,Autofac IoC 进行配置,提供自定义业务规则、验证和异常处理(具有可靠性)应用程序块,同时将所有必需的程序集打包在几个 dll 文件中。

          【讨论】:

            【解决方案6】:

            我喜欢与企业库分开的旧应用程序数据块。它非常简单,可以为您节省大量时间。我们尝试搬到企业版块,但不值得。

            我们使用 log4Net 进行日志记录,效果很好。

            【讨论】:

              【解决方案7】:

              我喜欢使用它,尤其是用于小型项目,因为它是“我不在乎,这些东西很简单,可以轻松提供我需要的一切”。

              过度设计?怎么样?

              【讨论】:

                【解决方案8】:

                都是以我相信的名字说的..“企业图书馆” 企业非常大(是的,我知道,很棒的定义......但是,嘿,我现在有点醉了!)

                【讨论】:

                  【解决方案9】:

                  我已经使用了一段时间,但现在我转向了更敏捷和简单的解决方案,例如 log4net 用于日志记录,EF 或 Linq2sql 用于数据访问等等。

                  【讨论】:

                    【解决方案10】:

                    在处理过许多中型大型 Web 项目后,我可以推荐 ent 库中的缓存块,因为它允许您通过简单的配置更改来使用 nCache 或类似的东西。这允许开发团队使用 TDD,而无需在任何地方安装 nCache(或类似的)。

                    Log4Net 远优于 ent lib 日志记录块恕我直言。

                    我用过几次安全/密码学模块,通常发现它们会按照他们在锡上说的做,不会太繁琐或太复杂。

                    框架的其余部分被其他更简单且(恕我直言)更好的解决方案击败 数据访问 - nHibernate、ActiveRecord、Tarantino

                    Unity - 温莎、春天等

                    验证 - 我使用城堡堆栈

                    【讨论】:

                      猜你喜欢
                      • 2010-11-05
                      • 1970-01-01
                      • 1970-01-01
                      • 1970-01-01
                      • 2012-04-30
                      • 2010-10-17
                      • 1970-01-01
                      • 1970-01-01
                      • 2016-09-05
                      相关资源
                      最近更新 更多