.Net Framework

拥抱.NET Core系列:MemoryCache 缓存选项

假装没事ソ 提交于 2020-10-18 15:34:34
原文: 拥抱.NET Core系列:MemoryCache 缓存选项 阅读目录 MSCache项目 MemoryCacheOptions ExpirationScanFrequency SizeLimit CompactionPercentage 写在最后 在上一篇 ” 拥抱.NET Core系列:MemoryCache 缓存过期 ” 中我们详细的了解了缓存过期相关的内容,今天我们来介绍一下 MSCache 中的 Options,由此来介绍一些 MSCache 中的内部机制。 回到目录 MSCache项目 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 回到目录 MemoryCacheOptions Clock 顾名思义,是用来提供时间的一个成员,缓存里面大量用到了时间来判断缓存是否过期。 CompactOnMemoryPressure 已经被废弃,可以不用管 ExpirationScanFrequency 过期扫描频率

2020秋招金九银十程序员离职跳槽指南,作为过来人想对你们说这几点

∥☆過路亽.° 提交于 2020-10-18 13:30:56
最近有一些同事离职了,话说离职这个东西确实会传染,离职也是我们程序生涯的重要一环,工作差不多5年,换了三家公司,也呆过不少小作坊,也呆过大厂,感觉大家会容易忽视的几件事。 上个月有个同事毕业三年多,他一直做的Android开发,在我看来三年左右做到本科5年的成果,已经是很不错的。最近突然离职,让我很意外,他告诉我他要选择区块链行业,去博一把。 因此我不得不今天最用心的聊聊离职和跳槽! 为什么离职? 1 薪资不到位 由于随着加入司领的增加,互联网工作的人,薪水就会低于市场,甚至落后一大截,这是很多人跳槽的根本原因。这种一般是工程师比较常见。 2 干活憋屈了 薪资到位了,但是每天干的活感觉不如毕业生做的,都是体力活,每天重复一样的东西, 很多人就会出现反抗情绪,觉得这种活太Low,不符合自己的“段位”。就会选择离开。初创公司,外包公司的员工一般这种心态多。 3 加班多 程序员这行业加班是常态,我之前也发表了一篇文章,《我喜欢编程,但讨厌这个行业》的文章,我在文章提到绝大多数人是喜欢编程的,但也很厌烦持久的加班,所以一旦时间累积,就会导致大家跳槽。 4 技术无法提高 虽然做的东西是比较有难度的,但是每2个月换项目,或者换模块,也会导致很多人对做过的东西无法充分吸收,导致了大家其实啥都会,但是啥都不会的错觉,因此这种状况久了就会产生离职的念头。 5 厌恶领导 很多时候

怎样学习java,java基础入门学习要点分享!

大兔子大兔子 提交于 2020-10-18 09:30:30
  当今越来越多的人选择学习Java技术,这是因为Java应用的在企业中需求量不断的增长,尤其是中高端的Java开发人才,更是企业高价聘请的人才,因此,如何入门学习Java就成了重点,下面就为大家分享一下Java的学习要点。   1、每日知识点必须要有总结:   在写总结的过程中,你会去寻找你的记忆,你今天学了什么,你掌握了什么,你还有什么不懂,都会让你更加清晰,所以总结必须写。   2、课堂的知识尽量课堂消化:   每个人学习能力不一样,消化程度自然不一样,但必须以你绝大的能力去消化老师的知识,这样你课后再花费的时间自然就比别人少了,接下来的时间自然就成了你加强巩固的时间,可有效提高自身的学习效率。   3、有问题就敲或百度:   先敲代码考察你的问题,过程中或许你会发现更多的知识点,有问题就问老师问同学并不是一个好习惯,百度其实是一个很好的平台,它会让你得到意想不到的效果。   4、开始养成良好的代码风格:   作为一个程序员,必然会写成千上万的代码,这样才能形成自己的良好代码风格。如果没有良好的代码风格,会对自己日后的工作增加很多麻烦,所以平时在学习的过程中要注重培养自己的良好代码风格。 郑州治疗不孕不育专业医院:http://yyk.39.net/zz3/zonghe/fc964.html郑州妇科医院:http://yyk.39.net/zz3/zonghe/1d426

使用Azure Application Insignhts监控ASP.NET Core应用程序

