是否应该使用网络服务来创建整个网站?

时间:2015-09-15 11:26:21

标签: jquery angularjs asp.net-mvc web-services asp.net-web-api

过去几年我一直在使用ASP.Net MVC。我真的习惯使用这种模式开发。关于前端,到目前为止,JQuery已经足以满足我的需求。

然而,随着时间的推移,我越来越多地听到AngularJS是要走的路,而JQuery正在变得“有点”过时。

这就是为什么我一直在研究将AngularJS集成到我当前项目中的一些选项。有一些重要事实需要考虑:

  • Angular对于SPA(单页应用程序)比对非SPA更有意义;

  • Angular是一个框架,JQuery是一个库;

  • 在ASP.Net MVC范例中,我们通常会向客户端发送纯HTML格式。在Angular项目中,数据通常通过JSON发送给客户端;

  • Angular和Razor彼此不顺利。 Razor是一种抽象,可以帮助程序员呈现复杂(有时不那么复杂)的HTML。对于angular,视图不会在服务器端创建,而是在客户端从JSON传输的模型创建(例如);

  • Angular与Web API(或任何其他Web服务)密切配合,而JQuery与ASP.Net MVC控制器密切配合;

结论:如果我错了,请纠正我,但似乎使用Angular的大多数应用程序的服务器端只包含Web服务。

我的问题是:是否应该使用网络服务来创建整个网站?显然,这正是新一波基于角度的应用程序所发生的事情。

1 个答案:

答案 0 :(得分:5)

回答你的问题Should webservices be used to create entire websites? 是...如果需要与服务器端资源对话的SPA 这是否是一个好的要求取决于其他问题的答案,如: 我们真的需要SPA吗? 我们是否有开发人员技能来建立SPA?如果不是,我们是否愿意雇用或培养现有的开发人员并承担这笔费用? 我们能承受额外的发展吗?

额外开发所涉及的成本取决于"重"你的控制器是。如果你有一个干净的架构,有一个定义良好的域模型和服务(而不是Web服务),控制器只是在服务和视图之间进行协调,那么构建一个WebAPI应该不会太困难。如果您的控制器充满了业务逻辑,您需要将它们转换为WebAPI,在这种情况下,您必须同时更改视图,并行窗口中的并行开发,或者您重复,或者您重构。我推荐重构,但这不会是微不足道的。

至于你的其他一些观点。您绝对可以在每页的基础上使用Angular将该页面移动到基于ajax的通信,而不是完整的帖子和刷新。你也可以像使用jQuery Forms这样的插件轻松地使用JQuery。使用JQuery有利于利用现有知识,坦率地说更直接。 Angular,因为它是固执己见的确促进了一种标准的做事方式,所以它确实意味着你的javascript代码库应该保持更加结构化,因为它是mvc应用程序中包含的自己的小客户端应用程序。这里的另一个好处是,如果这成为一个真正的要求,你就可以向SPA迈进一大步。

这是一个结束的想法,这可能是决定采取这种暴跌的因素。创建SPA时,您将创建一个与您公开的API交互的javascript / html客户端。其他客户也可以使用相同的API,如移动应用或合作伙伴网站。

去SPA的愿望往往是因为作为开发者,你想学习新浪潮,这是一件好事。只要确保符合条件的人知道他们的用途并且很乐意这样做。