我正在开发一个 ASP.Net web api 应用程序并在客户端使用 kendoUI。我发现这篇博客文章描述了 KendoUI 和 Telerik 的差异,但它并没有反映这两者之间的任何架构差异。这两个 UI 框架在可能导致性能差异的架构方面是否存在很大差异?我很想知道深度差异以及为什么 Telerik 团队决定提出一个新的解决方案作为 KendoUI。
1 回答
早些时候,我们有所谓的 Telerik Extensions for MVC。Telerik 扩展简化了一些 UI 工作,因为它们可以输出 HTML,但允许开发人员使用一些帮助程序来创建通用控件。例如
<%= Html.Telerik().Calendar()
.Name("Calendar")
.Value((DateTime)ViewData["selectedDate"])
.MinDate((DateTime)ViewData["minDate"])
.MaxDate((DateTime)ViewData["maxDate"])
.TodayButton("d")
%>
上面的代码在客户端呈现时会输出一个日历 ui 控件。这是任何服务器端动态内容创建技术(如 ASP.NET、JSP、PHP 等)的基本原理。客户端 HTML 实际上是在对页面发出请求时从服务器吐出的。
现在有了 Kendo UI,它是一个基于 HTML5 和 JavcaScript 的 UI 控件库 - 可以在客户端初始化一堆 UI 控件,而不必担心服务器端的管道。如果您使用 Kendo UI Web 控件,作为开发人员,您将在客户端初始化我们称为小部件的内容,并使用 AJAX 获取 JSON 有效负载并将其绑定到小部件。例如
<div id="calendar"></div>
<script>
$(document).ready(function() {
// create Calendar from div HTML element
$("#calendar").kendoCalendar();
});
</script>
上面的代码将创建一个剑道日历小部件,但它在客户端初始化。
我们还有用于 ASP 的 Kendo UI Web,NET MVC Wrappers - 意思是 - 与 Telerim MVC 扩展非常相似的包装器也存在于 Kendo UI Web 中。例如
@(Html.Kendo().Grid<Product>()
.Name("Grid")
.DataSource(dataSource => dataSource
.Ajax()
.Read(read => read.Action("AjaxBinding_Read", "Grid"))
)
)
上面的代码在客户端渲染时会输出一个剑道 ui web 网格。
我试图告诉你 Telerik MVC 扩展和 Kendo UI Web 控件之间的基本区别。我们更喜欢您切换到 Kendo UI Controls,因为它们遵循 HTML5 标准,并且也适用于便携式设备。
希望这能回答你的问题。
Lohith (Tech Evangelist, Telerik India)