.NET重点

B/S C/S什么语言

B/S:

浏览器端:JavaScript,HTML,CSS

服务器端:ASP(.NET)PHP/JSP

优势:维护方便,易于升级和扩展

劣势:服务器负担沉重

C/S

java/.NET/VC系列

优势:客户端响应速度快

劣势:系统可扩展性和可维护性差

企业级应用系统几层架构

2,3,N(不知道 会不会详细考)

.NET定义

新平台+标准协议+统一开发工具

.NET核心组件

一组创建互联网操作系统的构建块

构建和管理新一代服务的基本结构和工具

能够启用新型智能互联网设备的.NET设备软件

.NET Framework三个主要组成部分

公共语言运行时(CLR)作用:负责整个.NET执行期间的代码管理工作

服务框架

两类应用模版(传统Windows应用程序模版和基于ASP.NET面向web的应用程序模版)

asp.net定义

继ASP后推出的全新动态网页制作技术

.NET Standard 和框架的区别

.NET Framework和.NET Core 区别

.NET Framework:无法独立部署,ASP.NET与IIS深度耦合,不能跨平台

.NET Core:支持独立部署,不依赖IIS,能跨平台

.NET开发工具

.NET CLI:命令行

Visual Studio:只Windows

Visual Studio for Mac

VS Code(Visual Studio Code):跨平台

Nuget命令

安装:Install-Package XXX -version(把依赖组件都下载了)

卸载:Uninstall-Package XXX

更新到最新版:Update-Package XXX

get post 区别

GET:用于获取或查询信息,数据放到URL后,通过Request.QueryString来获取变量值,提交数据大小有限制

POST:用于更新信息,数据放在http包的body中,通过Request.Form来获取变量值,提交数据大小无限制

program.cs作用

此文件中的会创建一个带有预配置默认值的 WebApplicationBuilder,向依赖项注入 (DI) 容器添加 Razor Pages 支持,并生成应用

三种常见的方法可以使用 ASP.NET Core 构建新式 Web UI

服务器控件:从服务器呈现UI的应用

浏览器控件:在浏览器的客户端呈现UI的应用

混合:利用服务器和客户端UI呈现方法的混合应用

依赖注入作用

1.控制器或Razor页面不使用具体类,仅使用他的接口。可以实现更改时,无需修改控制器和页面

2.减少类之间依赖,提高模块独立性

3.让开发者更容易编写单元测试

中间件是什么

中间件是一种在应用管道中处理请求和响应的软件。

(每个中间件组件:选择是否将请求传到管道下一个组件,可在管道下一个组件前后执行

中间件在B/S模式下功能层作用)

中间件用法

C#

C#语言概述-CSDN博客

泛型

一组或一类事物的特性

列表

Contains

字典

ContainsKey

队列 栈

EnQueue

Peek

DeQueue

Push

Pop

Peek

LINQ

概念:LINQ是直接将查询功能集成到C#语言的技术统称。

功能:可以简化数据查询

using System.Linq

方法语法

查询语法

orm概念

通过操作C#对象方式来操作数据库。

Entity Framework Core(EF Core)

EF Core 是ORM框架,适用于.NET的新式对象数据库映射器。

核心组件

迁移 反向工程

基本命令

反向工程:管理器控制台的Scaffold-DbContext命令

或者用命令行接口(CLI)的dotnet ef dbcontext scaffold命令

迁移:创建迁移 dotnet ef migrations add 迁移名

更新数据库 dotnet ef database update

变更模型 dotnet ef migrations add 迁移名

定义数据库和模型

数据库根据一个派生自DbContext的类建模。这个类包含一个或多个DbSet<T>的类

customer类描述了Custmoers表中数据

注入连接字符串(不考?)

在定义的数据库中重写OnConfiguring,并在其中的UseSqlServer("连接字符串")

对不同环境下使用不同连接字段串

同时设置配置文件读取该字符串,用该配置文件来设置 UseSqlServer,这样就可以满足一个连接字符串可以在不同环境下使用

注入dbcontext对象

方法一:直接将当前数据库上下文添加到DI子系统中,从而能在应用程序的任何地方获取该对象,并进行配置作用域为当前请求

方法二:自己创建数据库上下文实例,根据需要为他们分配生存期,并在上下文注入连接字符串

