.net core 经典面试题
第1题,什么是ASP net core?
首先ASP net core不是 asp net的升级版本。它遵循了dot net的标准架构, 可以运行于多个操作系统上。它更快,更容易配置,更加模块化,可扩展性更强。
第2题,asp dot core有哪些好的功能?
第一是依赖注入。
第二是日志系统架构。
第三是引入了一个跨平台的网络服务器,kestrel。可以没有iis, apache和nginx就可以单独运行。
第四是可以使用命令行创建应用。
第五是使用APP settings json file来配置工程。
第六是使用start up来注册服务。
第七是更好的支持异步编程。
第八是支持web socket和signal IR。
第九是对于跨网站的请求的预防和保护机制。
第3题,dot net core跟dot net比较有哪些更好的地方?
第一是跨平台,它可以运行在三大操作系统上面,windows, Linux和MAC。
第二是对架构本身安装没有依赖,因为所有的依赖都跟程序本身在一起。
第三是dot net core处理请求的效率更高,能够处理更多的请求。
第四是dot net core有更多的安装配置方法。
第4题什么是meta packages?
Meta packages是指包含所有ASP dot net code依赖的一个包。叫做Microsoft.AspNetCore
第5题,don net core应用能够跟dot net 4.x架构一起工作吗?
可以。Dot net core应用可以跟标准的dot net 库一起工作。
第6题,什么是dot net core的startup class?
Startup class是dot net core应用的入口。所有的dot net core应用必须有这个class。这个类用来配置应用。这个类的调用是在program main函数里面进行配置的。类的名字可以自己定义。
第7题, Startup class的config service方法有什么作用?
在这个方法里我们可以添加一些service进入依赖注入容器。
第8题,startup class的configure方法有什么作用?
这个方法来定义整个应用如何响应HTTP请求。它有几个比较重要的参数,application builder,Hosting environment, logo factory, 在这里我们可以配置一些中间件用来处理路径,验证和session等等。
第9题,什么是中间件?
中间件在这里是指注入到应用中处理请求和响应的组件。
第10题,application builder的use和run方法有什么区别?
这两个方法都在start up class的configure方法里面调用。都是用来向应用请求管道里面添加中间件的。Use方法可以调用下一个中间件的添加,而run不会。
第11题,dot net core 管道里面的map拓展有什么作用?
可以针对不同的路径添加不同的中间件。
第12题,dot net core里面的路径是如何处理的?
路径处理是用来为进入的请求寻找处理函数的机制。所有的路径在函数运行开始时进行注册。
主要有两种路径处理方式, 常规路径处理和属性路径处理。常规路径处理就是用MapRoute的方式设定调用路径,属性路径处理是指在调用函数的上方设定一个路径属性。
第13题,如何在dot net core中激活session功能?
首先要添加session包. 其次要在config service方法里面添加session。然后又在configure方法里面调用usesession。
第14题,dot net core工程里面有多少个工程文件?
global, launch setting,app settings,bundle config,bower, package。
第15题,什么是dot net core里面的tag helper?
Tag helper用来在服务器端使用Razor视图引擎创建html元素的。
第16题, 如何使tag helper在元素这一层上失效?
使用叹号。
第17题,什么是Razor页面?
是dot net core中支持ASP网页表格的一种开发模型。@page 作为页面的起始标志。
第18题,如何在Razor页面中实现数据模型绑定?
使用bindproperty属性。
第19题, 如何在controller中注入service?
在config services方法中配置这个service。
在controller的构造函数中,添加这个依赖注入。
第20题,描述一下依赖注入后的服务生命周期?
在dot net core中,我们不需要关心如何释放这些服务, 因为系统会帮我们释放掉。有三种服务的生命周期。
单实例服务, 通过add singleton方法来添加。在注册时即创建服务, 在随后的请求中都使用这一个服务。
短暂服务, 通过add transient方法来添加。是一种轻量级的服务,用于无状态服务的操作。
作用域服务,一个新的请求会创建一个服务实例。使用add scoped方法来添加。