微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

.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版本的代码

        【注意 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

 

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