2023年11月将发布发布.NET Core 8.0,基于的 ASP.NET Core 8.0也会一并发布,这是继6.0之后,又一个重要版本,因为nativeAOT,也会在性能上有很大提升,所以打算系统地了解一下这项技术。
ASP.NET Core 的几个主要优势:
- 跨平台,可运行于 Windows, macOS, Linux(Docker),Azure和AWS自然不用说
- 使用优雅的C#
- 开源
- 稳定(有大靠山)
到于官网上提到的自家特性比如Razor Pages,Blazor则不是技术选型的重点。
如果托管在Windows,可以使用 IIS,HTTP.sys,不过应该很少人用Windows托管了。
如果托管在Linux,可以使用微软自家的Kestrel,亦或Nginx,Apache。
ASP.NET Core 支持几种程序形式
- Web API,RESTful HTTP接口,可以给多端提供接口,前端可以选择JS实现,调用API
- Web Apps
- MVC,传统的MVC模式
- Razor Pages,和以前的Web Form类似
- gRPC, gRPC的微软实现
- SignalR, 双端实时通信,替代WCF
- Blazor, WebAssembly 的微软实现
这里重点了解Web API 如何实现服务接口,以及 Web Apps 如何实现网站。以下是想要整理的技术点:
- 开发
- 项目代码的文件结构
- MVC 项目的结构和逻辑
- Controller和HTTP请求的路由
- View的路由
- Razor Pages的结构和逻辑
- Main函数的初始化,的启动
- 网站服务器WebApplication和Generic Host
- 中间件 Middleware
- EF Core的使用
- DI,依赖注入服务
- HttpClientFactory
- 部署
- 部署在 Azure 的App Service
- 部署在 Docker
- 网站的文件夹结构
- wwwroot 文件夹
- 部署环境的配置项(保存和使用),开发环境/生产环境的切换
- Azure中App Service的文件结构
- 调试
- 日志的输出(控制台,三方文件库,输出到Azure日志流)
- 错误处理