用ASP.NET Core编写Web应用程序时,除了需要知道C#之外,还需要了解HTML、CSS和JavaScript。创建Windows应用程序时,除了C#之外,还需要了解XAML。XAML不仅用于创建Windows应用程序,还用于Windows Presentation Foundation(WPF)、Windows WorkFlow Foundation(WCF)和Xamarin的跨平台应用程序。
可以用XAML完成的工作都可以用C#实现,每个XAML元素都用一个类表示,因此可以从C#中访问。那么,为什么还需要XAML?XAML通常用于描述对象及其属性,可以描述很深的层析结构。例如,Page包含一个Grid控件,Grid控件包含一个StackPanel和其他控件,StackPanel包含按钮和文本框控件。XAML便于描述这种层析结构,并通过XML特性或元素分配对象的属性。
XAML允许以声明的方式编写代码,而C#主要是一种命令式编程语言。XAML支持声明式定义。在命令式编程语言(如C#)中,用C#代码定义一个for循环,编译器就使用中间语言(IL)代码创建一个for循环。在声明性编程语言中,声明应该做什么,而不是如何完成。
注意:
虽然C#不是纯粹的命令式编程语言,但使用LINQ时,也是在以声明方式编写语法。Entity Framework Core(EF Core)的LINQ提供程序将LINQ查询转换为SQL语句。