EF Core查询

单次查询

多次查询

方法一

用透明事务将查询结果连接

方法二

方法三

添加

删除

异步作用

可以避免性能瓶颈并增加应用程序的总响应能力

原理

async方法会被C#编译器编译成一个类,会根据await调用切分成多个状态,对async调用会被拆分成MoveNext的调用。

MVC概念

是一种使用了MVC(模型-视图-控制器)设计创建Web应用程序的模式,同时提供了对HTML,CSS和JavaScript的完成控制

三个组件

模型:表示应用程序核心。处理应用程序数据逻辑

视图:展示数据

控制器:处理用户交互

传统路由

显式路由参数

隐式路由参数

特性路由

其思想是,不是在应用程序启动时显式定义一个路由表,而是用专用的路由特性修饰控制器方法。路由特性将在内部填写系统的路由表

控制器从路由获取数据

从Request获取数据

存在问题:需要知道从什么地方获取值,如URL,查询字符串等,用不同API进行访问

任何值都返回字符串,需进行类型转换

从RouteDate获取数据

模型绑定

只关注控制器方法收到的数据,忽略数据的获取和来源

默认模型绑定器

绑定基本类型

在请求上下文获取数据,绑定器会寻找可行值,寻找命名值的匹配,如果没有匹配,则参数异常或返回默认值,命中则自动绑定

强制从给定来源绑定

FromQuery ,FromRoute,FromForm强制匹配固定词,如果没有就使用声明的默认值。

匹配city=London,如果没有city=London,则使用声明的默认值

绑定复杂类型

传送容器类

筛选器分类

操作筛选器

可以通过重写筛选器内方法来决定调用该方法前后做什么

筛选器可以有同步和异步实现

提供HTML

终止中间件提供HTML(通过算法完成)

终止中间件是处理请求的一段代码

即一个处理http请求的函数。代码可以做任何操作,浏览器把他作为HTML呈现

从控制器提供HTML内容

在操作方法中提供纯文本(通过算法完成)

Razor模版(通过模版完成)

用视图引擎(调用View)将Razor渲染成HTML

封装了Razor模版和视图模型对象(封装了数据)

调用视图引擎

视图引擎负责从视图(一般是C#加上HTML混合)创建HTML

View方法

视图是一个Razor文件,在View文件夹下

model指出模版中使用数据类型,以生成HTML

ViewResult 对象

将Razor模版名称,母版页视图和视图模型打包成实现IActionResult接口对象。类名为ViewResult

当调用ExecuteResultAsync,触发视图引擎生成HTML

综合应用

视图引擎会将视图模版(模板中的占位符将被替换为计算出的数据)和控制器传入数据混合,并进行HTML创建

模版是引擎指定语言(如Razor)

传入数据则封装到字典或强类型对象

向视图传递数据

通过@inject指令实现依赖注入(不考)

使用内置字典ViewData

Controller基类提供Viewdata属性,该属性自动刷新到动态创建的RazorPage<T>类实例

意味着控制器ViewData存储任何值都可在视图使用,不用人为操作

使用内置字典Viewbag

使用强类型视图模型类

强类型视图模型类表现更好

razor

基本语法

指令

部分题目

正确

Request.QueryString["uid"]

MSIL

拾遗

相关推荐
波波0071 天前
每日一题:中间件是如何工作的?
中间件·.net·面试题
无风听海1 天前
.NET 10之可空引用类型
数据结构·.net
码云数智-园园1 天前
基于 JSON 配置的 .NET 桌面应用自动更新实现指南
.net
无风听海1 天前
.NET 10 之dotnet run的功能
.net
岩屿1 天前
Ubuntu下安装Docker并部署.NET API(二)
运维·docker·容器·.net
码云数智-大飞1 天前
.NET 中高效实现 List 集合去重的多种方法详解
.net
easyboot1 天前
使用tinyply.net保存ply格式点云
.net
张人玉1 天前
WPF 多语言实现完整笔记(.NET 4.7.2)
笔记·.net·wpf·多语言实现·多语言适配
波波0072 天前
Native AOT 能改变什么?.NET 预编译技术深度剖析
开发语言·.net
Crazy Struggle3 天前
.NET 中如何快速实现 List 集合去重?
c#·.net