

请 windows 开发大佬指点下, 我想学习一种微软支持的开发桌面 exe 程序得方式
source link: https://www.v2ex.com/t/979408
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

说实在的, 虽然折腾不少框架, 库啥的
但这么多年却没有正经学过微软的任何语言或框架, 原因就不讨论了
但我现在想做正统的 windows 本地桌面程序开发, 想请 windows 开发经验多的人指点下, 省的走弯路, 省点时间
我虽然没搞过, 但大概也知道, 就算微软支持的东西也很多, 比如 winform ,wpf , 语言也一大堆 我说下我的目的和要求
- 目标是做正统的 windows 桌面程序, 不是为了学习目的
- 不用 c 或 c++, 不折腾
- 只使用微软官方支持技术(不要推啥 electron ,qt 等其他东西)
- 生成的 exe 或程序包尽量小, 依赖尽量少, 最好只需按照程序相关东西, 其他的系统直接支持
- 暂不考虑跨平台(当然我也知道.net 好像开源, 不清楚是否能容易移植到 macos )
- 希望这套技术能在未来五年仍然是微软支持的主流技术框架
希望得到具体点的意见 比如用啥语言 , 用啥框架, 怎么搭环境等
定好了直接开干。
ye4tar 6h 44m ago delphi7
|
jennalcn 6h 25m ago 有时候不用想那么多,直接开干就好啦。为什么只用微软官方支持的技术?这个有点迷。官方现在主推 MAUI ,但是用过都会无尽吐槽,个人推荐 AvaloniaUI ,但现在的新技术基本都不支持 Win7 ,如果要支持 Win7 的话还是得用 Winform
|
nulIptr 6h 9m ago via iPhone wpf 不就满足要求嘛,其实后面出的 uwp/maui 也都是 xaml 那套东西
说到官方技术支持,就算是富哥们儿钱也不能这么造啊 |
![]() |
tool2d 5h 53m ago 昨天刚看到个 windows 界面开发相关的视频,可能和楼主第二条不符,但是思路还是可以借鉴的
https://www.bilibili.com/video/BV1rC4y1L7dX 这人比较罗嗦,我个人总结,就是 GUI 区分为 IM 模式和 RM 模式。 IM 模式指的是即时渲染,也就是可以不需要保存当前控件状态,你需要直接查状态就可以了,因为界面在不断刷新。 RM 模式是传统的 GUI 消息模式,保存了所有控件的状态,比如某个按钮被点击了,会触发回调函数。需要完整 GUI 框架才能运行。 视频推荐了 IM 模式进行开发,对比 RM 有一个好处,就是能极大化简 GUI 相关代码(因为不用管理状态)。 |
chen006 5h 41m ago via Android 用.NET 做界面的话,可以在这些中挑下 WinForm, WPF, UWP, WinUI, Xamarin, MAUI, Blazor, Windows Community Toolkit, Uno Platform, Avalonia, Comet, ReactiveUI, Chromely, EdgeSharp, Electron.NET
|
![]() |
verrickt 5h 39m ago via Android WPF 或者 WIN UI 3 ,UWP 已经半死不活了
|
![]() |
ysc3839 5h 36m ago via Android 如果追求体积小、现代化、微软支持、且排除 C++,那可以看看 React Native for Windows 。不涉及一些底层功能的话,只需要写 js 即可。底层界面框架是 Win10 自带的 WinUI2 ,不需要随程序附带。编译后 exe 印象中只有几百 KB ,React Native 的 dll 大概是 4MB 左右吧,以及你程序的资源文件,看复杂度有大有小。
|
![]() |
ysc3839 5h 32m ago via Android 另外要真正追求“Windows 正统”的话,其实只有 Win32 和 WinUI2 可选,因为只有这两者是 Windows 内置的。其他像 WPF 那些虽然是微软推出的,但是是比较独立于 Windows 本身的,去掉 .NET 部分也不会影响系统大部分功能。
|
qrobot 4h 16m ago 那当然是 Microsoft DirectX , 楼上都是扯淡, Microsoft DirectX 才是王道 [doge]
|
elechi 3h 48m ago WPF ,要不 webview2
|
hez2010 3h 46m ago WinUI 3
|
![]() |
subframe75361 3h 44m ago webview2 是目前主推的吧
|
idealhs 3h 39m ago 小项目直接 winform, 大一点上 WPF,我说的,少看那些微软基于 webview 的东西,会变得不幸,微软后期推的技术都是一股咖喱味并且不太负责任,而 winform 和 WPF 是经典永不过时,大量工业软件都在使用它们,微软需要对这些技术负责,Windows 活一天他们活一天.并且他们的技术并不老旧一直在维护,winform 甚至都可以基于.net8 开发,我也推荐基于最新的.net8 sdk 而不是 framework 去开发.
|
encro 2h 46m ago 你这几乎指定了就是 WPF 。
WPF 那么好学好用的。 |
flyico 2h 38m ago winform/wfp: 你直接念我身份证号得了
|
![]() |
ysc3839 2h 31m ago via Android @idealhs
“经典永不过时,大量工业软件都在使用它们,微软需要对这些技术负责” MFC 也符合上述说法 “winform 甚至都可以基于.net8 开发” 最新的 VS2023 ,C++20 都能用 MFC “并且他们的技术并不老旧一直在维护” WPF 似乎一直只支持 Direct3D9 渲染,那么多年了也没有更新 WinForm 和 WPF 估计已经进入维护模式了,就和 MFC 、IE 一样,微软停止更新后一般也会维护很长一段时间,但这不能代表好坏。 |
![]() |
haierspi 2h 24m ago react native, flutter ,Electron 三个任选吧.. 不过从上手难度来说 react native ,Electron 最低... 毕竟不用再学一门语言 直接 JS 就搞定了
|
idealhs 2h 23m ago @ysc3839 #19
Winform 和 WPF 将在未来一直支持最新的.NET SDK ,将能够使用所有.NET 的新技术。而开源后的全新.NET 的前景以及微软的支持力度是有目共睹的。MFC 则并非如此,MFC 只是 win32 api 的封装,并且 MFC 的开发难度以及效率,功能完全无法与 Winform 和 WPF 相提并论。 MFC 当然可以基于语言的新版本开发,你不应该将新版本语言的好处与新版本.NET 的好处混淆,至少最基本的 GUI 开发方面,处理异步没有比.NET 更好的方式。 WPF 基于 DX9 渲染我不认为有任何问题,没有人会在 WPF 项目中写 3D ,如果你有图形需求你不应该在 GUI 框架中寻找解决方案。 至于维护模式,第一你不要估计,第二微软会维护很久,就像你热爱的 MFC 一样。 |
gbw1992 2h 21m ago 开发语言使用 c#
开发环境 visual studio 开发体验 wpf > winfrom 控件框架的话 winfrom 我 n 年前使用过 DevExpress(收费) 体验还行,开发前注意对常用控件进行样式封装 wpf 控件框架 有一个 HandyControl 还有注意 wpf 和 winfrom 不跨平台 如果有跨平台需求用楼上推荐的 AvaloniaUI |
![]() |
ShadowPower 2h 19m ago 满足这些要求的只能是 WPF+C#了
如果哪天突然想要跨平台了,移植到 AvaloniaUI 也比其他框架方便 |
![]() |
ysc3839 2h 9m ago via Android @idealhs 我并不热爱 MFC ,请不要给我扣帽子,我讨厌 MFC 。
.NET 的新技术难道不是“新版本语言的好处”吗? WPF 只支持 D3D9 本身就是问题,即使它使用了新版本的语言,但仍然使用旧的操作系统功能,那就无法获得最佳性能以及最新特性。这和 MFC 类似,MFC 能使用最新的 C++,但仍然只能使用老旧的系统功能。 |
![]() |
StubbornHuang 1h 54m ago 试下 Duilib ?
|
![]() |
albertofwb 1h 51m ago |
dq19871123 1h 50m ago 目前来看只有 WPF 了
|
idealhs 1h 33m ago |
![]() |
tyzandhr 1h 29m ago via Android 写 Windows 怎么可能不碰 win32 呢?
|
ych8398527 1h 24m ago WPF 。一周上手 两周精通
|
YassoWithSpeaker 52 mins ago 犹豫不决,java 解决,上 swing ,jfx
|
Recommend
-
66
实验拓扑:实验要求:1、DMZ发布Web服务器,Client2可以访问Server32、使用命令showconndetail查看Conn表3、分别查看ASA和AR的路由表4、配置ACL禁止Client3访问Server25、状态化防火墙的原理是什么?6、ASA上不同安全级别的接口之间互相访问时,遵从的默认规则是什...
-
120
问与答 - @wellkens - 预算 3000,多退少补……520 和 540 不知道该怎么选,感觉各有利弊,后来又看到了 560,价格和 540 相比涨幅太大了,如果像之前不知道哪年的 2999 活动价倒是能接受请
-
72
问与答 - @Linna - 买了新电脑,百度搜索太乱了,于是给客服打电话,直接甩给我一个说明,然而按照说明进行不下去了,卡在了:打开 CMD 命令提示符输入命令,百度 CMD 命令符在哪里,然而并没有找到,按照客服给的说明,完了
-
43
问与答 - @Leslie5205912 - 我想的是大二暑假找实习,如果有机会转正直接先休学,说实话我不太想要学校的毕业证,毕竟才是个二本,而且关键是太多垃圾课程,我很不喜欢浪费时间在这些上面,请问有大佬指点一下我吗
-
41
Python语言学习起来相对容易,这不可否认。但对于缺乏编程基础的人来说,Python依然很难,这也是事实。
-
6
工作选择及建议,请各位大佬指点一下? 在最近工作的上出现十分困扰的问题本人从事产品工作三年,最近一份工作在还算大的公司(300人左右)入职三个月,主要从事政府体育项目(B端),在工作上感觉就...
-
3
记一次dotnet拆分包,并希望得大佬指点 之前做了一个用于excel导入导出的包, 定义了一些接口, 然后基于 NPOI EPPlus MiniExcel 做了三种实现 接口大概长下面这样(现在可以在接口里面写静态函数了!) public interface IExcelReade...
-
7
V2EX › 程序员 请教一下各位大佬,我想入门 C#,有没有教材书籍推荐一下
-
8
V2EX › 职场话题 南京 Java 开发 offer 选择,求好大哥们指点
-
1
V2EX › 程序员 请教前端大佬:我想对 html 页面上的某个区域/某个精确 document 录屏,应该怎么实现?
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK