个人中心

联系我们

搜索
搜索 登录 免费注册
界面美化
业务优化
开发工具
图像管理
文档管理
Parasoft

新闻资讯

关注工具软件产品最新动态,了解软件开发行业新趋势。

对比 DevExpress ASP.NET MVC 与 DevExtreme MVC 的差异

原创
软件开发
来源:DevExpress
asp.net
ui界面
MVC
DevExpress
2023-09-08
asp.net
ui界面
MVC
DevExpress

我们 DevExpress 提供两个支持 Microsoft ASP.NET MVC框架的主要库:


1、DevExpress ASP.NET MVC 控件

2、DevExtreme MVC 控件


在本文中,我们将深入研究两个看似相似的库,它们都提供 ASP.NET MVC 控件。我们将研究差异、相似之处、优点、缺点和后果。


让我们首先看看服务器端与客户端 Web 开发,因为这种选择对于哪个库适合您至关重要。


DevExpress ASP.NET MVC vs DevExtreme MVC


架构选择和后果


选择 Web 开发平台最重要的问题之一是架构问题:传统的服务器端或客户端 UI 渲染。它很重要,因为它会产生很多后果。我建议阅读本节,但对于那些没有时间的人,这里有一个简短的描述:


太棒了;服务器渲染 UI 与客户端渲染 UI 的选择会影响软件系统的整体架构,因此建议在做出有关特定组件库的决策之前分析这一问题。


服务器端


如果您使用服务器渲染的 UI,这意味着您需要一个足够强大的服务器来动态渲染页面(根据请求)。通常,这可以使用服务器上描述页面的模板文件以及插入动态内容的扩展模型来实现。这两个框架都使用这种方法,其中 ASP.NET WebForms 使用 ASPX 页面,ASP.NET MVC 使用 Razor 文件作为模板。


虽然 WebForms 和 MVC 之间的组件模型不同,但它们都在服务器端 .NET 环境中呈现。这意味着可以使用基于.NET的数据访问方法,用C#编写业务逻辑,并将状态保存在服务器端。甚至动态浏览器或用户特定的渲染也可以在服务器上执行,这可能取决于用户区域设置或从安全系统查询的权限。


该模型使程序员能够在服务器环境中感到宾至如归。然而,由于渲染需要大量的服务器往返,因此 ASP.NET WebForms 的成本可能会很高。它还使得几乎不可能在服务器可能不可用的环境中部署生成的 Web 应用程序,例如基于 Electron 的桌面应用程序或基于 Cordova 的移动应用程序。由于服务器资源非常宝贵,因此需要非常小心地防止可扩展性问题。此外,添加基础设施并不总是那么容易,例如,当服务器端状态管理的结构不正确时。


此模型还存在一个需要弥补的差距:例如,可能需要在 C# 和 JavaScript 中编写某些代码两次,例如执行数据验证任务所需的代码,以获取客户端的即时用户反馈和服务器端业务逻辑目的。


但是,如果您正在构建面向公众的网站,服务器端渲染非常适合 SEO(搜索引擎优化)。由于 HTML 内容是在服务器上生成的,因此Google等搜索引擎可以对其进行抓取、索引和缓存。如果没有额外的工作,客户端渲染无法轻松做到这一点。


客户端


对于客户端渲染的 UI,服务器并不是绝对必要的。HTML 和 JavaScript 内容以某种方式进入客户端 - 它可以作为静态内容从服务器下载,但也可以作为桌面或移动目标的安装包进行部署。


由于这些 UI 元素的 HTML 和渲染现在将由客户端浏览器处理,因此您的客户端应用程序主要需要来自服务器的数据。通常,您需要创建 Web 服务来提供此数据。ASP.NET MVC WebApi 可用于实现此类服务,这再次为开发人员提供了使用基于 .NET 的数据访问机制的机会,但需要额外的协议,例如从服务动态查询数据并传输数据返回给客户端。


客户端用来渲染复杂 UI 的组件是用 JavaScript(或编译为 JavaScript 的语言,如 TypeScript)编写的,开发人员通常选择应用程序级框架(如 Angular 或 React)来帮助他们构建客户端应用程序,但也需要与组件库集成。该模型让人想起简单的客户端/服务器应用程序,仅使用 Web 标准协议进行服务通信和数据访问。如果服务是用 JavaScript(可能是 Node.js)编写的,则可以创建基于 JavaScript 的全栈应用程序系统,并且由于服务固有的无状态性质,通常很容易根据需要扩展服务器。一般来说,这种架构的服务器端基础设施要求不太复杂,


