MVC vs Web API for Multi Page App. Is The Future Web API? MVC与Web API在多页面应用中的选择。未来是Web API吗?
MVC vs Web API for Multi Page App. Is The Future Web API? MVC与Web API在多页面应用中的选择。未来是Web API吗?
我正在一个刚开始的项目中,还不确定要使用什么设计模式。这个应用是一个报告应用,允许用户设计报告并下载。这个应用主要是一个向导式的多页面数据选择器。我想提供从桌面应用构建这些报告的功能。
考虑到过去几年Web API的进展,不使用MVC而使用Web API是不是有点疯狂?
我已经有一段时间没有进行开发了,看起来Web API和Angular或其他JS前端是新应用开发人员选择的路线,他们希望专注于服务器端业务逻辑,并尽可能多地使用消费前端。除了设置等之外,这个应用几乎没有数据持久性。
那么,我选择Web API这条路是对的吗?这是一个不适用MVC的好例子吗?还是有一个同时使用两者的中间地带被普遍认为是一个聪明的设计选择?
问题的出现原因:
问题的出现是因为在开发多页面应用时,需要选择使用MVC还是Web API作为开发框架。MVC和Web API都可以将模型和逻辑与表现层分离,但在开发时间和应用性能方面存在一些区别。
解决方法:
如果开发时间较紧迫,建议使用MVC框架。MVC可以更快地搭建应用,但需要在视图中使用一些基于AJAX的专有控件来避免服务器往返。如果只使用Web API,就需要进行大量手动的JSON操作,并且更多依赖于前端的MVVM(MVC模式的客户端表示),这会更加耗时。因此,使用MVC框架可以更快地启动应用。
另一方面,如果需要实现松耦合和性能最佳的解决方案,建议选择Web API框架。Web API可以将应用保持更松散的耦合,并具有潜在的最高性能。如果需要将API发布到公共网络上,Web API也可以满足这一需求。然而,这种选择会增加开发时间成本。
此外,需要补充一点,单页Web应用程序是指在客户端使用多个DOM元素,并根据输入显示或隐藏这些元素的应用程序。Kendo UI是一个特别适合这种方法的框架,但也可以仅使用纯JavaScript来实现,并不是特定于Microsoft的技术。
最后,微软现在几乎将Web API和MVC框架合并在一起,因此可以将Web API看作是MVC模式的控制器。
MVC与Web API for Multi Page App. Is The Future Web API?这个问题的出现的原因是因为作者对于使用MVC还是Web API来构建多页面应用程序的未来趋势存在疑问。作者提到,MVC是一种用于分离应用程序关注点的模式,而Web API是一个用于构建基于.NET框架的Web API的框架。作者认为,MVC和Web API都是创建网站或Web应用程序的可行解决方案,具体取决于需要做什么以及团队在其中一种方法上的效率如何。作者还提到,Web Services和WCF仍然存在并且是有效的选择,但是新的Web API克服了早期版本中存在的一些限制。
根据作者提供的信息,我们可以得出以下解决方法:
- 如果用户需要自定义报告的外观和感觉,可以使用MVC来实现报告设计功能。
- 如果步骤是用作报告的参数,可以使用MVC来实现报告设计功能。
- 如果希望通过桌面应用程序提供向导式功能,可以在Web应用程序中托管并在桌面应用程序中使用浏览器控件来指向向导式Web应用程序的URL。
关于MVC和Web API哪个是未来的趋势,作者提到它们有不同的用途。过去几年中,创建网站通常使用webforms和/或asp.net MVC来设计Web页面/视图,然后将其发送到用户的浏览器。Web API通常用于创建不返回视图或Web页面而是返回数据的API。然而,近年来的趋势是创建Web API并使用客户端框架(如Angular)调用Web API并渲染视图。这种方法基本上绕过了使用asp.net MVC和/或webforms的需要。作者提到,尽管这是一个趋势,但并不意味着它会在未来几个月或几年内消失。根据具体情况选择使用客户端框架需要考虑人员对其的了解程度。
最后,作者提到Microsoft还引入了另一种替代asp.net MVC的方法,称为SPA(Single Page Application),它允许使用上述方法构建Web应用程序。
根据具体任务的需求和团队的熟悉程度,选择使用MVC还是Web API来构建多页面应用程序。