首页
学习
活动
专区
工具
TVP
发布

DotNet Core圈圈

专栏作者
120
文章
188252
阅读量
46
订阅数
C# 9.0中引入的新特性init和record的使用思考
.NET 5.0已经发布,C# 9.0也为我们带来了许多新特性,其中最让我印象深刻的就是init和record type,很多文章已经把这两个新特性讨论的差不多了,本文不再详细讨论,而是通过使用角度来思考这两个特性。
Edison.Ma
2020-12-29
1.2K0
ASP.NET MVC升级到ASP.NET Core MVC踩坑小结
ASP.NET Core是微软新推出的支持跨平台、高性能、开源的开发框架,它的优势不必多说,因为已经说得太多了。当然,现在依然有着数量庞大的系统运行于.NET Framework上,由于有大量的Break Changes,很多项目项目团队也不敢贸然升级,其中的考量也不全部是技术原因,更多的可能还是业务推进因素。
Edison.Ma
2020-05-18
2.2K0
.NET Core 3.0之深入源码理解ObjectPool(二)
前文主要介绍了ObjectPool的一些理论基础,本文主要从源码角度理解Microsoft.Extensions.ObjectPool是如何实现的。下图为其三大核心组件图:
Edison.Ma
2020-05-18
8160
.NET Core 3.0之深入源码理解ObjectPool(一)
对象池是一种比较常用的提高系统性能的软件设计模式,它维护了一系列相关对象列表的容器对象,这些对象可以随时重复使用,对象池节省了频繁创建对象的开销。
Edison.Ma
2019-10-15
4560
代码中if/else太多怎么办?状态机stateless来帮你
 很多业务系统开发中,不可避免的会出现状态变化,通常采用的情形可能是使用工作流去完成,但是对于简单场景下,用工作流有点大财小用感觉,比如订单业务中,订单状态的变更,涉及到的状态量不是很多,即使通过简单的if-else也能足够使用,甚至是用上switch去减少if-else的使用,都是可以的,尽管这会丧失某些东西。为更好的优化整个流程,此时会考虑到使用状态模式来解决一些问题。
