1

我正在开发一个包含许多模块(CRM、库存、管理等)的大型 Web 应用程序。我想要完成的是能够独立开发每个模块(UI、核心逻辑、数据访问逻辑和所有),然后将它们全部集成到一个核心模块中(这种集成应该只是配置文件中的更改)。例如,如果我有一个名为 Host 的核心模块,我应该能够将 CRM 模块添加到主机模块,只需将此行添加到主机的配置文件中:

<module name="CRM" />

我在 WCSF 上做了一些阅读,发现它可以帮助将一些模块集成在一起,但在集成这些 UI 元素方面它确实没有提供太多帮助。
一些朋友建议使用MEF来完成这项工作,但我还没有看过。
你们有什么感想?
是否有可能实现这种级别的模块化,我需要投入多少工作才能让它工作?

4

2 回答 2

1

当我读到这个问题时,我想:出于多种原因,我会选择 MEF 并避免使用 SCSF

  • MEF 实现起来非常轻量级,尤其是与 WCSF 相比
  • WCSF 有很多入门要求
  • WCSF 为典型操作增加了不必要的复杂性
  • MEF 已经有许多选择模块的选项
  • 格伦布洛克(MEF 之父)摇滚!
  • Glen 总是让 MEF 同时变得更好、“更简单”和“更强大”。
  • MONO 人也尝试和 MEF 一起玩
  • WCSF 是 WF 1(不是 WF 4,它不是关于最近的问题,而是关于 WF 1 中的许多问题)

然而,这一切都不算数。WCSF 和 MEF 是不同的。这个论点对我来说听起来很不正常。

例如,对于您所追求的,WCSF 就是为此而生的。MEF 适用于每个模块内部的功能,例如它是否更好。

你喜欢 MVC 吗?您是否考虑过 MVC 2.0(现在的 RTM)区域功能?

编辑: 请参阅这 5 部分系列:http: //blogs.msdn.com/simonince/archive/2008/06/19/wcsf-application-architecture-5-defining-modules.aspx

Edit2 这个链接在 IoC(这似乎是您对 MEF 的看法)和 WCSF 之间进行了大量讨论: http ://theniceweb.com/?cat=45

于 2010-04-07T11:53:39.870 回答
1

这就是 MEF 所做的,并且随着它成为 .NET 4 的 BCL 的一部分,我肯定会这样做(请注意,它也以开源形式提供给 .NET 3.5 SP1)。

但是,不要期望任何工具能够让您神奇地开发松散耦合的代码。它首先是一门设计学科。您还可以使用常见的依赖注入和插件模式编写模块化应用程序,只使用简单的 BCL(尽管 DI 容器会有所帮助)。

于 2010-04-07T11:44:21.730 回答