.NET Core

各大主流K8S服务全方位能力比对

本秂侑毒 提交于 2021-01-30 00:52:10
大家好, 趁打开流量主的东风,特此贡献一篇长文,分析一下目前国内国外几大著名云厂商的kubernetes服务,以飨诸君。 文起之前,先聊态度。 我本人是十分看好k8s的发展的,为何? 理因古往今来,能给资本家省钱,能给企业省资源,能把人全栈化,能把业务自动化的玩意,肯定是会受追捧的。君不见docker兴起之时,mesos启势之际,到k8s一统天下。国内企业,技术人员已经有能力消化和适用K8S这类理念和框架了,其带来的好处和收益或许不亚于pc时代的linux服务器,故而有人称之为云时代的linux系统,鄙人确也深以为然。他有啥好处?看起来其实十分简单: scaling: k8s直接按需扩展pods recovery:k8s帮你监管pods,出问题了自动修复 monitoring:k8s包含了很多监控能力 free: k8s是免费的 easy&fast:部署应用贼快贼方便,ci/cd集成容易 然而,K8S是银弹(silver bullet)吗? 显然不是。 我一直强调其是一种理念,开发架构部署时的理念,原则上,你需要具备应用现代化,云原生化,DDD的能力,才能更好结合K8s帮助企业应用数字化转型。通过将业务模型和软件架构改造,配合k8s来做,这才是正确的使用方式。 你问我一个简单的CMS或者企业内部应用sap的,Oracle,需要K8S么? 我只能说可能不适合。语言,框架,开源软件

报表生成器FastReport .Net报表页面管理介绍

本秂侑毒 提交于 2021-01-27 08:17:36
FastReport .Net是适用于Windows Forms,ASP.NET,MVC和.NET Core的全功能 报表请添加链接描述 解决方案。它可以在Microsoft Visual Studio 2005-2019中使用。支持.Net Framework 2.0-4.x,.NET Core 3.0及以上版本。 在FastReport .NET 2021.1的新版本中,我们实现了对.NET 5的支持。添加了新条形码-Deutsce Post Leitcode。将RTF转换为报告对象的算法已得到显着改进。并且还添加了用于转换数字的新功能。欢迎下载体验。(点击下方按钮下载) 立即点击下载FastReport.NET v2021.1最新版请添加链接描述 报告页面 模板由一个(大部分)或几个报告页组成。报告页,反过来,包含波段。报告对象,如文本,图片和其他被放置在band上: 报表模板可以包含多个页面。例如,您可以创建一个包含标题页和一个包含数据页的模板。创建这样的报告时,首先打印第一页,然后打印第二页,以此类推。模板的每一页都可以生成一页或几页准备好的报告-这取决于它包含的数据: 在处理子报表时也会使用报表页。与其他报表生成器相反,fastport中的子报表保存在单独的模板页中,而不是单独的文件中。 除了报表页面之外,模板还可以包含一个或多个对话表单。在创建报表之前

C# 编码规范

怎甘沉沦 提交于 2021-01-26 11:10:40
对于编程中非代码文件(例如xml 等),我们目前的最佳指南是代码风格的一致性。编辑代码文件时,需要保持新增/更改的代码与原文件中的代码风格一致性。对于新建的代码文件,它也应符合本编码规范。好的编码规范,有利于提升代码的可读性。.NET Core 框架项目使用的是 Visual Studio 默认编码规范。 通常,我们编码时,应遵循 Visual Studio 默认编码规范中的以下规则: 1、接口名、类名、方法名、参数名和变量名 所有的接口名、类名和方法名都应该使用 PascalCasing 风格来定义,对于接口参数、构造函数参数和方法参数,其参数名则使用 camelCase 风格。对于方法体内的局部变量,则使用 camelCase 风格。 2、花括号 使用 Allman 样式的花括号,每个花括号在新的一行开始,而且花括号不进行缩进,花括号里面的代码缩进。 while (x == y) { something(); somethingelse(); } 对于单行语句块,可以不带花括号,但需要把它放在同一行 if (xx == null ) xx = new Foo(); 一个例外是,允许 using 语句嵌套在另一个 using 语句中,从同一缩进级别的下一行开始,即使嵌套的 using 包含受控块也是如此。 3、空格 使用 4 个空格作为一个缩进,而不是使用 tab。 4、字段

你有把依赖注入玩坏?

