.net XAML-什么';(打字)的目的是什么?

.net XAML-什么';(打字)的目的是什么?,.net,wpf,xaml,.net,Wpf,Xaml,我目前正在学习WPF和Silverlight。到目前为止,我一直在用Delphi和C#(Winforms)进行开发。在阅读一些关于WPF的书籍和在线观看一些介绍性视频时,我得到的印象是,这个XAML的东西在效率和可用性方面(对于开发人员而言)是一个相当大的倒退。特别是在在线视频中,人们很高兴地键入XAML代码来创建表单和控件,我认为这是一种技术,随着视觉表单设计师等很久以前的到来,这种技术已基本过时。使用表单设计器要快得多,为什么我要通过在XAML中键入文本表示来创建按钮或网格?从属性检查器的下

我目前正在学习WPF和Silverlight。到目前为止,我一直在用Delphi和C#(Winforms)进行开发。在阅读一些关于WPF的书籍和在线观看一些介绍性视频时,我得到的印象是,这个XAML的东西在效率和可用性方面(对于开发人员而言)是一个相当大的倒退。特别是在在线视频中,人们很高兴地键入XAML代码来创建表单和控件,我认为这是一种技术,随着视觉表单设计师等很久以前的到来,这种技术已基本过时。使用表单设计器要快得多,为什么我要通过在XAML中键入文本表示来创建按钮或网格?从属性检查器的下拉列表中选择颜色或字体名称要快得多,为什么要键入颜色或字体名称?真实世界的应用程序GUI真的是通过键入XAML开发的吗


我确信我在这里遗漏了一些东西,尽管我不知道是什么…

嗯,设计师倾向于使用Expression Blend,这是一个强大的xaml设计师。但是是的,我知道很多开发人员将xaml编辑为文本,并且发现它比设计器更容易。

如果您想使用设计器,那么就使用Expression Blend

你是对的,不过在VS中也应该有一些初级设计师

Silverlight虽然来自不同的方向,但典型的控件是Silverlight及其早期的最新产品


说到这里,作为开发人员,我实际上更喜欢以与我更喜欢键入HTML的方式键入XAML。设计师(blend也不例外)将太多的超级内容转储到标记中,而我不希望出现在标记中。

这与手动编写原始HTML非常相似,而不是使用所见即所得编辑器:对结果有更好的控制,无需使用编辑器进行不必要的循环。

因为它更好地进入版本控制系统,所以其他人可以同时更改它而不会产生冲突?因为您可以在emacs中开发整个应用程序?因为你可以很容易地为这些东西编写生成器和检查器?因为很容易控制这个GUI如何查找每个小细节

真实世界的应用程序GUI真的存在吗 通过键入XAML开发

总之,是的。也许不多,但肯定会发生

我与视觉设计师的经验是,他们倾向于添加不必要的面板、固定尺寸和绝对定位,同时需要更灵活、适当缩放的布局。例如,看看stackoverflow


此外,如果您编写自定义控件,通常需要做额外的工作才能使它们与可视化设计器兼容,如果您能够直接编辑xaml,则不需要做额外的工作。

我倾向于手动编写所有xaml,因为我还不精通混合。但是,我与其他一些开发人员合作,他们喜欢使用Blend,它非常适合设置梯度


我建议您下载Blend试用版并试一试,它在Visual Studio中运行得非常好,如果您学会如何使用它,可以节省大量时间。

XAML可以与Glade XML相比较,Glade XML是一种用于存储基于GTK+的GUI的格式。与Windows窗体和WPF不同的是,GTK+实际上是明智的,因为它使用相对定位。在Windows窗体中,当人们开始自定义字体时,绝对定位就变成了一个PITA,而您的GUI看起来像垃圾,有大量的文本剪辑


相对定位很容易手工编码,不像绝对定位,因为你不需要计算出坐标

一旦您了解了如何使用作为WPF一部分的不同面板结构,那么手工编写XAML确实比使用设计器更容易。我发现我可以比使用任何设计器更快地将控件键入表单,并且我可以更好地控制XAML的外观和布局


我只是偶尔使用设计器为窗体上已经存在的控件设置属性。我使用Blend来制作动画,因为我还没有为它准备好XAML。

如果你能键入XAML,那么你理解XAML:)(imho)

知道如何键入它的关键在于知道如何调试、重构和重新组织它。所有这些都无法在Expression blend中完成,对于大型项目,您需要所有这些

这里提出的另一个问题是,手动编写XAML提供了更多的控制,这并不像html那样具有优势。XAML比html和expression blend等编辑器的结构更为结构化,它提供的XAML与手工编写的XAML几乎相同,只有少数例外。

我键入了它

我最讨厌的莫过于设计师的草率、不确定性和难以控制的输出,不管是HTML还是XAML

基本上,如果我创建一个XAML文件,我完全按照我编写其他代码的方式来做

我首先将整个东西分割成一个网格,在所有东西上放置一个精确的像素大小(除了奇数的“自由浮动”空间,我在其中放置“*”),决定什么放在哪里,然后我还添加注释和空行来构造XAML

此外,我拒绝每一个不符合这个标准的XAML,因为它“不可用”,这具有很好的教育效果

草率和忽视最佳实践是致命的罪过,我从不容忍它们。

我不确定现实世界中是否有那么多应用程序使用Silverlight和WPF。然而,从现有的情况来看,是的,很多手工编码的XAML已经完成了。这些工具其实并不存在,但人们希望使用这项技术。。。这就是价格。