.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
拾遗
相关文章:
.NET重点
B/S C/S什么语言 B/S: 浏览器端:JavaScript,HTML,CSS 服务器端:ASP(.NET)PHP/JSP 优势:维护方便,易于升级和扩展 劣势:服务器负担沉重 C/S java/.NET/…...
米思奇图形化编程之ESP32控制LED灯闪烁方案实现
目录 一、项目概述 二、硬件准备 三、硬件连接 四、软件编程 五、验证效果 六、总结 一、项目概述 本项目使用米思奇图形化编程环境,编写micropython软件代码,实现了控制ESP32开发板上LED灯闪烁效果。该项目可为后续更复杂的物联网项目打下基础。…...
SMMU软件指南SMMU编程之全局错误和最小配置
安全之安全(security)博客目录导读 目录 一、全局错误 二、最小配置 一、全局错误 与编程接口相关的全局错误会报告到适当的 SMMU_(*_)GERROR 寄存器,而不是通过基于内存的事件队列。这些错误通常是严重的,例如导致 SMMU 停止向前推进。例如…...
JavaEE 导读与环境配置
JavaEE 介绍 Java EE(Java Platform Enterprise Edition), Java 平台企业版. 是JavaSE的扩展, ⽤于解决企业级的开发需求, 所以也可以称之为是⼀组⽤于企业开发的Java技术标准. 所以, 学习JavaEE主要是学习Java在企业中如何应⽤ 框架学习 Java EE 课程共涉及4个框架的学习: Spr…...
Cesium 实例化潜入潜出
Cesium 实例化潜入潜出 1、WebGL Instance 的原理 狭义的的WebGL 中说使用 Instance, 一般指使用 glDrawArraysInstanced 用于实例化渲染的函数。它允许在一次绘制调用中渲染多个相同的几何体实例,而无需为每个实例发起单独的绘制调用。 Three.js 就是使用这种方…...
设计模式——适配器模式
1. 定义 适配器模式(Adapter Pattern)属于结构型设计模式,它的主要作用是将一个类的接口转换成客户期望的另一个接口,使得原本由于接口不兼容而不能一起工作的类可以协同工作。简单来说,就是充当了不同接口之间的 “转…...
Linux安装Docker
如何在虚拟机中安装linux操作系统,参考文章: VMware下Centos7安装步骤-CSDN博客 使用Xshell链接到linux操作系统 执行命令,安装docker的底层工具 sudo yum install -y yum-utils device-mapper-persistent-data lvm2 增加阿里云docker下载仓…...
CH430N 插上电脑无反应
电路图,此处我用的是3.3V供电,现象就是插上USB,电脑没有反应。搜索也搜索不到 抄板请看自己是多少V供电 后来看到也有类似的 换了芯片后就好了。md新板子第一个芯片就是坏的,服了。...
Java实现贪吃蛇游戏
目录 一、项目结构 二、实现步骤 1. 创建 Snake 类 2. 创建 Food 类 3. 创建 GameBoard 类 4. 创建 SnakeGame 类 三、总结 贪吃蛇是一个经典的电子游戏,它的玩法非常简单,但又充满了挑战。玩家通过控制蛇的移动,吃到食物并不断成长&a…...
为SSH2协议服务器的用户设置密钥
目录 私钥的创建1. 在服务器上直接生成2. 如果需要配置免密登录3. 查看生成的密钥 导出私钥至SSH用户获取sudo权限 新的一台服务器类型是SSH2:这表示服务器支持SSH(Secure Shell)协议的第二个版本。SSH是一个网络协议,用于加密方式…...
最新版Chrome浏览器加ActiveX控件之多个VLC控件同时加载
背景 VLC Media Player 是一款可播放大多数格式,而无需安装编解码器包的媒体播放器。可以播放 MPEG-1、MPEG-2、MPEG-4、DivX、DVD/VCD、卫星数字电视频道、地面数字电视频道(digital terrestrial television channels)、在许多作业平台底下透过宽带 IPv4、IPv6 网络…...
sql server 查询对象的修改时间
sql server 不能查询索引的最后修改时间,可以查询表,存储过程,函数,pk 的最后修改时间使用以下语句 select * from sys.all_objects ob order by ob.modify_date desc 但可以参考一下统计信息的最后修改时间,因为索…...
均值聚类算法
K-均值聚类算法是一种常用的无监督学习算法,用于将数据集划分成K个不同的簇。该算法的步骤如下: 1. 选择聚类的个数K。 2. 随机初始化K个聚类中心。 3. 对每个数据点计算其与聚类中心的距离,并将其划分到最近的聚类中心所代表的簇。 4. 对每…...
django中cookie与session的使用
一、cookie cookie由服务器生成 ,存储在浏览器中的键值对数据,具有不安全性,对应敏感数据应该加密储存在服务端每个域名的cookie相互独立浏览器访问域名为A的url地址,会把A域名下的cookie一起传递到服务器cookie可以设置过期时间 django中设…...
Python 协程:并发编程的轻量级利器
一、协程是什么? 协程是一种比线程更加轻量级的存在。它可以在特定的点暂停执行,然后在后续某个时刻恢复执行,并且能够在暂停期间保存其执行状态。与传统的多线程模型不同,协程不需要操作系统进行线程上下文切换的开销,…...
理解JVM
JVM简介 JVM 是 Java Virtual Machine 的简称,意为 Java 虚拟机 虚拟机是指通过软件模拟的具有完整硬件功能的、运行在一个完全隔离的环境中的完整计算机系统 常见的虚拟机: JVM 、 VMwave 、 Virtual Box JVM 和其他两个虚拟机的区别: 1…...
GhostRace: Exploiting and Mitigating Speculative Race Conditions-记录
文章目录 论文背景Spectre-PHT(Transient Execution )Concurrency BugsSRC/SCUAF和实验条件 流程Creating an Unbounded UAF WindowCrafting Speculative Race ConditionsExploiting Speculative Race Conditions poc修复flush and reload 论文 https:/…...
【环境搭建】使用IDEA远程调试Dolphinscheduler
以Dolphinscheduler-3.1.8为例,先把容器起了: $ docker pull apache/dolphinscheduler-standalone-server:3.1.8 $ docker run -d -p 12345:12345 -p 25333:25333 -p 5005:5005 -d apache/dolphinscheduler-standalone-server:3.1.8下载Dolphinschedule…...
强基计划之编程:开启科研精英培养新路径
强基计划之编程:开启科研精英培养新路径 一、强基计划概述 1. 出台背景 在 2003 年,教育部开启高校自主招生改革,于探索综合评价学生、破除招生“唯分数论”等方面收获一定成效。相关调查研究显示,自主招生所录取的学生在入校后…...
奇怪问题| Chrome 访问csdn 创作中心的时候报错: 服务超时,请稍后重试
Chrome 访问csdn 创作中心的时候报错: 服务超时,请稍后重试用无痕浏览器可以正常访问 关闭代理无效清缓存和Cookies无效。考虑无痕浏览器模式下插件不生效,尝试把chrome 插件也禁用,发现有效,是该扩展程序的缘故...
Spring Boot 教程之三十六:实现身份验证
如何在 Spring Boot 中实现简单的身份验证? 在本文中,我们将学习如何使用 Spring设置和配置基本身份验证。身份验证是任何类型的安全性中的主要步骤之一。Spring 提供依赖项,即Spring Security,可帮助在 API 上建立身份验证。有很…...
设计模式中单例模式中懒汉模式的问题
设计模式中单例模式中懒汉模式的问题 今天在项目中遇到了要使用懒汉模式的问题。百度之后,发现还有很多细节是自己之前没有见过的。于是记录一下。下面是在AI助手中的说明。 单例模式的懒汉模式(Lazy Singleton)是在需要时才创建实例&#…...
【唐叔学算法】第18天:解密选择排序的双重魅力-直接选择排序与堆排序的Java实现及性能剖析
引言 在数据排序的世界里,选择排序是一类简单而直观的算法,它通过不断选取未排序部分中的最小(或最大)元素来逐步构建有序序列。今天,我们将深入探讨两种基于选择思想的排序方法——直接选择排序和堆排序,…...
力扣48.旋转图像
文章目录 一、前言二、原地旋转 一、前言 力扣48.旋转图像 这道题要求把给定矩阵旋转90度,并且不允许使用额外矩阵来完成旋转图像。 于是这道题只能使用原地旋转的方法来解决 二、原地旋转 对于一个N3的矩阵来说,只需要两次循环就可以完成了 将A1放到…...
jdk1.8新特性、jvm内存结构、垃圾回收
一、JDK 1.8 也被称为 Java 8,有许多重要的新特性: 1、Lambda 表达式: 它允许把函数作为一个方法的参数(函数作为值传递),可以用更紧凑的方式来表示匿名内部类了例如: new Thread(new Runnable() {Overr…...
MFC/C++学习系列之简单记录13
MFC/C学习系列之简单记录13 前言memsetList Control代码注意 总结 前言 今天记录一下memset和List control 的使用吧! memset memset通常在初始化变量或清空内存区域的时候使用,可以对变量设定特定的值。 使用: 头文件: C&#…...
RabbitMQ中的Topic模式
在现代分布式系统中,消息队列(Message Queue)是实现异步通信、解耦系统组件的重要工具。RabbitMQ 是一个广泛使用的开源消息代理,支持多种消息传递模式,其中 Topic 模式 是一种灵活且强大的模式,允许生产者…...
苹果手机怎么清理空间:拯救你的拥挤手机
在数字生活的海洋中,我们的苹果手机就像一艘小船,载满了照片、应用、视频和各种下载的“宝贝”。随着时间的推移,这艘小船开始变得拥挤,航行速度放缓,甚至有时候直接卡壳。苹果手机怎么清理空间?是时候学会…...
实习冲刺数据库练习-01 基础查询
原题链接:牛客网在线编程_SQL篇_非技术快速入门 数据表示例: 根据数据表示例要求我们完成以下查询: (1)获取用户信息表中所有的数据,请你取出相应结果 (2)获取用户的设备id对应的…...
GAN网络详解及涨点大全总结(源码)
(需要源码请私信或评论) GAN原理 GAN的基本原理建立在 生成模型和判别模型的博弈过程 上。这种独特的机制使得GAN能够在复杂的分布上实现高效的无监督学习。在这个过程中,生成器G和判别器D相互竞争,最终达到一种平衡状态,在此状态下,G能够产生高质量的合成样本,而D则无…...
前端关于pptxgen.js个人使用介绍
官方文档链接:Quick Start Guide | PptxGenJS git地址:https://github.com/gitbrent/PptxGenJS/ 1. 安装命令 npm install pptxgenjs --save yarn add pptxgenjs 2. 示例demo import pptxgen from "pptxgenjs"; // 引入pptxgen // 1. Create a Presenta…...
Webrtc音频模块(四) 音频采集
音频的采集还是封装在AudioDeviceWindowsCore中,相关的Core Audio API接口是下面几个: IAudioClient* _ptrClientIn IAudioCaptureClient* _ptrCaptureClient rtc::scoped_refptr<IMediaObject> _dmo rtc::scoped_refptr<IMediaBuffer> _me…...
乘积小于K的子数组
要解决“乘积小于 k 的子数组”问题,可以使用滑动窗口技术。下面是详细的步骤和思路: 初始化变量: 定义两个指针 left 和 right,都初始化为 0,用于表示窗口的左右边界。一个 product 变量初始化为 1,用于存…...
vue的ElMessage的css样式不生效
我使用elementplus,是使用的用哪个单独引入的,然后表单校验时候警告的css不生效,就是这个效果 反复看视频的引入也没发现问题,后来才知道需要这个引入 import { ElMessage } from "element-plus"; import element-pl…...
视频会议系统如何对接电话会议系统?
视频会议系统如何对接电话会议系统? 作者:开源视频会议系统BigBlueButton&BBBEasy中国区团队,Github地址:https://github.com/lihaiya/bigbluebutton 视频会议系统与电话会议系统的对接,是现代企业通信整合的重要…...
亚马逊API接口深度解析:如何高效获取商品详情与评论数据
在当今数字化时代,电商平台的数据对于商家和开发者来说至关重要。亚马逊作为全球领先的电商平台,其API接口为开发者提供了丰富的商品信息和评论数据。本文将深入探讨如何使用亚马逊API接口获取商品详情和商品评论,同时提供简洁明了的使用方法…...
1222面经
1,Kafka 如何保障顺序消费? Kafka 保障顺序消费主要通过以下几个关键机制和配置来实现: 分区策略 Kafka 将主题划分为多个分区,每个分区内的消息是天然有序的,其按照消息发送到分区的先后顺序进行存储和追加。生产者在发送消息…...
271-基于XC7V690T的12路光纤PCIe接口卡
一、板卡概述 基于XC7V690T的12路光纤PCI-E接口卡,用于实现多通道高速光纤数据接收和发送,板卡兼容PCIe 2.0和PCIe 3.0规范,利用PCI-E Switch PEX 8748实现FPGA芯片与计算机的通信,计算机与板卡接口处提供PCI-e 16速接口ÿ…...
完成第一个 Vue3.2 项目后,这是我的技术总结
第一次Composition API 在vue3.2中,正式支持了script setup的写法,这样可以大大简化组件的代码量,减少一些重复操作,我认为当你写vue3时,应该把这当作默认写法。在vue3.2之前,一般会这样写。 <script>export de…...
类的动态演绎:程序运行中的生命绽放
任务1.按照要求设计类(根据输出设计类) 设计类就是根据数据封装的要求,抽象出适合的类。 有如下情况的测试程序和测试程序的输出结果,要求设计类Smile。 (一)第1种情况: (1)测试程序如下&#x…...
从代币角度介绍solana账户体系
1、solana 的账户概念介绍 Solana的账户体系是其区块链的核心组成部分,它允许数据和价值在链上存储和转移。以下是Solana账户体系的一些关键特点: • 账户模型: • 在Solana上,所有数据都存储在所谓的“账户”中,类似…...
Python pygame 主副屏编程时 在副屏上全屏窗口的方法
Python在windows环境中编程时,用pygame工具包能够很轻易的完成2D游戏的简单设计,非常好用,相关帖子很多。 而当电脑连接了多块显示器时(注意不是windows的多桌面),系统选择扩展这些显示器后,可…...
服务器数据恢复—V7000存储中多块磁盘出现故障导致业务中断的数据恢复案例
服务器存储数据恢复环境: 一台V7000存储上共12块SAS机械硬盘(其中1块是热备盘),组建了2组Mdisk,创建了一个pool。挂载在小型机上作为逻辑盘使用,小型机上安装的AIXSybase。 服务器存储故障: V7…...
Qt开发经验 --- 避坑指南(2)
文章目录 1、 Heob窗口变得非常长,配置名称是一长串乱码2、 Qt安装报错 From 6.5.0, xcb-cursor0 or libxcb-cursor0 is needed to load the Qt xcb platform plugin.3、Cmake编译错误找不到libwinpthread-1.dll4、CMake编译找不到mingw5、linux下qtcreator启动报错…...
2.4 网络概念(分层、TCP)
网络层与传输层概述 网络层: 抽象概念:网络层是基于 IP 的抽象概念,与数据链路层用 MAC 地址标记设备不同。MAC 地址是一种具体化的概念,绑定于所在的物理网络,而 IP 地址可以是固定的,也可以通过路由动态…...
Elasticsearch问题总结
Fielddata access on the_id field is disallowed, you can re-enable it by updating the dynamic cluster setting: indices.id_field_data.enabledElasticsearch默认禁用_id字段进行排序,这是因为_id字段通常不需要进行聚合或排序操作,启用字段数据可…...
C++点云大文件读取
C点云大文件读取 1. 常规读取1.1 逐行读取1.2 逐字节读取 2. 并行读取 (Multithreading)3. 使用缓冲读取 (Buffered I/O)4. 内存映射文件 (Memory Mapping) 在C中读取大文件时,如果需要提高读取速度,可以考虑以下几种方法: 1. 常规读取 常规…...
Hololens 2 Unity VS2019编译报错解决方案
报错问题描述不够详细,但是针对Hololens 2和Unity开发环境中的VS2019编译错误,以下 是一些常见的问题及其解决方案: 1.缺少或错误的Unity版本 确保安装了支持Hololens 2的Unity版本(例如2019.3或更高)。 2.缺少C工作负载 打开Visual Studio Installe…...
【Cadence射频仿真学习笔记】IC设计中电感的分析、建模与绘制(EMX电磁仿真,RFIC-GPT生成无源器件及与cadence的交互)
一、理论讲解 1. 电感设计的两个角度 电感的设计可以从两个角度考虑,一个是外部特性,一个是内部特性。外部特性就是把电感视为一个黑盒子,带有两个端子,如果带有抽头的电感就有三个端子,需要去考虑其电感值、Q值和自…...
记录:virt-manager配置Ubuntu arm虚拟机
virt-manager(Virtual Machine Manager)是一个图形用户界面应用程序,通过libvirt管理虚拟机(即作为libvirt的图形前端) 因为要在Linux arm环境做测试,记录下virt-manager配置arm虚拟机的过程 先在VMWare中…...