nuget

Winserver 2019 轻松安装 docker 19-03-5

自作多情 提交于 2020-08-18 05:08:55
引言 :对于 在winserver 2019上安装docker ,官方有说明,网上也有教程,但是大部分都是和官方的方法一样,在这安装过程中往往会因为这样或那样的问题导致过程受阻,停滞不前,最近折腾winserver的docker(linux已经折腾完毕),坑还是比较多的,通过个人的一些经验,进行此次总结, 主要目的是提供一种简单易用的安装方法 ,当然,你要是通过官方那样敲几条命令就能安装,那固然很好,我 主要是为了能够实现离线安装,此文同样适用于winserver 2016机器。 不多说,直接上干货。 1 、 官方提供的方法(需要联网 ) (1)步骤一: Install-Module -Name DockerMsftProvider -Repository PSGallery -Force #这一步骤是安装DockerMsftProvider模块,如没有NuGet程序,则会提示你安装,NuGet是包管理程序,这个必须要你安装,无法跳过 (2)步骤二: Install-Package -Name docker -ProviderName DockerMsftProvider #利用上述安装的模块来安装docker包,这一步会下载一个docker的zip包 总结一下:按照官网这种方式来安装,首先你要安装NuGet程序,然后安装DokcerMsftProvider

ASP.NET Core 使用 Redis 和 Protobuf 进行 Session 缓存

我们两清 提交于 2020-08-18 04:30:01
原文: ASP.NET Core 使用 Redis 和 Protobuf 进行 Session 缓存 前言 上篇博文 介绍了怎么样在 asp.net core 中使用中间件,以及如何自定义中间件。项目中刚好也用到了Redis,所以本篇就介绍下怎么样在 asp.net core 中使用 Redis 进行资源缓存和Session缓存。 如果你觉得对你有帮助的话,不妨点个【推荐】。 目录 Redis 介绍 asp.net core Session 介绍 Redis & Session 实例讲解 Session的使用 使用 Protobuf 给 Session添加扩展方法 Redis 介绍 下面是 Redis官网 的介绍: Redis is an open source (BSD licensed), in-memory data structure store, used as database, cache and message broker. It supports data structures such as strings, hashes, lists, sets, sorted sets with range queries, bitmaps, hyperloglogs and geospatial indexes with radius queries. Redis

.Net Core使用Ocelot网关(二) -鉴权认证