空扰寡人 提交于 2021-01-25 17:25:53
【导读】 自从.NET Core给我们呈现了依赖注入,在我们项目中到处充满着依赖注入,虽然一切都已帮我们封装好,但站在巨人的肩膀上,除了凭眺远方,我们也应平铺好脚下的路 使用依赖注入不仅仅只是解耦,而且使代码更具维护性,同时我们也可轻而易举查看依赖关系,单元测试也可轻松完成,本文我们来聊聊依赖注入,文中示例版本皆为5.0。 浅谈依赖注入 在话题开始前,我们有必要再提一下三种服务注入生命周期, 由浅及深再进行讲解,基础内容,我这里不再多述废话 Transient(瞬时):每次对瞬时的检索都会创建一个新的实例。 Singleton(单例):仅被实例化一次。此类型请求,总是返回相同的实例。 Scope(范围):使用范围内的注册。将在请求类型的每个范围内创建一个实例。 如果已用过.NET Core一段时间,若对上述三种生命周期管理的概念没有更深刻的理解,我想有必要基础回炉重塑下。为什么?至少我们应该得出两个基本结论 其一:生命周期由短到长排序,瞬时最短、范围次之、单例最长 只要做过Web项目,关于第一点就很好理解,首先我们只对瞬时和范围作一个基本的概述,关于单例通过实际例子来阐述,我们理解会更深刻 若为瞬时:那么我们每次从容器中获取的服务将是不同的实例,所以名为瞬时或短暂 若为范围:在ASP.NET Core中,针对每个HTTP请求都会创建DI范围,当在HTTP请求中(在中间件,控制器

终于弄明白了 Singleton,Transient,Scoped 的作用域是如何实现的

风格不统一 提交于 2021-01-25 06:59:38
一:背景 1. 讲故事 前几天有位朋友让我有时间分析一下 aspnetcore 中为什么向 ServiceCollection 中注入的 Class 可以做到 Singleton,Transient,Scoped,挺有意思,这篇就来聊一聊这一话题,自从 core 中有了 ServiceCollection, 再加上流行的 DDD 模式,相信很多朋友的项目中很少能看到 new 了,好歹 spring 十几年前就是这么干的。 二:Singleton,Transient,Scoped 基本用法 分析源码之前,我觉得有必要先介绍一下它们的玩法,为方便演示,我这里就新建一个 webapi 项目,定义一个 interface 和 concrete ,代码如下: public class OrderService : IOrderService { private string guid; public OrderService ( ) { guid = $ "时间: {DateTime.Now} , guid= { Guid.NewGuid()} " ; } public override string ToString ( ) { return guid; } } public interface IOrderService { } 1. AddSingleton

上周热点回顾(11.5-11.11)

谁说胖子不能爱 提交于 2021-01-25 06:14:10
热点随笔: · 程序员,你焦虑吗? ( 闲鱼君 ) · 哎呀,我老大写Bug啦——记一次MessageQueue的优化 ( 山治先生 ) · 使用Visual Studio Code开发.NET Core看这篇就够了 ( 依乐祝 ) · 致C#,致我这工作一年(上) ( RyzenAdorer ) · 博客园隐藏的小秘密及各类排行榜【附源码】 ( 北国丶风光 ) · 神经网络的基本工作原理 ( UniversalAIPlatform ) · [翻译] .NET Standard 2.1 公布 ( Rwing ) · 你所不知道的 CSS 阴影技巧与细节 ( ChokCoco ) · 一文弄懂“分布式锁” ( 向南l ) · Ansible 简介 ( sparkdev ) · 做了「负载均衡」就可以随便加机器了吗?这三招来帮你! ( Zachary_Fan ) · MyBatis动态SQL(认真看看, 以后写SQL就爽多了) ( 阿进的写字台 ) 热点新闻: · 王思聪怒怼腾讯,IG夺冠后腾讯做错了什么? · 我把公司办垮了,因为:对员工宽容、假装高逼格、除了老板没人加班 · 苹果新款手机被曝全面砍单 富士康或被迫裁员 · 「酸碱体质理论」创始人被判罚 1.05 亿美元,当庭承认骗局 · 淘宝店主因代购被判10年,这个量刑冤吗? · 在操作系统、芯片领域跌倒的中国程序员如何崛起? ·

报表和仪表板生成器Stimulsoft v2021.1超大版本更新!!

点点圈 提交于 2021-01-24 14:32:08
我们很高兴地宣布发布了新版本的Stimulsoft Reports和Stimulsoft Dashboards 2021.1,现在可以下载。此主要版本随附.NET Core编译,从Google BigQuery获取数据并使用PHP的PDO驱动程序的功能,新的健壮的目录组件,以及表,数据透视表,列表框和其他组件的许多新功能。 下载Stimulsoft Reports、Stimulsoft Ultimate、Stimulsoft Dashboards【慧都网】 .NET Core中的编译 在新版本中,当使用.NET Core框架时,我们增加了对报表编译的支持。现在,您可以使用所有报告工具功能,例如运行时编译,函数,将报告发布为类。.NET Core 3.1的编译仅在Windows系统上可用,.NET 5.0在所有受支持的系统上都可用。 新组件-目录 在2021.1版本中,我们添加了一个新的报表组件-目录。该组件将帮助您为报表创建交互式目录,而无需编写任何代码或脚本。只需将其添加到模板中并标记要为其生成内容的报表组件。呈现报告时,将生成一个带有导航报告的目录。 新的适配器Google BigQuery 从此版本开始,可以直接从报表设计器连接到在线服务Google BigQuery。为此,请在数据源创建窗口中选择BigQuery类型,填写数据存储访问字段或使用授权文件。拥有数据后

跨平台导PDF,结合wkhtmltopdf很顺手

假装没事ソ 提交于 2021-01-24 13:30:18
前言 好东西要分享,之前一直在使用wkhtmltopdf进行pdf文件的生成,常用的方式就是先安装wkhtmltopdf,然后在程序中用命令的方式将对应的html生成pdf文件,简单而且方便;但重复的编码使得想在wkhtmltopdf基础上进行封装,偶然间发现有小伙伴已经封装的还不错啦,常用的功能都已经实现,源码地址:https://github.com/fpanaccia/Wkhtmltopdf.NetCore。 作者将其打包成Nuget包(Wkhtmltopdf.NetCore),直接引入使用即可; 正文 既然用到了.NetCore,肯定就要考虑到跨平台兼容性,对于wkhtmltopdf之前一直是在Windows上使用,还没有在其他平台尝试;这个包封装的行不行,拉出来遛遛就知道啦,接下来就试试: 1. 建个API项目,引入包和兼容对应平台的wkhtmltopdf执行文件 ; 注:默认依赖的wkhtmltopdf执行文件需要存放在Rotativa目录下,可以自定义名称,如果自定义,需要再注册服务时指定对应的文件名;这里的wkhtmltopdf已经根据不同平台进行编译打包了,无需安装,这些文件在源码那就有; 2.创建PDFTestController控制器,添加如下接口进行测试 ; 首先把生成pdf的服务注入进来,后续直接使用就可以啦: 接下来就开始写接口啦,这里只是测试

跨平台导PDF,结合wkhtmltopdf很顺手

£可爱£侵袭症+ 提交于 2021-01-24 12:52:04
前言 好东西要分享,之前一直在使用wkhtmltopdf进行pdf文件的生成,常用的方式就是先安装wkhtmltopdf,然后在程序中用命令的方式将对应的html生成pdf文件,简单而且方便;但重复的编码使得想在wkhtmltopdf基础上进行封装,偶然间发现有小伙伴已经封装的还不错啦,常用的功能都已经实现,源码地址:https://github.com/fpanaccia/Wkhtmltopdf.NetCore。 作者将其打包成Nuget包(Wkhtmltopdf.NetCore),直接引入使用即可; 正文 既然用到了.NetCore,肯定就要考虑到跨平台兼容性,对于wkhtmltopdf之前一直是在Windows上使用,还没有在其他平台尝试;这个包封装的行不行,拉出来遛遛就知道啦,接下来就试试: 1. 建个API项目,引入包和兼容对应平台的wkhtmltopdf执行文件 ; 注:默认依赖的wkhtmltopdf执行文件需要存放在Rotativa目录下,可以自定义名称,如果自定义,需要再注册服务时指定对应的文件名;这里的wkhtmltopdf已经根据不同平台进行编译打包了,无需安装,这些文件在源码那就有; 2.创建PDFTestController控制器,添加如下接口进行测试 ; 首先把生成pdf的服务注入进来,后续直接使用就可以啦: 接下来就开始写接口啦,这里只是测试

.net core 结合nlog使用Elasticsearch , Logstash, Kibana

耗尽温柔 提交于 2021-01-24 00:11:16
什么是ELK ELK是三个开源软件的缩写,分别表示:Elasticsearch , Logstash, Kibana , 它们都是开源软件。新增了一个FileBeat,它是一个轻量级的日志收集处理工具(Agent),Filebeat占用资源少,适合于在各个服务器上搜集日志后传输给Logstash,官方也推荐此工具。 Elasticsearch Elasticsearch是个开源分布式搜索引擎,提供搜集、分析、存储数据三大功能。它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。 Logstash Logstash 主要是用来日志的搜集、分析、过滤日志的工具,支持大量的数据获取方式。一般工作方式为c/s架构,client端安装在需要收集日志的主机上,server端负责将收到的各节点日志进行过滤、修改等操作在一并发往elasticsearch上去。 Kibana Kibana 也是一个开源和免费的工具,Kibana可以为 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,可以帮助汇总、分析和搜索重要数据日志。 如何使用ELK ELK环境快速搭建 这里推荐使用 docker-compose 一键搭建 地址: https://github.com/deviantony/docker-elk