今天电脑重启之后,发现visualstudio2022的智能提示与报错经常性不好用,不光不能在正常时候提示代码错误信息,甚至在编译过后也不提示错误。反复重启,刚开始正常,隔一会儿就会提示什么什么功能不可用,点开打开详情,提示:StreamJsonRpc.ConnectionLostException:在请求完成之前,与远程方的JSON-RPC连接已丢失。 之前也没有遇到过这个问题,网上找了很多解决方案,有说使用devenv/nosplash的,也有说用devenv/ResetSettings的,试过都没用。没办法着急用就用vscode代替了。结果vscode也是经常性报错,同样也无法正常提示错...

  6ITE7eSm0tet   22天前   17   0   0 .NET

最近.NET8的WPF推出了WPFFileDialog改进,这样无需再引用Win32命名空间就可以实现文件夹的选择与存储了,算是一个很方便的改进了。顺手写了一个小的WPF程序,在使用Model-View-ViewModel(MVVM)模式的时候,我不想使用Prism等重量级的框架,找了一个轻量级的MVVMCommunityToolkit(以下简称MVVMToolkit)。 在现代WPF应用程序开发中,遵循MVVM(Model-View-ViewModel)模式已成为一种标准做法。MVVM模式视图和逻辑分离,提高了代码的可测试性、可维护性。 MVVMToolkit核心功能 MVVMToolk...

  6ITE7eSm0tet   2023年12月31日   139   0   0 .NET

前言 最近还在和npgsql与EFCore斗争,由于EFCore暂时还不支持AOT,因此在AOT应用程序中使用EFCore时,会提示问题: 听这个意思,似乎使用CompiledModel可以解决问题,于是就又研究了一下EFCore的这个功能。 在EFCore中,模型根据实体类和配置构建,默认情况下,每次创建一个新的DbContext实例时,EFCore都会构建模型。对于需要频繁创建DbContext实例的应用程序,这可能会导致性能问题。 EntityFrameworkCore(EFCore)的预编译模型(CompiledModel)对应提供了一种优化,在EFCore6preview5中首次增...

  6ITE7eSm0tet   2023年12月31日   14   0   0 .NET

前言 最近还在和npgsql与EFCore斗争,由于EFCore暂时还不支持AOT,因此在AOT应用程序中使用EFCore时,会提示问题: 听这个意思,似乎使用CompiledModel可以解决问题,于是就又研究了一下EFCore的这个功能。 在EFCore中,模型根据实体类和配置构建,默认情况下,每次创建一个新的DbContext实例时,EFCore都会构建模型。对于需要频繁创建DbContext实例的应用程序,这可能会导致性能问题。 EntityFrameworkCore(EFCore)的预编译模型(CompiledModel)对应提供了一种优化,在EFCore6preview5中首次增...

  6ITE7eSm0tet   2023年11月21日   20   0   0 .NET

最近.NET8的WPF推出了WPFFileDialog改进,这样无需再引用Win32命名空间就可以实现文件夹的选择与存储了,算是一个很方便的改进了。顺手写了一个小的WPF程序,在使用Model-View-ViewModel(MVVM)模式的时候,我不想使用Prism等重量级的框架,找了一个轻量级的MVVMCommunityToolkit(以下简称MVVMToolkit)。 在现代WPF应用程序开发中,遵循MVVM(Model-View-ViewModel)模式已成为一种标准做法。MVVM模式视图和逻辑分离,提高了代码的可测试性、可维护性。 MVVMToolkit核心功能 MVVMToolk...

  6ITE7eSm0tet   2023年11月17日   23   0   0 .NET

最近玩《星露谷物语》上瘾,本来是看着个休闲游戏,现在玩成修仙游戏了,上百个小时浑身是肝,中午午休习惯都强行给改了。 虽然挺有意思,但是太肝了,入坑前请谨慎。补充一下,这个游戏应该是基于XNA/MonoGame写的。 这个游戏在丧失焦点的时候会自动暂停,无法自动推进,我觉得效率太低了,为了齐先生的场子,我得搞一个自动点击的东西。 不想下载软件就自己写一个吧,因为要保证游戏始终在前面,那肯定开关需要启用全局快捷键。找了一下,.NET有一个SharpHook(tolik.io)就挺简单的,花几分钟写了一个,实现了功能。 SharpHook是一个跨平台的Hook组件,核心基于libuiohook...

  6ITE7eSm0tet   2023年11月06日   20   0   0 .NET

