【问题标题】:To use Enterprise Library or not?是否使用企业库?
【发布时间】:2010-11-04 18:53:36
【问题描述】:

我正在使用具有每个复杂业务逻辑的基于 SOA 的多层企业应用程序。许多业务验证需要来自数据库的大量支持数据,这会降低性能。并发用户数在1000左右。 客户端是多层的,顶部有 WinForms。

我们正在考虑几乎所有的企业库模块。

  • 缓存应用程序块
  • 数据访问应用程序块
  • 异常处理应用程序块
  • 记录应用程序块
  • 策略注入应用程序块
  • 安全应用程序块
  • Unity 应用程序块
  • 验证应用程序块

    1. 企业图书馆是正确的选择吗?
    2. 请推荐您认为更好的库/框架,但请考虑说明它们更好。
    3. 将企业库与其他库混合使用会不会是不好的做法?例如,我们考虑使用 log4net 进行日志记录。

【问题讨论】:

标签: architecture frameworks enterprise-library soa soap-client


【解决方案1】:

在我看来,企业库所做的几乎所有事情都有更好的工具。

  • 数据访问块

    我承认自从我与 EntLib 在一个项目上合作以来已经有几年了,但我记得 Data 块的功能非常有限。功能齐全的 ORM,例如 NHibernate 或 Entity Framework,甚至像 SubSonic 这样的查询工具都提供了更多功能。我从事的每一个不使用 NHibernate 的项目,我最终都实现了我可以使用 NHiber “在盒子中免费”获得的功能。

  • 缓存应用程序块

    使用带有缓存的 ORM 将涵盖缓存块所做的大部分事情。

  • 异常处理块

    这里有一些好的想法,但是这个概念可以大大改进。 Rinat Abdullin 在leveraging action policies for exception handling 上有一些很好的起始信息。

  • 记录应用程序块

    使用 NLog 或 log4net。时期。如果您需要外观,请使用Simple Logging FacadeCommon.Logging。日志记录是一个非常有限且定义明确的组件。这些框架几乎相同且稳定。无需过于复杂。

  • 策略注入和统一块

    研究 DI/IoC 并选择一个。几乎不会出错。这里有一个a good list 值得考虑。

  • 安全和验证块

    此时,我们已经为 EntLib 的大部分内容找到了更好的选择,因此将其作为支持安全性或验证的依赖项引入感觉很沉重。同样,还有很多其他工具可以协助安全 (Rhino Security) 和验证 (xVal, Lokad)

【讨论】:

  • 我同意验证应用程序块 (VAB) 就像您所说的那样非常“重”。在基础上并不难掌握,但是当你想做更多的事情时,它很快就会变得复杂。然而,VAB 支持许多其他验证框架根本无法实现的场景(例如基于配置的验证、使用规则集区分错误和警告等)。它是我所知道的最灵活和可扩展的验证框架。这种灵活性是以复杂性为代价的。 VAB 是否适合您的项目完全取决于您的要求。
【解决方案2】:

我已经使用企业库(旧版本)一段时间了,没有遇到任何问题。

我认为使用一组有凝聚力的库肯定比拼凑一个库的拼凑工作(如果你要使用很多的话)有一个优势。

我发现日志记录块非常好 - 它是高度可配置的,如果您使用得当,您将能够以极大的灵活性全面记录日志。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-04-15
    • 1970-01-01
    • 1970-01-01
    • 2010-09-25
    • 2010-11-02
    • 1970-01-01
    • 1970-01-01
    • 2010-12-25
    相关资源
    最近更新 更多