如果不需要,请使用Web服务创建开销
本文关键字:服务 创建 开销 Web 请使用 如果不 不需要 如果 | 更新日期: 2023-09-27 18:12:47
我们正在开发一个mvc web应用程序,UI将是响应式的,所以没有看到任何未来对使用服务的本地应用程序所需的web服务的需求。但是,如果我们将来想在客户端使用Angular js,那么是的,它是必需的。
现在的问题是:
如果我们使用项目库(服务库不是web api)而不是使用在web api中创建的REST服务,性能会更好吗?或者如果我们使用休息服务不会有太大的区别?我认为,如果不需要其他服务,包括服务项目库的参考将是最好的选择。因为当客户端请求到服务器时,它不需要另一个http请求来调用rest服务。
两全其美的做法是包括对服务项目库的引用,但是设计它们的方式是,你可以有一个非常薄的层——一个ApiController——来处理WebService的安全性,如果有的话,并调用逻辑。
如果你做得对,控制器应该除了调用你的服务类之外几乎没有代码。
其他优点:你可以实现一些这样的控制器,将你的服务暴露为REST服务,只是为了证明你得到了它的要点,并且你的架构可以工作,然后,在以后的某个时间,当你切换到AngularJS时,将所有其他服务暴露为RESTful API。
Web服务的开销与调用的数量成正比。通过调用无操作服务100000次来衡量它。每个CPU内核每秒可能有1000-5000个调用。
此度量不包括网络延迟。
根据你的应用程序有多健谈,性能成本可能接近于零或毁灭性的。
当添加web服务层时,最大的关注点通常是生产力成本。这很重要。您不能再在层之间共享对象并依赖于对象标识。一切都是复制的。例如,客户端不使用ORM。
Web服务不是随便添加的东西。也许您可以将代码架构为一个库,稍后也可以将其放入web服务中。但由于状态不能共享这一基本问题,这很难实现。