0

我有一个团队正在 CAB/SCSF 上构建一个复杂的富客户端用户界面。我们正在考虑的设计元素之一是 CAB 模块的动态加载,并且可能是 CAB 视图本身。利用“开箱即用”的 SCSF/CAB 将在启动时自动加载所有模块组件。我们的富客户端应用程序的启动时间很重要,并且会随着我们添加更多模块而增加。

我只是好奇那里的其他人是否看过 CAB 模块加载过程的标准开销。这一切都在 CAB 视图的加载范围内吗?如果是这样,是否有人考虑为 CAB 视图设计“按需”加载机制,以便最大限度地减少模块装配加载占用空间?这里的想法是在第一次真正需要它之前不应该加载视图。在模块级别设计“按需”加载机制有什么真正的好处吗?

对最佳实践的想法将不胜感激......

(请注意,这个问题最初出现在http://social.msdn.microsoft.com/Forums/en-US/modelingandtools/thread/dce936fe-45f9-420c-90ca-286a8d553e35上,所以我复制粘贴了由担)

4

2 回答 2

0

我们将 CAB 广泛用于我们的应用程序,因为我们有一个非常复杂的 UI 和相应的复杂业务逻辑。在我们的例子中,使用 cab 确实增加了开销,因为框架不仅设置了视图,还设置了工作项的层次结构以及所有 ui 组件之间的连接。但我相信与实例化和加载我们的应用程序所需的所有对象和数据所需的时间相比,时间并不重要,尽管有一天,我们需要彻底测试这个假设。

为了帮助我们管理加载时间并管理可用功能,我们 --> 拥有自己的配置管理器,我们可以使用它来选择性地仅加载所需的模块 --> 允许仅在用户请求时创建视图的设置不是事先 -> 仅在手动刷新时延迟加载数据 -> 设置以根据用户需求限制我们网络服务的数据输出。

于 2010-08-26T02:37:59.920 回答
0

据我所知,模块加载不会花费太多时间。我们在 SCSF 上有两个企业级应用程序,其中一个源代码超过 700mb!它非常庞大,我们在加载模块时从未遇到任何问题。在创建视图之前,它不会在内存中实例化。有关模块中视图的信息已加载但未实例化。您的陈述令人困惑。

我怀疑你们在第一次加载模块时执行了哪些服务调用或其他应用程序设置。

于 2011-08-17T18:51:35.830 回答