可紊 提交于 2020-10-18 08:26:22
Application Insignhts是微软开发的一套监控程序。他可以对线上的应用程序进行全方位的监控,比如监控每秒的请求数,失败的请求,追踪异常,对每个请求进行监控,从http的耗时,到SQL查询的耗时,完完整整的被记录下来。当对程序进行优化跟排错时非常好使。它原来是visualstudio online的一个服务,现在合并进了Azure,作为Azure Monitor的一个组件。虽然合并进了Azure,但是Application Insignhts还是免费的。 什么是Application Insignhts Application Insights 是 Azure Monitor 的一项功能,是面向开发人员和 DevOps 专业人员的可扩展应用程序性能管理 (APM) 服务。 使用它可以监视实时应用程序。 它将自动检测性能异常,并且包含了强大的分析工具来帮助诊断问题,了解用户在应用中实际执行了哪些操作。 它旨在帮助持续提高性能与可用性。 它适用于本地云、混合云或任何公有云中托管的各种平台(包括 .NET、Node.js、Java 和 Python)上的应用。 它与 DevOps 进程集成,并且具有与不同开发工具的连接点。 可以通过与 Visual Studio App Center 集成来监视和分析移动应用的遥测数据。 摘自微软文档: app-insights

WPF、WCF与WWF

拈花ヽ惹草 提交于 2020-10-17 20:32:36
Windows Presentation Foundation与 Windows Communication Foundation及 Windows Workflow Foundation并行为新一代 Windows 操作系统 以及 WinFX 的三个重大 应用程序 开发类库。 1、WPF即Windows Presentation Foundation, 是微软 推出的基于Windows Vista的用户界面框架,属于.NET Framework 3.0的一部分。它提供了统一的编程模型、语言和框架,真正做到了分离界面设计 人员与开发人员的工作;同时它提供了全新的多媒体交互用户图形界面。 WPF在建立应用程序时使用可扩展的应用程序标记语言XAML(Extensible Application Markup Language)。 2、WCF即 Windows Communication Foundation,由 微软 开发的一系列支持数据通信的应用程序框架,可以翻译为Windows 通讯开发平台。整合了原有的windows通讯的 .net Remoting,WebService,Socket的机制,并融合有Http和Ftp的相关技术。是Windows平台上开发分布式应用最佳的实践方式。 简单的归结为四大部分 1>.网络服务的协议,即用什么 网络协议 开放客户端接入。 2>

.NET简陋服务器

爷,独闯天下 提交于 2020-10-17 19:57:47
服务器是干啥子用滴?监听客户端,响应客户端用滴! 虽然是世界上最简陋的服务器,但是也有几个注意点: 1.因为要一个死循环监听客户端响应,也就是说无法和用户进行交互了,所以防止前台假死就要为监听新起一个线程; 2.要把新起的线程td.IsBackground = true;设置为后台线程,这样的话线程才会随着应用程序的关闭而关闭,不然的话关了窗体,它还在运行; 3.跨线程问题,在新的线程里改变UI会报跨线程改变UI的错误,所以要用Invoke; 4.在监听的死循环中加入 Thread.Sleep(1);这样可以提高应用程序性能,不要担心当服务的线程正在Sleep的时候来了个请求服务器会收不到,其实是收得到的。 加入Thread.Sleep(1)的CPU如图: 不加Thread.Sleep(1)的CPU如图: 所以一定要加! 所以服务器端代码如下: 1 using System; 2 using System.Collections.Generic; 3 using System.ComponentModel; 4 using System.Data; 5 using System.Drawing; 6 using System.Linq; 7 using System.Text; 8 using System.Windows.Forms; 9 10 using System

.NET 分布式自增Id组件(解决自动分配机器Id、时间回拨问题)

怎甘沉沦 提交于 2020-10-17 12:11:14
.NET 分布式自增Id组件(解决自动分配机器Id、时间回拨问题) 参考文章: (1).NET 分布式自增Id组件(解决自动分配机器Id、时间回拨问题) (2)https://www.cnblogs.com/coldairarrow/p/11509881.html 备忘一下。 来源: oschina 链接: https://my.oschina.net/stackoom/blog/4677505

面试 .NET 开发,为什么也要考算法?

