随笔分类 - .NET Core
摘要:前言前几年一直在写类似dubbo,Srping Cloud的微服务框架辗辗转转重复了多次,也重构推翻了很多次,其中诞生了“Rabbit.Rpc”,”Go”,”RabbitCloud”等开源项目。其中不乏他人对这些项目的完善。很高兴自己的开源项目能够给他人提供思路和复用代码。关于Rabbit.Rpc相关的文章:《.NET轻量级RPC框架:Rabbit.Rpc》《拥抱.NET Core,跨平台的轻量级...
阅读全文
摘要:在上一篇文章《使用.NET Core快速开发一个较正规的命令行应用程序》中我们看到了使用自包含方式发布的.NET Core应用中包含了216个文件。我就写一个cat命令用得着这么动真格。。。这写出来的命令行还有人用吗?今天我们就来介绍一下MS的另一个开源项目CoreRT。用来解决这个棘手的问题。什么是CoreRT?CoreRT 是MS一个长期开源项目,它早在一年前就已经建立了,持续到今。项目目标将...
阅读全文
摘要:程序员的世界,命令行工具一直是“体验非常友好”的工具,也能自动化完成很多事情,同时还能结合shell来进行某项任务的批处理(脚本)。在.NET Core中,命令行应用程序是基础,但是如何实现像 “cat” 这种功能呢?今天就为大家介绍一个packages来优雅的实现一个命令行应用程序。一般命令行程序包含什么?使用方式帮助信息子命令参数选项帮助信息帮助信息如上,介绍了命令的作用和参数、选项作用。这个...
阅读全文
摘要:在上一篇“《拥抱.NET Core系列:MemoryCache 缓存选项》”我们介绍了一些 MSCache 的机制,今天我们来介绍一下 MSCache 中的缓存域。 MSCache项目 MSCache 目前最新的正式版是 2.0.0,预览版是2.1.0,会与 .NETCore 2.1 一起发布。本篇
阅读全文
摘要:在上一篇 ”拥抱.NET Core系列:MemoryCache 缓存过期” 中我们详细的了解了缓存过期相关的内容,今天我们来介绍一下 MSCache 中的 Options,由此来介绍一些 MSCache 中的内部机制。MSCache项目MSCache 目前最新的正式版是 2.0.0,预览版是2.1.0,会与 .NETCore 2.1 一起发布。本篇用了2.0.0版本开源在 GitHub 上,仓库地...
阅读全文
摘要:在上一篇”拥抱.NET Core系列:MemoryCache 初识”中我们基本了解了缓存的添加、删除、获取,那么今天我们来看看缓存的过期机制。这里和上篇一样将把“Microsoft.Extensions.Caching.Memory”简称为MSCache。MSCache项目MSCache目前最新的正式版是 2.0.0,预览版是2.1.0,会与.NETCore 2.1一起发布。本篇用了2.0.0版本...
阅读全文
摘要:Cache是一个绝大多数项目会用到的一个技术,说起到缓存可能就联想到 Set、Add、Get、Remove、Clear 这几个方法。那么在.NET Core中微软给我们带来了什么样的缓存体验呢?今天我们就来介绍下”Microsoft.Extensions.Caching.Memory”。由于这个包名称过长,下文使用MSCache来代替。MSCache能做什么?绝对过期支持滑动过期支持(指定一个时间...
阅读全文
摘要:在开发“RabbitCloud”项目时,使用配置文件发现会有很多重复值,所以我基于”Microsoft.Extensions.Configuration”写了一个扩展库,来丰富对配置的支持。实际案例——“RabbitCloud”之前,我是这样的因为公司ip和家里机器的ip不一致,所以经常需要切换配置文件。但根据这份配置文件,我更改健康检查的主机和端口就意味着我得改三个地方,然而一般情况下这三个地方...
阅读全文
摘要:在之前我们简单介绍了 .NET Core 中的 DI组件,没来及了解的童鞋可以翻翻我之前的文章。接下来会对 .NET Core 中的 Logging 进行介绍。本文中使用了“Microsoft.Extensions.Logging.Console”做为输出目标,后续文章会详解。Logging 中的三剑客可以看到 Logging 的核心抽象就是三个接口,分别是:ILogger:负责具体的日志写入逻辑...
阅读全文
摘要:上一篇“拥抱.NET Core系列:依赖注入(1)”大体介绍了服务注册、获取和生命周期,这一篇来做一些补充。由于内容跨度大(.NET Core、ASP.NET Core),所以文章并不是非常的贯穿,大家可以挑着看。构造函数的选择如果一个服务中包含多个构造函数,.NET Core会选择哪一个呢?答案是:最大匹配的构造函数。我们来看个示例泛型服务单个泛型多个泛型集成第三方DI容器我们这边使用Autof...
阅读全文
摘要:依赖注入时编程手段中解耦和封装的一个非常重要的手段,我本人已经到了没有DI无法编写项目的程度了,在.NET Framework中微软并没有在FCL中引入DI,虽然推出了“Unity”。而在.NET Core中DI几乎是所有组件的标配可见DI有多么的重要,本节主要简单介绍下微软在.NET Core中加入的DI组件。前言DIP、IoC、DI说起DI不得不提IoC这个模式,很多人会把DI和IoC混为一谈...
阅读全文
摘要:在公司内部的微服务架构中有使用到了“ZooKeeper”,虽然官方有提供了.NET的SDK,但易用性非常的差,且搜遍github、nuget,没有发现一个可以跨平台且易用的组件,所以我又“美化”了一个轮子。 什么是ZooKeeper? ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分...
阅读全文
摘要:在此前的文章中详细介绍了使用.NET Core的基本知识,如果还没有看,可以先去了解“拥抱.NET Core,学习.NET Core的基础知识补遗”,以便接下来的阅读。 在本文将介绍如何配置类库项目支持不同的平台,并为不同的平台进行兼容的编码。 创建一个.NET Core类库 首先我们创建一个.NE
阅读全文
摘要:前言 .NET Core的新特性之一就是跨平台,但由于对之前框架的兼容导致编写一个.NET Core类库变得相当复杂,主要体现为相当多的框架目标和支持平台,今天我们就对.NET Core的跨平台特性进行一次梳理。 在.NET Core之前 其实早在.NET Core之前微软就有推出.NET的跨平台方
阅读全文
摘要:这段时间在使用Rabbit RPC重构公司的一套系统(微信相关),而最近相关检验(逻辑测试、压力测试)已经完成,接近部署至线上生产环境从而捣鼓了ASP.NET Core应用程序在CentOS上的部署方案,今天就跟大家分享一下如何将ASP.NET Core应用程序以生产的标准部署在CentOS上。 环
阅读全文
摘要:之前写了一篇博文宣布Rabbit Rpc跨平台了“拥抱.NET Core,跨平台的轻量级RPC:Rabbit.Rpc”,在过程中尝试了如何编写支持跨平台的类库与应用程序,也尝试了在linux上的运行,今天特此将过程中的一些经历记录下来,方便后人。 安装开发环境 本人用Windows环境就直接用Visual Studio了,当然也可以用记事本或Visual Code。 .NET Core开发要求 ...
阅读全文
摘要:继上次”vNext之旅(1):从概念和基础开始”之后再次学习vNext重新遇到了弄不懂的事情,花了一些时间学习,今天来分享一下,为后人节省些时间。 起因 在用vNext造轮子——框架的时候引入“Microsoft.Dnx.Runtime”包错误。错误如下: 当时就很郁闷我明明用的是最新的版本:“1.0.0-rc-final”啊,为什么会报错,微软改名之后没有及时更新包吗? 下面...
阅读全文
摘要:ASP.NET vNext or .NET vNext? vNext在曝光以来绝大多数以ASP.NET vNext这样的的字眼出现,为什么这边会提及.NET vNext?原因是我认为ASP.NET只是其中的一种开发框架而已,其中真正核心重要的乃是底层的支撑层,至于底层还有些什么内容,下面会进行一次分...
阅读全文