c#创建安全的栈(stack)存储结构-编程思维

    在C#中,用于存储的结构较多,如:DataTable,DataSet,List,Dictionary,Stack等结构,各种结构采用的存储的方式存在差异,效率也必然各有优缺点。现在介绍一种后进先出的数据结构。    谈到存储结构,我们在项目中使用的较多。对于Task存储结构,栈与队列是类似的结构,在使用的时候采用不同的方法。C#中栈(Stack)是编译期间就分配好的内存空间,因此你的代码

c#创建安全的字典(dictionary)存储结构-编程思维

    在上面介绍过栈(Stack)的存储结构,接下来介绍另一种存储结构字典(Dictionary)。 字典(Dictionary)里面的每一个元素都是一个键值对(由二个元素组成:键和值) 键必须是唯一的,而值不需要唯一的,键和值都可以是任何类型。字典(Dictionary)是常用于查找和排序的列表。   接下来看一下Dictionary的部分方法和类的底层实现代码:   1.Add:将指定的键

managementclass类解析和c#如何获取硬件的相关信息-编程思维

       在.NET的项目中,有时候需要获取计算机的硬件的相关信息,在C#语言中需要利用ManagementClass这个类来进行相关操作。    现在先来介绍一下ManagementClass类,首先看一下类的继承结构:       现在看一下MSDN对ManagementClass类的解释,对表示一个通用信息模型 (CIM) 管理类。 管理类是 WMI 类,如 Win32_Logica

dotnet友元程序集解析-编程思维

   项目开发的过程中,调试使用的可能是最多的操作。任何代码写出来都需要经过调试和整合,以此扩展和提升程序的稳定性和可靠性。谈到.NET的单元测试,在这里就得提提.NET的友元程序集这一特性,也借用.NET进行单元测试的一个较为好用的.NET属性,来讲解一下程序集、定制Attribute的相关知识。一些知识需要反复的去品味和反思,不要觉得你会了就不在意,等你在意的时候,你就有些力不从心的意思了。

创建基于mailkit和mimekit的.net基础邮件服务-编程思维

       邮件服务是一般的系统都会拥有和需要的功能,但是对于.NET项目来说,邮件服务的创建和使用会较为的麻烦。.NET对于邮件功能提供了System.Net.Mail用于创建邮件服务,该基础服务提供邮件的基础操作,并且使用也较为的简单。对于真正将该功能使用于项目的人,就会慢慢发现其中的优缺点,甚至有些时候不能忍受其中的问题。在这里介绍一种微软用于替代System.Net.Mail的邮件服务

dotnet加密方式解析--数字签名-编程思维

    马上就要过年回村里了,村里没有wifi,没有4G,没有流量,更加重要的是过几天电脑就得卖掉换车票了,得赶紧写几篇博客。     数据安全的相关技术在现在愈来愈变得重要,因为人们对于自身的信息都有一种保护的欲望,不想被人获取到自己的私密信息,加密几乎已经是这个时代的关键词了。在这个HTTPS盛行的时代,作为一个开发人员怎么可能不去了解和学习呢。这篇博文就来给大家简单介绍一个HTTPS在.

dotnet加密方式解析--非对称加密-编程思维

   新年新气象,也希望新年可以挣大钱。不管今年年底会不会跟去年一样,满怀抱负却又壮志未酬。(不过没事,我已为各位卜上一卦,卦象显示各位都能挣钱...)。已经上班两天了,公司大部分人还在休假,而我早已上班,估计今年我就是加班狗的命。(不说了,要坚强...)    以上扯淡已毕,下面言归正传。      这次的.NET加密解析系列中,前面已经讲解了散列加密、对称加密、数字签名三种加密方式,在这篇博

c#分部类型解析-编程思维

   等待着元宵节的到来,过完元宵,这个年也算是过完了,也得开始出去挣钱了,过年回家感觉每个人都觉得很牛,只有自己太渣,为了避免年底再出现这样尴尬的局面,还是需要努力干活。争取当上CEO,赢取白富美,走上人生巅峰。(生活需要幻想,也需要面对现实,努力获取一个向上的心态,比起拥有财富要更加的难得。)         对于现在还在聊QQ和看博客的同志们,我只想借用上图问一句“你们不上班么?...哈哈

