告别Electron!C# + .NET MAUI 9.0 + Blazor Hybrid性能提升300%的秘密

Blazor加Electron 学习 Electron.NET 这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 欢迎使用Markdown编辑器 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar 阅读详情

第一章:告别Electron——C#与.NET MAUI引领桌面开发新纪元

随着跨平台应用需求的不断增长,开发者逐渐对 Electron 架构的高内存占用和性能瓶颈感到乏力。.NET MAUI(.NET Multi-platform App UI)作为微软推出的现代化 UI 框架,正以原生性能、统一代码库和卓越的开发体验,重新定义桌面与移动应用的开发范式。

为何选择 .NET MAUI 替代 Electron

  • .NET MAUI 编译为原生代码,启动速度远超基于 Chromium 的 Electron 应用
  • 内存占用显著降低,典型应用仅需几十 MB,而非数百 MB
  • 单一代码库支持 Windows、macOS、iOS 和 Android,提升维护效率

快速创建一个 .NET MAUI 桌面应用

通过 .NET CLI 可快速初始化项目:
# 安装 .NET SDK 后执行
dotnet new maui -n MyDesktopApp
cd MyDesktopApp
dotnet build
dotnet run
上述命令将生成并运行一个包含基础页面的跨平台应用,界面使用 XAML 定义,逻辑由 C# 驱动。

性能对比:Electron 与 .NET MAUI

