Skip to content

chenzuo/dotnet-core-practices

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

95 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

.Net Core 实践

本文介绍dotnet core 环境下的一些常用使用方法和实践过程,包括:mvc,webapi,cache... 如果你任何问题可以直接与我联系,联系方式:[email protected],如需要转发请标明出处,本系列文章首发于github.com/chenzuo;

  • 如何创建一个在windows和linux下运行的控制台应用程序
  • 如何使用 .net core开发一个中间键
  • 在 .net core中使用webapi、mvc进行简单的数据访问操作
  • 如何在 .net core中使用现有的缓存、日志等,并且如何快速定位生产线上的异常
  • 部署 .net core web程序到linux下使用nginx反向代理方式进行访问
  • 将https证书绑定到 .net core web服务中
  • 一些快捷的部署方式、脚本演示
  • 配合typescript语言进行前后端数据交互
  • 一些高级平台的部署使用,包括:servicefabric,k8s等

阅读本文的群体和要掌握的基础知识点

  • 面向 .net core 初中级学者
  • 了解c#基础语法(C#6.0+)
  • 开发环境: .net core 3.1/6.0 ,nodejs8,sqlserver express 2019
  • 准备测试环境:多台云厂商的线上服务器
  • 开发工具:Visual Studio 2019 、VS Code
  • 目标成果:使初学者快速使用现在的工具快速的进行简单项目开发、部署、运维
  • .NET Core SDK 在开发环境中的安装
  • 集成环境工具选择
  • .NET Core 运行时在目标操作系统(linux)上的安装
  • Nginx反向代理服务安装

(二)Linux下的第一个可执行应用程序

  • 命令行中创建”Hello World”控制台应用程序
  • 命令行编译、发布
  • 手动方式部署到远端服务器
  • 在Centos中应用命令行启动第一个控制应用程序

(三)Linux下的第一个 ASP .NET Core WebApi应用程序

  • 在Visual Studio 2019中创建ASP.NET WebApi应用程序
  • 支持跨域资源访问(CORS)
  • 发布并手动部署到Centos服务器中
  • 在服务器中命令行测试已运行的WebApi接口

(四) 编写前端页面访问WebApi接口

  • 在VSCode中编写原生TS封装类似AJAX网络访问库
  • 在静态页面中访问WebApi接口
  • 使用”webpack”进行发布

(五) 使用Nginx服务反向代理 .NET Core服务让外网访问

  • Nginx中创建静态站点(Web)
  • Nginx配置反向代理访问WebApi服务
  • 配置各站点、配置https、域名绑定
  • 在浏览器中测试结果

(六)WebApi、Asp.Net MVC 中的单元测

(七)ASP .NET CORE MVC常用安全配置

(八).NET Core中的依赖注入

  • 什么是依赖注入
  • .NET Core应用程序中使用依赖注入
  • ASP.NET Core 应用程序中使用依赖注入
  • 编写一个依赖注入应用的单元测试

(九) 访问数据库

(十)一些简单中间件的使用

  • 系统中内置的常用中间件介绍
    • 异常/错误处理Exception:UseDeveloperExceptionPage,UseDatabaseErrorPage,UseExceptionHandler
    • 严格传输安全协议:UseHttps
    • HTTPS重定向:UseHttpsRedirection
    • Cookie策略实施:UseCookiePolicy
    • 身份验证:UseAuthentication
    • 重写一个中间件
    • System.Text.Json多态序列化问题处理

(十一)Http无状态认证鉴权实现

  • 对于Http无状态认证常用方式
    • Cookie
    • TOKEN
  • 第三方认证后本地服务如何使用状态管理
    • Claims based security
  • 基于Microsoft Identity的鉴权与认证实现
    • Part 1: 基础原理与入门介绍
    • Part 2: 与Entity Framework整合
    • Part 3: 深入剖析授权原理
    • Part 4: OAuth 2.0, OpenID Connect & IdentityServer
    • Part 5: 外部提供的认证方式和注册到系统中的策略实现
    • Part 6: 认证的必要二个条件

(十二)依赖包管理

  • 项目中用私有包管理器好处
  • 搭建私有NuGet包管理服务器
  • VS中通过项目配置文件方式配置NuGet包
  • 命令行方式操作一个NuGet配置与推送到远程服务器中
  • 手动发布到私有包管理服务器
  • 在VS中配置发布到包到私有包管理服务器

(十三)搭建一个简单的前后端应用示例

(十四)可测试的系统架构设计

  • 创建一个单元测试
  • 创建一个集成测试
  • 如何开始一个TDD

(十五)使用docker工具打包.NET Core应用程序

  • 如何在CentOS7中安装与使用Docker
  • DotNet Core在Docker中的发布与部署
    • ASP.NET CORE应用程序在docker中的使用
    • dotnet application应用程序在docker中的使用
  • Docker中运行多镜像实例

(十六)使用K8s部署.NET Core应用程序

(十七)使用Service fabric进行分布式应用管理

  • 在windows 10下快速搭建Service fabric开发环境
    • 安装包方式
    • PowerShell脚本命令方式
  • 多台云服务器中搭建安全Service Fabric运行环境
  • 部署示例程序到Service fabric环境中
  • 命令方式进行对系统扩容与收缩
  • 在自运行系统中的代码里进行系统扩容与收缩
  • 手动故障点测试

(十八)分布式框架Orleans

  • Orleans是什么,它可以应用到那些场景中
  • 程序中有状态,无状态能给我带来什么好处
  • 什么是Actor模型,什么是Vitual Actor模型
  • 在游戏中Orleans的使用
  • 如何快速部署我们的应用在多台服务器中

(十九)使用Dapr(Distributed Application Runtime ,分布式应用运行时)来解决我们分布式应用

  • Dapr概述:用我可以做什么?
  • 如何在Centos中安装Dapr
  • ASP.NET Core应用程序Host在Dapr中.
  • 在多台服务器中我们如何快速部署或者更新我们应用服务.
  • 真香组合:asp.net core + dapr + Istio + k8s.

(二十)如何在Jenkins中进行CI/CD

  • 把目标应用程序通过Jenkins打包成docker包然后部署到k8s中
  • 把目标应用程序通过Jenkins发布到Service fabric中

(二十一)Semantic Kernel

示例脚本

前端示例

  • Working with Sass, Bootstrap5 and Gulp4
  • React 应用
    • React 示例
    • React + react-router-dom 示例
  • Teams App应用开发Teams Bot和AdaptiveCards应用