解析.net对象的跨应用程序域访问(下篇)-编程思维

    转眼就到了元宵节,匆匆忙忙的脚步是我们在为生活奋斗的写照,新的一年,我们应该努力让自己有不一样的生活和追求。生命不息,奋斗不止。在上篇博文中主要介绍了.NET的AppDomain的相关信息,在本篇博文中将会主要说明.NET程序集、对象代理,以及对象的封送原理。 一.程序集解析:     谈到程序集,就要知道什么叫做程序集,我们看看程序集的定义是什么。程序集大致分为两种:一种是类库(就是我

关于dapper.net的相关论述-编程思维

   年少时,为何不为自己的梦想去拼搏一次呢?纵使头破血流,也不悔有那年少轻狂。感慨很多,最近事情也很多,博客也很少更新了,毕竟每个人都需要为自己的生活去努力。    最近在一个群里遇到一个人说的话,在这里不再赘述,大概意思就是自己各种精通各种懂,面试时各种装逼各种吊,本人真诚的求教了一下他,问他是否懂这些东西的底层原理,是否了解过底层源码,能否根据实际情况修改源码,谁知被他吐槽说装逼,说知识那

为了性能,慎用递归-编程思维

慎用递归 起因: 在学习Rust的时候,有一道语法练习题是计算斐波那契数列的第N项的值,这是一道非常简单的题,但是引发了一个使用递归性能问题,考虑到用Rust的人不多,后面的代码都是C#的,因为C#的语法更大众一些,更好看懂 第一次解 public static ulong FibonacciNumberRecursion(int n) { if (n == 1) ret

【算法】状态之美,tcp/ip状态转换探索-编程思维

最近城市里甲流肆虐,口罩已经成为了出门必备的物品。小悦也不得不开始采取防护措施,上下班过程中,将口罩戴起来以保护自己不受病毒的侵害。 每天下班后,小悦总是喜欢投入到自己的兴趣爱好中,她热衷于翻阅与IT相关的资料,希望能够更深入地了解计算机科学。而她的大学同学小欣,则总是拿她开玩笑:“小悦啊,你是不是该考虑一下找男朋友?每天都在研究这些枯燥的算法,这可不像你啊。” 小悦总是笑笑不作回应,她对自己的

和 chatgpt 聊聊 .net 编译和执行背后的那些事儿-编程思维

1 .NET 编译、构建、执行涉及到哪些概念 在 .NET 编译、构建和执行中,涉及到以下概念: C# 或 Visual Basic .NET 等编程语言: 这些是 .NET Framework 使用的主要编程语言。开发人员使用这些语言编写应用程序和代码。 Roslyn: Roslyn 是 .NET 编译器平台,提供编译器和代码分析的 API。它对代码进行语法和语义分析,构建抽象语法树 (AS

可怕!.net 8正式发布了,.net野心确实不小!-编程思维

随着三天.NET Conf 2023的会议结束了,.Net 8正式发布了。 .Net 8是官方号称有史以来性能最快的一个版本了。 .Net 8 增加了数以千计的性能、稳定性和安全性改进,以及平台和工具增强功能,有助于提高开发人员的工作效率和创新速度。 反正就是快,性能好、工作效率更高! 这个版本,.Net重塑构建智能、云原生的应用、可按需扩展的高流量服务的方式。 不管是部署Linx、Windo

颠覆了!eshop跟随.net 8迎来重磅升级,微服务架构与gpt的完美结合!-编程思维

.Net 8正式发布了,发布了诸多重大的新功能、新特性! .Net 8新增的功能带来诸多惊喜,还未一一体验完毕呢,我又发现了跟随.Net 8的发布,eShop也迎来重磅升级! eShop一直以来都是微软官方提供的,一个基于.Net开发的电子商务系统开源项目。 这次升级有几大关键词:.Net 8、微服务、Aspire、OpenAI、APP。 eShop采用的是微服务架构,分为核心、身份授权、订单、

一个.net开源的协作办公套件,包括文档、表格、演示文稿和表单-编程思维

推荐一个开源的文档协作办公套件,可以很好的满足团队对方便、高效、安全的方式来处理文档工作,促进团队协作和信息共享。 项目简介 ONLYOFFICE 是一个开源的办公套件,包括文档、表格、演示文稿和表单等应用程序。 可以很好低与微软Office兼容,允许多人实时在线对同一个文档进行协作编辑,并且支持Windows、Liunx、macOS、Android、iOS系统,方便团队移动办公协作。 项目特点

.net core mvc基础之页面传值方式📃-编程思维

.NET Core MVC基础之页面传值方式📃 前言 最近工作太忙了,浅浅更新一下.NET基础知识。大部分面试官都会问.NET页面传值的几种方式,那么接下来就来细讲与实现一下吧! 页面传值分成两类 第一类:控制器给视图传值 第二类:视图给控制器传值 本篇文章主要讲控制器给视图传值 控制器->视图 弱类型数据 ViewData ViewData是一个字典对象,可以在控制器中存储键值对,然

使用mvvm toolkit简化wpf开发-编程思维

最近. NET 8 的 WPF 推出了 WPF File Dialog改进,这样无需再引用 Win32 命名空间就可以实现文件夹的选择与存储了,算是一个很方便的改进了。顺手写了一个小的 WPF 程序,在使用 Model-View-ViewModel(MVVM) 模式的时候,我不想使用 Prism 等重量级的框架,找了一个轻量级的 MVVM Community Toolkit (以下简称 MVVM

将echarts图表插入到word文档中-编程思维

@目录在后端调用JS代码准备ECharts库生成Word文档项目地址库封装本文示例 EChartsGen_DocTemplateTool_Sample 如何通过ECharts在后台生成图片,然后插入到Word文档中? 首先要解决一个问题:总所周知,ECharts是前端的一个图表库,如何在后台调用JS代码?这里就要用到PhantomJS了。 PhantomJS是一个基于WebKit的JavaSc

.net 温故知新【14】:asp.net core webapi 缓存-编程思维

一、缓存 缓存指在中间层中存储数据的行为,该行为可使后续数据检索更快。 从概念上讲,缓存是一种性能优化策略和设计考虑因素。 缓存可以显著提高应用性能,方法是提高不常更改(或检索成本高)的数据的就绪性。 二、RFC9111 在最新的缓存控制规范文件RFC9111中,详细描述了浏览器缓存和服务器缓存控制的规范,其中有一个最重要的响应报文头Cache-Control。 该报文头的设置会影响我们的缓存,