最近玩《星露谷物语》上瘾,本来是看着个休闲游戏,现在玩成修仙游戏了,上百个小时浑身是肝,中午午休习惯都强行给改了。 虽然挺有意思,但是太肝了,入坑前请谨慎。补充一下,这个游戏应该是基于XNA/MonoGame写的。 这个游戏在丧失焦点的时候会自动暂停,无法自动推进,我觉得效率太低了,为了齐先生的场子,我得搞一个自动点击的东西。 不想下载软件就自己写一个吧,因为要保证游戏始终在前面,那肯定开关需要启用全局快捷键。找了一下,.NET有一个SharpHook(tolik.io)就挺简单的,花几分钟写了一个,实现了功能。 SharpHook是一个跨平台的Hook组件,核心基于libuiohook...

  6ITE7eSm0tet   2023年11月02日   26   0   0 .NET

用了很多年的RapidSCADAv5,现在官网已经推出了v6,就简单写一下有关v6的安装指南吧。 本指南面向Windows用户,不适用于linux用户 步骤 从官网下载RapidSCADA最新的RC版本的v6,然后运行压缩包内的ScadaSetup.exe程序。 FAQ 提示端口占用 RapidSCADA6.0.0rc1Installation ---------------------------------- CheckTCPport10000 TCPport10000alreadyinuse. Installationhascompletedwitherrors 这个就是端口...

  6ITE7eSm0tet   2023年11月02日   47   0   0 .NET

本文属于OData系列 Introduction ODATAv4提出了新的聚合查询功能,这对于ODATA的基本查询能力($expand等)是一个非常大的补充。ODATA支持的聚合查询功能,可以对数据进行统计分析,例如求和、平均值、最大/最小值、分组等。 聚合查询是通过$apply关键字实现的。使用$apply关键字可以指定一系列的聚合操作,以对数据进行处理。 GET/odata/Products?$apply=groupby((Category),aggregate(PricewithsumasTotalSales)) 该请求将返回按照产品类别(Category)分组的数据,并计算每个组的销...

  6ITE7eSm0tet   2023年11月02日   32   0   0 .NET

Intro EFCore支持多种方式处理具有继承关系的表,现在支持TPH、TPC(EFCore7)、TPT,具体的实现方式可以参考官方文档和这篇文章。 大致总结一下不同的方式的区别:TPH:所有的类型都放在一张表中,使用discriminator字段用以区别不同的类型TPT:不同的子类型有单独的表存放子类独有的字段,父虚类型也有一张单独的表存放共有的字段。TPC:不为父虚类新建表,只有子类型有单独的表,并且表内有父类和子类所有的字段。 由于TPT两张表的外键关联设计,在进行查询时,会自动进行的JOIN等连表查询操作,因此极限性能不太行。需要经常用查询父类的情况,TPH就挺好;需要经常查询子类的...

  6ITE7eSm0tet   2023年11月02日   28   0   0 .NET

对象文件存储服务(OSS)主要用于存储零散的文件,和直接存储到本地文件系统中相比,有以下的几个优势: 跨服务器可用 兼容AmazonS3API 横向扩容 高可用 支持加密 MinIO就是一个高性能的文件服务,我们使用.NET来操作一下。 部署MinIO 最简单的办法,就是在Docker上运行MinIO。可以使用以下命令启动MinIO: dockerrun-p9000:9000-p9001:9001--nameminio\ -e"MINIO_ACCESS_KEY=<your-access-key>"\ -e"MINIO_SECRET_KEY=<your-secret-key...

  6ITE7eSm0tet   2023年11月02日   59   0   0 .NET

