今天,我们宣布 .NET Core 3.0 Preview 6。它的更新包括编译程序集以改进启动、使用链接器和 EventPipe 改进优化应用程序的大小。我们还在 ARM64 上发布了针对 Alpine 的新 Docker 镜像。
我们很高兴今天.NET5.0正式发布。这是一个重要的版本—其中也包括了C# 9和F# 5大量新特性和优秀的改进。微软和其他公司的团队已经在生产和性能测试环境中开始使用了。这些团队向我们反馈的结果比较令人满意,它证明了对性能提升及降低Web应用托管成本的机会有积极的表现。从预览版1开始,我们一直在5.0上运行我们自己的网站。从我们目前的所见所闻来看,.NET5.0无需在升级上花费太多的精力就能带来巨大的价值。对于你的下一个应用来说,这是一个很好的选择,而且可以直接从早期的.NET Core版本升级。我们希望您在台式机、笔记本电脑和云实例上正式开始使用它。
今天,.NET 5预览8发布了,对于.NET5.0的功能开发已经完成了,这必须要排除待处理的bug,预览8是最后一次预览版本。预计11月正式的.NET5.0版本发布之前还将发布两个正式之前的候选版本,这篇文章描述了.NET5.0版本中的一系列功能。 You can download .NET 5.0, for Windows, macOS, and Linux:
使用容器方法管理和搭建EdgeX:https://docs.edgexfoundry.org/1.2/getting-started/quick-start/
服务器是Windows Server 2012,我自己安装了一个MySql数据库,然后一个Web程序和客户端程序都想访问数据库,但是遇到一堆问题。主要是我仍然坚持使用.net 2.0,挂接MySql.Data 6.7.4版本。解决后记录一下
.NET错误提示: 未能加载文件或程序集“Microsoft.Office.Interop.Excel, Version=11.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c”或它的某一个依赖项。系统找不到指定的文件。
2021 年 11 月,我们决定评估 arm64 架构在 Uber 的可行性。我们的大多数服务是用 Go 或 Java 编写的,但我们的构建系统只能编译成 x86_64。现在,得益于开源合作,Uber 拥有了一个独立于系统的构建工具链,可以无缝地支持多种架构。我们使用这个工具链来引导 arm64 主机。本文将分享我们是如何着手去做这件事情的,以及我们早期的想法、遇到的问题、达成的一些成就和未来的方向。
WinForm程序中集成WebView2控件后,编译项目(不运行),查看编译后的内容如下
今年11月10号 .NET 5.0 如约而至。这是.NET All in one后的第一个版本,虽然不是LTS(Long term support)版本,但是是生产环境可用的。
在本章中,您将了解到 CPU 使用的寄存器,并研究和修改传入函数的参数。您还将了解常见的苹果计算机架构,以及如何在函数中使用它们的寄存器。这就是所谓的架构调用约定。
在运行任何 docker 镜像或 Kubernetes pod 时,您是否在服务器上看到过exec /docker-entrypoint.sh: exec format error错误消息?这很可能是因为您正在服务器上运行一些其他 CPU 架构的容器镜像,或者您是否曾经 在 Apple Silicon M1、M2 MacBook 上使用过--platform linux/x86_64选项?如果是,那么您无法获得 Apple 芯片的本机性能,并且可能会耗尽 MacBook 的电池电量。为了避免这种错误和性能问题,我们需要运行正确的多架构容器镜像,或者我们可能需要构建自己的镜像,因为所有容器公共镜像都没有可用的多架构镜像。
https://easydoc.net/s/54024151/YdjAf8qr/tM5I6C7b
在之前的一篇文章《看我是如何用C#编写一个小于8KB的贪吃蛇游戏》中,介绍了在.NET Core 3.0的环境下如何将贪吃蛇游戏降低到8KB。不过也有很多小伙伴提出了一些疑问和看法,主要是下面这几个方面:
2014年萨蒂亚·纳德拉接棒史蒂芬·鲍尔默成为微软掌门人,五年的时间,纳德拉将夕阳西下、停滞不前的微软重新带回巅峰状态。2019年,微软今年挤下苹果,成为2019年全球市值最高企业,终止苹果过去7年来的龙头地位。
自从中兴事件后,国家开始在政策上大力支持国产硬软件,甚至在某些项目投标要求上都加上了隐性条件,软件系统必须能在国产硬软件基础上运行。而国产硬软件一般也就是代指arm64硬件架构及在此基础上的linux定制发行版,最近一周刚好完成了一些支持arm64硬件架构的工作,这里总结一下。
去年年底,我们发布了.NET Core 3.0和3.1.这些版本添加了桌面应用程序模型Windows Forms(WinForms)和WPF,ASP.NET Blazor用于构建SPA应用程序和用于构建分布式应用和服务的gRPC模板、用于与gRPC对话丰富的客户端代码生成、REST API服务等等.我们很高兴看到.NET Core 3成为有史以来发展最快的.NET版本,并且在去年又增加了100万的用户.
孔矾建,腾讯高级工程师。多年云原生技术实践经验,聚焦容器镜像与存储领域,负责腾讯云容器镜像仓库产品开发,Harbor 社区 Maintainer,《Harbor 权威指南》联名作者。 前言 愿景与现实 早在1995年,就有“write once and run anywhere”(WORA,编写一次即可在任何地方运行)用于描述 Java 应用程序。时过20年,Docker 高声喊出了自己的口号——“Build Once, Run Anywhere”(一次构建,随处可用)。 愿望是美好的,然而,现实总比理想
基于 IoT(Internet of Things,物联网)的应用大爆发一定不会缺席。从这个概念提出到目前,市场上已经有了一些探索,例如可穿戴式设备、传感器、移动通信设备等。
reFlutter是一款功能强大的逆向工程分析工具,该工具主要针对的是Flutter应用程序。该框架使用了已编译且重新封装的Flutter库来帮助广大研究人员对Flutter应用程序进行逆向工程分析。
最直接的影响,是原来在 X86_64 环境中可以正常运行的业务系统需要基于 Arm64 重新编译才可以运行。即使开发时使用的语言具备跨架构的能力,重新编译本身就是一种很繁复的工作,需要投入大量的人力成本和时间成本。
在现代计算机系统中,X86和ARM64是两种常见的处理器架构。为了满足不同架构的需求,Docker镜像也需要支持双架构编包形式。本文将介绍Docker镜像双架构编包统一的实践
今天看了个验证码识别的代码,其中引用到了mshtml.dll,找了半天原来就是microsoft.mshtml.dll。查这个dll的时候还发现了好几篇关于这个dll添加问题的文章。顺便看了下,原来这个dll有三个,添加引用时要注意了。 第一篇文章: 1.添加引用的问题 一般在开发环境下会在三个地方存有microsoft.mshtml.dll文件。所以在添加引用时,也会出现三个看似一样的项。对于开发者来说,引用其中任何一个都不会影响到正常的开发。但问题会出在软件发布之后!在客户的机子上运行时,通常会提示文件的签名不正确,无法加载。 解决的方法就是删除现在对mshtml引用。重新选择正确引用。就是选最下面那个。路径是:X:\Program Files\Microsoft.NET\Primary Interop Assemblies\Microsoft.mshtml.dll 。把引用对话框拉大,可以看到文件的路径。 2.类型选择错误 如果问题一解决了,或者开始就选对了。可能客户机了上运行又报 System._ComObject 无法强制转换到 HtmlWIndow2Class 、HtmlDocumentClass或其它类似的错误。在开发者的机子上运行,却完全正常。这时通常我们会狂抓,完全不知是什么原因!在开发环境下用obj.toString()显示是HtmlXXXXClass在客户机上得到结果却是System._ComObject.解决方法很简单用HtmlXXXX替换HtmlXXXXClass即可。 第二篇文章: 也是用到了Microsoft mshtml.dll程序集,但是安装在用户电脑后,异常: System.Reflection.TargetInvocationException: 调用的目标发生了异常。 —> System.IO.FileNotFoundException: 未能加载文件或程序集“Microsoft.mshtml, Version=7.0.3300.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a”或它的某一个依赖项。系统找不到指定的文件。 选择高亮的那个dll就可以了。 属性选择: 复制本地=True 特定版本=false; 原因是: 因为 Microsoft.mshtmal.dll 这个 dll 是从 system32 文件夹下的 mshtml.tlb(COM 类型库文件)中导出的,因此我们只需要用 VS2008 自带的 TlbImp.exe COM 类型库导出工具将这个 tlb 文件再导一遍就可以了。
今天为大家介绍一款基于.NET Core运行时实现的Windows HOOK库,CoreHook。
在工作和生活中,我们可能经常需要将某个程序跑在不同的 CPU 架构上,比如让某些不可描述的软件运行在树莓派或嵌入式路由器设备上。特别是 Docker 席卷全球之后,我们可以轻松地在 ARM 设备上通过容器部署各种好玩的应用,而不用在意各种系统的差异性。
Docker Buildx 是一个 docker CLI 插件,其扩展了 docker 命令,支持 Moby BuildKit 提供的功能。提供了与 docker build 相同的用户体验,并增加了许多新功能。
Kubernetes 从一开始就被设计为云原生的企业级容器编排系统。它已经成长为事实上的云容器平台,并由于接受了容器原生虚拟化和无服务器计算等新技术而继续发展。
许庆伟:龙蜥社区eBPF技术探索SIG组 Maintainer & Linux Kernel Security Researcher
Error processing tar file(exit status 1): symlink . /usr/bin/X11: permission denied
服务器内存优化是一个复杂的过程,通常需要综合考虑应用程序的性能需求、硬件资源、运行环境以及操作系统等因素。以下是一些建议来优化服务器内存:
导语 近年来,随着计算机硬件的不断发展,32位的旧架构程序的性能瓶颈越来越明显了,适配64位已经是业内公认的大势所趋,从工业化的大型商用软件到移动平台上的app,都已经将适配64位提上了日程。在Android平台,大多数设备都采用Arm架构,最新的64位架构则是Arm64-v8a,全民k歌也将顺应潮流,拥抱64位程序的时代。 本次适配工作由全民k歌Android团队合作完成 1.背景 ARM架构,也被称作高级精简指令集机器(Advanced RISC Machine),是一个精简指令集(RISC)处理器架
在本文中,您将了解 .NET SDK、.NET CLI 和 .NET 运行时使用的环境变量。某些环境变量由 .NET 运行时使用,而其他环境变量仅由 .NET SDK 和 .NET CLI 使用。一些环境变量被所有人使用。 .NET 运行时环境变量 DOTNET_SYSTEM_NET_HTTP_* 有几个全局 HTTP 环境变量设置: DOTNET_SYSTEM_NET_HTTP_ENABLEACTIVITYPROPAGATION 指示是否为全局 HTTP 设置启用诊断处理程序的活动传播。 DOTNET_SYSTEM_NET_HTTP_SOCKETSHTTPHANDLER_HTTP2SUPPORT 设置为falseor 时0,禁用 HTTP/2 支持,默认情况下启用。 DOTNET_SYSTEM_NET_HTTP_SOCKETSHTTPHANDLER_HTTP3SUPPORT 设置为true或 时1,启用 HTTP/3 支持,默认情况下禁用。 DOTNET_SYSTEM_NET_HTTP_SOCKETSHTTPHANDLER_HTTP2FLOWCONTROL_DISABLEDYNAMICWINDOWSIZING 当设置为falseor 时0,覆盖默认值并禁用 HTTP/2 动态窗口缩放算法。 DOTNET_SYSTEM_NET_HTTP_SOCKETSHTTPHANDLER_FLOWCONTROL_MAXSTREAMWINDOWSIZE 默认为 16 MB。覆盖时,HTTP/2 流接收窗口的最大大小不能小于 65,535。 DOTNET_SYSTEM_NET_HTTP_SOCKETSHTTPHANDLER_FLOWCONTROL_STREAMWINDOWSCALETHRESHOLDMULTIPLIER 默认为 1.0。当被覆盖时,更高的值会导致更短的窗口但下载速度更慢。不能小于0。 DOTNET_SYSTEM_GLOBALIZATION_* DOTNET_SYSTEM_GLOBALIZATION_INVARIANT:请参阅设置不变模式。 DOTNET_SYSTEM_GLOBALIZATION_PREDEFINED_CULTURES_ONLY: 指定是否只加载预定义的文化。 DOTNET_SYSTEM_GLOBALIZATION_APPLOCALICU:指示是否使用应用程序本地Unicode 国际组件(ICU)。有关更多信息,请参阅App-local ICU。 设置不变模式 应用程序可以通过以下任何一种方式启用不变模式: 在项目文件中: XML 复制 <PropertyGroup> <InvariantGlobalization>true</InvariantGlobalization> </PropertyGroup> 在runtimeconfig.json文件中: JSON 复制 { "runtimeOptions": { "configProperties": { "System.Globalization.Invariant": true } } } 通过将环境变量值设置DOTNET_SYSTEM_GLOBALIZATION_INVARIANT为true或1。 重要的 在项目文件或runtimeconfig.json 中设置的值比环境变量具有更高的优先级。 有关详细信息,请参阅.NET 全球化不变模式。 DOTNET_SYSTEM_GLOBALIZATION_USENLS 这仅适用于 Windows。要使全球化使用国家语言支持 (NLS),请将其设置DOTNET_SYSTEM_GLOBALIZATION_USENLS为true或1。DOTNET_SYSTEM_GLOBALIZATION_USENLS要不使用它,请设置为false或0。 DOTNET_SYSTEM_NET_SOCKETS_* 本节重点介绍两个System.Net.Sockets环境变量: DOTNET_SYSTEM_NET_SOCKETS_INLINE_COMPLETIONS DOTNET_SYSTEM_NET_SOCKETS_THREAD_COUNT 套接字延续从事件线程分派到System.Threading.ThreadPool。这避免了阻塞事件处理的延续。要允许继续直接在事件线程上运行,请设置DOTNET_SYSTEM_NET_SOCKETS_INLINE_COMPLETIONS为1. 默认情况下它是禁用的。 笔记 如果有昂贵的工作最终会占用 IO 线程的时间超过所需时间,则此设置会使性能变差。测试以确保此设置有助于提高性能。 使用 TechEmpower 基准测试,在非常高的负载下生成大量小型套接字读取和写入,单个套接字引擎能够
binfmt-misc(Miscellaneous Binary Format)是Linux内核提供的一种类似Windows上文件关联的功能,但比文件关联更强大的是,它不仅可以根据文件后缀名判断,还可以根据文件内容(Magic Bytes)使用不同的程序打开。一个典型的使用场景就是:使用qemu运行其它架构平台上的二进制文件。
.NET 8 的第一个预览版将在几周内发布,微软的 David Ortinau 在斯德哥尔摩举行的一场在线技术活动中说。这个消息是在.NET Frontend Day 的一个.NET MAUI 的演示中透露的,这个活动可以在 YouTube 上观看。.NET 8 将在 2023 年 11 月 10 日左右的.NET Conf 2023 活动中发布,.NET GitHub 仓库显示.NET 8 的开发工作已经完成了 44%。.NET MAUI 和 Blazor 是今天.NET Frontend Day 的重点,GitHub 仓库显示有很多与它们相关的问题,例如“MAUI Android 的 ImageSharp 性能很差”、“Blazor WebAssembly 在低内存的移动设备上崩溃”等。Steve Sanderson 在一月份的 YouTube 视频中展示了一个名为 Blazor United 的新项目,它是一个原型项目,之后会被移动到了 GitHub 流程中。
TRTC Electron SDK 从 10.6.403 版本开始,支持构建 X64 和 ARM64 双架构包
本文翻译于 Jeremy Likness, Angelos Petropoulos 和 Jon Douglas 的博客
腾讯TKEStack作为面向私有云业务场景的开源容器平台,应对的场景也会比较多样,比如国产服务器有一大阵营是基于arm架构的,那在国产化趋势下,客户的服务器架构可能会出现x86和arm混布在一起的情况;再比如随着IoT物联网的来临,以树莓派为代表的智能硬件上使用容器服务也会成为一种趋势。这意味着TKEStack单纯在x86服务器上运行是远远不够的,对于arm架构的支持,势在必行。
与VS2017 15.7发布同时,微软推出了15.8的第一个预览版本。这个版本首次支持以ARM64平台为目标编译应用程序,并且提供了ASP.NET Core的Docker支持。此外,还有C++编辑方面的一些修改以及重新引入面向Web项目的LibMan。 15.8包含的新特性简化了向ASP.NET Core Web项目添加Docker支持的过程。可以在创建一个全新的ASP.NET Core Web应用时添加Docker功能,也可以添加到已有的项目。一个给定的容器既可以以Windows为目标平台,也可以以Lin
工作中需要在一台x86服务器从写好的golang程序源码生成linux/amd64、linux/arm64 docker镜像,查阅了下资料,这里记录一下操作过程。
.NET 团队有一篇博客 改进多平台容器支持, 详细介绍了.NET 7 以上的平台可以轻松的使用Docker buildx 工具构建多平台的镜像。 buildx 是 Docker 官方提供的一个构建工具,它可以帮助用户快速、高效地构建 Docker 镜像,并支持多种平台的构建。使用 buildx,用户可以在单个命令中构建多种架构的镜像,例如 x86 和 ARM 架构,而无需手动操作多个构建命令。此外,buildx 还支持 Dockerfile 的多阶段构建和缓存,这可以大大提高镜像构建的效率和速度。
默认情况下,x86_64平台只能构建x86_64镜像,如果需要在x86_64平台构建多平台镜像(比如ARM64),我们可以用Docker官方提供的Buildx工具来完成多平台镜像构建。
ARM是微处理器行业的一家知名企业,arm处理器以体积小和高性能的优势在嵌入式设备中广泛使用,它的性能在同等功耗产品中也很出色,几乎所有手机都是使用它的。
苹果近日推出的首款自研的 Apple M1 芯片,收到了很多用户的欢迎,但随着这些用户拿到真机,很多问题暴露出来。
陪伴了我 3 年的 Mac 在几个月前迎来了它的退休时刻,我将其置换成了公司新发的 Mac M1。对电子产品并不太感冒的我,并没有意识到 M1 是 ARM 架构的(除了个别软件的安装异常之外),显然,Mac M1 做地是不错的,我并没有太多吐槽它的机会。这也是我第一次近距离接触 ARM 架构的机会。
mysql -u root -p < myems_billing_baseline_db.sql
工作中需要在一台x86服务器从写好的golang程序源码生成linux/amd64、linux/arm64 docker镜像,查阅了下资料,这里记录一下操作过程。 ——Jeremy xu 一、安装docker 查阅docker官方文档,需要使用buildx,而Docker 19.03版本已经捆绑了buildx,方便起见,这里就直接使用19.03版本的docker了,过程如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
skopeo 是一个命令行工具,可对容器镜像和容器存储进行操作。 在没有dockerd的环境下,使用 skopeo 操作镜像是非常方便的。
PCAN又叫做PCAN-USB,也叫作CAN卡,是一个CAN转USB接口,可以将CAN网络上的报文通过USB接口传输到PC上,通过相关的软件来查看CAN报文。
领取专属 10元无门槛券
手把手带您无忧上云