我将在我们的一些 Web 应用程序页面上启动一些实验室原型(prototype)。我们使用了大量的 Postback、ViewState、UpdatePanels、ModalPopup Extenders,以及所有 ASP.NET 常用的东西。对于大多数情况来说这已经足够了。但我想把事情推得更远......
我已经使用 jQuery 一段时间了。我知道我能做什么我正在考虑用 $.ajax()
、$.get()
等真正取代 ASP.NET 通常的东西。不再有回发。用户界面? jQuery 用户界面。一些插件给我留下了深刻的印象,特别是 jQuery grid。
我认为这是 Web UI 的下一步。我的意思是,这已经是当前步骤了!我喜欢 C# 的强大功能,但对 ASP.NET 框架印象不深。我想通过这样做,我将真正将 UI 与业务逻辑分开。
但是:
- 我真的应该这样做吗?
- 背后的代码应该只是 Web 处理程序和 Web 服务吗?
- 我应该注意什么?
- 安全性怎么样?如何实现?
- 我会得到什么?我知道我会获得一些性能提升,因为由于 ViewState 的原因,在包含太多数据的页面中回发会花费时间,并且我将仅处理 XML 和/或始终为轻量级 JSON 格式。但我想,像往常一样,会有痛苦......
- 哪里会痛?
无论如何,我会慢慢来。但我想问你们:我在这里要做什么?
最佳答案
在我回复之前,我强烈建议您使用 ASP.NET MVC 框架。这是一种与 Webform 完全不同的开发方式。它距离 ViewState 和那些垃圾仅一步之遥。这就是 Microsoft 全力以赴的方向,也是目前在 .NET Stack 上构建更具可扩展性和交互性的网站的唯一方法。
我真的应该这样做吗? 是的。 jQuery + Ajax 非常好,可以让您构建一些非常互动且可用的网站。就目前的情况来看,说实话,如果您不在客户端使用 Javascript 的强大功能,您的网站可能会建在 1995 年。
背后的代码应该只是 Web 处理程序和 Web 服务吗? 您应该只使用处理程序/服务来改进页面的设计。您不能仅以此为基础构建整个网站。方法是创建一个页面,然后用服务来改进它。避免小细节的回发。并通过Ajax等提高速度。在Ajax上制作整个网站并不是一个好主意。
我应该注意什么? 从技术上讲,您需要了解客户端编码以及 HTTP 如何在互联网上工作。 ASP.NET 在幕后完成了这一切,因此您甚至不需要知道,但如果您正在执行回发等操作,那么您应该了解它的局限性等。
安全性怎么样?如何实现? 只要您执行与正常回发相同的操作(例如 CSS 攻击、SQL 注入(inject)、防伪造等),Ajax 中的安全性就没有太多问题。
我会得到什么?我知道我会获得一些性能提升,因为由于 ViewState 的原因,在包含太多数据的页面中进行回发会花费一些时间,并且我将仅处理 XML 和/或始终为轻量级 JSON 格式。但我想,像往常一样,会有痛苦...... 哪里会痛? 痛苦通常在于复杂性。但复杂性伴随着灵活性。传统的 ASP.NET 会处理所有事情,而无需您干预。但现在你必须组成请求,将其发送到服务器,接收回复,然后相应地更新 DOM。您必须处理所有这些问题,但另一方面,您可以以任何您想要的方式处理它。
希望有帮助。
关于c# - ASP.NET 回发 x jQuery : What are the cons and pros?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5823634/