2 .NET Core笔试题

1.说说在Linux系统部署ASP.NET Core项目的步骤。
2.说说热重载是什么。
3.如何理解鉴权和授权两个词
4.说说.NET7包含了几大方向的开发?
5.如何理解云原生?
6.ASP.NET Core应用程序部署IIS,需要准备什么?
7.如何理解MVC5的管道和ASP.NET Core的管道?
8.在ASP.NET Core设计中,为什么要把把ResourceFilter放在授权Filter之后,而在其他Filter之前。
9.说说优化Core WebApi性能的常见方案
10.如何理解MAUI?
11.如何在ASP.NET Core中激活Session功能?
12.什么是中间件?
13.Applicationbuilder的Use和Run方法有什么区别?
14.什么是ASP.NET Core里面的taghelper


1.说说在Linux系统部署ASP.NET Core项目的步骤。

a. 准备Linux系统
b.安装ASP.NET Core 的运行时环境(类似于人类生存需要空气和水,那么ASP.NET Core程序运行也需要符合它运行的的环境)
c.发布ASP.NET Core 项目(可以直接发布到Linux上去,也可以发布成文件系统,然后上传)
d.上传到Linux系统
e. 进入到发布程序的根目录,执行命令:
dotnet run --urls=http://Linux系统的Ip:端口号 


2.说说热重载是什么。

热重载由“编辑并继续”,在不需要停止在代码断点或者重启应用程序的情况下,就可以对代码进行修 改,并可以立即看到代码修改的效果。修改代码后,点击Vs 上的红色火苗按钮即可。

3.如何理解鉴权和授权两个词。

鉴权:确定来来访者是谁,解析来访者携带的信息,记录来访着的信息;
授权:鉴权以后,通过来访者的信息内容来分辨是否允许本次返回本次要访问的资源;如果在鉴权步骤 没有解析到用户信息,在授权阶段就会返回401,如果解析到了用户信息,在授权阶段通过用户信息来 判断的时候。用户不具备访问资源的权限,返回403.

4.说说.NET7包含了几大方向的开发?

共8大方向:
  • WEB:网站开发
  • Mobile:手机端开发
  • Desktop:桌面开发
  • Microservices:微服务
  • Cloud:云原生开发
  • Machin Learning:人工智能
  • Game Development:游戏开发
  • Internet of Things:物联网开发

5.如何理解云原生?

云原生最大的价值和愿景,就是认为未来的软件,会从诞生起就生长在云服务器上,并且遵循一种新的软件开发、发布和运维模式,从而使得软件能够最大化地发挥云的能力。
  • 第一部分是云应用定义与开发流程。这包括应用定义与镜像制作、配置 CI/CD、消息和 Streaming 以及数据库等。
  • 第二部分是云应用的编排与管理流程。这也是 Kubernetes 比较关注的一部分,包括了应用编排与调 度、服务发现治理、远程调用、API 网关以及 Service Mesh。
  • 第三部分是监控与可观测性。这部分所强调的是云上应用如何进行监控、日志收集、Tracing 以及在云 上如何实现破坏性测试,也就是混沌工程的概念。
  • 第四部分就是云原生的底层技术,比如容器运行时、云原生存储技术、云原生网络技术等。
  • 第五部分是云原生工具集,在前面的这些核心技术点之上,还有很多配套的生态或者周边的工具需要使 用,比如流程自动化与配置管理、容器镜像仓库、云原生安全技术以及云端密码管理等。
最后则是 Serverless。Serverless 是一种 PaaS 的特殊形态,它定义了一种更为“极端抽象”的应用编写方 式,包含了 FaaS 和 BaaS 这样的概念。而无论是 FaaS 还是 BaaS,其最为典型的特点就是按实际使用 计费(Pay as you go),因此 Serverless 计费也是重要的知识和概念

6.ASP.NET Core应用程序部署IIS,需要准备什么?

需要安装AspNetCoreMoudleV2

7.如何理解MVC5的管道和ASP.NET Core的管道?

在.NET Framework中MVC的管道是通过事件驱动,观察者模式来完成。在HttpContext处理的过程中, 定义好事件,然后通过给事件注册行为;请求来了以后,执行事件,从而执行行为,达到扩展目的;

在ASP.NET Core中,管道是通过委托来完成的,通过委托的多层嵌套装配,形成一个俄罗斯套娃;请求
来了以后,穿过整个俄罗斯套娃的全部过程;


8.在ASP.NET Core设计中,为什么要把把ResourceFilter放在授权Filter之后,而在其他Filter之前。

ResourceFilter是用来做缓存的,请求来了以后,如果能取出缓存,也必须是在授权桌,有权限才能取 数据;也是ResourceFilter是用来做缓存的,如果有缓存,授权后就可以直接取缓存,就没有必要再去 执行其他的逻辑;如果放在其他Filter之后,在执行了其他的Filter后取缓存,那么其他的Filter执行就没 有价值了。

9. 说说优化Core WebApi性能的常见方案

缓存
压缩

10.如何理解MAUI?

.NET 多平台应用 UI (.NET MAUI) 是一个跨平台框架,用于创建使用 C# 和 XAML 的本机移动和桌面应 用。 .NET多平台应用 UI( .NETMAUI) 使你可以使用面向 Android、iOS、macOS、Windows 和 Tizen 的移动 和桌面外形规格的 .NET 跨平台 UI 工具包生成本机应用

11.如何在ASP.NET Core中激活Session功能?

首先要添加session包. 其次要在configservice方法里面添加session。然后又在configure方法里面调用 usesession。

12.什么是中间件?

中间件在这里是指注入到应用中处理请求和响应的组件。是通过多个委托来嵌套形成的一个俄罗斯套 娃!

13.Applicationbuilder的Use和Run方法有什么区别?

这两个方法都在StartUp 类的configure方法里面调用。都是用来向应用请求管道里面添加中间件的。 Use方法可以调用下一个中间件的添加,而run不会。run是终结式的;
publicvoidConfigure(IApplicationBuilder app, IHostingEnvironment env)
{   //可以看到通过匿名函数实现的中间件是内嵌在启动类文件中的,因此通常也叫做内联中间件。
    app.Use(async(context, next) =>
    {
        awaitcontext.Response.WriteAsync("One Holle Word 1!\r\n");
        awaitnext; //传递到下一个中间件,而不是先执行下面的 
        awaitcontext.Response.WriteAsync("One Holle Word 2!\r\n");
    });
    app.Run(async(context) =>
    {
        awaitcontext.Response.WriteAsync("Two Holle Word 1!\r\n");
        awaitcontext.Response.WriteAsync("Two Holle Word 2!\r\n");
    });
}

14.什么是ASP.NET Core里面的taghelper ?

Taghelper用来在服务器端使用Razor视图引擎创建Html元素的。
posted @ 2023-02-18 08:56  郑大勇  阅读(322)  评论(2编辑  收藏  举报