.NET重点

ops/2024/12/27 4:14:47/

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 Standard只是规范,一个.NET Standard类库可以被.NET Framework,.NET Core等引用,而.NET Framework类库则不可以。所以编写一个公用类库,尽量选择低版本.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模式下功能层作用)

中间件用法

app.use

app.run

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的新式对象数据库映射器。

核心组件

DbContext

派生自DbContext的类

EF Core提供程序

数据库提供程序

迁移 反向工程

基本命令

反向工程:管理器控制台的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进行访问

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

从RouteData获取数据

模型绑定

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

默认模型绑定器

任何传入的请求都会经过内置的绑定器对象,对应与DefaultModeBinder类的实例。试图在请求上传的任何数据中找到匹配名称。

绑定基本类型

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

 

强制从给定来源绑定 

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)

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

控制器和视图引擎生成视图原理

控制器

控制执行流之后,保存一个HTML文本字符串,然后用HTML MIME类型修饰文本后,控制器返回这个文本字符串

视图引擎

视图引擎被触发后,会读取对应的模板文件,并将控制器提供的数据填充进去,得到完整HTML后将其返回

向视图传递数据

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

使用内置字典ViewData

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

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

使用内置字典Viewbag

使用强类型视图模型类

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


 

razor


基本语法


指令

@using         在编译上下文添加一个命名空间

@inherits       生成Razor视图对象使用实际基类

@model         向视图传递数据类的类型

@inject          在视图上下文注入指定类型的实例,该类型绑定到给定属性名

部分题目

正确

Request.Query["uid"]

MSIL

拾遗


http://www.ppmy.cn/ops/145286.html

相关文章

Android笔试面试题AI答之Android基础(3)

文章目录 1.谈一谈 Android 的安全机制一、系统架构层面的安全设计二、核心安全机制三、其他安全机制与措施 2.Android 的四大组件是哪四大&#xff1f;3.Android 的四大组件都需要在清单文件中注册吗&#xff1f;4.介绍几个常用的Linux命令一、文件和目录管理二、用户和权限管…

【GD32】从零开始学GD32单片机 | DAC数模转换器 + 三角波输出例程

目录 简介输出缓冲外部触发数据转换噪声波LSFR噪声模式三角噪声模式 例程 简介 上一篇讲解了ADC的使用&#xff0c;所以这一篇讲DAC的使用&#xff0c;两者其实就是互补的关系&#xff0c;ADC将模拟信号转为数字信号&#xff0c;而DAC将数字信号转为模拟信号。具体的使用上DAC…

Windows电脑部署SD 3.5结合内网穿透随时随地生成高质量AI图像

文章目录 前言1. 本地部署ComfyUI2. 下载 Stable Diffusion3.5 模型3. 演示文生图4. 公网使用Stable Diffusion 3.5 大模型4.1 创建远程连接公网地址 5. 固定远程访问公网地址 前言 在数字化创意时代&#xff0c;AI技术的发展为我们带来了无限可能。尤其是对于那些追求高效和高…

软件项目需求分析的实践探索(1)

一、项目启动与规划 组建团队 包括项目经理、系统分析师、业务分析师以及可能涉及的最终用户代表和领域专家等。例如&#xff0c;开发一个医疗管理软件&#xff0c;就需要有医疗行业的专家参与&#xff0c;确保对医疗业务流程有深入理解。明确各成员的职责&#xff0c;如系统分…

Windows脚本命令与Linux Bash脚本命令

一、Windows脚本命令语法 Windows脚本通常指的是批处理脚本&#xff08;Batch Script&#xff09;&#xff0c;其文件扩展名为.bat或.cmd。批处理脚本是一系列按特定顺序执行的命令集合。 1. 注释 语法&#xff1a;REM 注释内容 示例&#xff1a;REM 这是一个…

MFC/C++学习系列之简单记录4——错误解决与错误提示

MFC/C学习系列之简单记录4 前言Local function definitions are illegalAssert的使用Error link 2001 Unresolved external symbolCannot convert parameter 2 from unsigned char 1024 to const char * types pointed to are unrelated总结 前言 针对最近更改遇到的问题&…

反射探针.

一、在unity场景中如何添加反射探针&#xff1f; 可以先添加一个空对象&#xff0c;在空对象的上方添加反射探针组件&#xff08;Reflection Probe&#xff09; 反射探针的类型有&#xff1a;Baked、Custom、Realtime 其中“Baked”反射探针类型&#xff0c;可以将场景中的静态…

图解HTTP-HTTP报文

参考资料&#xff1a;图解HTTP HTTP报文 用于HTTP协议交互的信息被称为HTTP报文。请求端的HTTP请求报文&#xff0c;响应端&#xff08;服务器端&#xff09;的叫做响应报文。HTTP报文本身是由多行&#xff08;CR LF作为换行符&#xff09;数据行构成的文本。 请求报文及响…