【问题标题】:Is it possible or make sense to create a jquery / .NET Service only web site?创建一个仅 jquery / .NET 服务的网站是否可能或有意义?
【发布时间】:2011-06-12 05:21:40
【问题描述】:

我的意思是因为方向似乎是在客户端上做更多...由 jquery ajax 命令调用?

这是在任何地方完成的吗?我没有看到它正在完成..怎么会?似乎是一个简单的解决方案。无需处理 ASP.NET 抽象层..

【问题讨论】:

  • 可能是因为这不符合“优雅降级”和“渐进增强”——如果用户禁用了 JS,则该网站 100% 无法使用。
  • 不启用 JS 就像运行 Windows 3.1。当然,没有什么新的和令人兴奋的东西会起作用 :) 有钱的人都在使用支持 JavaScript 的浏览器。
  • 我忘了 JS。我希望在 2011 年你可以要求人们拥有使用它的浏览器
  • 更多观点请参见my question on webmasters.stackexchange 的回复。
  • 对 Javascript 的依赖程度在很大程度上取决于您的目标。在实践中,关闭它的人数可能非常少。

标签: .net asp.net jquery web-services soa


【解决方案1】:

Google 有一个演示来演示您所指的这种方法。这是 Google App Engine 的 Autoshoppe Demo。尽管它是 Java,但这些概念也适用于 .NET 应用程序。

该应用程序包含带有 .html 扩展名的普通 HTML 页面。没有服务器端视图技术使 HTML 程序员的生活复杂化。 HTML 页面使用 JavaScript AJAX 与使用 Spring 3.0 构建的 REST Web 服务交互,后者与数据存储交互。

  • 请求数据在请求中作为 JSON 传递
  • 响应数据在响应中以 JSON 格式返回。

这意味着任何人都可以在此 API 之上构建用户界面,或者您可以创建一个与该数据交互的 .NET 项目。 REST 是一种出色的架构,可用于创建可扩展的分层服务。

我认为这种技术没有被广泛使用的原因是因为许多人坚持使用鼓励开发人员在 HTML 中使用视图技术供应商的标记的视图技术,例如 ASP 文件(或用于 Java 的 JSP)。这种做法已经存在了一段时间,因为这些框架的作者基本上是工程师,而不是网页设计师和 UI 设计师。

还需要对 REST 有相当深入的了解才能看到这种方法提供的优势,而初级开发人员有时会在这些概念上遇到困难。

如果您要在 .NET 中解决这个问题,使用 AutoShoppe 演示作为指导,您很可能希望使用可以将 JSON 转换为 .NET 对象并返回 JSON 的对象映射器。这比尝试自己解析 JSON 更简洁。

这种 RESTful 方法的优势在于,您的内容、行为和表示是完全 100% 独立的,您可以为您的网络程序员提供 HTML 文件,而他/她可以完全在 .NET 之外运行它们环境。然后,您的设计人员可以使用他们的工具并专注于他们的优势,而无需安装、配置或运行 Visual Studio.NET。事实上,这些文件可以直接从桌面运行。

编辑:也许一个缺点是在许多 MVC 框架中对此没有太多支持,主要是因为它是一个新概念。客户端和服务器端之间的桥梁目前必须由开发人员编写。

在 AutoShoppe 演示中,开发人员用 JavaScript 编写了一个原型类来处理在发送到服务器之前将数据转换为 JSON,他们必须编写 JavaScript 代码来将 JSON 编组为 JavaScript 对象并将该数据操作回 HTML。在服务器端,他们确实使用对象映射器将 JSON 反序列化为对象。大部分复杂性都在服务器上。

将服务器端组件转变为 100% 可重用的 RESTful 服务,设计人员和客户可以轻松地与之交互,其优点可能会超过缺点,具体取决于场景。一个很好的例子可能是鼓励您的客户编写自己的用户界面或完全控制产品白标的服务。这是why I won't use server side view technologies 的众多原因之一。

【讨论】:

  • 那么为什么要使用 REST Web 服务而不是普通的 soap Web 服务呢?我认为最难的部分是做客户端模板,并且必须在 jquery 中做那些用 viewstate 自动为你做的事情?奇怪的是,考虑到非常好的关注点分离,有新的 .NET 概念证明。
  • 那么 .NET MVC 在哪里适合呢?没有 webform 概念.. 但不是调用 web 服务然后在客户端填充 HTML,而是从服务器端重新加载整个 HTML
  • @punkouter - REST 比 SOAP 更灵活、更简单。 REST 可以支持复杂的分层系统或仅通过 URL 访问的简单服务。一个缺点是目前没有一种简单的方法来处理自动视图。我会更新我的答案以反映。对于网络表单,您将使用 AJAX 发布请求并使用回调方法更新表单字段。无需完全刷新,让网页成为更丰富的互联网应用。
  • 自动查看是什么意思?
  • @punkouter - 抱歉,我指的是您关于使用视图状态自动执行操作的评论。我不相信有一个框架可以像使用服务器端视图那样自动处理 REST 网站概念。
【解决方案2】:

这是完全可能的。我有一个网站,一旦初始页面加载,服务器只发送在客户端呈现的 JSON 数据。 (虽然在这种情况下服务器运行 php)

【讨论】:

  • 所以听起来这个概念已经在除 .NET 之外的所有东西中完成了。我想知道真的那么难吗?我一定错过了一些没有人这样做的重要原因。
  • 不知道,我确定有人有,只是我不知道。这就是拥有 protocall 的好处。双方同意通过 HTTP 发送 JSON,并且双方使用的语言是灵活的
猜你喜欢
  • 2010-10-08
  • 1970-01-01
  • 2011-03-14
  • 2020-03-22
  • 2011-03-17
  • 1970-01-01
  • 2022-10-07
  • 1970-01-01
  • 2021-07-10
相关资源
最近更新 更多