导图社区 ASP.NET Core 应用开发
本图涵盖了ASP.NET Core框架中相关的各种技术,根据你的需要,以及你对微软技术栈的掌握程度,可能会需要重点关注某些特定的领域
社区模板帮助中心,点此进入>>
互联网9大思维
组织架构-单商户商城webAPP 思维导图。
域控上线
python思维导图
css
CSS
计算机操作系统思维导图
计算机组成原理
IMX6UL(A7)
考试学情分析系统
ASP.NET Core 应用开发
技术选型
ASP.NET Core MVC
Model(模型)
包含所有需要渲染到页面的内容
经过完善的业务逻辑处理之后形成
通常由数据库中多张表扁平地组织在一起
View(视图)
存在Views文件夹中
Razor视图
和模型紧密关联,在所需的HTML中插入部分数据模型并呈现给用户
局部视图
DRY 原则
不直接渲染,作为其它视图的组成部分
Controller(控制器)
以Controller 作为类名的结尾
存于Controllers文件夹中
主要职责:处理请求、校验输入参数、创建一个相应的输出响应
在控制器中,避免任何业务逻辑的代码,业务逻辑应该是模型层或是其他组件应该负责的事情;同时,也不要在操作中直接进行数据访问或者外部调用,这些都是服务层该做的事情
定义项目范围
面向客户的应用程序
管理界面
API
数据共享,互相调用。需要构建数据防护层
部署
部署过程是可以自动化实现的,而且也应该被自动化实现
生成
命令行生成
dotnet build
dotnet restore
生成服务器
搭建生成服务器
持续集成
即时暴露问题
“每夜构建”
生成流水线
1. 签入
2. 接受改动
3. 还原包
4. 生成代码
5. 执行单元测试
6. 执行集成测试
7. 执行UI测试
8. 执行性能测试
9. 部署产品
频繁地生成能够确保在开发周期内尽早地发现问题,也能非常快速地交付软件的最新版本
Web服务器部署
Windows 内置IIS 作为网站的宿主服务器
在目前的ASP.NET Core 版本之前,ASP.NET一直都是宿主在IIS进程w3wp.exe中的,而在ASP.NET Core中,IIS则只是作为一个反向代理,会将所有的请求发送到Kestrel中
Kestrel
反向代理
Nginx
发布
Web Deploy
最理想,可以直接发布到远程位置
TeamCity
JenKins
TFS Build
云端解决方案
FTP
File System
Web Deploy Package
Azure部署
容器部署
创建可重复的环境
docker
部署过程是可以自动化实现的,而且也应当被自动化实现
Entity Framework Core
将关系型数据映射到应用程序中的面向对象的领域模型(ORM)
支持LINQ
基础知识
查询单条记录
基于主键查询单条记录
xxx.Find(ID)
基于一个条件查询单条记录
xxx.First(filter)
如果没有匹配条件的记录,First方法会抛出异常。可以改用FirstOrDefault方法,它没有找到匹配条件的记录时,会返回null。Single 和 SingleOrDefault 工作方式与First 和 FirstOrDefault 方法几乎一样。但是如果匹配条件的记录多于一条,就会抛出异常
查询多条记录
调用Where
当调用Where方法时,EF并不会马上就对数据库进行查询。通过调用ToList方法,来强制马上执行数据库查询
保存数据
SaveChanges
调用SaveChanges时,EF向数据库发送Insert命令,此时,一个事务被创建,所有的insert都在这个事务中被执行,任何一个命令执行失败,事务就会回滚
跟踪修改
调用SaveChanges时,EF向数据库发送Update命令
修改跟踪器
一定的性能损耗
加载实体对象,已经知道要进行读操作,那么可关闭修改跟踪,通过使用AsNoTracking
迁移创建和更新数据库
依赖包:Microsoft.EntityFrameworkCore.Tools
创建一个新数据库:dotnet ef database update
程序包含一个以上的DbContext类,那么在上一个指令末尾加 -c(或--context) + DbContext name
添加迁移
将数据库升级或降级到另外一个版本
继承自Migration类
为生产环境服务器创建更新脚本
dotnet ef migrations script
使用默认选项,这个命令会输出指定的DbContext的所有迁移。From 和 To选项可以用来生成从一个指定版本到另一个指定版本之间所有迁移的脚本
> dotnet ef migrations script 0 InitialRestortContext
跨越上下文边界的关联
Razor 视图
配置和日志
配置的所有值以键值对形式存储
配置在appsetting.json文件中,并在Startup中读取
日志级别
Trace(追踪)
默认是禁用的
Debug(调试)
Information(信息)
Warning(警告)
Error(错误)
Critical(严重)
ILogger
身份标识、安全与权限管理
依赖注入
SOLID 原则
ASP.NET Core内置容器
第三方容器
Autofac
返回为IServiceProvider,不为void
高级功能
使用程序集扫描自动注册
将配置分离到模块中
容器的生命周期
Transient
每次请求服务时,都会创建一个新实例。这种生命周期适合轻量级服务
Scoped
为每个HTTP请求创建一个实例
Singleton
在第一次请求服务时,为该服务创建一个实例
Instance
与Singleton类似,但在应用程序启动时会将该实例注册到容器
依赖项管理
NuGet
npm
Yarn
npm是事实上的服务器端JavaScript程序包管理器标准。但是npm有其弱点,安装依赖包时,npm 会选择一个与标注的版本相兼容的版本。所以不同时间点可能会安装不同的版本。而Yarn 只安装依赖包中的指定版本,所以不同的人,不同pc,不同时间安装包是相同的
Bower
JavaScript
TypeScript
前端与样式
缓存
缓存控制头
Data-Cache
内存缓存
分布式缓存
可重用组件
标签助手
视图组件
测试
单元测试
JavaScript测试
可扩展性
约定
中间件
加载外部的控制器和视图
路由
JavaScript 服务和同构应用程序