电话咨询
近期在网站开发中,看到有朋友在问MVC和WebApi是不是一个产品?它们有什么关联?为了能清晰的认识,劲草传媒把这个内容整理成了常见问题点,便于行业讨论和技术交流。
应用层面:
mvc 主要是用来建站;
webapi 主要是用来构建http数据服务;
技术实现层面:webapi 被砍去了view层 ,整体轻快
: webapi 有自己独特的消息处理管道; 2: webapi 有自己独特的路由系统; 3: webapi 的模型绑定也有些特别,用的是自己独特 httpParameterBinding 4: webapi 的托管层也不一样,不单只web托管(例如: IIS) , 还能自托管 (寄宿在windows 进程),还能托管在 OWIN的实现着(例如: katana);
MVC只能托管在IIS上,当然也可托管在linux,两者其实是有本质区别的,好比我们就说我们的环境吧,一个是windos另一个是linux,你说是同一个产品或者说是同一样的事物?这显然不能同一而语,你若说不是,但它们又都是用来搭建环境的系统,要从本质上来区分。
MVC是web开发框架,包含了UI和后台数据获取,是个完整的web解决方案;WebApi是为了满足REST数据接口的需求,负责向各渠道提供Http协议的数据,其实本质跟WCF、WebService没啥区别。
然后你困惑的,无非是两种都是路由-控制器模式,MVC的Action也能满足需求,但其实,以前的Aspx也是可以搞定这些事儿的,只是技术在进步,对于一个需求,有优秀的解决方案,mvc主要用于建站,webapi主要用于构建http服务,当然你非要用mvc来构建Uri式的Api也行,不过显然是没有这个必要的,一个不恰当的比喻就像是你也可以玩破解版的单机游戏,也可以通过平台进行联机,这也很好地解释了为什么WebApi可以寄宿在不同的宿主上(寄宿的本质就是利用一个具体的应用程序为WebApi提供一个运行的环境,并解决请求的接收和响应的回复),如Web Host,SelfHost方式,这和WCF是相似的。而MVC只能寄宿于IIS上(不考虑.netcore),就像Webform的寄宿方式。何况它们两者虽然都有Controller和Action,但是请求的实现和响应的回复机制也是不同的,比如说WebApi处理消息有两个核心类是HttpRequestMessage和HttpResponseMessage。这两种框架最多只能说是模式上类似,实现上还是有很大差别的。
- 上一篇:个人建网站有哪些规则和注意事项
- 下一篇:劲草这个品牌还存在吗?
请立即点击咨询我们或拨打咨询热线: 18374666288,我们会详细为你一一解答你心中的疑难。项目经理在线