最近接触了些ASP.NET相关的工作,顺带了解了下ASP.NET CORE,因此把一些基本知识和总结都写下来,做个回顾,基本上是想到什么就写什么。
.cshtml :是 MVC3 之后新增的视图文件,采用Razor Rendering Engine解释引擎
.aspx:是asp.net的文件后缀名,是微软的在服务器端运行的动态网页文件,通过IIS解析执行后可以得到动态页面。
razor:语法基于 ASP.NET 框架,是一种简单的编程语法,用于在网页中嵌入服务器端代码
MVC和WEB API的异同:
两个框架刚好都有项目做过,给我的感觉就是两者其实并不存在明显的界限。因为作为一款web服务的开发框架,都脱离不开B/S架构这个大环境,也就是所谓的三层架构——界面、业务逻辑以及数据访问。根据名字也可以知道,两种框架都衍生自ASP.NET,增强了消息处理和路由机制,也都具备了Controler和Action。一个项目可以同时包含MVC和WEBAPI。但是在一些实现上还是有较大区别。
ASP.NET MVC:
1、通常是用来建站的,即创建可以返回视图(Views)或数据(json、xml等)的Web应用,倾向于返回用户的页面请求,使用户可以方便的开发出带页面的站点。
2、只能够部署在IIS。
3、通过VS发布方式生成网站。
4、不仅需要开发控制层代码,也需要对view层进行处理,但是在生成页面方面较为轻松。
ASP.NET WEB API:
1、主要用于构建http服务,对外提供RESTFUL风格的接口以及较为完整的http语义支持,是一种轻量化架构。
2、相对MVC来说更为抽象,不注重View的生成,反之倾向于返回用户的数据请求。
3、由于webapi扩展出了一套独立于asp.net的消息处理管道,因此它可以部署在其他宿主上,如selfhost。
4、可以使前后端解耦,也就说后端不再需要关心页面的展示,仅需要处理业务逻辑和数据访问即可。同时可以更好的接入桌面端、移动端或者其他程序的页面。但是由于页面独立了出来,因此前端开发难度也会随之增加。
ASP.NET CORE:为了支持跨平台,微软搞了个NET.CORE出来。在ASP.NET CORE里面,mvc和webapi区分度更小了,因为他们都被集成到了一起。因此它也具备了两者的优点。比如它在部署方面就更强了,因为需要做到跨平台,因此它可以被部署到Apache或者Nginx上。