我有一个团队,他们正在CAB/SCSF上设计一个复杂的富客户端用户界面。我们正在考虑的设计元素之一是CAB模块的动态加载,也可能是CAB视图本身。利用SCSF/CAB“开箱即用”将在启动时自动加载所有模块程序集。富客户端应用程序的启动时间非常长,并且会随着我们添加更多模块而增长。
我只是好奇其他人是否看过CAB模块加载过程的标准开销。这些都在驾驶室视图的加载范围内吗?如果是这样的话,有没有人考虑过为CAB视图设计一种“按需”加载机制,以便最小化模块组装加载占用的空间?这里的想法是,在第一次真正需要视图之前,不应该加载它。在模块级别设计“按需”加载机制有什么实际的好处吗?
对最佳实践的想法将不胜感激。
(请注意,这个问题最初出现在http://social.msdn.microsoft.com/Forums/en-US/modelingandtools/thread/dce936fe-45f9-420c-90ca-286a8d553e35上,所以我已经复制粘贴了丹写的问题)
发布于 2010-08-26 10:38:00
我们在应用程序中广泛使用CAB,因为我们有一个非常复杂的UI和相应的复杂业务逻辑。在我们的例子中,使用cab确实增加了开销,因为框架不仅设置了视图,还设置了工作项的层次结构以及所有ui组件之间的连接。但我认为,与实例化和加载应用程序所需的所有对象和数据所需的时间相比,时间并不重要,尽管有一天,我们将需要彻底测试这一假设。
为了帮助我们管理加载时间和管理可用的功能,我们-->有我们自己的配置管理器,我们可以使用它来选择性地加载所需的模块-->允许视图仅在用户请求时创建而不是在手动之前创建的设置-->仅在手动刷新时延迟加载数据-->根据用户需求限制从网络服务输出数据的设置。
发布于 2011-08-18 02:51:36
据我所知,模块加载不会花费太多时间。我们在SCSF上有两个企业级应用程序,其中一个的源代码超过700mb!它非常庞大,我们在加载模块时从未遇到过任何问题。在创建视图之前,它不会在内存中实例化。模块中有关视图的信息已加载,但未实例化。你的陈述令人费解。
我会怀疑当模块第一次加载时,你们会执行什么服务调用或其他应用程序设置。
https://stackoverflow.com/questions/3469187
复制相似问题