Cra*_*rge 1 silverlight mvvm windows-phone-7
我一直在使用流行的MVVM Light工具包:这里用于创建我的Windows Phone应用程序,并对模式有疑问.对于每个创建的页面,我们都会创建一个新的视图模型,以使代码保持清洁并促进关注点的分离.但是,ViewModelLocator的构造函数包含每个viewmodel的实例化.
ViewModelLocator的构造函数通常如下所示:
public ViewModelLocator()
{
////if (ViewModelBase.IsInDesignModeStatic)
////{
//// // Create design time view models
////}
////else
////{
//// // Create run time view models
////}
CreateMain();
CreatePage2();
CreatePage3();
CreatePage4();
}
Run Code Online (Sandbox Code Playgroud)
如果应用程序包含一堆页面,即使对于那些可能永远不需要的视图,也不会实例化每个ViewModel会导致性能问题?
我在这里错过了什么吗?
对于任何开销或任何关于性能的担忧,测量开销/问题是个好主意.
确实,当通过.Net,C#,Silverlight,XAML,DataBinding和MVVMLight编写WP7时,你会插入大量的"开销" - 大部分开销都是为了方便编码器,而不是为了用户的利益.
然而,WP7 CPU,视频协处理器,快速RAM和快速SolidState内存都非常快 - 所以有一些开销的空间,你可以使用这些框架来创建令人愉快的,响应迅速的WP7应用程序.
无论如何都要担心性能 - 但最好通过测量来推动这些问题,找出需要优化的地方,或者需要隐藏其他UI功能背后的缓慢的地方.
一般来说,当我测量时,我发现我的性能瓶颈并不是我所期望的......我也发现总会有权衡 - 例如在你关注的问题上,权衡可能是在Locator构造代码运行较慢时,后来的查找代码可以更快地运行 - 因此应用内导航可以更快,但代价是稍微慢一点的启动时间.
归档时间: |
|
查看次数: |
468 次 |
最近记录: |