简述web窗体控件和html控件的异同
HTML 控件不具备任何抽象能力。每种控件与 HTML 标记都是一一对应的。
Web 控件创建了更高级别的抽象,它们没有任何对应的 HTML 标记(如 Calendar 和 DataGrid)。因为它们不直接映射为 HTML 标记,所以 Web 控件还能够在适当的场合起到合并功能的作用(例如用一个 TextBox 控件来代替多个标记)。这种抽象为使用第三方提供的种类丰富的控件工具箱打开了方便之门。 HTML 控件提供了以 HTML 为中心的对象模型。每种控件都包括一个属性集,可以使用该属性集来控制标记的属性。这个属性集使用了字符串名/值对,并且不是强类型的。
在使用 HTML 控件时,编程方式与使用传统的 ASP 进行编程十分类似。因而,HTML 控件提供了一条快捷的移植途径 — 可以通过添加一个 runat=server 属性来将一个标记转变为一个服务器控件。
Web 控件提供了基于表单的、类似于 Visual Basic 的编程模式。它们也提供了属性集,但它们的主要目标在于提供一种安全且具有一致性的对象模型。每种 Web 控件都包含一组标准的属性,如 ForeColor、BackColor、Font 等。
这种对象模型还在像 Visual Studio NET 这样的设计工具中提供设计时体验。 HTML 控件不会自动检测请求页面的浏览器的能力,也不会修改它们提供的 HTML。
Web 控件能够自动对它们生成的结果进行调整,以确保输出结果在高级浏览器和低级浏览器上的工作同样出色。Web 控件还能够针对不同的浏览器提供不同的行为,从而充分发挥浏览器的潜力。例如,validation 控件还可以通过客户端的脚本来创建用于高级浏览器的具有高度交互性的页面。 HTML 控件允许完全控制所显示的内容以及发送到客户机浏览器的内容。
Web 控件提供了更为丰富的对象模型,以及适应多种浏览器的能力。因而,它们没有提供对输出结果的相同程度的控制能力。
在开发 Web 应用程序时,可以根据这两组控件的能力以及需求来从中进行选择。还可以选择在同一页上混合使用这两组控件,使用一种类型的控件并不妨碍同时使用另一种类型的控件。