Edison.Ma
2019-10-15
2.5K1
.NET分布式大规模计算利器-Orleans(一)
Orleans是基于Actor模型思想的.NET领域的框架,它提供了一种直接而简单的方法来构建分布式大规模计算应用程序,而无需学习和应用复杂的并发或其他扩展模式。我在2015年下半年开始应用Orleans,当时公司的交易系统采用的架构就是基于Orleans框架的,其展现出来的高性能、高并发以及惊人的稳定性深深地吸引了我,也让我认识到了传统三层无状态架构的缺陷。本文主要关注Orleans的思想基础,Actor模型及其应用。
Edison.Ma
2019-09-24
7470
分层 Blazor 组件
作为加入单页应用程序 (SPA) 队伍的最新框架,Blazor 有机会在其他框架(如 Angular 和 React)的最佳特性基础之上构建而成。尽管 Blazor 背后的核心概念是利用 C# 和 Razor 来生成 SPA 应用程序,但明显受到其他框架启发的一个方面是使用组件。
Edison.Ma
2019-08-23
8.3K0
.NET Core玩转爬虫系列之借助正则表达式入门篇
模拟登录 -> 模拟发送request请求 -> 取回response数据 -> 提取所需信息并将其进行重新组织 -> 存入DB或文件中 -> 后期处理或展示
Edison.Ma
2019-08-23
1.2K1
10分钟了解一致性hash算法
当我们的数据表超过500万条或更多时,我们就会考虑到采用分库分表;当我们的系统使用了一台缓存服务器还是不能满足的时候,我们会使用多台缓存服务器,那我们如何去访问背后的库表或缓存服务器呢,我们肯定不会使用循环或者随机了,我们会在存取的时候使用相同的哈希算法定位到具体的位置。
Edison.Ma
2019-08-22
6310
.Net Core 最优 MD5 打开方式!初学者建议收藏(支持 SHA1,SHA256,.Net Framework)
这是一段 MSDN 官方的 MD5 示例,例子很简单且很容易理解。但是,这个例子也有很多的问题,首先上例至少创建了 3 个临时缓存区!且每次执行 GetMd5Hash 都会创建一个 MD5 实例,并在方法执行完成后释放它。这些都造成了很大的系统资源浪费和增加了 GC 的压力。
Edison.Ma
2019-08-21
1.8K0
Thread、ThreadPool、Task、Parallel、Async和Await基本用法、区别以及弊端
ThreadPool是Thread的一个升级版,ThreadPool是从线程池中获取线程,如果线程池中又空闲的元素,则直接调用,如果没有才会创建,而Thread则是会一直创建新的线程,要知道开启一个线程就算什么事都不做也会消耗大约1m的内存,是非常浪费性能的,接下来我们写一个例子来看一下二者的区别:
Edison.Ma
2019-08-14
1.6K0
【译】尝试使用Nullable Reference Types
随着.NET Core 3.0 Preview 7的发布,C#8.0已被认为是“功能完整”的。这意味着它们的最大亮点Nullable Reference Types,在行为方面也被锁定在.NET Core版本中。它将在C#8.0之后继续改进,但现在可以认为它与C#8.0的其余部分一样是稳定的。
Edison.Ma
2019-08-09
3.6K0
.net持续集成sonarqube篇之sonarqube基本操作(一)
Sonarqube Web管理界面虽然设计的简洁大方,也非常直观,但是由于功能繁多,这对快速入手以及快速定位到想要的功能都是一个挑战,在以后的几个小节里我们简要介绍.
Edison.Ma
2019-08-01
8720
.net持续集成sonarqube篇之sonarqube基本操作(二)
Activity界面主要是对多次构建管理界面,主要是帮助管理员快速了解项目每次构建与以往构建相比问题是增加了还是减少了等指标.由于目前我们仅进行了一次构建,因此没有对比数据,我们再对测试项目进行一次构建.
Edison.Ma
2019-08-01
5400
Orleans 知多少 | 2. 核心概念一览
上面已经提到,Grain是Virtual Actor的具体表现。那如何理解Grain呢。
Edison.Ma
2019-07-30
5260
.NET Core 3.0之深入源码理解HttpClientFactory(一)
创建HttpClient实例的时候,在内部会创建HttpMessageHandler链,我们知道HttpMessageHandler是负责建立连接的抽象处理程序,所以HttpClient的维护实际上就是维护HttpMessageHandler的使用,释放HttpClient并不会及时释放连接,而通常情况下一般是创建全局使用的HttpClient实例,以减少重复连接的次数。当然这种方式所带来的的弊端也是显而易见的,因为当前的HttpClient实例所指向的服务器发生问题或者DNS发生变更,那么该实例是无法做到自动更新指向的。
Edison.Ma
2019-07-25
9110
垃圾回收的常见算法
自动化的管理内存资源,垃圾回收机制必须要有一套算法来进行计算,那些是有效的对象,那些是无效的对象,对于无效的对象 就要进行回收处理。 常见的垃圾回收算法有 :引用计数法、标记清除法、标记压缩法、复制算法、分代算法等。
Edison.Ma
2019-07-23
1.2K0
.NET Core 3.0之深入源码理解Configuration(三)
上一篇文章讨论了文件型配置的基本内容,本篇内容讨论JSON型配置的实现方式,理解了这一种配置类型的实现方式,那么其他类型的配置实现方式基本可以触类旁通。看过了上一篇文章的朋友,应该看得出来似曾相识。此图主要表达了文件型配置的实现,当然其他配置,包括自定义配置,都会按照这样的方式去实现。
Edison.Ma
2019-07-19
5490
.NET Core 3.0之深入源码理解Configuration(二)
上一篇文章讨论了Configuration的几个核心对象,本文继续讨论Configuration中关于文件型配置的相关内容。相比较而言,文件型配置的使用场景更加广泛,用户自定义配置扩展也可以基于文件型配置进行扩展。如果需要查看上一篇文章,可以点击移步。
Edison.Ma
2019-07-19
5910
设计模式之模板方法模式
模板方法模式属于行为型设计模式,它定义了一个操作的算法框架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构的情况下重新定义该算法的某些特定步骤。该模式提供了算法的基本框架,所谓算法框架,就是只提供了普遍性的逻辑,而不确定性或者说特定场景的逻辑则在子类中实现。
Edison.Ma
2019-07-19
2480
点击加载更多
社区活动
RAG七天入门训练营
鹅厂大牛手把手带你上手实战
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档