探讨 .NET Core 与 .NET Framework 的共存之道:WinForms 与 WPF 的未来

.NET Framework 1.0到4.0演进本质:设计哲学与底层机制解构 .NET Framework并非单纯的功能叠加,而是面向不同硬件约束、部署环境与开发范式的系统性抽象升级。其核心围绕CLR运行时机制、内存管理模型(如分代GC、LOH优化)、异步与并发模型(TPL/async)、声明式编程(LINQ/Expression Tree)及安全模型(CAS→Claims→RBAC)持续演进。理解这些底层原理,有助于规避GAC冲突、GC风暴、线程阻塞、序列化异常等典型问题,并支撑.NET Framework向.NET Core/.NET 5+的平滑迁移。本文聚焦1.0至4.0关键版 阅读详情

1. 从“淘汰”到“共存”:一个老兵的视角转变

几年前,当.NET Core刚崭露头角时,我和很多老.NET开发者一样,心里犯嘀咕:这玩意儿是不是要来革.NET Framework的命了?尤其是我们这些常年跟WinForms、WPF打交道,靠写Windows桌面应用吃饭的“老家伙”,更是担心手里的饭碗。毕竟,微软当时的口号喊得震天响,什么“跨平台”、“高性能”、“现代化”,听起来.NET Framework就像个即将被送进博物馆的老古董。

但十年过去了,现实情况却和当初的预想不太一样。.NET Core(现在统一叫.NET了)确实发展迅猛,成了新项目的首选。然而,我电脑里维护的那些“祖传”WinForms项目,还有公司核心的生产线控制软件(基于WPF),依然稳稳地跑在.NET Framework 4.8上。微软也明确说了,.NET Framework 4.8是最后一个主要版本,但它会作为Windows操作系统的一部分长期获得安全更新。这就很有意思了,它没有被“淘汰”,而是进入了一种“长期维护”的状态。

所以,现在再谈“淘汰”已经不合时宜了。更准确的命题是:共存与选择。对于WinForms和WPF这两种经典的Windows桌面技术而言,它们的未来并非非此即彼,而是如何在.NET Framework和现代.NET(.NET 5/6/7/8及以后)这两个平台上找到最适合自己的位置。这就像你家车库里可能既有一辆可靠耐用的老轿车,也有一辆功能炫酷的新能源车,根据不同的出行需求,你会选择开哪一辆。今天,我就结合我这十来年踩过的坑和积累的经验,跟你聊聊这两大技术栈的共存之道,以及我们开发者该如何做出明智的选择。

2. 技术血脉:WinForms与WPF的“前世今生”

要理解现状,我们得先回顾一下历史。WinForms和WPF虽然都是用来构建Windows桌面应用的,但它们的“出生年代”和“设计哲学”截然不同,这直接影响了它们在新时代下的命运。

WinForms,你可以把它看作是Windows原生控件(那些按钮、文本框)的“高级封装器”。它诞生于.NET Framework 1.0时代(2002年左右),设计初衷就是让开发者能快速拖拽控件,像搭积木一样构建出标准的Windows程序界面。它的底层直接调用GDI+和Win32 API,因此和Windows系统耦合得特别紧。优点是极其成熟、稳定,海量的第三方控件库,学习曲线平缓。我至今还记得刚入行时,拖一个DataGridView控件就能快速做出数据管理界面的那种爽快感。但缺点也很明显:界面样式比较老旧,难以做出非常现代化、炫酷的视觉效果,而且它的架构决定了它天生就是“Windows Only”。

