
asp net core 学习之旅
文章平均质量分 72
走在路上的霍纳奇思
这个作者很懒,什么都没留下…
展开
-
signalr实时通讯
前言我这里使用signalr的动机是因为有些大屏数据和设备信息需要自动更新,当时我是使用的轮询的方式,当时轮询周所周知,再数据没有变化的情况下,是非常耗费资源的。闲暇的时候,更是不能使用轮询来造成额外的耗费。正文使用场景 使用SignalR与Asp.net Core通讯1、signalR简介signalR 是一个开源的库,跨平台;可以让web应用与其他应用通讯变得非常简单,WEB服务端可以实时的将内容推送给对应的客户端,客户端发送的信息也可以实时到其他客户端。signalR 提供了一种原创 2022-01-21 17:18:02 · 18497 阅读 · 7 评论 -
HttpClientFactory的使用
HttpClient的优缺点HttpClient这个对象有点特殊,虽然继承了IDisposable接口,但它是可以被共享的(或者说可以被复用),且线程安全。从项目经验来看,倒是建议在整个应用的生命周期内,复用HttpClient实例,而不是每次RPC请求的时候就实例化一个。在高并发的情况下,连接来不及释放,socket被耗尽,耗尽之后就会出现一个错误:#使用jemter压测复现错误信息:Unable to connect to the remote serverSystem.Net.Sockets.原创 2022-01-28 10:27:36 · 4892 阅读 · 0 评论 -
取出对象中的属性判断是否为空并返回相关信息
利用反射获得每一个字段,判断如果为string的public (bool, string) GetPropertyValue(TrayMessage trayMessage) { foreach (PropertyInfo pi in trayMessage.GetType().GetProperties()) { if (pi.PropertyType == typeof(string))原创 2022-05-05 11:09:15 · 216 阅读 · 0 评论 -
.NET平台常用的框架整理
.NET平台常用的框架整理Microsoft Velocity:微软自家分布式缓存服务框架。Memcahed:一套分布式的高速缓存系统,目前被许多网站使用以提升网站的访问速度。Redis:是一个高性能的KV数据库。 它的出现很大程度补偿了Memcached在某些方面的不足。EnyimMemcached:访问Memcached最优秀的.NET客户端,集成不错的分布式均衡算法。CacheManager 用于缓存的管理,支持Redis.Memcached,couchbase等 https://github.co转载 2022-06-28 13:16:32 · 7289 阅读 · 0 评论 -
异步接口使用的工具
Net Farmework中的普通队列Queue的实现使用了第一种方式,缺点是当队列空间不足会进行扩容,扩容的主要实现是开辟一个原始长度2倍的新数组,然后将原始数组里面的数据复制到新数组中,所以当扩容时就会产生不小的内存开销,在并发的环境中对性能的影响不可小视。当然在调用Queue的构造函数时可以指定默认空间的大小,但是一般情况下数据量是不可预测的,选大了会照成空间浪费,选小了会有复制内存的开销,而且队列扩容以后需要显示调用TrimToSize()方法才能回收掉不使用的内存空间。原创 2023-08-23 09:38:55 · 187 阅读 · 0 评论 -
.NET平台常见技术框架整理汇总
使用.NET平台开发有段时间了,在网上资料的基础上做了进一步整理,汇集了.NET平台常见的技术框架参考资料:2.1.分布式缓存框架2.2.应用框架2.3.日志记录异常处理2.4.NoSQL数据库2.5.自动任务调度框架2.6.依赖注入IOC容器框架2.7.ORM框架2.8.格式和数据类型转换2.9.反射和动态语言2.10.跨平台和运行时解决方案2.11.WEB开发和设计2.12.移动互联网和云计算2.13.网络通信和网络协议2.14.图形和图像处理框架转载 2022-06-28 13:44:09 · 2635 阅读 · 0 评论 -
Polly
/ 单个异常类型 Policy . Handle < Exception >();// 限定条件的单个异常 Policy . Handle < Exception >(ex => ex . Message == "请求超时");// 多个异常类型 Policy . Handle < Exception >() . Or < ArgumentException >();转载 2023-08-20 21:03:51 · 204 阅读 · 0 评论 -
TypeConverter的使用快速转换类型
【代码】TypeConverter的使用快速转换类型。原创 2023-02-04 17:40:46 · 673 阅读 · 0 评论 -
C# 观察者模式
介绍这里是从网络上找到的案例,猫捉耗子,猫叫 耗子跑 同时大人醒来,小孩子哭。这里伴随的就是观察模式。源代码 内部存在处理timer组件和Task异步锁处理新建目标基类/// <summary>/// 目标基类/// </summary>namespace DelegateEvent{ /**//// <summary> /// 在Observer Pattern(观察者模式)中,此类作为所有Subject(目标)的抽原创 2022-04-08 12:08:09 · 1177 阅读 · 0 评论 -
添加查看功能实现及异步编程和TagHelper
一、异步编程(Task)基本理解1. Task 类Task类是.NET 4.0之后提供的异步操作抽象,需要导入System.Threading.Tasks命名空间。Task类用于表示无返回值的异步操作,对于带有返回值的异步操作应使用Task类的子类Task<TResult。Task类和Task<TResult 类,后者是前者的泛型版本。TResult类型为Task所调用方法的返回值。主要区别在于Task构造函数接受的参数是Action委托,而Task<TResult 接受的是Fu原创 2022-01-28 18:14:50 · 223 阅读 · 0 评论 -
项目数据库的设计—EF Core技术运用
一、数据访问技术EF Core包的引用(还原NuGet包)1. EF Core认识Entity Framework(EF)Core是Entity Framework的一个轻量级和可扩展的版本,简称EF Core。EF Core是一个ORM框架,它使得开发人员可以直接使用.NET对象来操作数据库,减少了大部分的数据访问代码,开发者通常只需要编写对象即可。EF Core支持多种数据库引擎,例如:Microsoft Sql Server、Sqlite、Mysql、Npgsql等。什么是ORM,就是对象原创 2022-01-23 23:07:30 · 1389 阅读 · 0 评论 -
多配置文件的用法
多个配置文件得使用场景:(1)实际开发中经常会把开发环境、测试环境、生产环境进行分离。比如数据库:有开发环境、测试环境、生产环境下的数据库,不同数据库的配置文件就不一样了。(2)为了结构清晰,需要根据功能特点分离配置文件(log配置文件、数据库配置文件)(3)引入第三方组件,单独增加配置文件实例:(1)直接在项目下创建database.json,其代码问价如下:{“database”: {“Server”: “IP地址:1111”,“Name”: “testdb”,“UId”: “sa”原创 2022-01-23 18:29:25 · 1001 阅读 · 0 评论 -
配置文件的使用
1、如何添加及读取配置文件信息一个项目的配置可以写在文件、内存或数据库等里面。默认配置文件appsettings.json,这是json格式数据(当然也可以是INI和XML)。为了不影响本项目,我们建立一个测试项目(AppingSettingReadDemo),也为.Net Core MVC项目。1.如何添加配置信息(往原有的appsettings.json文件中写), "option1": "value1",//最简单键——值对格式"option2": { "suboption2原创 2022-01-23 18:20:31 · 1735 阅读 · 0 评论 -
.Net Core核心概念——依赖注入和中间件
依赖注入的理解与应用1. 为什么要用依赖注入(DI)什么是依赖注入,为什么要使用呢?简单通俗说就是一个类需要另一个类来协助工作,就产生了依赖,所以需要的依赖项就要【注入】过来一起来协同完成工作。软件设计原则中有一个依赖倒置原则(DIP)讲的是要依赖于抽象,不要依赖于具体,高层模块不应该依赖于低层模块, 二者应该依赖于抽象。简单的说就是为了更好的解耦。而控制反转(Ioc)就是这样的一个实现思路, 这个思路的其中一种实现方式就是依赖注入(DI)感觉有点绕, 举个栗子:老李是一个维修工, 现在要出任务去维原创 2022-01-23 17:49:41 · 1879 阅读 · 0 评论 -
Program.cs 和 Startup.cs的认识
1.Program.cs认识public class Program { public static void Main(string[] args) {//Build方法构建出一个web应用程序,然后去运行 CreateWebHostBuilder(args) //调用下面的方法,返回一个IWebHostBuilder对象.Build()//用上面返回的IWebHostBuilder对象创建一个IWebHost.Run();//运行上面原创 2022-01-23 17:10:44 · 1169 阅读 · 0 评论 -
项目基础框架创建与理解
1、.NET Core项目基础框架的认识1.Properties显示项目属性,与右击项目——【属性】一样。下面有一个launchSettings.json文件,代码如下:实际上就是刚开始可视化设置改为了用代码设置。也即是通过代码更改了属性,可视化看到的相应属性值也改变,同理,更改了属性值,代码中的相应属性值也对应更改。2.wwwroot存放一些静态资源文件(css、js、imgae(.net core2.2下默认没有此文件夹)等),这个在.Net Framework下是没有的。3.依赖项对应原创 2022-01-23 16:44:01 · 450 阅读 · 0 评论