2010-08-12 70 views
0

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

我只是好奇,如果其他人已经看过了CAB模块加载过程的标准开销。这一切都在CAB Views的加载中吗?如果是这样,有没有人看过为CAB视图设计一个“按需”加载机制,以便模块装配负荷足迹可以最小化?这里的想法是,一个视图不应该加载,直到它第一次真正需要。在模块级别设计“按需”加载机制有没有真正的好处?

思考将不胜感激最佳实践...

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

回答

0

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

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

+0

感谢您的这篇文章。你能不能也请指点我在互联网上的任何好资源,以了解更多关于如何实现自定义管理器? – pradeeptp 2010-10-13 18:23:43

0

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

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