在Windows Phone中,从性能的角度来看,在XAML中定义控件或在运行时动态创建控件会更好吗?什么是XAML和运行时控件的缺点/优点?
答案 0 :(得分:4)
我记得读过Xaml加载比代码中的等效创建更有效,但是:
影响速度的因素包括命名元素的数量(因为它们通过设计器文件中的查找连接到代码隐藏成员)以及相似/总元素的数量。
从业务角度来看,将其保留在Xaml中是一种更容易维护项目的方法。 Xaml的全部目的是让设计师能够独立于编码器工作。
答案 1 :(得分:1)
我认为我说得对,并不重要。
从Dev的角度来看,拥有XAML中定义的控件可以实现明确的分离,如果您使用MVVM,您将获得模式带来的所有好处(单元测试,清晰分离,更好的可管理性等)
另外,如果您在XAML中定义了控件,您的应用程序将更适合Blend开发,并允许您直观地控制应用程序的外观。
我更喜欢在XAML中保留所有UI控件,并在代码中执行细节。但框架的设计适合所有开发人员
答案 2 :(得分:1)
我认为如果你尝试使用纯代码定义动画/ VisualStates,你会发现Blend有多棒。
Binding语法也在代码中感觉不太可读,但是,这可能是一种品味问题。
答案 3 :(得分:1)
性能差异可以忽略不计,甚至不应成为因素,因为维护和代码质量差异如此之大。代码生成的控件是维护的噩梦,难以设计和样式化,并且使开发人员更难以遵循应用程序流程。您基本上都在询问使用XAML(可以提供设计时视图),单独的表示逻辑与业务逻辑之间的区别,以及允许Blend等工具接管,而不是使用上述所有方法的编程方法。如果您决定将应用程序移植到Windows 8并使用WinRT引擎,该怎么办?使用XAML方法和类似MVVM的模式,您可能会重用大部分代码并只是更新一些视图,而使用编程方法,所有代码都必须被删除,以支持新的运行时。因此,即使两者之间存在轻微的性能差异,我也认为这并不重要,因为其他因素要考虑得更为重要。