WPF则是在.NET Framework 3.0时代(2006年)推出的“革命性”产品。它不再基于GDI+,而是基于DirectX进行渲染,这意味着它拥有强大的图形、动画和多媒体处理能力。WPF引入了XAML这种声明式UI语言,实现了界面(XAML)与逻辑(C#代码)的彻底分离,并且采用了数据绑定、样式模板、依赖属性等先进的架构理念。用WPF可以做出现今看来都不过时的、媲美Web和移动端的精美界面。但是,它的学习门槛比WinForms高出一大截,而且,它同样深度依赖Windows的底层服务(如DirectX、Windows主题服务),所以本质上也是一个Windows专属的技术。

那么问题来了:既然两者都绑死在Windows上,微软为什么还要费老大劲把它们移植到跨平台的.NET Core/.NET 5+上呢?这不是多此一举吗?我一开始也这么想,但后来在项目中实际用上.NET 6开发新的WPF应用后,才体会到其中的深意。

3. .NET Core时代的WinForms与WPF:不只是换个运行库

很多人误以为,把WinForms/WPF项目从.NET Framework迁移到.NET Core,只是换了个“运行时”,程序行为应该一模一样。这种想法太天真了。我亲身经历了一次大型WPF应用的迁移,发现这其实是一次项目现代化的绝佳机会,带来的好处远超预期。

首先,最直观的变化是项目文件(.csproj)。.NET Framework时代的csproj文件冗长复杂,里面塞满了各种<Reference>和<Compile>节点。而.NET Core/现代.NET的项目文件清爽得让人感动。举个例子,这是.NET Framework WPF项目的csproj片段:

<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" />
  <PropertyGroup>
    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
    <ProjectGuid>{一堆GUID}</ProjectGuid>
    <OutputType>WinExe</OutputType>
    <TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
    <!-- 省略大量其他属性 -->
  </PropertyGroup>
  <ItemGroup>
    <Reference Include="System" />
    <Reference Include="System.Core" />
    <!-- 省略几十个系统引用 -->
  </ItemGroup>
</Project>

而迁移到.NET 6之后,它变成了这样:

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <OutputType>WinExe</OutputType>
    <TargetFramework>net6.0-windows</TargetFramework>
    <UseWPF>true</UseWPF>
  </PropertyGroup>
</Project>

看到了吗?干净利落!所有默认的系统引用都被SDK自动处理了,你只需要关心你自己的NuGet包。这种改变极大地减少了合并冲突,也让项目更容易用文本编辑器直接阅读和修改。

其次,是部署方式的革命。.NET Framework时代,我们最头疼的就是客户机器上没有安装对应版本的.NET Framework。要么让用户自己去下载安装,要么用InstallShield这类工具把运行库打包进去,过程繁琐。而现代.NET支持独立部署和框架依赖部署两种模式。独立部署可以把整个.NET运行时和你的应用一起打包,生成一个体积稍大但完全自包含的exe,在任何Windows 10/11机器上双击就能运行,无需预装任何运行时。这对于需要分发给大量终端用户(尤其是非技术人员)的桌面应用来说,简直是福音。我有个工具软件用这种方式发布后,用户支持请求减少了70%以上。

再者,是性能与功能的红利。.NET Core/现代.NET的运行时(CoreCLR)和基础类库经过了大量重构和优化,垃圾回收更高效,JIT编译更快,很多API也经过了性能优化。你的WinForms/WPF应用迁移后,即使不修改一行UI代码,也可能因为底层运行时的提升而获得更好的启动速度和内存表现。同时,你还能立即用上最新的C#语言特性(比如C# 10/11的记录类型、全局using等),以及.NET基础库中新增的API,让业务逻辑层的代码写起来更爽。

当然,天下没有免费的午餐。迁移过程并非一帆风顺。比如,一些非常古老的、依赖特定Windows COM组件或.NET Framework特有API的第三方控件,可能在新的环境下无法工作。再比如,代码访问安全性(CAS)这个在.NET Framework里复杂无比的机制,在现代.NET中被移除了,如果你的旧代码里用到了相关特性(虽然这种情况很少见),就需要重写。但总的来说,对于大多数“标准”的WinForms/WPF应用,迁移的收益远大于成本。

4. 无法跨越的鸿沟:.NET Framework的“独门绝技”

尽管现代.NET带来了诸多好处,但我们必须清醒地认识到,.NET Framework上有一批技术,由于与Windows操作系统深度绑定,或者其设计理念与现代.NET的跨平台、轻量化目标相悖,并没有,也大概率永远不会被移植过来。这些就是.NET Framework的“独门绝技”,也是两者必须长期共存的根本原因。

除了原始文章提到的ASP.NET WebForms、WCF、WF、.NET Remoting等,我想结合我的经验再深入聊聊几个点。

首先是AppDomain(应用程序域)。这曾经是.NET Framework里一个非常酷的概念,旨在同一个进程内实现代码的隔离和独立卸载。我们以前用它来做插件化架构,或者运行一些不可信的代码。但说实话,这东西用起来很复杂,而且性能开销不小。现代.NET彻底抛弃了它,转向了更轻量级的“进程”作为隔离边界。对于需要插件化的场景,现在的主流做法是使用AssemblyLoadContext来动态加载和卸载程序集,虽然不如AppDomain那样提供完全的隔离,但结合进程间通信(IPC)也能实现类似的效果,而且更符合跨平台的设计。

其次是那些根植于Windows“五脏六腑”的技术。比如WMI(Windows管理规范),它是管理Windows系统硬件、软件的核心;再比如直接操作Windows事件日志、性能计数器、注册表的API。这些技术在Linux或macOS上根本没有对等物。如果你的WinForms/WPF应用的核心功能就是通过WMI监控服务器硬件状态,或者深度集成Windows Active Directory,那么这类应用几乎被“锁死”在.NET Framework上。迁移到现代.NET,意味着你要么放弃这些功能,要么寻找特定平台的替代方案(比如在Linux上用systemd的日志),但这显然背离了桌面应用的初衷。

还有一个容易被忽略的细节:第三方控件生态的滞后性。WinForms和WPF拥有一个庞大而成熟的第三方控件市场,像DevExpress、Telerik、Syncfusion等公司的控件套件功能强大。这些商业控件厂商对迁移到现代.NET的支持步伐并不一致。虽然主流厂商现在都提供了对.NET 6/8的支持版本,但如果你维护的是一个使用了某个古老版本控件库的大型遗留系统,升级控件库本身可能就是一个耗时数月、充满风险的大工程。在这种情况下,留在稳定、熟悉的.NET Framework 4.8上,反而是更务实、更低风险的选择。

所以,当你面对一个遗留系统时,不要盲目地为了“追新”而迁移。首先要做的是一个彻底的技术栈审计:列出所有依赖项,包括NuGet包、COM组件、Windows原生API调用、第三方控件等。如果核心功能严重依赖那些无法迁移的“独门绝技”,那么强行迁移到现代.NET就是一条死胡同。

5. 实战指南:如何为你的项目选择正确的道路?

说了这么多理论和历史,到底该怎么选呢?我总结了一个简单的决策流程图,你可以对照自己的项目情况来参考:

新项目启动
    |
    V
目标平台? -> 仅Windows -> 需要现代化UI/复杂图形? -> 是 -> 选择 **现代.NET (如.NET 8) + WPF**
    |                              |
    |                             否
    |                              |
    V                              V
跨平台需求         选择 **现代.NET + WinForms** (适合工具类、内部系统)
    |
    V
考虑 **.NET MAUI** 或 **Avalonia UI**

对于现有项目,决策更复杂一些:

  1. 小型工具类应用,依赖简单:如果项目不大,没有使用那些“独门绝技”,第三方依赖也都支持现代.NET,那么我强烈建议你花点时间迁移。长远来看,在持续集成、容器化部署、享受新语言特性等方面,你会感谢自己做了这个决定。Visual Studio提供的升级助手工具可以帮你完成大部分机械性工作。

  2. 大型遗留业务系统,深度绑定Windows:如果系统庞大,且严重依赖WCF、WF、或者特定的Windows管理API,那么“不动”可能是最好的策略。将.NET Framework 4.8视为一个稳定的、长期支持的基础设施。你的开发重点应该放在应用架构的现代化上,比如尝试将业务逻辑层剥离成独立的.NET Standard或现代.NET类库,让UI层(WinForms/WPF)通过清晰的接口调用这些服务。这样,至少核心业务逻辑可以享受新平台的好处,也为未来可能的UI重写奠定了基础。

  3. “借壳生蛋”的混合模式:这是一个非常实用的过渡技巧。就像网络搜索结果里提到的,在Visual Studio 2019早期,.NET Core的WPF设计器不可用,开发者就创建一个.NET Framework的WPF项目专门用于界面设计,然后通过“链接文件”的方式,让一个.NET Core项目共享这些XAML和CS文件来实际编译运行。这种思路可以扩展:对于复杂的、暂时无法完全迁移的遗留应用,你可以尝试将部分新功能或重构的模块,用现代.NET编写成类库,然后由主程序(.NET Framework)引用和调用。这能让你逐步消化技术债,而不是被它吓倒。

6. 眺望未来:WinForms与WPF在统一.NET下的新生态

那么,WinForms和WPF的未来就只是作为“Windows遗产技术”而存在吗?我认为并非如此。在统一的.NET平台(.NET 5+)下,它们正在焕发新的生机,并融入一个更广阔的生态。

一个重要的趋势是与现代化UI框架的融合。微软推出了Windows App SDK(以前叫Project Reunion),它旨在统一Windows桌面开发体验。而WinUI 3是这个SDK中的现代原生UI框架。现在,你可以通过 XAML Islands 技术,将WinUI 3的控件直接“托管”在现有的WPF或WinForms窗口中!这意味着,你不需要重写整个应用,就能在经典程序里使用Fluent Design风格的最新按钮、导航视图等控件。这为老应用的现代化改造提供了一条平滑的路径。我就在一个客户的管理系统中,用XAML Islands将数据图表部分替换成了WinUI 3的控件,视觉效果和交互体验立刻提升了一个档次。

另一个方向是跨平台桌面开发的替代方案。如果你确实有跨平台需求,但又舍不得C#和.NET生态,那么现在有了更多选择:

  • .NET MAUI:这是Xamarin.Forms的进化版,官方支持的跨平台框架(Android, iOS, macOS, Windows)。在Windows上,它的底层渲染用的就是WinUI 3。适合从零开始的新项目,尤其是希望一套代码覆盖移动端和桌面端的场景。
  • Avalonia UI:这是一个非常活跃的开源项目,它自称是“WPF的跨平台精神续作”。使用XAML和类似的MVVM模式,但可以运行在Windows、macOS、Linux甚至WebAssembly上。如果你的团队精通WPF,想开发真正的跨平台桌面应用,Avalonia是目前最受社区欢迎的选择之一。
  • Uno Platform:另一个基于WinUI API的跨平台框架,号称“一次编写,随处运行”,支持的平台甚至比MAUI还多。

所以,WinForms和WPF的未来,不再是孤立的、守旧的。它们作为成熟的、拥有海量现存应用和开发者的技术,正在以两种方式演进:一是自身在统一.NET平台上获得新生(更好的工具链、部署、性能),二是作为更宏大桌面开发生态的一部分,与WinUI、MAUI等新技术协同共存,满足从“维护旧系统”到“打造全新跨平台应用”的各种需求。

在我个人看来,技术选型从来没有银弹。.NET Framework与现代.NET的共存,WinForms与WPF的坚守,恰恰反映了软件开发世界的现实:演进优于革命。作为开发者,我们的任务不是纠结于“哪个更好”,而是深入理解每个选项的优劣和适用场景,然后为手头的具体问题,做出最务实、最可持续的技术决策。毕竟,能让项目稳定运行、业务持续创造价值的技术栈,就是最好的技术栈。

WPF企业级桌面应用:深度集成、性能优化与架构演进 WPF(Windows Presentation Foundation)作为微软面向Windows平台的声明式UI框架,其核心价值在于基于Direct3D的硬件加速渲染管线、依赖属性与数据绑定驱动的强类型交互模型,以及对Win32/COM/ActiveX的原生互操作能力。它并非简单的界面美化工具,而是满足高DPI适配、离线运行、审计合规与ERP/MES系统集成等企业刚性需求的技术底座。在工业HMI、医疗影像、电力监控等场景中,WPF凭借Visual Tree精细化控制、milcore非托管图形计算卸载、XA 阅读详情

相关推荐

Windows PE下加载.NET程序集的五种实战方案

.NET程序集在Windows PE环境中无法直接运行,本质是托管执行模型与精简操作系统环境的根本冲突。其核心原理在于PE Loader需识别CLR头并加载mscoree.dll或hostfxr.dll等运行时宿主,而WinPE默认缺失.NET运行时、关键API转发DLL、注册表支持及完整内存管理能力。技术价值体现在支撑离线系统维护、应急响应、磁盘取证等高可靠性场景。典型应用包括EFS解密工具、注册表修复器、BitLocker密钥提取器等需脱离常规Windows桌面环境独立运行的C#工具。本文聚焦Windo

dingguayi7025的博客 560

5个关键问题决定你的桌面应用开发框架选择:WPF还是WinForms?

当开发团队面临桌面应用技术选型时,往往陷入两难境地:选择传统的WinForms确保快速交付,还是拥抱现代的WPF追求卓越体验?这个决策不仅影响开发效率,更关乎产品的长期竞争力。作为微软.NET生态中两大核心桌面框架,WPF和WinForms各自承载着不同的设计哲学和适用场景。 Windows Presentation Foundation (WPF) 是一个用于构建Windows桌面应用程序的U

gitblog_00706的博客 1057

.NET Framework 4.0离线安装实战:dotNetFx40_Full_x86_x64双架构部署指南

.NET Framework 是 Windows 平台核心运行时环境,其版本兼容性与离线部署能力直接影响工业控制、金融终端、医疗系统等关键业务的连续性。.NET Framework 4.0 作为首个支持并行运行时与改进垃圾回收的稳定版本,虽已归档,但在 Windows 7/Server 2008 R2 等老旧环境中仍是不可替代的基础依赖。其安装本质涉及 x86/x64 双架构协同、GAC 程序集注册、系统补丁前置校验及 Windows Update 服务绕过等底层机制。技术价值在于保障强命名程序集加载、WC

weixin_30654419的博客 378

.NET Core 3将支持Windows桌面应用

\看新闻很累?看技术新闻更累?试试下载InfoQ手机客户端,每天上下班路上听新闻,有趣还有料!\\\微软在Build开发者大会上宣布,.NET Core 3将包含对Windows桌面应用的支持。这意味着开发人员可以在.NET Core中使用WinForms、WPF或UWP编写Windows平台应用了。虽然这些GUI框架仅存在于Windows上,但这种支持让开发人员更容易重用应用程序逻辑的代码。\\...

weixin_33725239的博客 167

Windows 11安装.NET 8.0 SDK完整指南

.NET作为微软推出的跨平台开发框架,其核心价值在于支持多种应用场景的开发,从传统的Windows桌面应用到现代的云原生微服务架构。.NET 8.0 SDK作为最新版本,不仅继承了.NET Core的跨平台特性,还引入了性能优化和新功能,特别适合开发高性能应用。在Windows 11上安装.NET 8.0 SDK需要确保系统版本兼容性,并正确配置运行时组件和环境变量。通过官方安装包或命令行工具均可完成安装,同时针对企业环境还提供了离线安装方案。安装过程中可能遇到的常见问题包括版本冲突和环境变量配置异常,这些

weixin_34318326的博客 413

C#实现西门子PLC OPC DA通信实战指南

OPC DA是工业自动化中连接上位机与西门子S7系列PLC的经典协议,基于DCOM架构,依赖Windows系统权限、防火墙策略与PLC端DB块配置。其核心原理在于通过COM接口访问第三方OPC服务器(如Softing)暴露的地址空间,实现变量读写与实时数据订阅。技术价值体现在对老旧产线的无缝兼容、低资源占用及高调试效率,广泛应用于设备数据采集、HMI开发与MES系统对接等场景。本文聚焦C# WinForms客户端开发,详解PLC端DB块非优化访问设置、DCOM安全配置、ItemID映射规范及断线自动重连机制

weixin_34387468的博客 397

.NET Framework 1.0到4.0演进中的真实技术契约与迁移避坑指南

.NET Framework 是 Windows 平台企业级应用的底层运行基石,其核心由 CLR 运行时、BCL 类库和配置模型共同构成。从 1.0 到 4.0 的演进并非简单功能叠加,而是经历了四次底层契约重写:泛型引入重构 JIT 行为、CAS 安全模型确立权限边界、WCF/WPF 等技术整合带来跨组件互操作约束,以及 CLR 4.0 的并行运行时机制。这些变更深刻影响着程序集加载、ViewState 序列化、WCF 配置兼容性与 GAC 版本共存等关键环节。尤其在遗留系统迁移中,.NET Framew

416

ADS与Cadence中Verilog-A文件的编译与调用实战指南

本文详细介绍了在ADS与Cadence平台中Verilog-A文件的编译与调用实战指南,涵盖开发环境配置、模型创建与编译、仿真设置技巧以及跨平台协作与调试等内容。通过具体案例和优化策略,帮助工程师高效完成混合信号仿真设计,提升电路建模与验证效率。

weixin_29196315的博客 497

.NET 4.x 迁移精进实战:CLR 4.0 并行运行时与异步演进指南

.NET 运行时(CLR)是 Windows 平台托管应用的底层执行引擎,其版本演进直接决定应用的并发能力、内存效率与兼容性边界。CLR 4.0 引入并行垃圾回收、多版本共存(Side-by-Side Execution)及 Task 并发模型,为后续 async/await 和现代 .NET 的异步编程范式奠定基础;而 .NET 4.5 则通过深度重构 ASP.NET 管道与 WPF 渲染管线,显著提升 I/O 密集型与 UI 交互类系统的吞吐与响应。掌握这些底层机制,不仅关乎老旧金融、政务系统在不推倒重

ciyinzhi8788的博客 437

H.264 Profile与Level详解:如何为不同应用场景选择合适的编码配置

本文深入解析了H.264编码标准中的Profile与Level概念,指导开发者如何为不同应用场景选择合适的配置。文章对比了Baseline、Main和High三大Profile的特性与适用场景,并解释了Level如何限定视频的分辨率、帧率与码率上限。通过实战指南,帮助读者在视频通话、在线点播和专业制作等场景中,平衡画质、兼容性与性能,实现高效编码。

rgv2345678的博客 238

写一个b站爬虫(思路)

part 0 安装 scrapy, requests part 1 信息获取 打开番剧索引链接(https://www.bilibili.com/anime/index/) F12控制台,选中NETWORK,来到xhr文件,我们可以找到了存放番剧json的地方

kou的博客 485

VS2010实用功能深度指南:面向遗留系统开发的高效调试与编码技巧

Visual Studio 2010虽已停止支持,但在.NET Framework 4.0/4.5、Windows Server 2008 R2等遗留系统维护中仍具不可替代性。其核心能力源于WPF Shell重构带来的分屏调试、语义级符号高亮、按使用生成代码等工程化设计,显著降低NullReferenceException排查耗时与重构连锁错误频次。这些功能不依赖新框架,却直击工业HMI、电力调度、银行报表等场景下的真实约束——如第三方SDK仅兼容VS2010项目模板、COM组件硬编码devenv.exe路

rongdmmap的博客 557

【2023】Java利用modbus4j实现工业设备Modbus TCP数据采集与解析

本文详细介绍了在2023年使用Java和modbus4j库实现工业设备Modbus TCP数据采集与解析的完整实践。内容涵盖开发环境搭建、TCP连接建立、开关量与模拟量数据的读取与解析、批量读取性能优化、控制指令写入以及常见错误排查指南,为开发者构建稳定高效的工业物联网数据采集系统提供全面指导。

rose2的博客 723

Visual Studio 2019目标框架更改全解析:从原理到避坑实践

目标框架是.NET应用程序开发的核心概念,它定义了项目可用的API集合和运行时行为。其原理在于通过目标框架监控器(TFM)标识不同版本,决定了代码编译和执行的底层环境。这一技术选择直接影响项目的技术栈兼容性、第三方库支持和部署可行性,具有重要的工程价值。在应用场景中,开发者常需在升级、降级或适配不同生产环境时更改目标框架,例如从.NET Framework 4.8切换至4.7.2,或处理遗留系统所需的.NET Framework 3.5。本文将深入探讨在Visual Studio 2019中安全、有效地执行

weixin_30407613的博客 409

基于STM32与SimpleFOC实现直流无刷电机开环控制的实战指南

本文提供了一份基于STM32微控制器与SimpleFOC开源库实现直流无刷电机开环控制的详细实战指南。内容涵盖硬件连接、PlatformIO环境搭建、核心代码解析及上电测试,旨在帮助开发者快速验证硬件并理解开环控制的基本原理,为后续实现高性能的闭环FOC控制奠定基础。

xxx12的博客 960

第十四节《OpenCascade集成Qt》

将 OpenCascade 与 Qt 集成是开发图形界面应用的常见需求。通过将 OpenCascade 的几何建模与 Qt 的图形用户界面(GUI)功能结合,可以创建强大而灵活的 CAD 或建模工具。OpenCascade 提供了与 Qt 的集成接口,允许你在 Qt 应用程序中嵌入 OpenCascade 的视图,执行几何操作,并与用户进行交互。以下是 OpenCascade 与 Qt 集成的详细步骤:首先,确保已安装 OpenCascade 和 Qt。你可以从 OpenCascade 官方网站或通过包管理

yumeiguo的博客 597

.NET 2.0升级到3.5 + VS 2008的实战决策与成本权衡

.NET Framework 是微软企业级应用的核心运行时,其版本迁移本质是技术债管理与系统可持续性工程。从.NET 2.0到3.5并非简单语法升级,而是首次在保持CLR 2.0二进制兼容前提下,集成LINQ、WCF、WPF等关键现代化能力的分水岭。该升级显著降低遗留系统维护成本,提升开发人效与调试确定性,尤其适用于政务、金融、制造等仍在运行Windows Server 2003/VS 2005的老旧生产环境。它不改变架构范式,却为后续向.NET 4.0+演进铺平道路,是风险可控、投入产出比极高的‘最小必要

SailingAptech的专栏 529

化工设备应力分析软件:STAAD.Pro二次开发_(24).非线性分析技术

在STAAD.Pro 中,可以通过命令。

kkchenjj的博客 661

VS 2019 16.11.50企业级离线部署实战指南

Visual Studio 是 Windows 平台核心开发环境,其版本兼容性、离线安装与构建系统(MSBuild)协同机制直接影响传统企业系统的持续演进。理解 VS 安装原理、SDK 绑定逻辑及多框架共存编译机制,是保障 .NET Framework 与 .NET Core 混合项目稳定构建的基础。尤其在工业控制、医疗设备、金融核心等强合规场景中,VS 2019 Enterprise 16.11.50 因完整支持 Windows 7/Server 2008 R2、内置 Windows SDK 10.0.1

weixin_30562507的博客 538

MicroCap声学仿真介绍(一)

5-频率上下限选择,需要注意的是,第一个数字是上限,第二个数字是下限,如果填反了,会有报错提示;下三角可以选择“Auto”、“linear”、“log”和“list”,设置的是频率点之间的距离和频率点的数量。Component是用来选择部件的模块,如上图所示,声学仿真常用到的是“Electroacoustic Macros AC”、“Electroacoustic Macros TR”、“NXP Transducers”以及“NXP HD components”。3是声学部件,是声学仿真中常用的部件。

山无忧的博客 5096

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

VS2017安装实战指南:工业控制与遗留系统开发必备

Visual Studio 2017并非过时工具,而是面向Windows 7/8.1、.NET Framework 4.6.1–4.7.2及MSVC v141工具链的稳定开发环境。其核心价值在于对工控SDK、PLC通信库、医疗设备驱动等国产嵌入式生态的官方兼容性保障,尤其适配Windows 10 LTSC 2019、Server 2016等锁版系统。在老旧硬件调试、学校机房部署、国企内网维护等离线或受限场景中,VS2017凭借低系统依赖、高确定性表现成为不可替代的工程选择。本文聚焦真实产线级安装痛点,覆盖离

clt3617的博客 376

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

AirCheck BLE上线:BLE TPMS传感器技术解析与实战指南

低功耗蓝牙(BLE)作为物联网时代的关键无线技术,凭借极低功耗、双向通信和智能手机原生支持等优势,正在从可穿戴设备向汽车电子领域快速渗透。轮胎压力监测系统(TPMS)传统上依赖315/433MHz单向射频,难以满足远程诊断、OTA升级等需求。BLE的引入改变了这一局面,其广播与连接双模式兼顾了低功耗唤醒和双向数据交互,GATT服务结构为传感器数据定义提供了标准化框架。在实际工程中,Android、ESP32等平台的开发实践与兼容性调优尤为关键。随着OEM主机厂逐步采用BLE TPMS传感器,后市场诊断工具正

weixin_34221773的博客 429

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

上一篇: 从CH341到串口通信:USB设备驱动与Serial层的协同剖析
下一篇: Dify实战:用Excel驱动大模型,实现数据库调优的自动化验证
寂静夜空35
博客等级 码龄3年 59粉丝 1797原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值