.NET Core

Windows Forms和WPF在Net Core 3.0框架下并不会支持跨平台

我是研究僧i 提交于 2021-02-12 04:43:59
Windows Forms和WPF在Net Core 3.0框架下并不会支持跨平台 微软将WinForms和WPF带到.NET Core 3.0这一事实,相信大家都有所了解,这是否意味着它在Linux和Mac上运行?。 不!由于WinForms和WPF在后台使用Windows技术,因此无法在Linux或Mac上运行。它真的依赖于Windows。在.NET Core上运行它的意义在于性能,并且独立于任何框架。 相关知识点: 1. 跨平台的WPF/UWP UI 框架:Avalonia 可以使用Avalonia开开发跨平台的WPF/UWP 2.可以使用 Windows Compatibility Pack for .NET Core 解决第三方库问题 参考 Make WPF cross-platform (MacOS and Linux support) WPF Contributing Guide We also do not intend to accept contributions that provide cross-platform implementations for Windows Forms or WPF. Winforms Contributing Guide We also do not intend to accept contributions that

把旧系统迁移到.Net Core 2.0 日记(5) Razor/HtmlHelper/资源文件

。_饼干妹妹 提交于 2021-02-12 00:37:06
net core 的layout.cshtml文件有变化, 区分开发环境和非开发环境. 开发环境用的是非压缩的js和css, 正式环境用压缩的js和css <environment include= " Development " > <link rel= " stylesheet " href= " ~/lib/bootstrap/dist/css/bootstrap.css " /> <link rel= " stylesheet " href= " ~/css/site.css " /> </environment> <environment exclude= " Development " > <link rel= " stylesheet " href= " https://ajax.aspnetcdn.com/ajax/bootstrap/3.3.7/css/bootstrap.min.css " asp -fallback-href= " ~/lib/bootstrap/dist/css/bootstrap.min.css " asp -fallback-test- class = " sr-only " asp-fallback-test-property= " position " asp-fallback-test-value= " absolute " />

.NET Core 3.0 System.Text.Json 和 Newtonsoft.Json 行为不一致问题及解决办法

泄露秘密 提交于 2021-02-11 14:55:55
.NET Core 3.0 System.Text.Json 和 Newtonsoft.Json 行为不一致问题及解决办法 参考文章: (1).NET Core 3.0 System.Text.Json 和 Newtonsoft.Json 行为不一致问题及解决办法 (2)https://www.cnblogs.com/taadis/p/12165101.html 备忘一下。 来源: oschina 链接: https://my.oschina.net/stackoom/blog/4794830

NET Core入门笔记

