本文通过一个维修工与工具库的例子形象的描述一下为什么要用依赖注入.它的工作原理是什么样的, 然后根据这个类比一下ASP.NET Core 中的依赖注入, 从而深刻了解它的使用方法.注意事项以及回收机制等. 本文主要内容: 1.为什么要用依赖注入(DI) 2.容器的构建和规则 3.ASP.NET Core 2.0中的依赖注入 4.使用方法及需要注意的问题 5.服务的Dispose 6.我想换个容器 1.为什么要用依赖注入(DI) 什么是依赖注入就不说了, 为什么要使用呢? 软件设计原则中有一个依赖…
原文:Dependency Injection 作者:Steve Smith 翻译:刘浩杨 校对:许登洋(Seay).高嵩 ASP.NET Core 的底层设计支持和使用依赖注入.ASP.NET Core 应用程序可以利用内置的框架服务将它们注入到启动类的方法中,并且应用程序服务能够配置注入.由 ASP.NET Core 提供的默认服务容器提供了最小功能集并且不是要取代其他容器. 查看或下载示例代码 什么是依赖注入 依赖注入(Dependency injection,DI)是一种实现对象及其合作…
目录: ASP.NET Core 2.0 : 一. 概述 ASP.NET Core 2.0: 二. 开发环境 ASP.NET Core 2.0 : 三. 项目结构 ASP.NET Core 2.0 : 四. _Layout与_ViewStart ASP.NET Core 2.0 : 五.服务是如何加载并运行的, Kestrel.配置与环境 ASP.NET Core 2.0 : 六. 举个例子来聊聊它的依赖注入 未完待续....…
  来源https://docs.asp.net/en/latest/fundamentals/dependency-injection.html ASP.NET Core 1.0在设计上原生就支持和有效利用依赖注入.在Startup类中,应用可以通过将框架内嵌服务注入到方法中来使用他们:另一方面,你也可以配置服务来注入使用.默认的服务容器只提供了最小的特性集合,所以并不打算取代其他的IoC容器. 什么是依赖注入DI 依赖注入是为了达到解耦对象和其依赖的一项技术.一个类为了完成自身某些操作所需的…
上一篇,我们打造了一个简单的分析器,但是我们实际使用分析器就是为了对项目做分析检测,增加一些非语法的自检的 比如Asp.Net Core 3.0的替换依赖注入检测 设计分析 我们创建一个默认的Asp.Net Core 3.0的项目 打开Startup.cs 大致结构如下 我们要针对Startup分析,第一方法ConfigureServices的返回类型必须是void 这是Asp.Net Core 3.0的改动之一,所以,当Startup.ConfigureServices返回类型不等于void的…
Asp.net core 2.0.1 Razor 的使用学习笔记——基本页面的建立 VS这版(vs版本:15.5.6  .net版本:4.7.02558)的Razor页面自动生成就是坑爹货,它自动生成的页面真是能坑死你不带商量的.到处错误,到处bug.不过相信微软最终是会修复的. 以下是Bug的具体情况,不关心的朋友可以直接跳过. 正常来说,创建的快捷方式是: .Pages右键>添加>新建文件夹>xxxx .xxxx右键>添加>Razor页面>使用实体框架生成Razor…
前言:在本文中,我将聊聊在ASP.NET Core 3.0中细小的变化——启动时记录消息的方式进行小的更改. 现在,ASP.NET Core不再将消息直接记录到控制台,而是正确使用了logging 基础结构,来生成结构化日志. 翻译: Andrew Lock   https://andrewlock.net/new-in-aspnetcore-3-structured-logging-for-startup-messages/ 探索ASP.NET Core 3.0系列一:新的项目文件.Progr…
本文简要说一下ASP.NET Core 在Docker中部署以及docker-compose的使用  (ASP.NET Core 系列目录). 系统环境为CentOS 8 . 打个广告,求职中.. 一.概述 简单说一下Docker的几个概念: 记得上学的时候流行一种安装操作系统的方式,叫GHOST,大概是这样的: 进入PE系统打开GHOST软件,点击“local”,然后选择“Partition”,最后选择“From Image”,选择一个.gho后缀文件,就开始系统安装了. 安装好系统之后,根据…
前言:在本文中,我将描述ASP.NET Core 3.0中新的“validate on build”功能. 这可以用来检测您的DI service provider是否配置错误. 具体而言,该功能可检测您对未在DI容器中注册的服务的依赖关系.首先,我将展示该功能的工作原理,然后举一些场景,在这些场景下,您可能会有一个配置错误的DI容器,而该功能不会被识别为有问题. 翻译: Andrew Lock   https://andrewlock.net/new-in-asp-net-core-3-ser…
本文将对微软下一代ASP.NET框架做个概括性介绍,方便大家进一步熟悉该框架. 在介绍ASP.NET Core 1.0之前有必要澄清一些产品名称及版本号.ASP.NET Core1.0是微软下一代ASP.NET 框架,在这之前ASP.NET版本稳定在ASP.NET  4.6,对应的.NET Framework版本为.net 4.6.1. 曾经一段时间微软将下一代ASP.NET 命名为ASP.NET 5和MVC 6,在ASP.NET 5 is dead – Introducing ASP.NET…
.NET Core版本:1.0.0-rc2Visual Studio版本:Microsoft Visual Studio Community 2015 Update 2开发及运行平台:Windows 7 专业版 Service Pack 1 x64 步骤一.创建ASP.NET Core Web API项目 VS里面新建项目,Web-->ASP.NET Core Web Application(.NET Core)-->Web API,比如本例中建立的TodoApi项目. 步骤二.在Models…
Razor Page介绍 前言 上周期待已久的Asp.Net Core 2.0提前发布了,一下子Net圈热闹了起来,2.0带来了很多新的特性和新的功能,其中Razor Page引起我的关注,作为web程序员来说,Asp.Net下的任何web框架都会去特别关注,因为每次一个新的框架出来,意味着一次革命.此次的Razor Page是否能带来不一样的体验呢,让我们一起来看看吧. 什么是Razor Page 我们都知道在Asp.Net MVC中,Razor是其一种视图引擎.而今天我们介绍的Razor P…
第一部分:http://www.cnblogs.com/cgzl/p/7637250.html 第二部分:http://www.cnblogs.com/cgzl/p/7640077.html 之前我介绍完了asp.net core 2.0 web api最基本的CRUD操作,接下来继续研究: IoC和Dependency Injection (控制反转和依赖注入) 先举个例子说明一下: 比如说我们的ProductController,需要使用Mylogger作为记录日志的服务,MyLogger是…
Github源码地址:https://github.com/solenovex/Building-asp.net-core-2-web-api-starter-template-from-scratch 之前我介绍完了asp.net core 2.0 web api最基本的CRUD操作,接下来继续研究: IoC和Dependency Injection (控制反转和依赖注入) 先举个例子说明一下: 比如说我们的ProductController,需要使用Mylogger作为记录日志的服务,MyL…
本章我们一起来对比着ASP.NET Framework版本看一下ASP.NET Core 2.0的项目结构.(此后的文章也尽量这样对比着, 方便学习理解.) 关注差异, 也为项目迁移做准备. 新建项目, 选择类型 新建项目, 选择.NET Core 有如下几种类型可选, 分别是Console, ASP.NET Core 的空项目, Web API 我们选择ASP.NET Core Web App(MVC), 没有标注MVC的是采用Razor pages 的项目. 项目结构图 新建的项目结构如下图…
前台使用angular 5, 后台是asp.net core 2.0 web api + identity server 4. 从头编写asp.net core 2.0 web api 基础框架: 第1部分:http://www.cnblogs.com/cgzl/p/7637250.html 第2部分:http://www.cnblogs.com/cgzl/p/7640077.html 第3部分:http://www.cnblogs.com/cgzl/p/7652413.html 第4部分:ht…
Razor Page介绍 前言 上周期待已久的Asp.Net Core 2.0提前发布了,一下子Net圈热闹了起来,2.0带来了很多新的特性和新的功能,其中Razor Page引起我的关注,作为web程序员来说,Asp.Net下的任何web框架都会去特别关注,因为每次一个新的框架出来,意味着一次革命.此次的Razor Page是否能带来不一样的体验呢,让我们一起来看看吧. 什么是Razor Page 我们都知道在Asp.Net MVC中,Razor是其一种视图引擎.而今天我们介绍的Razor P…
本文将对微软下一代ASP.NET框架做个概括性介绍,方便大家进一步熟悉该框架. 在介绍ASP.NET Core 1.0之前有必要澄清一些产品名称及版本号.ASP.NET Core1.0是微软下一代ASP.NET 框架,在这之前ASP.NET版本稳定在ASP.NET  4.6,对应的.NET Framework版本为.net 4.6.2. 曾经一段时间微软将下一代ASP.NET 命名为ASP.NET 5和MVC 6,在ASP.NET 5 is dead – Introducing ASP.NET…
一.简介 gRPC 是一个由Google开源的,跨语言的,高性能的远程过程调用(RPC)框架. gRPC使客户端和服务端应用程序可以透明地进行通信,并简化了连接系统的构建.它使用HTTP/2作为通信协议,使用 Protocol Buffers 作为序列化协议. 它的主要优点: 现代高性能轻量级 RPC 框架. 约定优先的 API 开发,默认使用 Protocol Buffers 作为描述语言,允许与语言无关的实现. 可用于多种语言的工具,以生成强类型的服务器和客户端. 支持客户端,服务器和双向调…
目录 ASP.NET Core 3.0 使用gRPC ASP.NET Core 3.0 gRPC 双向流 ASP.NET Core 3.0 gRPC 认证授权 一.前言 在前一文 <ASP.NET Core 3.0 使用gRPC>中有提到 gRPC 支持双向流调用,支持实时推送消息,这也是 gRPC的一大特点,且 gRPC 在对双向流的控制支持上也是非常强大的. 二. 什么是 gRPC 流 gRPC 有四种服务类型,分别是:简单 RPC(Unary RPC).服务端流式 RPC (Server…
前言:在这篇文章中我们来看看ASP.Net Core 3.0应用程序中一些基本的部分—— .csproj项目文件和Program.cs文件.我将会介绍它们从 ASP.NET Core 2.x 中的默认模板的一些变化,并讨论一些API 的更改. 一.介绍 我们知道.Net Core 3.0在9月23日正式发布,大家已经开始在生产环境中开始使用了,下面让我们看一些基础结构上的变化: (1)Microsoft.AspNetCore.App NuGet上已经不在提供. (2)ASP.Net Core 现…
目录 说明 一.定义角色.API.用户 二.添加自定义事件 三.注入授权服务和中间件 三.如何设置API的授权 四.添加登录颁发 Token 五.部分说明 六.验证 说明 ASP.NET Core 3.0 一个 jwt 的轻量角色/用户.单个API控制的授权认证库 最近得空,重新做一个角色授权库,而之前做了一个角色授权库,是利用微软的默认接口做的,查阅了很多文档,因为理解不够,所以最终做出了有问题. 之前的旧版本 https://github.com/whuanle/CZGL.Auth/tree…
前言:在本文中,我将介绍如何在通用主机之上重新构建ASP.NET Core 3.0,以及由此带来的一些好处. 同时也展示了3.0中引入新的抽象类IHostLifetime,并描述了它在管理应用程序(尤其是worker services)的生命周期中的作用.在文章的后半部分,我会详细介绍类之间的交互及其在应用程序启动和关闭期间的角色. 同时也会详细介绍通常不需要我们处理的事情,即使不需要关心,但是它对于我们理解其原理也很有用! 翻译:Andrew Lock   https://andrewlock…
前言:在本文中,我将介绍ASP.NET Core 3.0 WebHost的微小更改如何使使用IHostedService在应用程序启动时更轻松地运行异步任务. 翻译 :Andrew Lock   https://andrewlock.net/running-async-tasks-on-app-startup-in-asp-net-core-3/ 探索ASP.NET Core 3.0系列一:新的项目文件.Program.cs和generic host 探索ASP.Net Core 3.0系列二:…
写在前面 在前一小节中,我们创建了基于RESFULL风格的服务.这个小节,尝试使用CodeFirst+MySql 的方式实现数据迁移. 一.开发环境 [1]运行环境:win10 家庭版 [2]开发工具:Visual Studio 2019 16.3.10 [3]数据库:MySql 8.0.0 二.创建项目 [1]从文件菜单中选择新建 >项目 将项目命名为 TodoApi 然后单击创建. 如图所示: [2]选择ASP.NET Core Web 应用程序模板 再单击下一步. [3]在创建新的 ASP…
原文:ASP.NET Core 3.0 入门 课程简介 与2.x相比发生的一些变化,项目结构.Blazor.SignalR.gRPC等 课程预计结构 ASP.NET Core 3.0项目架构简介 ASP.NET Core MVC 简介 Blazor SignalR Web API gRPC 发布 一. 创建项目 dotnet core 本质上是控制台应用 1. DI 依赖注入(Dependency Injection) IoC 容器(Inversion of Control)控制反转 注册(服务…
原文:探索ASP.Net Core 3.0系列二:聊聊ASP.Net Core 3.0 中的Startup.cs 前言:.NET Core 3.0 SDK包含比以前版本更多的现成模板. 在本文中,我将比较ASP.NET Core 3应用程序使用的一些不同模板,并查看一些用于ASP.NET Core 3.0中的服务和中间件配置新的帮助方法. 翻译: Andrew Lock   https://andrewlock.net/comparing-startup-between-the-asp-net-…
前台使用angular 5, 后台是asp.net core 2.0 web api + identity server 4. 从头编写asp.net core 2.0 web api 基础框架: 第1部分:http://www.cnblogs.com/cgzl/p/7637250.html 第2部分:http://www.cnblogs.com/cgzl/p/7640077.html 第3部分:http://www.cnblogs.com/cgzl/p/7652413.html 第4部分:ht…
序言 本文将分别介绍 Authentication(认证) 和 Authorization(授权). 并以简单的例子在 ASP.NET Core 6.0 的 WebAPI 中分别实现这两个功能. 相关名词 Authentication 和 Authorization 长得很像,傻傻分不清楚. Authentication(认证):标识用户的身份,一般发生在登录的时候. Authorization(授权):授予用户权限,指定用户能访问哪些资源:授权的前提是知道这个用户是谁,所以授权必须在认证之后.…
众所周知,Red Hat和微软正在努力使.NET Core成为Red Hat企业版Linux (RHEL)系统上的一流开发平台选项.这个团队已经一起工作好几个月了,RHEL对.NET有许多需求.今天在RedHat 峰会DevNation 上宣布了.NET Core & ASP.NET Core 1.0 RTM.Red Hat有一个新的关于在RHEL上更简单的使用.NET Core的选项.(DevNation是一场全栈开发大会,将共同探讨开源的最优秀特性.DevNation 2016由50多场小分…