客户端渲染的 UI 是大多数现代 Web/移动应用程序和越来越多的桌面应用程序(包括 Office 365、Skype 和 Microsoft Visual Studio Code)的首选架构模型。做出此决定的最佳建议是仔细权衡利弊,因为它们适用于您的计划、团队中开发人员的专业知识、客户群和其他因素。


这给我们带来了两组 MVC 控件之间的主要区别。虽然两者都是服务器端 ASP.NET MVC 控件,但 DevExtreme MVC 控件将呈现客户端 UI,因为它们将客户端 DevExtreme JavaScript 控件包装在 ASP.NET MVC 控件中。另一方面,DevExpress ASP.NET MVC 控件将呈现服务器端 HTML,然后将其传递给客户端。


现在让我们看一下这两个库是如何开始了解我们创建它们的动机的。


历史


1.DevExpress ASP.NET MVC 控件

2009 年 4 月,微软发布了 ASP.NET MVC,许多开发人员很快对这个有趣的新 Web 框架产生了兴趣。我们的许多客户要求我们为 ASP.NET MVC 提供 UI 控件。


当时,我们的 ASP.NET WebForms 库提供了可靠、稳定且功能丰富的控件。因此,我们决定采用 ASP.NET WebForms 控件的 API、功能和呈现,并将它们作为本机 MVC 控件提供。这种方法的优点是节省时间并为您提供一组具有大量功能的可靠控件。


2010 年,我们推出了 DevExpress ASP.NET MVC 控件作为测试版,只有五个控件。然后,在接下来的七年里,随着每个版本的发布,我们都不断改进控件、功能和性能。如今,DevExpress MVC 控件集非常可靠,拥有超过 65 个控件。


大约在同一时间,JavaScript 也受到 Web 开发人员的欢迎......


2.DevExtreme MVC 控件

自 2000 年代末以来,JavaScript 的受欢迎程度持续上升。几年前,Web 开发明确转向基于 JavaScript 的客户端技术,如 jQuery、Node.js、Angular、Backbone、React 等。这是有充分理由的,因为客户端开发模型提供了好处。我们的许多现有 Web 客户要求我们提供专门在客户端呈现的 JavaScript 控件。


因此,在 2011 年,我们指派了一个独立的开发人员小组来构建一套完全客户端的 JavaScript 控件,这些控件的功能与我们的服务器端控件类似。经过一年的发展,DevExtreme库于2012年诞生。从那时起,我们继续开发这个客户端库,为其他客户端框架提供更多控件、功能、稳定性和支持。然后,在 2014 年左右,我们的一些 Web 客户表示需要一组使用客户端呈现方法的 MVC 控件。因此,我们决定将客户端 DevExtreme JavaScript 控件包装为本机服务器端 MVC 控件。


2016 年6 月,DevExtreme MVC 控件作为社区技术预览版(CTP)推出。现在,在团队努力改进 DevExtreme MVC 控件的几个版本之后,他们提供了超过 65 个以上的控件、功能以及与 ASP.NET MVC(和 ASP.NET Core)的良好集成。


什么适合你?


虽然架构方面的考虑应该有助于推动大多数项目朝着他们喜欢的方向发展,但也可以根据特定的技术优点来比较我们的库。以下概述可能并不详尽 - 请随时询问您认为缺少的主题,我们将扩展帖子。


最近,我们收到了开发人员的疑问:


  • 您对我的场景有何建议?

  • 这两种产品的主要区别是什么?


为了帮助您做出决定,请阅读以下四个部分,比较这两个库的优缺点:


1. 包括什么和缺少什么

乍一看,这两个库似乎都有大约 65 组以上的 MVC 控件,并且它们提供了数据网格、图表、编辑器、导航等关键控件。但是,并非所有控件在这两个库中都可用,这可以是一个关键的决定因素。例如,如果您需要电子表格、功能区或 RichEdit 控件,那么这些控件只能在 DevExpress ASP.NET MVC 控件套件中提供。


以下是每个库中可用控件的详细信息:



DevExpress ASP.NET MVC 控件(服务器端) DevExtreme MVC 控件(客户端)
网格
枢轴网格
树列表、树视图
调度程序
导航控制
编辑器控件
图表和仪表
形式
报告套件
丰富编辑
电子表格
HTML 编辑器
Ribbon
文件管理器
卡片视图
垂直网格
对接套件
拼写检查器
动作表、滚动视图、幻灯片
棒材、圆材、线材
地图、树图、矢量图
范围选择器
子弹图
迷你图
过滤生成器 集成到其他控件中
盒子、响应式盒子
提示框