自古美人都是妖i 提交于 2020-10-17 08:01:28
最近有不少人面试,我发现很多候选人,聊起架构、框架侃侃而谈,但一写代码,就暴露真实水平。说白了,还是基本功不够扎实。 在我看来,所有基本功中,最核心的一定是 数据结构与算法 。也因此,所有大厂面试,都必考算法题。分享我自己学算法的一些感悟吧。 1、算法不是纯粹拼智商的,而是一种技能,是可以通过科学合理的方式训练出来的能力。 2、学算法,刷题蛮干是不行的,需要遵循科学的方法。算法训练是个系统工程,得循序渐进着来,过于急功近利,反而会因做不出题而产生挫败感,带来反作用。 那会儿,我几乎把市面上所有算法教程都撸了一遍。虽说有所收获,但我发现这些资料还是更偏理论,举例也大多脱离真实的软件开发。看的时候各种明白,合上书就忘得精光。 真正让我觉得很受启发的,就是小争哥的 《数据结构与算法之美》 专栏,这门课我之前也推荐过,是我认为市面上最适用于工程师的算法课,常年稳居极客时间订阅量 TOP 1,现在订阅超过 90000 了。 拼团+口令「study2020」立省 ¥45 原价 ¥129,仅限今日 新人专享 ¥19.9 小争哥是前 Google 工程师,不仅实战经验丰富,而且特别会教,是个不可多得的老师。专栏现已全部更新完毕——原计划 45 篇,完结时足足写了 72 篇。我已经刷了两遍,每次看都还有新收获。 整个专栏涵盖 100+ 真实项目场景案例,王争还手绘了不少详解图(共 300 多张)

造轮子-AgileConfig基于.NetCore的一个轻量级配置中心

核能气质少年 提交于 2020-10-17 05:39:52
微服务确实是行业的一个趋势,我自己也在把一些项目往微服务架构迁移。玩微服务架构配置中心是一个绕不过去的东西,有很多大牌的可以选,比如spring-cloud-config,apoll,disconf等等。而我为什么还要造一个轮子呢?一来这些都不是.net实现的,我就想试试用.net core实现一个,而且他们也对.net不太友好,也只有apoll提供了官方的.net客户端。二来这些组件都太重量级了,比如apoll,光跑起来就要部署多个节点(admin,portal,meta sevice)还要依赖eureka。很多旧的项目往微服务迁移的时候并不是一下次全部调整完成的,可能是一步步来的,比如先把所有的服务都容器化,并没有使用微服务全家桶。而且有的项目也不需要微服务全家桶,毕竟微服务不是银弹,很多项目单体结构就足够了,有些项目传统的SOA架构也可以了。(唠叨一句,那种毫无流量毫无并发的项目,几人几天就搞完的强上微服务真的好吗?)但是这些项目也可能是分布式的,容器化部署的,那么这些项目我觉得也是需要配置中心的,因为在分布式、容器化环境下更改配置实在是太麻烦了。可以说配置中心并不是微服务独有的。基于以上原因我提炼了一些配置中心必备的功能,做的尽量简单(陋),开发了AgileConfig,为.net core的生态尽一份绵薄之力。 Github求star: AgileConfig

使用amoeba实现mysql读写分离

╄→гoц情女王★ 提交于 2020-10-16 18:55:00
转载马士兵连老师笔记 使用amoeba实现mysql读写分离 1、什么是amoeba? Amoeba(变形虫)项目,专注 分布式数据库 proxy 开发。座落与Client、DB Server(s)之间。对客户端透明。具有负载均衡、高可用性、sql过滤、读写分离、可路由相关的query到目标数据库、可并发请求多台数据库合并结果。 主要解决: • 降低 数据切分带来的复杂多数据库结构 • 提供切分规则并降低 数据切分规则 给应用带来的影响 • 降低db 与客户端的连接数 • 读写分离 2、为什么要用Amoeba 目前要实现mysql的主从读写分离,主要有以下几种方案: 1、 通过程序实现,网上很多现成的代码,比较复杂,如果添加从服务器要更改多台服务器的代码。 2、 通过mysql-proxy来实现,由于mysql-proxy的主从读写分离是通过lua脚本来实现,目前lua的脚本的开发跟不上节奏,而写没有完美的现成的脚本,因此导致用于生产环境的话风险比较大,据网上很多人说mysql-proxy的性能不高。 3、 自己开发接口实现,这种方案门槛高,开发成本高,不是一般的小公司能承担得起。 4、 利用阿里巴巴的开源项目Amoeba来实现,具有负载均衡、高可用性、sql过滤、读写分离、可路由相关的query到目标数据库,并且安装配置非常简单。国产的开源软件,应该支持,目前正在使用