我有一个团队正在CAB / SCSF上构建一个复杂的富客户端用户界面。我们正在考虑的设计元素之一是CAB模块的动态加载以及可能的CAB视图本身。利用SCSF / CAB“开箱即用”将在启动时自动加载所有模块组件。我们的富客户端应用程序的启动时间很长,并且随着我们添加更多模块而增长。
我很好奇其他人是否看过CAB模块加载过程的标准开销。这一切都在CAB Views的加载范围内吗?如果是这样,有没有人考虑为CAB Views设计一个“按需”加载机制,以便最小化模块组装 - 加载足迹?这里的想法是,在第一次实际需要之前,不应加载View。在模块级别设计“按需”加载机制是否有任何实际好处?
非常感谢对最佳实践的思考......
(请注意,这个问题最初出现在http://social.msdn.microsoft.com/Forums/en-US/modelingandtools/thread/dce936fe-45f9-420c-90ca-286a8d553e35,所以我复制粘贴了Dan写的问题)
答案 0 :(得分:0)
我们将CAB广泛用于我们的应用程序,因为我们拥有非常复杂的UI和相应复杂的业务逻辑。在我们的情况下,使用cab会增加开销,因为框架不仅设置了视图,还设置了工作项的层次结构以及所有ui组件之间的连接。但我相信,与实例化和加载所有对象所需的时间相比,时间并不重要。我们的应用所需的数据,虽然有一天,我们需要彻底测试这个假设。
帮助我们管理加载时间并管理我们的可用功能 - >拥有我们自己的配置管理器,我们可以使用它来有选择地只加载所需的模块 - >设置允许仅在用户请求视图时创建视图,而不是在手动之前创建视图 - >仅在手动刷新时延迟加载数据 - >设置根据用户需求限制网络服务的数据输出。
答案 1 :(得分:0)
据我所知,模块加载不需要太多时间。我们在SCSF上有两个企业级应用程序,其中一个源代码超过700mb!它非常庞大,我们从未在加载模块时遇到任何问题。在创建视图之前,它不会在内存中实例化。有关模块中视图的信息已加载但未实例化。你的陈述令人困惑。
我怀疑在第一次加载模块时你们会执行哪些服务调用或其他应用程序设置。