.NET Core学习之路
2021/8/7 23:09:38
本文主要是介绍.NET Core学习之路,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
官方文档:https://docs.microsoft.com/zh-cn/dotnet/
官方资讯:.NET Blog
简析.NET Core 以及与 .NET Framework的关系
.NET Core全面扫盲贴
工具先行
图解VS 2017升级并安装.NET Core 2.1 SDK
Ubuntu18.04上安装.NET Core(dotnet-sdk)
下载 SDK 地址 :https://dotnet.microsoft.com/download
SDK 和 RunTime 的区别: 1、SDK 是用来开发 NetCore 的,内部捆绑了 Runtime 运行时; 2、但是如果只想运行 NetCore 项目的话,只需要在服务器中安装 Runtime 运行时即可;
.NET Core
命令行 .NET Core入门程序及命令行练习 .NET Core多平台开发体验: Windows、mac、Linux、Docker [大内老A]ASP.NET Core
一、设计思想
1、约定优于配置
2、默认存在的组件简单(不该有的东西不加入框架),易于扩展
二、基于环境的配置:
当我们开发应用程序时,它处于开发环境。但是一旦我们发布之后,它将处于生产环境。因此,将每个环境进行隔离配置往往是一种好的实践方式。
在 .NET Core 中,这一点很容易实现。一旦我们创建好了项目,就已经有一个 appsettings.json
文件,当我们展开它时会看到 appsettings.Development.json
文件:
此文件中的所有设置将用于开发环境。
我们应该添加另一个文件 appsettings.Production.json
,将其用于生产环境:
设置修改后,我们就可以通过不同的 appsettings 文件来加载不同的配置,取决于我们应用程序当前所处环境
更多参考:ASP.NET Core 如何设置发布环境
三、记录接口访问日志
.NET Framework WebApi 记录接口访问日志,一般是通过Filter的方式进行拦截,通过重写ActionFilterAttribute的OnActionExecuting实现拦截记录Request内容,通过重写OnActionExecuted实现拦截记录Response内容
.Net Core WebApi 下通过中间件的拦截方式记录接口访问日志,关键部分是通过读取获取 Request.Body 时需要开启 Request.EnableRewind () 启用倒带功能,即可以读取多次【.NET Core 3.0 中被改名为 EnableBuffering】。
参考:
ASP.NET Core 入门(2)(WebApi接口请求日志 Request和Response)
ASP.NET Core 中读取 Request.Body 的正确姿势
理论篇
1、教程:ASP.NET Core 入门
系统必备:.NET Core 2.2 SDK
ASP.NET Core免费(视频)教程汇总
2、老张的哲学 【强烈推荐】
部分解释:
可能是你还没在UseSwaggerMildd中添加ApiVersions版本的代码。
- 从壹开始前后端分离【 .NET Core2.0/3.0 +Vue2.0 】框架之四 || Swagger的使用 3.2 中的 9、自定义 Swagger Index 静态页模板
【注意 index.html属性为 嵌入的资源】
3、https://blog.johnwu.cc/categories/
4、汤姆大叔的博客:解读ASP.NET 5 & MVC6系列 【但是名字已改】 ASP.NET 5 已死 - 隆重介绍 ASP.NET Core 1.0 和 .NET Core 1.0其他问题
1、页面输出中文乱码,参考:【看第一条评论】asp.net core输出中文乱码的问题
EF Core CodeFirst实践 ( 使用MS SqlServer)
在文件资源管理器中找到这个项目,找到 project.json文件【这一步不需要。core2.0中没有了此文件】
未找到与命令“dotnet-ef“匹配的可执行文件
编辑csproj文件,在相应位置加入以下:
<ItemGroup> <DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="2.0.0" /> </ItemGroup>博客参考:大内老A ASP.NET Core 身份验证(一) https: 如果你的项目已经创建好了并且勾选那个 HTTPS选项,每次访问都是HTTPS的,但是你不想这么做,可以在 launthSettings.json 文件中,把sslPort 端口号改成0即可
实战篇
电子商城:eShopOnContainers
新闻网站:Asp.net core 项目实战 新闻网站+后台 源码、设计原理 、视频教程
Asp.net Core WebAPI
ASP.NET Core Web API 最佳实践指南
1、Startup类和服务配置:方法:ConfigureServices
是用于服务注册,Configure
方法是向应用程序的请求管道中添加中间件。
最好的方式是保持 ConfigureServices
方法简洁,并且尽可能地具有可读性。当然,我们需要在该方法内部编写代码来注册服务,但是我们可以通过使用 扩展方法
来让我们的代码更加地可读和可维护。
2、项目组织:我们的实体、契约、访问数据库操作、记录信息或者发送邮件的业务逻辑应该始终放在单独的 .NET Core 类库项目中。
3、全局异常处理,参考 如何在ASP.Net Core Web API中实现全局异常处理
从我们的 action 中删除 try-catch
,并将其放在一个集中的地方会是一种更好的方式。.NET Core 给我们提供了一种处理全局异常的方式。
4、使用过滤器来移除重复代码:我们在请求管道的特定状态之前或之后运行一些代码,通过使用 ActionFilter 来代替。
5、路由:应该使用属性路由代替传统路由
发布部署
.NET core2.0 发布至IIS中 Asp.Net Core 发布和部署( MacOS + Linux + Nginx )/home/huy/Publish/News/publish 下执行:dotnet NewsPublish.dll
然后测试下 http://localhost:5000
机器学习
ML.NET学习
其他
微服务根据自己的需要,而不是选什么框架
可以看看这个基于.netcore的小项目,
https://github.com/geffzhang/NanoFabric
https://www.csharpkit.com/microservice.html
还有这个框架也不错 https://github.com/dotnetcore/surging
https://github.com/OrchardCMS/OrchardCore/wiki/Roadmap
这个框架值得研究下
asp.net core 很多设计都来自于Orchard
这篇关于.NET Core学习之路的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2022-03-01沐雪多租宝商城源码从.NetCore3.1升级到.Net6的步骤
- 2024-11-15C#中怎么从PEM格式的证书中提取公钥?-icode9专业技术文章分享
- 2024-11-14云架构设计——如何用diagrams.net绘制专业的AWS架构图?
- 2024-05-08首个适配Visual Studio平台的国产智能编程助手CodeGeeX正式上线!C#程序员必备效率神器!
- 2024-03-30C#设计模式之十六迭代器模式(Iterator Pattern)【行为型】
- 2024-03-29c# datetime tryparse
- 2024-02-21list find index c#
- 2024-01-24convert toint32 c#
- 2024-01-24Advanced .Net Debugging 1:你必须知道的调试工具
- 2024-01-24.NET集成IdGenerator生成分布式全局唯一ID