nuget

你的团队需要一个正确的程序集(dll)管理姿势

我怕爱的太早我们不能终老 提交于 2020-10-23 09:13:05
很多团队经历时间的积淀之后,都会有很多的可重用的公共技术组件。大部分的团队都会把这些公共组件生成程序集(dll)后,放到GIT或SVN的一个公共目录里面,以供各个项目中使用。起初在项目很少又或者是公共组件不多的时候,这样看起来也没有多大问题。但是随着团队越来越大,项目的组件增多,所封装的可重用组件越来越多,一些问题就会慢慢暴露出来。这个时候如果还是使用这种方式去管理程序集,显然就不太合适了。 我们知道,在Java中比较常用的包管理工具,如Maven。实际上在很多大公司里面都会搭建自己公司的Maven私服,以管理公司的一些公共技术组件。 实际上在.net中也有,大家也绝对不陌生,就是Nuget, 相信每个人都从官方的nuget服务器上下载过一些第三方组件,如:log4net、quartz.net等等。 Nuget是一个.NET平台下的开源的项目,它是Visual Studio的扩展。在使用Visual Studio开发基于.NET Framework的应用时,Nuget能把在项目中添加、移除和更新引用的工作变得更加快捷方便。这是维基百科中的定义,实际上Nuget就是一个包管理器,类似于Java的Maven,可以帮助我们更方便的管理dll,这也是微软提供给.net平台的一个正确的包管理工具。 而如Maven一样,Nuget也可以搭建自己的私服

nginx缓存配置及开启gzip压缩

生来就可爱ヽ(ⅴ<●) 提交于 2020-10-23 09:10:21
阅读目录 一:nginx缓存配置 二:nginx开启gzip 回到顶部 一:nginx缓存配置 在前一篇文章,我们理解过http缓存相关的知识点, 请看 这篇文章 . 今天我们来学习下使用nginx服务来配置缓存的相关的知识。 nginx配置缓存的优点:可以在一定程度上,减少服务器的处理请求压力。比如对一些图片,css或js做一些缓存,那么在每次刷新浏览器的时候,就不会重新请求了,而是从缓存里面读取。这样就可以减轻服务器的压力。 nginx可配置的缓存又有2种: 1)客户端的缓存(一般指浏览器的缓存)。 2)服务端的缓存(使用proxy-cache实现的)。 客户端的缓存一般有如下两种方式实现: 协商缓存和强缓存。具体理解什么是协商缓存或强缓存,可以看我之前的 这篇文章 . 在配置之前,我们来看下我们的项目基本架构如下: |----项目demo| |--- .babelrc # 解决es6语法问题| |--- node_modules # 所有依赖的包| |--- static| | |--- index.html # html页面| | |--- css # 存放css文件夹| | | |--- base.css # css文件,是从网上随便复制过来的很多css的| | |--- js # 存放js的文件夹| | | |--- jquery-1.11.3.js # jquery

asp.net core之SignalR

时光怂恿深爱的人放手 提交于 2020-10-23 08:39:34
SignalR 是什么? ASP.NET Core SignalR 是一个开源的实时框架,它简化了向应用中添加实时 Web 功能的过程。 实时 Web 功能是服务器端能够即时的将数据推送到客户端,而无需让服务器等待客户端请求后才返回数据。 SignalR 主要适用于: 从服务器获取数据并高频更新的应用。比如股票,GPS应用等。 仪表板和监视应用。比如状态实时更新等。 需要通知的应用。比如即时聊天工具,以及社交网络里面的通知等。 协作应用。比如团体会议软件。 SignalR 支持下面几种底层传输技术: Web Socket 是不同于HTTP的另一种TCP协议。它是全双工的通信协议,浏览器和服务器之间可以相互通信。它会保持长连接状态只到被主动关闭。它支持文本和二进制的消息传输,也支持流媒体。其实正常的HTTP请求也是使用TCP Socket. Web Socket标准使用了握手机制把用于HTTP的Socket升级为使用WS协议的 WebSocket socket. 服务器发送事件 (Server Sent Events) 服务器可以在任何时间把数据发送到浏览器,而浏览器则会监听进来的信息,并使用一个叫做EventSource的对象用来处理传过来的信息。这个连接一直保持开放,直到服务器主动关闭它。它是单向通信,只能发生文本信息,而且很多浏览器都有最大并发连接数的限制。 长轮询(Long

C# 数据操作系列

不问归期 提交于 2020-10-23 07:25:02
0. 前言 在前一篇中我们讲到了Dapper的应用,但是给我们的感觉Dapper不像个ORM更像一个IDbConnection的扩展。是的,没错。在实际开发中我们经常用Dapper作为对EF Core的补充。当然了Dapper并不仅仅只有这些,就让我们通过这一篇文章去让Dapper更像一个ORM吧。 1. Dapper Contrib Dapper Contrib 扩展了Dapper对于实体类的CRUD方法: 安装方法: 命令行: dotnet add package Dapper.Contrib NuGet: Install-Package Dapper.Contrib 使用: using Dapper.Contrib.Extensions; 这个是一个使得Dapper功能更强大的扩展包,因为支持了CRUD,所以需要对实体类添加配置,该扩展包使用Attribute作为依据进行相关映射配置: [Table("Model")] public class Model { [Key] [ExplicitKey] public int Id{get;set;} [Computed] public int Count {get;set;} [Write] public String Name{get;set;} } 这是所有的配置,Table用来声明是一个表,必须指定表名

拥抱.NET Core系列:MemoryCache 初识

ぐ巨炮叔叔 提交于 2020-10-21 22:24:19
原文: 拥抱.NET Core系列:MemoryCache 初识 阅读目录 MSCache能做什么? 从IMemoryCache说起 开发者的体验 写在最后 Cache是一个绝大多数项目会用到的一个技术,说起到缓存可能就联想到 Set、Add、Get、Remove、Clear 这几个方法。那么在.NET Core中微软给我们带来了什么样的缓存体验呢?今天我们就来介绍下”Microsoft.Extensions.Caching.Memory”。 由于这个包名称过长,下文使用MSCache来代替。 回到目录 MSCache能做什么? 绝对过期支持 滑动过期支持(指定一个时间,TimeSpan,指定时间内有被Get缓存时间则顺延,否则过期) 过期回调 自定义过期 MSCache目前最新的正式版是 2.0.0,预览版是2.1.0,会与.NETCore 2.1一起发布。本篇用了2.0.0版本 开源在GitHub上,仓库地址是: https://github.com/aspnet/Caching NuGet地址为: https://www.nuget.org/packages/Microsoft.Extensions.Caching.Memory/2.0.0 回到目录 从IMemoryCache说起 IMemoryCache 就提供了三个方法并实现了 IDisposable 接口。 很好理解