有 .NET 的大佬来科普一下吗

有 .NET 的大佬来科普一下吗

資深大佬 : MakHoCheung 32

刚好 .NET 6 发布大概看了下发布的东西,有大佬可以指教下吗

  1. 现在写 Windows desktop 应用最佳方式是什么呢,WinUI3 、MAUI 和 UWP ?
  2. 写后端最新用的是啥?我之前了解了下 ASP ?
大佬有話說 (47)

  • 資深大佬 : learnshare

    桌面端 WinUI 是最新最好的吧,但一般都是 Electron 了,开发快

  • 資深大佬 : jlkm2010

    compose for desktop 看起来也挺有意思

  • 資深大佬 : h82258652

    1 、没有最佳,看你业务需求和团队,Electron 、Qt 都行。你说的这三个,UWP 已死,官方都推荐迁移到 WinUI 。MAUI 是 Xamarin 的进化版,没有跨平台需求用不上。
    2 、asp.net core 。不用了解 ASP ,就像 Java 和 JavaScript 一样。

  • 資深大佬 : ysc3839

    1. 看应用内容、需求选 GUI 框架,没有最好的选择。另外就算是用 WinUI 我个人也会选 C++。
    2. 我会选择 Node.js 。

  • 資深大佬 : makelove

    JavaScript 一把梭,前端 Electron + 后端 NodeJS
    只有一个缺点是 electron 稍肥,但可以换系统 WebView 就瘦
    不建议用 .net ,社区太小了没人用什么都要自己搞

  • 資深大佬 : INCerry

    1. 现在写桌面端主要看你有没有跨平台的需求,如果没有,那么就用 WinUI ,在 windows 平台上最好的选择。如果需要跨平台那么 MAUI 、Avalonia 、Uno platform 都可以选择,比其它语言某些框架内存占用更低,性能也更好。但是讲真,现在工厂里面还是会用 winfrom 或者 wpf ,毕竟方便快捷。
    2.后端使用 aspnetcore ,性能吊打其它语言一票的框架,另外那些黑.NET 和 C#的人,大可不必
    https://www.techempower.com/benchmarks/#section=data-r20&hw=ph&test=plaintext
    https://benchmarksgame-team.pages.debian.net/benchmarksgame/

  • 資深大佬 : longkas239

    1 ) 用.net 写桌面就别看别人推荐的什么 electron ,用微软的 webview2 ,嵌套在 wpf 或者 winforms 里面,webview2 现在系统都是自带的,根本不需要像 electron 一样带一个几十 m 的包。
    但是有缺点,.net 本身系统可不是自带的(系统自带的是.net framework 4.x ),.net 运行时安装方式可以选择共享方式,也就是应用程序不带运行时,也可以选择自包含运行时打包在一起。 两种方式都有缺点,不管你写桌面多么顺手,如果想做到用户安装体验好,安装包容量小,到打包发布这一环节绝对头疼。
    2 )后端就根本不会考虑.net 了,用 java ,库是最多的,写什么都是有需求就立马调库写实现。
    所以我才说为什么.net 6 是巧克力味的屎

  • 資深大佬 : Chad0000

    @longkas239 Java 什么都有?有 entity framework 或者能匹敌的嘛?

  • 資深大佬 : hingbong

    @Chad0000 能不能匹敌不知道,反正 jooq 用得挺爽的

  • 資深大佬 : Chad0000

    @hingbong #9 可参照这个帖子 /t/727939 ,了解一下 EF 和 Linq 的强大

  • 資深大佬 : hingbong

    @Chad0000 我看了一下,好像框架上没什么,主要是语法限制了?其实我主要是 kotlin 后端,不过在后端领域上,我默认把 kotlin 算进 Java 里面了,Java 的语法是真的难受

  • 資深大佬 : Chad0000

    @hingbong #11 Entity Framework 的产生依赖于 C#语言不断添加的特性:委托、泛型、扩展方法、Lambda 表达式、Linq 等等。我也只是使用而已,更深入地了解需要看其他人写的文章。

  • 資深大佬 : zjsxwc

    @Chad0000
    java 一般都是套 mybatis 一把梭,
    c#的 linq 类似于前端的 react ,而 mybatis 类似于前端的 vue ,也没见 react 压倒性的侵占 vue 的市场。

  • 資深大佬 : ragnaroks

    只说当前
    1:还是 WPF 占据绝对统治地位
    2:传统 aspnet core ,服务端渲染 blazor ,不需要

  • 資深大佬 : yolee599

    推荐 Electron 的都是主业是前端开发吧?用 Electron 开发的桌面软件非常吃配置,而且界面时不时卡顿一下,卡顿的时候整个界面感觉要崩了一样,错位了,过了一会又恢复正常了,用起来总是让人焦虑

  • 資深大佬 : rioshikelong121

    @zjsxwc linq 为什么像前端的 react 呢。。真诚发问,

  • 資深大佬 : zjsxwc

    @rioshikelong121
    你对比下
    jsx 与 linq
    vue template 与 xml

  • 資深大佬 : wangxn

    节能减排,助力碳中和,慎用 Electron

  • 資深大佬 : ly841000

    @yolee599 一群 web 把安卓祸害得配置要求比 pc 还高,现在又要来祸害了

  • 資深大佬 : ly841000

    WinUI 和 UWP 区别不大,只是运行时一个系统自带,一个要求自带

  • 資深大佬 : alexkkaa

    说实话 现在些桌面要性能 qt 要开放速度用 electron wpf 及其衍生品 没有任何优势
    后台的 asp.net core 就行 说生态差的 你是认真的吗 我只遇到过有的库 java 没有 dotnet 有

  • 資深大佬 : darknoll

    不要用微软的东西

  • 資深大佬 : quan01994

    可以用 WebView2 ,只要你装了 eDGE WEBVIEW2 RUNTIME .还是很好用的。

  • 資深大佬 : ligiggy

    咱评论的时候,能不能陈述“事实”啊,上来就一顿结论的,看起来很懂似的,实际上都是瞎扯淡。

  • 資深大佬 : MakHoCheung

    @longkas239 系统不带 .NET? 应用要跟 Java 一样要自带 JRE ?为什么微软不把运行时绑定到系统呀。

  • 資深大佬 : yanjinhua

    https://github.com/yanjinhuagood/WPFDevelopers 推一波

  • 資深大佬 : ysc3839

    @MakHoCheung Windows 带 .NET Framework ,不过不同系统带的版本不一样。Win7 好像是 3.5 ,Win8-Win10 是 4.x 。
    .NET Core 不自带,需要额外安装,或者打包成一个可执行文件。

  • 資深大佬 : MakHoCheung

    @ysc3839 这 .NET Core 不就跟 JVM 一样了吗。Swing 或者 JavaFX 应用都要自包含运行时感觉很大(虽然有了 JPMS 小了很多),我一直以为这方面 .NET 是优势,万万没想到 .NET 也要自带运行时,这样优势全没了呀(语法方面有 Kotlin )

  • 資深大佬 : qaz168000

    1. WinUI 或者 winform,wpf 都行
    2. .net6 就行了,asp 不用了解
    如果不局限.net
    1. qt
    2. php

  • 資深大佬 : Rwing

    说.net 生态差的都是人云亦云没有自己体验过的。
    生态差的语言能活到现在吗?写啥啥没有?那能活吗?
    肯定都是有需求就立马调库实现啊……

  • 資深大佬 : 0o0o0o0

    1.原始开发使用 WinUI 或者 WPF ,UWP 已经凉了,MAUI 刚发布一堆 bug ,只建议尝鲜,qt 也还行看需求,electron 、webview2 也不错就是没有原生的流畅,其实还有 flutter 现在也支持 win 桌面端了。
    2.后端使用 asp.net core ,但是根据模型可以分为很多,比如 webfrom mvc webapi ,还有新的 blazor(包括 wasm 和 server)。
    @MakHoCheung
    不是必须,.net core (包括 .net5 6 )之后发布应用有两种方法,一种是打包运行时,直接使用即可,一种是在系统中安装运行时,那么打包时不需要打包运行时。不过 windows 发布版本(包括 windows11 )只会包含 .net framework ,而 .net core 之后的版本将会以系统更新的方式发布,或者用户自行安装。
    至于为什么随系统发布,因为 .net core 之后好多版本不是向后兼容的,也就是说比如.netcore3 无法使用.net5 运行时,那么就需要安装所有的运行时,为什么不兼容呢,官方说是如果兼容就会回到.net framework 时代为了兼容牺牲而无法进步。

  • 資深大佬 : shuimugan

    @MakHoCheung .net 跑官方 web api 模板项目,编译成单文件,压缩后也就 17MB ,应该不算大了。

  • 資深大佬 : 0o0o0o0

    @0o0o0o0 更正最后一段开头 “至于为什么不随系统发布”

  • 資深大佬 : sigl0p

    WinUI3 之前好像不支持编译出 exe ,只能以 msix 打包发布,想做 portable 版就不行,不知道现在怎么样了。

  • 資深大佬 : chinvo

    @MakHoCheung #28 不一样. 应用可以选自己打包所需组件进去. 也可以不打包, 用户运行时 Windows 会自动检查系统是否有, 没有会自动安装.

  • 資深大佬 : ian19znj

    WinUI 只能跑在 Win10/11 上, 但很多 windows 用户还停留在 Win7, 所以 WPF 是更好的选择.

  • 資深大佬 : dawnh

    WinUI3 不是.net 的组件,也就是说这玩意 C#是写不了的。MAUI 中的 Windows 原生 App 其实就是 WinUI3 的一个包装。按道理来说现在应该开始鼓吹用 MAUI 。但尴尬的是 MAUI 现在在.net 6 里面的成熟度不够,这次干脆就留在 Preivew 状态没有 GA 。要等明年第二季度才正式发布。UWP 更是要坑。按我个人观点,现在非要 Desktop UI 的话,干脆就还 WinForm 或者 WPF ,新的这几个贼船暂时不要上。
    后端用 ASP.net Core 6 即可。这次 minimal API 的更新让新人上手无比舒服。

  • 資深大佬 : ysc3839

    @sigl0p 只是之前没有实现,在 roadmap 里面有写 unpackaged 是确定会在 1.0 中支持的。

  • 資深大佬 : liuser666

    实话实话,微软每次都会给人希望,然后破灭。希望这次能统一一下。

  • 資深大佬 : sunhelter

    桌面不了解,我网页做的比较多,之前是 WebForm ,现在都前后分离了,后端写 asp.net api
    很多人说.net 已死啦 java 啥都有什么的,主要还是看人,我们小公司.net 和 java 都有,老板还是愿意用.net ,因为我们更稳定
    如果想入坑的话,不要再去看 framework 了,目前.net 6 是最新的 LTS ,上一个 LTS 是.net core 3.1 ,中间的.net 5 可以忽略,差别都不是很大

  • 資深大佬 : TigerGod

    wpf + https://handyorg.github.io/handycontrol/

  • 資深大佬 : GTim

    @sunhelter 对,我碰到的 一个公司,前后台都是 webapi, 后台 element UI 前台 VUE

  • 資深大佬 : encro

    看你需要兼容的的目标机器:
    win7 以下:winform
    win7 – win10 sdk 2019:wpf
    win10 sdk 2019+:winui 3
    目前最佳应该还是 wpf

  • 資深大佬 : MonoLogueChi

    1. 提到的这仨玩意都是半残状态,要么是没开发完成,要么是已经快要被放弃的东西,现在只在 Windows 上用,wpf 挺好的
    2. 后端技术栈主要是看服务类型,.net 下的框架不少,适合 api 服务器的 web api ,适合网页开发的 razor ,还有实时应用 blazor ,还有其他框架,能搞的很多。数据方面的话,我基本都用 efcore 搭配 postgresql ,轻量数据库就直接用 litedb ,顺便吹一下,linq 搭配兰姆达表达式真的爽

  • 資深大佬 : zachlhb

    furion 框架了解下

  • 資深大佬 : forgottencoast

    @dawnh
    WinUI 3 supports C# (.NET 5) and C++ for desktop apps.
    WinUI 2 supports C# and Visual Basic (.NET Native), and C++ apps.
    https://docs.microsoft.com/en-us/windows/apps/winui/

  • 資深大佬 : dawnh

    @forgottencoast 我认为这里的信息很误导,support 是说能用,但没说怎么用。你如果真写过的话就会发现所谓的 support 也不过是 PInvoke 调用 COM 的用法。官方的例子都这么写的: https://docs.microsoft.com/en-us/windows/apps/winui/winui3/desktop-winui3-app-with-basic-interop
    所以还是等 MAUI 来包装吧。

「点点赞赏,手留余香」

    还没有人赞赏,快来当第一个赞赏的人吧!