指标Electron 应用.NET MAUI 应用
启动时间(平均)2.1 秒0.6 秒
内存占用(空闲状态)180 MB45 MB
安装包大小~120 MB~35 MB
graph TD A[用户操作] --> B{触发事件} B --> C[调用 C# 业务逻辑] C --> D[更新绑定数据] D --> E[UI 自动刷新] E --> F[响应式界面]
借助强类型语言优势与 Visual Studio 的深度集成,.NET MAUI 不仅提升了开发效率,更让桌面应用重回轻量与流畅的轨道。

第二章:.NET MAUI 9.0核心架构深度解析

2.1 跨平台渲染引擎原理与性能优势

跨平台渲染引擎通过抽象图形接口层,将上层应用逻辑与底层GPU驱动隔离,实现一次编写、多端运行。其核心在于统一的渲染管线设计,支持DirectX、Metal、Vulkan等后端动态切换。
渲染流程抽象化
引擎采用命令缓冲机制,将绘制指令延迟提交至GPU,提升批处理效率。例如:

// 构建渲染命令
CommandBuffer cmd;
cmd.begin();
cmd.bindPipeline(graphicsPipeline);
cmd.bindVertexBuffer(vertexBuffer);
cmd.draw(3); // 绘制三角形
cmd.end();
renderer->submit(cmd);
上述代码在不同平台上由后端适配器转换为原生API调用,屏蔽底层差异。
性能优化策略
  • 状态合并:减少渲染状态切换开销
  • 资源池化:复用纹理与缓冲对象
  • 多线程录制:并行构建命令缓冲
平台帧率 (FPS)内存占用
iOS (Metal)58120MB
Android (Vulkan)56135MB

2.2 Blazor Hybrid集成机制与通信模型

Blazor Hybrid通过将Razor组件嵌入原生移动或桌面应用,实现Web技术与本地平台的深度融合。其核心在于使用WebView承载UI逻辑,同时通过互操作桥接.NET与JavaScript。
通信机制
组件与原生代码通过`JSRuntime`进行双向调用。例如,在C#中调用JavaScript函数:
// 调用JavaScript并传参
var result = await JSRuntime.InvokeAsync<string>("myJsFunction", "Hello");
上述代码通过`JSRuntime`实例触发名为`myJsFunction`的JS函数,并传递字符串参数,返回结果为强类型字符串。
数据同步流程
数据在.NET与WebView间异步传输,依赖序列化机制确保类型安全。下表展示主要通信方向:
方向方法用途
.NET → JSInvokeAsync触发前端行为
JS → .NET[JSInvokable]回调后端逻辑

2.3 单进程架构下的资源管理优化

在单进程架构中,所有任务共享同一内存空间与执行上下文,资源竞争与内存泄漏风险显著增加。合理规划资源生命周期是性能优化的关键。
对象池技术减少GC压力
通过复用频繁创建和销毁的对象,降低垃圾回收频率:
// 对象池示例:sync.Pool用于缓存临时对象
var bufferPool = sync.Pool{
    New: func() interface{} {
        return new(bytes.Buffer)
    },
}

func getBuffer() *bytes.Buffer {
    return bufferPool.Get().(*bytes.Buffer)
}

func putBuffer(buf *bytes.Buffer) {
    buf.Reset()
    bufferPool.Put(buf)
}
上述代码利用sync.Pool实现缓冲区对象池。New字段定义初始化函数,Get获取实例时优先从池中取出,否则调用New;使用后通过Reset清空内容并调用Put归还,有效减少内存分配次数。
资源使用对比
策略内存分配次数GC暂停时间
普通创建高频繁
对象池低减少50%以上

2.4 原生控件绑定与自定义UI扩展实践

在跨平台开发中,原生控件绑定是实现高性能UI的关键环节。通过桥接机制将JavaScript组件映射到平台原生视图,可确保渲染效率与交互一致性。
控件绑定实现方式
以React Native为例,通过 UIManager 注册原生视图组件:

UIManager.registerComponent('CustomButton', () => CustomButton);
该代码将名为 CustomButton 的原生组件暴露给JS层,实现跨语言调用。参数说明:第一个参数为注册名称,需全局唯一;第二个参数为组件构造函数。
自定义UI扩展策略
  • 封装原生模块,暴露可配置属性(如颜色、尺寸)
  • 通过事件回调实现交互同步
  • 利用 PropTypes 校验传入参数类型
图表:JS线程与原生UI线程通过桥接通信

2.5 启动性能剖析与冷启动加速策略

应用冷启动时间直接影响用户体验,尤其在高并发场景下尤为关键。通过性能剖析工具可定位耗时瓶颈,常见于类加载、依赖注入和配置初始化阶段。
性能剖析关键指标
  • 类加载耗时:统计 JVM 加载类的总时间
  • Bean 初始化顺序:Spring 容器中 Bean 的创建耗时
  • 配置解析开销:YAML/Properties 文件读取与绑定成本
延迟初始化优化示例

@Component
@Lazy // 延迟初始化,避免启动时加载
public class HeavyService {
    public HeavyService() {
        // 模拟耗时操作
        try { Thread.sleep(500); } catch (InterruptedException e) {}
    }
}
上述代码通过 @Lazy 注解推迟 Bean 创建至首次调用,显著降低启动负担。适用于非核心服务组件。
预热与缓存策略对比
策略生效时机适用场景
类预加载启动前固定高频类
方法预热启动后JIT 优化热点方法

第三章:Blazor Hybrid在桌面应用中的工程化应用

3.1 Razor组件在桌面端的生命周期管理

Razor组件在桌面端的运行依赖于Blazor Desktop宿主环境,其生命周期由框架自动调度并响应状态变化。
核心生命周期方法
Razor组件提供一系列生命周期方法,用于控制组件初始化、参数接收与渲染完成等阶段:
  • OnInitialized / OnInitializedAsync:组件初始化时调用,适合执行数据加载。
  • OnParametersSet:每次接收到新参数时触发。
  • OnAfterRender:渲染完成后调用,适用于操作DOM或启动依赖UI的服务。
protected override async Task OnInitializedAsync()
{
    // 模拟异步数据获取
    Data = await DataService.LoadData();
}
上述代码在组件初始化阶段异步加载数据,避免阻塞UI线程。`OnInitializedAsync`是安全执行异步操作的标准入口。
资源清理与事件解绑
为防止内存泄漏,应在组件销毁前释放资源:
public void Dispose()
{
    _timer?.Dispose();
    EventService.OnUpdate -= HandleUpdate;
}
实现 IDisposable 接口可在组件被移除时执行清理逻辑,确保事件订阅和后台任务正确终止。

3.2 前后端协同开发模式与状态共享方案

在现代Web应用开发中,前后端分离已成为主流架构。为提升协作效率,团队常采用契约驱动开发(CDC),以前后端接口规范为核心推进并行开发。
状态共享机制设计
通过RESTful API或GraphQL进行数据交互,结合JWT实现认证状态透传。前端使用Redux或Pinia管理全局状态,后端通过Session或Redis缓存用户会话。

// 示例:使用Axios拦截器统一处理认证头
axios.interceptors.request.use(config => {
  const token = localStorage.getItem('token');
  if (token) config.headers.Authorization = `Bearer ${token}`;
  return config;
});
该代码确保每次请求自动携带身份凭证,简化权限控制逻辑,提升安全性与开发效率。
协同流程优化
  • 定义OpenAPI规范文档,作为前后端共同依据
  • 使用Mock Server模拟接口响应,支持前端独立调试
  • 集成CI/CD流水线,自动校验接口兼容性

3.3 JavaScript互操作的高效调用实践

在现代前端架构中,JavaScript互操作的核心在于减少上下文切换开销。通过预加载常用方法句柄,可显著提升调用效率。
批量数据传递优化
避免频繁细粒度调用,推荐聚合数据一次性传输:

// 批量更新DOM节点
function updateNodes(batch) {
  batch.forEach(({ id, html }) => {
    document.getElementById(id).innerHTML = html;
  });
}
该模式将多次独立调用合并为单次传入数组,降低跨环境通信成本。
缓存引用提升性能
  • 缓存全局对象引用,减少重复查找
  • 持久化函数指针,避免重复绑定
  • 使用WeakMap存储实例映射关系
此策略有效降低垃圾回收压力并加快访问速度。

第四章:高性能跨平台桌面应用实战

4.1 从零搭建MAUI+Blazor Hybrid桌面项目

在Visual Studio中创建MAUI+Blazor Hybrid应用,首先选择“.NET MAUI Blazor App”模板,项目结构将自动集成Blazor组件与原生平台能力。
项目初始化配置
关键步骤包括启用Hybrid支持并注册Blazor服务:
public partial class App : Application
{
    protected override void OnStartup(StartupEventArgs e)
    {
        var builder = MauiApp.CreateBuilder();
        builder.ConfigureFonts(fonts => fonts.AddFont("OpenSans-Regular.ttf", "OpenSansRegular"));
        builder.Services.AddMauiBlazorWebView(); // 注册Blazor WebView服务
        builder.Services.AddScoped(sp => new HttpClient());
        base.OnStartup(e);
    }
}
AddMauiBlazorWebView 方法启用Blazor渲染引擎,使Razor组件可在各平台嵌入原生界面。
页面集成方式
通过 MainPage.xaml 加载Blazor根组件:
<BlazorWebView HostPage="wwwroot/index.html">
    <BlazorWebView.RootComponents>
        <RootComponent Selector="#app" ComponentType="{x:Type local:Main}" />
    </BlazorWebView.RootComponents>
</BlazorWebView>
HostPage 指定静态资源入口,Selector 对应DOM挂载点,实现Blazor与原生UI融合。

4.2 高频数据更新场景下的UI响应优化

在高频数据更新场景中,如实时交易系统或监控仪表盘,频繁的UI重绘会导致主线程阻塞,引发卡顿。为提升响应性能,应采用数据节流与异步渲染机制。
数据节流与防抖策略
通过定时合并短时间内多次数据更新,减少无效渲染次数:
setInterval(() => {
  if (dataQueue.length > 0) {
    updateUI(batchProcess(dataQueue)); // 批量处理数据
    dataQueue = [];
  }
}, 100); // 每100ms更新一次
该逻辑将每秒10次的数据推送合并为一次UI更新,显著降低渲染压力。
虚拟DOM与增量更新
使用框架级优化手段,如React的useMemo缓存组件,配合requestAnimationFrame将更新调度至帧间隙,确保动画流畅。
策略更新频率FPS
直接渲染60Hz30
节流+虚拟DOM10Hz58

4.3 系统托盘、通知与后台服务集成

在现代桌面应用开发中,系统托盘与通知机制是提升用户体验的关键组件。通过将应用最小化至系统托盘,用户可在不占用任务栏空间的情况下保持程序运行。
系统托盘实现示例(Electron)

const { app, Tray, Menu } = require('electron');
let tray = null;

app.whenReady().then(() => {
  tray = new Tray('/path/to/icon.png');
  const contextMenu = Menu.buildFromTemplate([
    { label: '打开', role: 'show' },
    { label: '退出', role: 'quit' }
  ]);
  tray.setToolTip('MyApp 后台运行中');
  tray.setContextMenu(contextMenu);
});
上述代码创建了一个系统托盘图标,并绑定右键菜单。`Tray` 类用于显示图标,`Menu.buildFromTemplate` 构建交互选项,实现快速控制。
通知与后台服务协同
  • 使用 Notification API 发送桌面提醒
  • 后台服务通过定时任务触发数据检查
  • 结合 IPC 通信机制更新主界面状态
此模式确保用户及时获知关键事件,同时保持应用低资源消耗。

4.4 打包、签名与多平台发布流程详解

在应用开发完成后,打包与签名是发布前的关键步骤。不同平台对包格式和安全机制有特定要求。
Android APK 打包与签名示例
./gradlew assembleRelease
jarsigner -verbose -sigalg SHA256withRSA -digestalg SHA-256 \
    -keystore my-release-key.keystore app-release-unsigned.apk alias_name
上述命令首先生成未签名的APK,随后使用密钥库进行数字签名。SHA256withRSA 确保签名强度,keystore 文件需妥善保管以防止泄露。
多平台发布流程对比
平台包格式签名方式发布渠道
AndroidAPK/AABKeystore + jarsignerGoogle Play
iOSIPAProvisioning Profile + CertificateApp Store Connect
WebStatic AssetsHTTPS + CSPCDN/云托管

第五章:未来展望——.NET生态下的桌面开发新范式

随着 .NET 8 的发布,.NET 生态在性能、跨平台能力和开发效率上实现了全面跃升,桌面开发正逐步摆脱“传统”标签,迈向现代化新范式。WPF 和 WinForms 虽仍广泛使用,但 .NET MAUI 正成为构建跨平台桌面与移动应用的统一入口。
组件化与热重载的深度融合
现代桌面开发强调快速迭代,.NET MAUI 支持 XAML 热重载,开发者可在运行时实时查看 UI 修改效果。以下代码展示了如何定义一个响应式按钮:
<Button Text="点击我" 
        Clicked="OnButtonClicked"
        BackgroundColor="{AppThemeBinding Light=White, Dark=Black}"
        HorizontalOptions="Center" />
该特性显著缩短了调试周期,尤其适用于复杂布局调整。
云原生与本地能力的融合
借助 ASP.NET Core 与 gRPC 的集成,.NET 桌面应用可无缝对接微服务架构。例如,通过依赖注入注册远程服务:
builder.Services.AddSingleton<IDataService>(
    new GrpcDataService("https://api.example.com"));
这使得桌面客户端能像 Web 应用一样灵活调用云端资源,同时保留本地高性能渲染优势。
AI 驱动的用户界面自适应
利用 ML.NET,桌面应用可实现行为预测与界面动态调整。下表对比了传统与 AI 增强型交互模式:
场景传统方式AI 增强方式
菜单推荐静态排列基于用户习惯动态排序
输入补全关键词匹配语义理解 + 上下文预测
此外,通过 Avalonia UI 等框架,开发者可构建真正跨平台的响应式界面,支持 Windows、macOS、Linux 统一部署。结合 GitHub Actions 实现 CI/CD 自动化打包,极大提升了发布效率。
使用.NET5、Blazor和Electron.NET构建跨平台桌面应用 Electron.NET是一个嵌入了ASP.NET Core的Electron的封装,通过Electron.NET可以构建基于.NET5的跨平台的桌面应用,使得开发人员只需要使用ASP.NET Core和 Blazor就可以胜任桌面应用的开发工作。 开发环境# 操作系统Windows/macOS/Linux .NET5.0 npm 创建新项目# 创建文件夹 mkdir ElectronNETDemon 创建解决方案 dotnet new sln 创建项目Electr 阅读详情

相关推荐

.NET MAUI实战:跨平台调用Android原生SO库全攻略(从编译到封装)

高性能场景:音视频编解码、图像处理、算法计算(如人脸识别)等,C/C++编写的SO库性能远高于C#;硬件/系统交互:对接安卓设备底层硬件(如串口、传感器)、集成第三方闭源SO库(如支付、加密SDK);存量资产复用:企业已有大量安卓原生SO库,无需重新用C#开发,直接集成可降低成本。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 654

以小白视角尝试 WPF / WinUI3 / MAUI / MAUI Blazor 构建 Windows 桌面程序

WinUI3流畅得像是眼睛看到实物在移动;MAUI Blazor 丰富多彩又多端兼容;WPF 像是严肃沉稳的大叔。AI 对WPF了如指掌;对WinUI3知之甚少。

LateFrames的博客 1346

MAUI+Blazor:windows 打包踩坑

最近打算研究一下MAUI+Blazor,争取在今年年底之前彻底搞懂MAUI+Blazor的安装模式,微软不愧是“懒人开发”,版本自动更新啥的都给你设置好了,只不过你要按照他的要求来。

qq_44695769的博客 3507

还在用Electron?C# + .NET MAUI + Blazor才是未来桌面开发的正确打开方式

告别Electron臃肿架构,掌握C#实现跨平台桌面应用(.NET MAUI+Blazor)新范式。融合原生性能与Web开发体验,支持Windows、macOS、Linux统一部署,开发效率提升50%。适用于企业级工具、跨端管理后台等场景,值得收藏。

LearnFlow的博客 920

使用Blazor开发桌面应用程序(.NET)

Blazor桌面应用程序的开发依赖于Electron.NET,它是一个将Blazor应用程序打包为可在桌面上运行的Electron应用程序的工具。Blazor桌面应用程序的开发依赖于Electron.NET,它是一个将Blazor应用程序打包为可在桌面上运行的Electron应用程序的工具。这将在Blazor应用程序的根目录中创建一个"electronnet"文件夹,并在其中生成Electron.NET的配置文件。在完成Blazor应用程序和Electron.NET的配置后,我们可以构建和运行应用程序。

library_git106的博客 2194

桌面应用UI革命:从WinForm到Electron/Blazor的“核武器级“转型!代码全解密+性能优化秘籍

某医疗企业因WinForm界面无法适配多分辨率设备,导致全国2000+诊所被迫使用"老年机"界面——而这个灾难本可以通过本文的Electron+Vue方案彻底解决! 本文将用代码+架构设计+实战案例,手把手教你:1.1 Electron架构解析1.2 Blazor架构解析2.1 项目初始化 2.2 主进程与渲染进程通信 2.3 Vue集成实现动态界面 三、Blazor深度实战:与C#后端无缝衔接 3.1 创建Blazor WebAssembly项目 3.2 调用本地API(如文件操作) 四、跨平台UI设

java专栏 808

C#还能这样玩?揭秘Blazor Hybrid在桌面端的惊人潜力

轻松构建跨平台桌面应用,C# 实现跨平台桌面应用(.NET MAUI 9.0+Blazor Hybrid)提供全新方案。适用于Windows、macOS和Linux,融合Web开发体验与原生性能,用HTML/CSS构建界面,共享业务逻辑代码。开发高效、维护简单,值得收藏。

FuncFun的博客 686

dotnet-一个帮助Blazor和ElectronNET更好地协同工作的库

一个帮助Blazor和Electron.NET更好地协同工作的库

Blazor打开Windows应用程序

【代码】Blazor打开Windows应用程序。

zhourongxiang1的博客 274

利用MATLAB 4f光学系统,在Python中进行弗劳恩霍夫衍射和傅里叶面滤波——用镜头模拟光学图像处理。.zip

1.版本:matlab2014a/2019b/2024b 2.附赠案例数据可直接运行。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。

工业互联网工控安全与工业质检AI大模型建设方案.pptx

工业互联网工控安全与工业质检AI大模型建设方案.pptx

从Web到桌面无缝迁移:Blazor + .NET MAUI整合实战,效率提升300%

轻松实现Web到桌面应用的无缝迁移,C# 实现跨平台桌面应用(.NET MAUI+Blazor)提供高效开发新方案。适用于企业级工具、跨平台客户端等场景,结合Blazor前端复用与.NET MAUI原生性能,提升开发效率300%。值得收藏,点击了解实战细节。

FuncLens的博客 1194

通信行业CentOS 7内核网络栈优化:高并发连接下UDP/TCP性能调优与系统资源管理

内容概要:本文聚焦于CentOS 7系统在通信行业高并发场景下的性能调优实践,重点围绕内核网络栈优化展开,涵盖UDP/TCP缓冲区调整、文件句柄与连接跟踪表扩容、TIME_WAIT状态复用、软中断分布优化及tuned工具的自动化调优。通过具体配置参数和实际案例(如VoIP软交换系统)深入解析各项调优措施的设计原理与实施效果,有效解决高CPS下丢包、连接失败等问题,并展望了向云化、eBPF等动态智能调优方向的发展趋势。; 适合人群:从事通信系统运维、网络开发或Linux系统性能优化的技术人员,具备一定操作系统和网络基础知识,工作经验1年以上的中初级工程师。; 使用场景及目标:①应用于软交换、媒体网关、信令网关等高并发通信设备的系统调优;②解决UDP丢包、conntrack表满、TCP连接队列溢出等典型性能瓶颈;③提升系统在小包高频、低时延要求场景下的稳定性和吞吐能力。; 阅读建议:建议结合实际生产环境或测试平台同步验证文中配置,重点关注参数背后的物理意义(如BDP、softirq、conntrack机制),并配合ss、conntrack、dmesg等命令进行调优前后对比分析,确保安全可控地实施变更。

【译】使用Blazor构建桌面应用

随着最近.NET Core 3的正式发布,我认为我会尝试一个有趣的小实验。我喜欢使用Electron来创建基于Web的桌面应用程序。我想了解有关Blazor(ASP.NE...

dotNET跨平台 6807

2024 《计算机网络》实验教学指导书.doc

2024 《计算机网络》实验教学指导书.doc

不平衡电网下自抗扰顺序模型预测PWM整流器控制仿真模型(Simulink仿真实现)

内容概要:本文围绕面向城市空中交通的多无人机路径规划问题展开研究,提出了一套融合全局规划、动态避障与局部协同调整的综合路径规划方法。研究内容涵盖基于改进RRT算法与图论的全局路径规划、基于动态风险场和动态窗口法(DWA)的模型预测控制实现动态避障,以及基于分布式协同控制的多无人机局部路径协同策略。通过Matlab平台构建仿真环境,在多种典型城市交通场景下对所提方法进行了系统性验证,结果表明该方法在路径安全性、编队稳定性与任务效率方面表现优异。文章还深入探讨了算法的创新点与未来研究方向,为复杂城市环境下多无人机系统的自主协同提供了理论支撑与技术路径。; 适合人群:具备自动化、控制理论、计算机科学或相关领域基础知识,从事无人机系统、智能交通、路径规划、多智能体协同控制等方向研究的研究生、科研人员及工程技术人员。; 使用场景及目标:①为城市空中交通系统中的多无人机安全、高效飞行提供可靠的路径规划解决方案;②支持在复杂、动态的城市场景中开展无人机自主导航、编队飞行与协同控制的技术研究与仿真验证。; 阅读建议:建议结合提供的Matlab代码进行实践操作,重点关注算法的具体实现细节、参数配置对性能的影响以及不同仿真场景下的实验设计,以深入理解各模块的集成逻辑与实际应用效果。

【译】探索更轻量的Electron替代品来托管Blazor桌面应用程序

本文翻译自 ASP.NET 项目组的 Steve Sanderson 的博客,发表于 2019 年 11 月 1 日。Steve Sanderson 是 Blazor 最早的创造者。这篇...

dotNET跨平台 4084

K210视觉项目上位机避坑指南:解决C#解析ESP8266 TCP图像流的乱码、卡顿与连接中断

本文详细解析了K210与ESP8266在视觉项目中的上位机开发问题,重点解决TCP图像流解析中的乱码、卡顿与连接中断问题。通过自定义协议、JPEG流重组、TCP连接优化等实战技巧,提升系统稳定性和性能,适用于嵌入式视觉开发者和C#上位机程序员。

weixin_28730131的博客 402

亲自实践Blazor构建桌面应用程序

首先是安装.NET Core 3.0 与Node.js .Net Core 版本为:3.0.100 Node.js安装版本为:v12.13.0 命令 mkdir blazor-electron-demo cd blazor-electron-demo dotnet new blazorserver --no-https dotnet add package ElectronNET.API...

芝麻麻雀-Asp.Net学习之路 9068

Windows下快速搭建MSYS2开发环境(含GCC与MinGW配置)

本文详细介绍了在Windows系统下快速搭建MSYS2开发环境的完整流程。通过使用pacman包管理器,可以便捷地安装GCC编译器与MinGW-w64工具链,并配置系统环境变量。文章还涵盖了从基础安装、系统更新到编译开源项目的实战指南,帮助开发者高效构建原生Windows程序,显著提升C/C++开发效率。

weixin_29213827的博客 538

使用python中pypower进行电力潮流计算

使用python中pypower进行电力潮流计算

总裁余(余登武)博客 4860
上一篇: std::expected vs 异常:性能对比实测,为何顶级团队已全面转向?
下一篇: C#缓存机制全面升级:Redis 7.2与MemoryCache协同设计模式(企业级实战案例)
CodeIsle
博客等级 码龄1年 145粉丝 1966原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值