【发布时间】:2010-07-28 12:58:26
【问题描述】:
在过去的 2 年里,JQuery 变得越来越流行。那么您认为,现在是在使用 Ajax 的 ASP.NET 项目中更喜欢 JQuery 而不是 ASP.NET Ajax 的时候了吗? ASP.NET Ajax Control Kit 在 ASP.NET 世界中有前途吗?
【问题讨论】:
在过去的 2 年里,JQuery 变得越来越流行。那么您认为,现在是在使用 Ajax 的 ASP.NET 项目中更喜欢 JQuery 而不是 ASP.NET Ajax 的时候了吗? ASP.NET Ajax Control Kit 在 ASP.NET 世界中有前途吗?
【问题讨论】:
简答:
如果您的页面/站点当前不依赖于 UpdatePanel 或 ACT 控件,绝对可以使用 jQuery 和 jQuery UI 进行任何新工作。这甚至是微软现在自己的建议。
长答案:
在处理这个主题时,清楚术语很重要。
ASP.NET AJAX 既是客户端,又是服务器端。 System.Web.Extensions 来自 Atlas,最终集成到 ASP.NET 3.5 中。即使您不使用 ScriptManager 或 MicrosoftAjax.js,ASP.NET AJAX 的服务器端部分对于创建基于 JSON 的服务器端端点(以及那些 may be called directly from jQuery,没有 ScriptManager)仍然非常有用。
jQuery 和 MicrosoftAjax.js 有点相似,但两者都做对方不做的事情。严格地说它们相互竞争并不准确。他们有不同的目标。如果您的应用程序有任何 UpdatePanel,那么您别无选择,只能包含 MicrosoftAjax.js(它会随 ScriptManager 自动出现)。不过,jQuery 和 MicrosoftAjax.js 确实可以很好地配合使用,因此如果需要,您仍然可以use jQuery's more powerful selectors, traversals, and animations in conjunction with UpdatePanels。
AJAX 控制工具包 (ACT) 是一个不同的项目,完全独立于 ASP.NET AJAX。它最直接地与 jQuery UI 进行比较,而不是 jQuery 核心本身。展望未来,我认为我们将看到大多数仅客户端的 AJAX 控制工具包控件被重构为 jQuery 插件(去年年底已经发生,但它们被撤消了)。
最终,如果两者都存在等效解决方案,那么最好使用 jQuery 或 jQuery UI 而不是 MicrosoftAjax.js 或 ACT。但是,如果您使用 UpdatePanels 或其他现有代码绑定到 MicrosoftAjax.js,请不要害怕将 jQuery 与它混合并慢慢过渡到 jQuery。他们合作得很好。
【讨论】:
jQuery 比较流行,主要是因为它独立于平台,但它本身就是一个很好的系统。
对于那些在微软平台上开发的人来说,我不认为 ASP.NET AJAX 有什么问题。
我都用过,但我现在偏向 jQuery,主要是因为那里有可用的资源和示例。
这是否意味着 MS 产品注定要失败?还没有。只要有一定数量的人在使用它,它就会存在,但我认为它永远是 jQuery 的次要角色。
如果您是仅使用 ASP.NET 的开发人员,请查看两者并使用最适合您的。如果你在不同的平台上开发,那么选择 jQuery 可能更明智。
PS。还有其他跨平台的 AJAX 框架...
【讨论】:
在我看来,jQuery 比 Ajax 控件工具包要好得多。对我来说,主要原因是社区给予了它巨大的支持。不仅 Web 上的 jQuery 文档更好,而且由于 jQuery 不是以 .NET 为中心的框架,因此社区更大,这意味着从 Ruby on Rails 开发人员到 PHP 开发人员的任何人都可以帮助您编写代码。作为 .NET 开发人员,这显然更难找到。
除此之外,我的性能比 Toolkit 更好,而且我发现编写 和 自定义要容易得多。你一定要爱上jQuery UI。
顺便说一句,请注意,通过简单地在 ASPX 页面上启用 ScriptManager,您会加载一堆脚本,这些脚本会为您的页面增加额外的负载。在混合 jQuery 和 Toolkit 之前要记住一些事情。
【讨论】:
我认为(这是错误的)。 ASP.NET Ajax Toolkit 在后台使用jQuery。
你可以同时使用。我想这取决于您喜欢什么,因为Ajax Toolkit 提供了您可以在服务器端使用的控件,而jQuery 将始终只是客户端。
因此您可能会同时使用这两种方法:当Ajax Toolkit 中存在一个控件并且您需要一些服务器端属性/访问器等时,请使用它,如果您需要一些工具包未提供的功能,请使用纯jQuery.
Microsoft 正在与jQuery 社区合作并向他们提交一些补丁。所以我猜他们会继续维护工具包。 Ajax Toolkit 只是纯 jQuery 函数的一层,并提供服务器端控件。
更新:
来自this blog的有趣语录:
但是,对于 Visual Studio 2008 Service Pack 1,我们还添加了支持 对于日益流行的 jQuery 图书馆。也就是说,你可以使用 jQuery 与 ASP.NET 一起,也会得到 Visual 中 jQuery 的智能感知 工作室 2008。
还有:
对于客户端编程使用 用于实现 AJAX 的 JavaScript ASP.NET,推荐使用 jQuery 将一起发布 与 Visual Studio 并提供 智能感知也是如此。
对于服务器端编程,您 可以使用服务器控件,例如 UpdatePanel 等,还有 AJAX 控制工具包有近 40 个 立即控制。
【讨论】:
ASP.NET Ajax 和 ASP.NET Ajax 工具包是两个不同的东西。该工具包是一组 ASP.NET 控件(以及其他一些东西)。它是服务器端代码和一些 javascript。 ASP.NET Ajax 是一个可用于创建和管理客户端控件的应用程序框架;它是 Javascript。 ASP.NET Ajax 工具包就是基于这个框架。
jQuery 和 ASP.NET Ajax 在功能上有一些重叠,但它们绝不是相互排斥的。 jQuery 主要用于更新和操作标记。 ASP.NET Ajax 旨在提供应用程序框架。
Microsoft 最近决定不与 jQuery 竞争,而是对其进行投资,因为 jQuery 和 ASP.NET Ajax 可以很好地协同工作并相互补充。 JQuery 其实是shipped with Visual Studio。
所以,要回答您的第一个问题,您应该使用最适合这项工作的 JavaScript 库,无论是 jQuery 还是 ASP.NET Ajax。
是否要使用 Toolkit,这取决于您喜欢与 ASP.NET 控件搏斗的程度。如果您喜欢像 ASP>NET MVC 这样的精益和平均编码,我会像烫手山芋一样放弃它。如果您在一个传统的 WebForms 项目中,该工具包可能与它所获得的一样好。
【讨论】: