https://www.cnblogs.com/artech/p/net-core-di-01.html 大内老A的在.NET Core下对这些的介绍,有一系列文章 https://www.cnblogs.com/jesse2013/p/di-in-aspnetcore.html https://www.cnblogs.com/artech/p/dependency-injection-in-asp-net-core.html https://www.zybuluo.com/dasajia2la…
Asp.Net Core 提供了默认的依赖注入容器 IServiceCollection,它是一个轻量级的依赖注入容器,所以功能不多,只是提供了基础的一些功能,要实现AOP就有点麻烦,因此在实际工作当中,我们常常会使用第三方依赖注入容器替换掉Asp.Net Core自带的依赖注入容器. 我们先来看下Asp.Net Core自带依赖注入容器IServiceCollection的主要用法,虽然说在工作中经常会被替换掉,但有些情况下使用该自带的就已经足够了,所以自然也就需要先了解它的使用方法. ISe…
asp.net core 内置DI容器的一点小理解   DI容器本质上是一个工厂,负责提供向它请求的类型的实例. .net core内置了一个轻量级的DI容器,方便开发人员面向接口编程和依赖倒置(IOC). 具体体现为Micorosoft.Extensions.DependencyInjection这个包. .net core中内置的DI容器包含两大要素:ServiceCollection和ServiceProvider. 为了便于理解,我画了一张图: 通过上面的UML类图可以看出Service…
在上一节的学习中,我们已经知道了通过 IServiceCollection 拓展方法创建 IServiceProvider 默认的是一个类型为 ServiceProvider 对象,并且实际提供创建对象功能的是它的内部为类型为 IServiceProviderEngine 对象,实际上关于 IServiceProvider 的架构比我们想象的还要复杂的多,一个是根容器的概念,另一个就是使用编译时引擎(CompliedServiceProviderEngine)动态构建表达式树,提高了创建实例的效…
之前使用以来注入的时候,都是在xml配置对应的接口和实现类,经常会出现忘了写配置,导致注入不生效,会报错,而且项目中使用的是SPA的模式,ajax报错也不容易看出问题,经常会去排查日志找问题. 于是在园子里面看到园友的自动注入,觉得很有意思,但是园友是用的MVC5,就自己再.Net Core上试了一下,于是就记录下来使用的过程 在asp.net core中,自带了一个依赖注入容器,但是功能有限,我们一般会采用第三方的容器来接管自带的容器, var builder = new ContainerB…
一直对分布式的文件储存系统很感兴趣,最开始关注淘宝的TFS(Taobao File System),好像搁浅了,官方地址无法访问,github上面,各种编译问题,无意间发现了SeaweedFS 链接seaweedfs 测试了一番,写个应用的文章和.net core实践的短文分享一下 SeaweedFS如何使用 SeaweedFS的Releases下面下载成品,1.20(主要原因是懒,不想去编译) 运行命令 weed master 再挂载两个分布的服务 weed volume -dir="D:/F…
插件模式历史悠久,各种中大型软件基本上都会实现插件机制,以此支持功能扩展,从开发部署层面,插件机制也可实现功能解耦,对于并行开发.项目部署.功能定制等都有比较大的优势. 在.NET Core下,一般我们基于.NET Core扩展库进行开发,通常使用依赖注入.配置.设置(Options)等机制,如果将插件模式与依赖注入.配置.设置进行结合,将可以提供非常灵活的扩展机制.基于此,我们实现了一个开源的插件框架,本文将进行简单的介绍. 目录 目录 PluginFactory插件库 主要概念 使用向导 安…
IOC 就是我们需要一个对象 以前我们是去 new 现在我们是直接向 IOC容器 要我们需要的那个对象. 使用一个IOC容器(autofac)通过依赖注入控制各个组件的耦合.也就是说你写好了组件,不需要你去自己控制他们的依赖关系,哪个类又持有哪个类的对象,哪个类里面又要声明一个对象,而是把他们都放到一个容器里面,容器替你做这个(把组件组合起来). 那么IoC是如何做的呢?有点像通过婚介找女朋友,在我和女朋友之间引入了一个第三者:婚姻介绍所.婚介管理了很多男男女女的资料,我可以向婚介提出一个列表,…
记录各种级别的日志是所有应用不可或缺的功能.关于日志记录的实现,我们有太多第三方框架可供选择,比如Log4Net.NLog.Loggr和Serilog 等,当然我们还可以选择微软原生的诊断机制(相关API定义在命名空间"System.Diagnostics"中)实现对日志的记录..NET Core提供了独立的日志模型使我们可以采用统一的API来完成针对日志记录的编程,我们同时也可以利用其扩展点对这个模型进行定制,比如可以将上述这些成熟的日志框架整合到我们的应用中.本系列文章旨在从设计和…
一.IOC介绍 IOC:全名(Inversion of Control)-控制反转 IOC意味着我们将对象的创建控制权交给了外部容器,我们不管它是如何创建的,我们只需要知道,当我们想要某个实例时,我们可以直接从这个外部容器中去拿,而再也不需要我们去new了,充分体现了DIP(依赖倒置原则),也体现了我们经常挂在嘴边的面向接口编程. DI:全名(Dependency Injection)-依赖注入 DI意味着将类型之间的依赖关系注入到DI容器中 在之前的.Net Framework中并没有集成IO…
asp.net core 部署在 docker 容器中比较简单,但常因asp.net core程序发布的问题造成容器无法正常启动.现在把详细的操作的步骤记录如下: 一.asp.net core web项目发布设置 应用程序编写略... 在应用程序发布时,选发布“配置”,再选“配置”下的“设置",将应该程序框架选项中选择”独立“(独立时将回把程序运行所需的dll一并发布). 二.asp.net core docker 镜像获取 因为仅需要执行asp.net core应该,所以我选择的 micros…
Docker可以说是现在微服务,DevOps的基础,咱们.Net Core自然也得上Docker..Net Core发布到Docker容器的教程网上也有不少,但是今天还是想来写一写. 你搜.Net core程序发布到Docker网上一般常见的有两种方案: 1.在本地编译成Dll文件后通过SCP命令或者WinSCP等工具上传到服务器上,然后构建Docker镜像再运行容器.该方案跟传统的发布很像,麻烦的地方是每次都要打开相关工具往服务器上复制文件. 2.在服务端直接通过Git获取最新源代码后编译成D…
接触 docker 有段时间了,发现docker这个东西,真是越用越爽. 那就从零开始跑一个 docker simple . 方法一: 步骤一: dotnet new mvc --name myweb //创建一个.net core 的mvc 项目名称为myweb 步骤二:cd myweb //进入目录 步骤三: dotnet restore //还原项目 步骤四:dotnet publish -c release -o publish //发布项目到publish文件夹中去. 步骤五:touc…
net core (下) 第一部分: https://www.cnblogs.com/cgzl/p/8450179.html 本文是基于Windows10的. Debugging javascript 打开wwwroot/js/site.js, 写一段简单的js代码: (function ($) { $(document).ready(function () { $('#myButton').on('click', function() { alert('Hello world!'); });…
依赖注入小伙伴们比较常了,这里只说core 下autofac依赖注入的使用 ,不多费话,直接代码. 在 Startup.cs里 public void ConfigureServices(IServiceCollection services) { services.Configure<CookiePolicyOptions>(options => { // This lambda determines whether user consent for non-essential coo…
Asp.Net Core 内置IOC容器的理解 01.使用IOC容器的好处 对接口和实现类由原来的零散式管理,到现在的集中式管理. 对类和接口之间的关系,有多种注入模式(构造函数注入.属性注入等). 对实现类的声明周期进行了统一管理(创建.释放.和监控). 对类的依赖有编译时到运行时. 02.实际使用 1.创建控制台项目并添加Nuget包引用 Nuget包:Microsoft.Extensions.DependencyInjection 2.简单使用 class Program { static…
通过nuget首先引用AopSdk.dll 包 下面写的是 Asp.Net MVC 下相关的支付接口 APP支付 配置客户端相关的参数,配置成自己的代码就可以了 private string APPID = string.Empty; private string APP_PRIVATE_KEY = string.Empty; private string ALIPAY_PUBLIC_KEY = string.Empty; private string CHARSET = string.Empt…
原文:ASP.Net Core下Authorization的几种方式 - 简书 ASP.Net Core下Authorization的几种方式 Authorization其目标就是验证Http请求能否通过验证.ASP.Net Core提供了很多种Authorization方式,详细可以参考 微软官方文档.在这里只详细介绍三种方式: Policy Middleware Custom Attribute 1. Policy : 策略授权 先定义一个IAuthorizationRequirement类…
概述 ScheduleMaster是一个开源的分布式任务调度系统,它基于Asp.Net Core平台构建,支持跨平台多节点部署运行. 它的项目主页在这里: https://github.com/hey-hoho/ScheduleMasterCore 关于它的简单介绍可以看这里: https://www.cnblogs.com/hohoa/p/12162581.html 本地部署 使用前请准备好所需环境:Visual Studio 2019..Net Core3.0 SDK.Mysql 5.7.C…
前言 随着互联网的的高速发展,大多数的公司由于一开始使用的传统的硬件/软件架构,导致在业务不断发展的同时,系统也逐渐地逼近传统结构的极限. 于是,系统也急需进行结构上的升级换代. 在服务端,系统的I/O是很大的瓶颈.其中数据库的I/O最容易成为限制系统效率的一环.在优化数据库I/O这一环中,可以从优化系统调用数据库效率.数据库自身效率等多方面入手. 一般情况下,通过升级数据库服务器的硬件是最容易达到的.但是服务器资源不可能无限扩大,于是从调用数据库的效率方面入手是目前主流的优化方向. 于是读写分…
前言 前段时间写了EF core实现多租户的文章,实现了根据数据库,数据表进行多租户数据隔离. 今天开始写按照Schema分离的文章. 其实还有一种,是通过在数据表内添加一个字段做多租户的,但是这种模式我不打算讲了. 如果大家看了文章感觉完全衔接不上,可以先看看前面的系列文章: Asp.net core下利用EF core实现从数据实现多租户(1) Asp.net core下利用EF core实现从数据实现多租户(2) : 按表分离 EF core (code first) 通过自定义 Migr…
前言 我们之前已经完成了SeaweedFS在.net core下的使用了,但是说实话,还是不够,于是,我的目光盯住了IApplicationBuilder的扩展方法UseStaticFiles 这个可是好东西啊,我们访问资源的静态文件映射,你懂我的意思吧,对这里下手~ 前戏 开工之前,我们转到定义看看 StaticFileOptions,这个就是我们自定义乱嗨的前提 它有两个,我们DIY需要用到的参数 RequestPath.FileProvider 顾名思义,前者是访问路径的前置地址 Requ…
Apollo(阿波罗)是携程框架部门研发的分布式配置中心,能够集中化管理应用不同环境.不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限.流程治理等特性,适用于微服务配置管理场景.服务端基于Spring Boot和Spring Cloud开发,打包后可以直接运行,不需要额外安装Tomcat等应用容器. Apollo开源地址:https://github.com/ctripcorp/apollo 更多产品介绍可以查看Apollo配置中心介绍,本篇主要介绍在 .NET 环境下如何使用…
网关介绍 网关其实就是将我们写好的API全部放在一个统一的地址暴露在公网,提供访问的一个入口.在 .NET Core下可以使用Ocelot来帮助我们很方便的接入API 网关.与之类似的库还有ProxyKit,微软也发布了一个反向代理的库YARP. 关于网关的介绍不多说了,网上文章也挺多的,这些都是不错的选择,听说后期Ocelot将会使用YARP来重写.本篇主要实践一下在.NET Core环境下使用Ocelot. Ocelot官网:https://threemammals.com/ocelot O…
ASP.NET Core下FreeSql的仓储事务 第一步:配置 Startup.cs 注入 引入包 dotnet add package FreeSql dotnet add package FreeSql.DbContext dotnet add package FreeSql.Provider.MySqlConnector 配置 Startup.cs 注入 public void ConfigureServices(IServiceCollection services) { IConfi…
.net core可以执行SQL语句,但是只能生成强类型的返回结果.例如var blogs = context.Blogs.FromSql("SELECT * FROM dbo.Blogs").ToList().而不允许返回DataSet.DataTable等弱类型.可能由于这个原因没有实现在.net core中DataTable,然而DataTable还是可能会用到的.我们这里就有一个数据仓库的需求,允许用户自行编写类似SQL语句,然后执行,以表格展示.因为语句是千变万化的,因此我也…
本文介绍.Net Core下用第三方ZKWeb.System.Drawing实现验证码功能. 通过测试的系统: Windows 8.1 64bit Ubuntu Server 16.04 LTS 64bit Fedora 24 64bit CentOS 7.2 64bit 可以实现以下功能: Open jpg, bmp, ico, png Save jpg, bmp, ico, png Resize image Draw graphics with brush and pen Open font…
一.前言 前一阵子关于.NET的各大公众号都发表了关于gRpc的消息,而随之而来的就是一波关于.NET Core下如何使用的教程,但是在这众多的教程中基本都是泛泛而谈,难以实际在实际环境中使用,而该篇教程以gRpc为主,但是使用了其SSL/TLS,这样更加符合实际的生产使用,期间也会配套的讲解Docker.openssl等. 二.服务端 a.准备工作 笔者的项目分为三个部分分别如下所示: Sino.GrpcService.Host(控制台):宿主程序 Sino.GrpcService.Impl(…
一.前言 根据该issues来看,System.Configuration在.net core中已经不存在了,那么取而代之的是由Microsoft.Extensions.Cnfiguration.XXX一系列的类库提供,对应的开源地址为点击这里. 从当前开源的代码来看,在.net core下提供了以下类库给我们: Microsoft.Extensions.Configuration.Abstractions:基础接口 Microsoft.Extensions.Configuration:实现上面…
原文地址:http://www.cnblogs.com/yaozhenfa/p/5408009.html 一.前言 根据该issues来看,System.Configuration在.net core中已经不存在了,那么取而代之的是由Microsoft.Extensions.Cnfiguration.XXX一系列的类库提供,对应的开源地址为点击这里. 从当前开源的代码来看,在.net core下提供了以下类库给我们: Microsoft.Extensions.Configuration.Abst…