ε祈祈猫儿з 提交于 2020-08-17 18:39:43
前言 上一章已经简单的介绍了ocelot的使用了,但是网关暴露的接口如果什么人都能访问的话安全性就太低啦。所以我们需要去鉴权和认证。这里我们使用identityServer4给我们的网关来鉴权认证。 创建Identity服务 我们创建一个identity的服务来用于令牌的发放和鉴权。下图是我的项目结构。 Api_Gatewat端口:5000 Api_A端口:5001 Api_B端口:5002 IdentityServer端口:5003 通过nuget添加IdentityServer4的包,也可以通过程序包管理控制台执行以下命令 Install-Package IdentityServer4 。 添加一个Congif文件。 using System.Collections.Generic; using IdentityModel; using IdentityServer4; using IdentityServer4.Models; namespace IdentityServer { public static class Config { public static IEnumerable<IdentityResource> GetIdentityResourceResources() { return new List<IdentityResource> { new

.Net Core使用Unity替换原生DI

一曲冷凌霜 提交于 2020-08-17 03:48:24
一、DIP、IOC、DI   面对对象设计原则可以帮助我们开发出更好的程序,其中有一个依赖倒置原则DIP并由此引申出IOC、DI等概念。就先粗略的了解一下: DIP(依赖倒置原则):程序要依赖于抽象接口,不要依赖于具体实现。 IOC(控制反转):面对对象编程中的一种设计思想。 DI(依赖注入):组件之间依赖关系由容器在运行期决定。   总的来说控制反转(IoC)是依赖倒置原则(DIP)的实现思路;依赖注入(DI)又是IoC的一种实现方式。 二、Unity   Unity容器(Unity)是一个轻量级,可扩展的依赖注入容器。它有助于构建松散耦合的应用程序,并为开发人员提供以下优势: 简化对象创建,尤其是对于分层对象结构和依赖项 抽象要求; 这允许开发人员在运行时或配置中指定依赖关系,并简化横切关注点的管理 通过将组件配置推迟到容器来提高灵活性 服务定位能力; 这允许客户端存储或缓存容器 实例和类型拦截 按惯例注册 三、Unity替换.Net Core原生DI   关于Unity替换.Net Core原声DI我发现在网上的中文资料基本没有,所以我在Unity的Gitbub上找到了相关的内容,希望可以给大家带来帮助。   我的是.Net Core2.2首先需要通过Nuget引入Unity(5.10.2)和Unity.Microsoft.DependencyInjection(5.10.1

C# 数据操作系列

≡放荡痞女 提交于 2020-08-16 19:26:34
0.前言 在上一篇中初略的介绍了一下SQL的基本写法,这一篇开始我们正式步入C#操作数据库的范围。通过这一系列的内容,我想大家能对于数据库交互有了一定的认识和基础。闲话不多说,先给大家介绍一个C#操作数据库的方式。 1. ADO.NET的介绍 在ADO.NET出现之前,C#连接数据库有很多种方式,各种框架琳琅满目。用户们饱受困扰,再加上乱七八糟的连接方式对语言的发展也是一种强有力的阻挠。所以微软决定搞一套标准化出来,之后ADO.NET诞生了。 ADO.NET定义了一系列操作数据库的接口和基类,而数据库厂商只需要根据自己的实际情况开发对应的实现类就可以了。 2. 使用ADO.NET 操作需要的步骤 使用ADO.NET操作数据库,先需要一个连接也就是 IDbConnection实例,然后使用IDbCommand执行,通过 IDataReader读取数据。 先来简单介绍一下上面提到的接口: a.IDbConnection 表示一个与数据源的开放连接,并由访问关系数据库的.NET 数据提供程序实现,也就是说这只是一个接口,具体的实现得看具体的数据库。 我们先看一下,具体的属性和方法吧: public string ConnectionString { get; set; }// 获取或设置用于打开数据库的连接字符串 public string Database { get; }/

GRpc添加客户端的五种方式

冷暖自知 提交于 2020-08-16 15:34:54
随着微服务的发展,相信越来越多的.net人员也开始接触GRpc这门技术,大家生成GRpc客户端的方式也各不相同,今天给大家介绍一下依据Proto文件生成Rpc客户端的五种方式 前提:需要安装4个Nuget包 Google.Protobuf、Grpc、GRpc.Net.ClientFactory、GRpc.Tools VS安装命令如下 Install-Package Google.Protobuf Install-Package Grpc Install-Package GRpc.Net.ClientFactory Install-Package GRpc.Tools 准备工作 首先我们新建一个简单的.net core3.1类库 命名为:GRpc.Proto 然后添加HelloWord.Proto 添加一个简单的协议 syntax = "proto3"; import "google/protobuf/timestamp.proto"; option csharp_namespace = "HelloWordDemo"; package HelloWord; service HelloWord{ rpc SayHelloWord(SayHelloWordRequest) returns (SayHelloWordResponse); } message

ASP.NET Core使用TopShelf部署Windows服务

有些话、适合烂在心里 提交于 2020-08-16 10:00:48
asp.net core很大的方便了跨平台的开发者,linux的开发者可以使用apache和nginx来做反向代理,windows上可以用IIS进行反向代理。 反向代理可以提供很多特性,固然很好。但是还有复杂性,我们也可以使用windows service来直接启动kestrel。 asp.net core官方网站提供了一种基于windows服务部署的方法: 在 Windows 服务中托管 ASP.NET Core 这种方式需要修改代码,然后部署的时候,使用命令行创建、安装服务,然后再启动。 感觉还是不够爽快,我们可以使用topshelf改造一下。 TopShelf topshelf可以很便捷地将一个windows console程序改造成windows service,只需要稍微修改一下代码结构,然后通过nuget包就可以简单操作了。安装与部署也是 极其 方便,而且,topshelf在调试的时候,直接是作为console程序,极其便于调试。 TopShelf项目地址: http://topshelf-project.com/ 步骤 首先引用nuget包: Install-Package TopShelf 然后改造一下program.cs public class Program { public static void Main(string[] args) { var rc =

IdentityServer4(8)- 使用密码认证方式控制API访问(资源所有者密码授权模式)

女生的网名这么多〃 提交于 2020-08-16 06:59:07
一.前言 本文已经更新到 .NET Core 2.2 OAuth 2.0 资源所有者密码模式允许客户端向令牌服务发送用户名和密码,并获取 代表该用户 的访问令牌。 除了通过无法浏览器进行交互的应用程序之外,通常建议不要使用资源所有者密码模式。 一般来说,当您要对用户进行身份验证并请求访问令牌时,使用其中一个交互式 OpenID Connect 流程通常要好得多。 在这里使用这种模式是为了学习如何快速在 IdentityServer 中使用它, 二.添加用户 就像API资源(也称为 Scope)、客户端一样,用户也有一个基于内存存储(In-Memory)的实现。 有关如何正确存储(持久化存储)和管理用户帐户的详细信息,请查看基于 ASP.NET Identity的快速入门。 TestUser 类代表测试用户及其身份信息单元(Claim)。 让我们通过在 config 类中添加以下代码来创建几个用户: 首先添加以下语句 到 Config.cs 文件中: using IdentityServer4.Test; public static List<TestUser> GetUsers() { return new List<TestUser> { new TestUser { SubjectId = "1", Username = "alice", Password =

Magicodes.IE 2.0发布

喜欢而已 提交于 2020-08-16 06:53:37
Magicodes.IE 2.0发布 Magicodes.IE是我们维护的开源的导入导出通用库,去年年底已加入NCC开源组织。 Github地址: https://github.com/xin-lai/Magicodes.IE Magicodes.IE不是一蹴而就,而是根据实际需求不断迭代出来的,而且历经多次重构。这一次,趁着春节假期,我们重构并发布了Magicodes.IE 2.0。在这里尤其要感谢一位小伙伴,@hueifeng https://github.com/hueifeng ,感谢其在春节期间为Magicodes.IE做出的文档贡献。 由于个人和团队精力有限,Magicodes.IE非常迫切地希望能得到大家的帮助和支持,尤其是代码和文档贡献。如有意向,可以提交PR或者和我直接联系(公众号或QQ群均可)。 相关Nuget包 名称 Nuget Magicodes.IE.Core NuGet Magicodes.IE.Excel NuGet Magicodes.IE.Pdf NuGet Magicodes.IE.Word NuGet Magicodes.IE.Html NuGet 主要更新 Magicodes.IE 2.0主要更新如下所示: 完全重构整个导出Excel模块并且重写大部分接口 支持列头筛选器——IExporterHeaderFilter

C#状态机Stateless

不羁的心 提交于 2020-08-15 16:53:34
最近在折腾一些控制相关的软件设计,想起来状态机这个东西,对解决一些控制系统状态切换还是挺有用的。 状态机(有限状态自动机)网上有很多 介绍 。简单理解就是定义一系列状态,通过一系列的事件,可以使得状态可以相互之间切换。 如果不使用状态机的思想来编程,那么针对过程的编程方法会使得程序拓展性变差,并且不容易调试。而状态机只需要定义好了各种状态和状态切换之间的事件,你只管触发事件,剩下的事情它自己就自动完成了(毕竟名称叫做有限状态自动机),这对于很多需要定义各种控制阶段的系统简直是完美适配。了解到.NET也有很多库可以实现这些功能,本文主要介绍一下Stateless的应用。 Stateless介绍 Stateless 可以创建极简的状态机与对应的工作流。很多项目(包括VisualStudio Extension、AIlab)都有使用到它。 它支持以下特性: 支持各种类型作为状态和触发事件 支持状态继承 支持状态进入/离开事件 支持条件状态转移 支持状态/转移查询 也有几点需要注意的: 它支持异步语法,但是它是单线程的,不是线程安全的。 可以导出DOT graph 安装起来很简单,直接在nuget中安装即可: Install-Package Stateless Stateless使用 用起来也挺简单的,以打电话这个事情为例,针对打电话的种种动作和状态做成一个状态机。