【问题标题】:XAML vs. controls created at runtimeXAML 与在运行时创建的控件
【发布时间】:2011-09-28 13:20:45
【问题描述】:

在 Windows Phone 中,从性能的角度来看,在 XAML 中定义控件还是在运行时动态创建它们更好? XAML 和运行时控件的优缺点是什么?

【问题讨论】:

    标签: c# silverlight performance xaml windows-phone-7


    【解决方案1】:

    我记得读过 Xaml 加载比代码中的等效创建更有效,但是:

    影响速度的因素包括命名元素的数量(因为它们通过在设计器文件中的查找连接到代码隐藏成员)以及相似/总元素的数量。

    从业务角度来看,将其保存在 Xaml 中是一种更容易维护项目的方法。 Xaml 的全部目的是让设计人员能够独立于编码人员处理外观。

    【讨论】:

      【解决方案2】:

      我认为我说的对,性能明智没关系。

      从开发人员的角度来看,在 XAML 中定义的控件可以实现清晰的分离,如果您使用 MVVM,您将获得模式带来的所有好处(单元测试、清晰的分离、更好的可管理性等)

      此外,如果您在 XAML 中定义了控件,您的应用将更适合 Blend 开发,并允许您直观地控制应用的外观。

      我更喜欢将所有 UI 控件保留在 XAML 中,并在代码中完成具体细节。但该框架旨在满足所有开发人员的口味

      【讨论】:

        【解决方案3】:

        我认为,如果您尝试使用纯代码来定义动画/VisualStates,您会意识到 Blend 可以有多棒。

        Binding 语法在代码中也感觉不太可读,但是,这可能是个人喜好问题。

        【讨论】:

          【解决方案4】:

          性能差异可以忽略不计,甚至不应该是一个因素,因为维护和代码质量差异如此之大。代码生成的控件难以维护,难以设计和样式化,并且使开发人员更难遵循应用程序流程。您基本上是在询问使用可以提供设计时视图、将表示逻辑与业务逻辑分开并允许 Blend 等工具接管的 XAML 与否定上述所有内容的编程方法之间的区别。如果您决定将您的应用程序移植到 Windows 8 并使用 WinRT 引擎,该怎么办?使用 XAML 方法和 MVVM 之类的模式,您可能会重用大部分代码并简单地更新一些视图,而使用编程方法,所有这些代码都必须被丢弃以支持新的运行时。因此,即使一个与另一个之间存在细微的性能差异,我建议这并不重要,因为其他因素要考虑的重要得多。

          【讨论】:

          • 您好 Jeremy,感谢您的回答,但它有点偏离主题来说明设计时间优势,因为问题是关于应用程序的运行时性能。当应用程序主要由动态创建的控件组成时,我需要调查可能的性能问题(这是要求,应用程序仅适用于 WP7)
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多