2. 渲染的优点/缺点

DevExpress ASP.NET MVC 控件提供服务器端渲染。


  • 优点:经过(更多)年的发布而稳定。提供更强大的控件。

  • 缺点:Windows IIS 服务器托管。然而,回调数据是通过本机表单、MVC 表单或 MVC Ajax 表单提交的,并且可以通过控制器的操作进行访问。


DevExtreme MVC 控件提供客户端渲染。


  • 优点:它们发出由客户端浏览器呈现的语义标记。用户交互速度更快。与 ASP.NET MVC 框架更紧密地集成。

  • 缺点:对于交互性和运行时自定义,您必须处理核心 JavaScript 小部件。


A. 性能

DevExtreme MVC 控件由于其客户端呈现而在性能方面具有一些小优势。主要是,用户交互会感觉更加灵敏。


例如,当对DevExtreme MVC 数据网格中的行进行分组时,您会发现它只会检索需要更新以显示分组布局的行的数据。在下面的浏览器工具图中,我们可以看到 DevExtreme MVC Grid 仅从服务器获取数据行的 JSON,并且 Grid 将相应地渲染和更新 UI:



但是,DevExpress ASP.NET MVC GridView将进行部分页面更新。这意味着它将从服务器检索新分组布局的 HTML,然后将其传送到客户端并就地呈现它们。当通过请求/响应链发送时,部分页面更新如下所示:



回调需要额外的服务器工作来为(可能)大量客户端重新呈现这些 HTML 片段,从而增加数据量。然而,在快速连接下,您可能不会注意到速度上的重大差异。


B. 语义 HTML 渲染

如前所述,DevExtreme MVC 控件在渲染时提供语义标记(单击图像查看大图):



较大的 DevExpress ASP.NET MVC 控件(例如 Grid)使用基于表的布局进行渲染。但是,导航控件(寻呼机、菜单、导航栏等)具有基于列表、div 等的语义呈现:



这两种渲染方法都符合 HTML5 标准。


3. 数据绑定

DevExpress ASP.NET MVC 扩展是服务器端控件,因此,它们可以轻松绑定到任何服务器端 .NET 数据层。但是,这些服务器端控件不支持客户端绑定。


DevExtreme MVC 控件提供了在客户端绑定数据感知控件的各种方法。这些控件还提供服务器端数据层,允许您在服务器端进行绑定。此机制不会改变有关数据绑定的架构考虑因素,它只是基于现有服务器端数据源自动提供数据访问的 Web 服务。


4..NET Core支持

这两个库都支持 .NET Framework 4+ 和同一组浏览器。


但是,DevExtreme MVC 控件还支持 ASP.NET Core 1.0.1 及更高版本(包括 1.1、2.0+),而 DevExpress ASP.NET MVC 控件则不支持。


虽然不属于本次比较的一部分,但新的DevExpress ASP.NET Bootstrap Core 控件专门支持 ASP.NET Core 框架。


一起使用

请记住,如果您选择经典的完整框架 ASP.NET MVC(而不是 ASP.NET Core),那么您可以一起使用我们的两个 MVC 控件以相互补充。例如,您可以在同一 ASP.NET MVC 项目中使用 DevExpress ASP.NET MVC 电子表格和 DevExtreme MVC 网格。


DevExpress ASP.NET 订阅中也提供了这两个 MVC 库!


做出你的选择


回顾一下,两个 MVC 控件套件都为您提供了许多出色的 UI 控件,并且它们也可以一起使用。


但是,如果您需要在它们之间进行选择,那么我将作为与许多开发人员互动的 Web 项目经理提供我的观察结果:


  • 喜欢客户端渲染的开发人员通常会选择 DevExtreme MVC 控件

  • C# 和服务器端渲染的爱好者通常选择 DevExpress ASP.NET MVC 控件


希望以上信息对您的选择有所帮助。如果没有,请联系在线客服,告诉我如何提供帮助。



联系我们

周一至周日 8:00-23:00

免费热线

023-62585653

张经理:13082556879

罗经理:17558866126

许经理:13057566525

开发外包

ERP-一体化

小程序

企业微信客服

版权所有:重庆庚乾信息科技有限公司 ©2025 Gengqian Information Technology Co., Ltd. 渝ICP备2022008063号-2 渝公网安备50010702505508

版权所有:重庆庚乾信息科技有限公司

©2025 Gengqian Information Technology Co., Ltd. 渝ICP备2022008063号-2 渝公网安备50010702505508