我习惯性使用OData,它的$expand与层级查询非常好用,这个功能非常依赖于数据库的导航属性,也就是外键结构。最近想着把一个单体的系统拆分为多个小系统,首先需要处理外键依赖的问题。 多个服务各自有各自的数据库,数据库层面并不互通,也就无法使用外键约束。 我使用EFCore来描述数据库的结构,有两个实体类如下: publicclassAD_Insect_Info { [Key,DatabaseGenerated(DatabaseGeneratedOption.Identity)] publicintId{get;set;} publicstringName{get;set;} ...

  6ITE7eSm0tet   2023年11月02日   47   0   0 .NET

本文属于OData系列 Intro 对外提供WEBAPI时,如果遇上了版本升级,那么控制WEBAPI的版本也是非常必要的。OData官方提供了版本控制以及管理的解决方案,我个人是实践体会是不好用,好在社区提供了对应的nuget包,与.NET主版本同步更新。 介绍 ASP.NETAPIVersioning是一个提供ASP.NETWEBAPI版本管理的包,支持ASP.NET、ASP.NETCORE、ASP.NETCOREODATA,作者以前是微软的员工,现在不在微软工作了,因此原先的命名空间不能继续用了。现在这个项目已经加入.NETFoundation,作者也非常活跃。 版本管理 首先对现有的项目...

  6ITE7eSm0tet   2023年11月02日   25   0   0 .NET

本文属于OData系列文章 Intro 前面写了很多有关OData使用的文章,很多读者会有疑问,直接将实体对象暴露给最终用户会不会有风险?$expand在默认配置的情况下,数据会不会有泄露风险? 答案是肯定的,由于OData的特性,提供给我们便捷同时也会带来一些风险。很多地方推荐使用DTO模式来隔离实体类与最终用户使用到类的关系,从而解决以上两个问题,OData同样也适用。 DTO DTO代表DataTransferObject,是一种设计模式,用于在不同层之间传输数据。它通常用于将数据从一个应用程序的逻辑层传输到另一个应用程序的界面层或持久化层,以及在分布式系统中传输数据。 DTO对象是纯数...

  6ITE7eSm0tet   2023年11月02日   38   0   0 .NET

引言 在单元或者集成测试的过程中,需要测试的用例非常多,如果测试是一条一条过,那么需要花费不少的时间。从V2开始,默认情况下XUnit自动配置并行(参考资料),大大提升了测试速度。本文将对ASP.NETCOREWEBAPI程序进行集成测试,并探讨XUnit的数据共享与测试并行的方法。 XUnit默认在一个类内的测试代码是串行执行的,而在不同类的测试代码是并行执行的。 集成测试 对于集成测试来说,我们有一些比较重的资源初始化,而我并不想他们在并行执行中重复初始化,因此需要将并行执行的资源共享。 我们现在的测试类是这样的: publicclassProgramTests:IClassFixtu...

  6ITE7eSm0tet   2023年11月02日   47   0   0 .NET

本文属于OData系列 引言 在OData中,EDM(EntityDataModel)代表“实体数据模型”,它是一种用于表示WebAPI中的结构化数据的格式。EDM定义了可以由OData服务公开的数据类型、实体和关系。EDM也提供了一些规则来描述数据模型中的实体之间的关系,例如继承、关联和复合类型。EDM是OData协议的核心组成部分之一,它允许客户端和服务器之间以一致的方式交换和操作数据。 EDM与实体对象模型 我刚接触EDM时恰好是与EFCore一起使用,就非常不理解这个现象:明明已经在EFCore中已经定义了模型,为啥还需要单独配置一个EDM? 其实,EDM和实体框架(EF)Core中的...

  6ITE7eSm0tet   2023年11月02日   22   0   0 .NET

本文属于OData系列文章 前文说到了EDM与OData之间的关系,具有EDM的OData提供了强大的查询能力,但是OData并不必须要配置EDM,我们也可以使用Non-EDM方案。 Non-EDM 所谓Non-EDM,并不是说在OData运行时不需要EDM配置了,而是由OData动态生成的EDM,进而实现OData功能。 配置 配置OData就可以不需要在内配置GetEdmModel()。当然,如果你需要配置路由,因为函数参数需要,我们可以返回一个默认的空EDM。 services.AddControllers() .AddOData(opt=>opt.Count().Filter()...

  6ITE7eSm0tet   2023年11月02日   68   0   0 .NET

本文属于OData系列文章 引言 OData是一个开放标准,已经在oasis组织标准化,因此我们可以在标准的官网查询到OData的标准请求与返回形式:ODataJSONFormatVersion4.01(oasis-open.org) 针对不同的数据类型,输出返回的格式也不尽相同,涉及的内容非常多。日常使用OData的过程中,我们经常处理的是实体对象以及实体对象的集合。如果直接返回IQueryable用于OData查询,那么返回的数据大多是集合(数组/列表)。 {     "@odata.context": "http://localhost:...

  6ITE7eSm0tet   2023年11月02日   40   0   0 .NET

本文属于OData系列文章 ABP是一个流行的ASP.NET开发框架,旧版的的ABP已经能够非常好的支持了OData,并提供了对应的OData包。 ABPvNext是一个重新设计的,面向微服务的框架,提供了一些非常有用的特性,包括分页查询等但是它并不能原生支持OData,我们需要自行实现。 本文的实现方式本质上为sidebyside方式,由于ABPvNext官方没有对应的设计,所以你依然需要自己编写控制器。 本文使用ABPCLI6.0.3生成的ABPvNext项目、Microsoft.AspNetCore.OData8.1.2 原理 ABPvNext有自动生成Controller的机...

  6ITE7eSm0tet   2023年11月02日   42   0   0 .NET

以前就是一直使用Newtonsoft.Json用起来还是挺舒服的。由于JSON的应用越来越广,现在.NETCore都内置了System.Text.Json可以直接对JSON进行操作,不过两个东西的体验依然有点区别。 有时候我们会遇到的从第三方传递过来的jsonstring对象,对其进行解析并不需要所有的字段,只需要一个目标的字段时,可以考虑使用匿名对象/动态对象对其反序列化。 之前的Newtonsoft.Json好像直接使用dynamic,运用JObject进行处理,现在的不是那么容易。下文代码基于.NET6,为了代码整洁,实际配置了PropertyNameCaseInsensitive=t...

  6ITE7eSm0tet   2023年11月02日   46   0   0 .NET
关注 更多

空空如也 ~ ~

粉丝 更多

空空如也 ~ ~