我下载了Prism v4并运行了安装程序。我进入目录并运行以下两个批处理文件:
- 仅限桌面 - 使用 Mef QuickStart.bat 打开模块化
- 仅限桌面 - 使用 Unity QuickStart.bat 打开模块化
当我编译这些应用程序时,我看不到任何真正的区别。我搜索了 MEF vs Unity,发现了一些优点/缺点,但没有具体说明在 Prism 中使用是否“更好”(我知道这是主观的)。我想也许如果我列出我的要求,有人可以指出我要使用的正确技术(即使它不是 Prism 4)。
- 该应用程序将使用 WPF(而不是Silverlight)编写。
- 主要应用程序将非常薄。
- 主应用程序将使用 Web 服务来构建用户可以访问的“应用程序/模块”菜单。
- “应用程序/模块”将完全包含在其他托管库中。
- 主应用程序通过反射到这些 DLL 中来获取视图和视图模型。
- 主应用程序应该将日志等服务提供给这些“应用程序/模块”。
例如:
基本用户可能有以下选项:
- 仅查看地址记录
所有与地址相关的项目都在 Address.dll 中。
高级用户可能有以下选项:
- 新地址记录
- 打开地址记录(更新/删除)
- 管理用户
所有与地址相关的项目都在 Address.dll 中。
所有与管理相关的项目都在 Admin.dll 中。
该应用程序实际上不应引用这些 DLL 中的任何一个,我计划对其进行反映,以便如果有 100 个不同的模块并且用户只能访问其中的 2 个,则只有其中 2 个被下载和使用。而有权访问其中 10 个的用户将获得这 10 个。
我已经通过 WebService 解决了下载 DLL。:)