两盒软妹~` 提交于 2021-02-11 01:49:56
一、NET Core概念 .NET Core 是开放源代码通用开发平台,由 Microsoft 和 .NET 社区在 GitHub 上共同维护。 它跨平台(支持 Windows、macOS 和 Linux),并且可用于生成设备、云和 IoT 应用程序。(MSDN) 二、NET Core下载地址 最新的版本为 .NET Core 2.1 下载地址为:https://www.microsoft.com/net/download 三、NET Core 特点 1、跨平台: 可以在 Windows、macOS 和 Linux 操作系统上运行。 2、跨体系结构保持一致: 在多个体系结构(包括 x64、x86 和 ARM)上以相同的行为运行代码。 3、命令行工具: 包括用于本地开发和持续集成方案中的易于使用的命令行工具。 4、部署灵活: 可以包含在应用或已安装的并行用户或计算机范围中。 可搭配 Docker 容器使用。 5、兼容性:.NET Core 通过 .NET Standard与 .NET Framework、Xamarin 和 Mono 兼容。 6、开放源:.NET Core 是一个开放源平台,使用 MIT 和 Apache 2 许可证。 .NET Core 是一个 .NET Foundation 项目。 7、由 Microsoft 支持:.NET Core 由 Microsoft 依据

.NET Core 集成JWT认证

偶尔善良 提交于 2021-02-09 11:40:14
JWT(Json web token) 就不用过多的介绍了,在 .NET Core 开发中使用JWT进行认证也是比较常见的,而且接入过程也比较简单,随便配置配置就好了。 要想使用JWT,仅仅只需要在项目中引用微软的一个认证组件。 Install-Package Microsoft.AspNetCore.Authentication.JwtBearer 然后将一些敏感数据可以放在配置文件 appsettings.json 中。 { "JWT" : { "ClockSkew" : 10 , "ValidAudience" : "https://meowv.com" , "ValidIssuer" : "阿星Plus" , "IssuerSigningKey" : "6Zi/5pifUGx1c+mYv+aYn1BsdXPpmL/mmJ9QbHVz6Zi/5pifUGx1c+mYv+aYn1BsdXPpmL/mmJ9QbHVz6Zi/5pifUGx1c+mYv+aYn1BsdXPpmL/mmJ9QbHVz6Zi/5pifUGx1cw==" , "Expires" : 30 } } 在 Startup 中添加配置并且使用 services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme) .AddJwtBearer

【更新】LEADTOOLS v20最新版发布(三)

戏子无情 提交于 2021-02-09 02:45:43
在数码图象开发工具领域中的全球领导者—— LEADTOOLS v20 已正式发布,本站将以连载的形式为大家介绍新版本新增内容。本文主要介绍LEADTOOLS v20医疗引擎的新功能。 LEAD Technologies已经正式推出LEADTOOLS v20。这个新的版本将LEAD的成像技术扩展到新的快速增长的开发市场,新版本的库利用.NET Standard来针对Xamarin应用程序模型定位.NET Framework,.NET Core和Visual Studio Tools ,以及Microsoft Azure服务。除此之外,LEAD文档,医疗和多媒体产品线中的现有技术也增加了新的功能,速度也得到提升。 LEADTOOLS v20 (Windows、Linux、IOS/macOS)下载>>> 医疗引擎新功能: 医疗Web查看器 WADO和DICOMWeb支持 增强模板编辑器功能,可简化复制和更改现有模板 在新的ASP.NET Web API服务或现有的WCF服务之间进行选择 指定使用外部控制器时要显示的实例 提高滚动速度 添加了涵盖整个系列的新叠加选项 SVG波形渲染 可定制的放大镜,可以使用鼠标滚轮放大或缩小 挂起协议 被链接的CINE 增加加载时间 支持不规则布局 DICOM通讯 添加了对DICOM通信更安全的加密支持,对TLS 1.2密码套件的支持

在.NetCore(C#)中使用ODP.NET Core+Dapper操作Oracle数据库

試著忘記壹切 提交于 2021-02-08 11:55:03
前言 Oracle 关系数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。它是一种高效率、可靠性好的 适应高吞吐量的数据库解决方案。 现在的系统主要的技术栈是Java / .Net Core,Java方面不必说对Oracle支持肯定没问题,.Net Core很少会使用到 Oracle数据库。 目前我现开发的项目是.Net Core与 Oracle 数据库, 所以我想到用.Net Core来写个Oracle数据库访问层,可以方便的使用Oracle的数据和存储过程。 ODP.NET Core是一个ADO.NET驱动程序,提供从Microsoft .NET Core客户端到Oracle数据库的快速数据访问。它可以在Windows和Linux上运行。ODP.NET由一个100%托管代码动态链接库Oracle.ManagedDataAccess.dll组成,可通过NuGet安装获得。 这个 Oracle.ManagedDataAccess.Core 是真的方便,不用安装Oracle客户端,兼容性、便捷性,开箱即用。 简单使用 首先用nuget安装这个 Oracle.ManagedDataAccess.Core ,之后就可以执各类操作了,不过从代码量上看还是比较繁琐的,上代码: var connStr = $"DATA

升级微服务架构3:服务发现及服务相互调用

别等时光非礼了梦想. 提交于 2021-02-08 01:36:10
  一个微服务架构的系统中,不同服务之间是会相互调用的,如一个订单服务需要取用户数据,则需要调用用户服务,有多个用户服务实例时,Eureka会负载均衡到其中一个服务实例,和上一章一样,我们先通过Java版的服务发现及调用服务来做例子并移植到.net core版本。    1.Java版服务调用    1.1创建订单服务    和前面一样创建一个空的Maven项目,并改造成为一个Eureka客户端,修改下配置文件,服务名为userservice,端口设置为6661    1.2使用Ribbon做客户端负载均衡   添加ribbon的依赖,ribbon是一个客户端的负载均衡组件,服务间相互调用通过它来负载均衡   < dependency > < groupId > org.springframework.cloud </ groupId > < artifactId > spring-cloud-starter-netflix-ribbon </ artifactId > </ dependency >   创建一个OrderController,同样创建一个User实体(实际项目中如果有多处调用同一个实体可以独立出来一个实体模块),在启动类中创建一个方法restTemplate()来注入restTemplate,并加上@Bean配置注解, @LoadBalanced负载均衡注解  

通过SignalR技术整合即时通讯(IM)在.NET敏捷开发框架中落地

泪湿孤枕 提交于 2021-02-07 18:48:04
1、引言 **即时通讯(IM)**是RDIFramework.NET敏捷开发框架全新提供的一个基于Web的即时通讯、内部聊天沟通的工具。界面美观大方对于框架内部进行消息的沟通非常方便。基于RDIFramework.NET敏捷开发框架的即时通讯IM支持常规的用户对用户(点对点)聊天、工作流程流转的提醒、服务端消息的推送等。消息到达还有类似QQ的声音提醒,同时对消息进行了持久化处理,即时离线的用户,上线后也会收到消息,不会造成消息的丢失。还提供了很多扩展接口供用户实际扩展使用,非常的强大,方便。 通过“企业内部聊天IM”我们可以扩展很多应用出来。这儿特别说明的是我们的IM使用的是SignalR技术。.NET SignalR 是为.NET 开发人员提供的一个库,可以简化开发人员将实时 Web 功能添加到应用程序的过程。实时 Web 功能是指这样一种功能:当所连接的客户端变得可用时服务器代码可以立即向其推送内容,而不是让服务器等待客户端请求新的数据。什么是实时通信的Web呢?就是让客户端(Web页面)和服务器端可以互相通知消息及调用方法,当然这是实时操作的。SignalR提供了非常简单易用的高阶API,使服务器端可以单个或批量调用客户端上的JavaScript函数,并且非常方便地进行连接管理,例如客户端连接到服务器端,或断开连接,客户端分组,以及客户端授权,使用SignalR都非常

.NET Core HttpClient源码探究

蓝咒 提交于 2021-02-07 06:51:34
前言 在之前的文章我们介绍过HttpClient相关的服务发现,确实HttpClient是目前.NET Core进行Http网络编程的的主要手段。在之前的介绍中也看到了,我们使用了一个很重要的抽象HttpMessageHandler,接下来我们就探究一下HttpClient源码,并找寻它和HttpMessageHandler的关系究竟是怎么样的。 HttpClient源码解析 首先我们找到HttpClient源码的位置,微软也提供了专门的网站可以查找.Net Core源码有兴趣的同学可以自行查阅。接下来我们查阅一下HttpClient的核心代码。首先,我们可以看到HttpClient继承自HttpMessageInvoker这个类,待会我们在探究这个类。 public class HttpClient : HttpMessageInvoker { } 然后我们看下几个核心的构造函数 public HttpClient ( ) : this ( new HttpClientHandler( )) { } public HttpClient ( HttpMessageHandler handler ) : this ( handler, true ) { } public HttpClient ( HttpMessageHandler handler, bool