日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > C# >内容正文

C#

qt和c#怎么选_请问目前做windows桌面应用程序,MFC、QT、C#哪个更好?

發(fā)布時(shí)間:2023/12/3 C# 50 豆豆
生活随笔 收集整理的這篇文章主要介紹了 qt和c#怎么选_请问目前做windows桌面应用程序,MFC、QT、C#哪个更好? 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

回答問(wèn)題之前,先裝個(gè)逼——沒(méi)有主導(dǎo)過(guò)生命周期三年以上的桌面軟件項(xiàng)目的,閉嘴。你連一個(gè)桌面軟件項(xiàng)目的生命周期都沒(méi)經(jīng)歷過(guò),你憑什么做技術(shù)選型?憑信仰嗎?

裝逼結(jié)束,正文開(kāi)始。

首先,非主流技術(shù)和過(guò)時(shí)技術(shù)先淘汰掉,包括但不限于:delphi、mfc、c++ builder、gtk+、java系、易語(yǔ)言……

最終入圍的基本上就三種選擇:Web、Qt、C#。

首先說(shuō)Web,我們明確一點(diǎn),當(dāng)下的桌面軟件項(xiàng)目,必須具備完整的Web能力(包括開(kāi)發(fā)/部署/運(yùn)行/測(cè)試等),直觀的說(shuō)就是你的軟件中必須包含瀏覽器。尤其是企業(yè)軟件,發(fā)展到后期,除了核心功能之外,必然附帶大量的增刪改查模塊,這部分不用Web你會(huì)極其難受。有些人可能native用的挺熟練的,覺(jué)得不就是表格表單報(bào)表么?我用native一樣堆出來(lái)——相信我,你在浪費(fèi)生命。

Web必然入選,但是注意,Web入選不意味著electron入選。事實(shí)上如果不是互聯(lián)網(wǎng)公司的項(xiàng)目,我不建議使用electron。一方面,傳統(tǒng)公司不需要迭代那么快,他們前端力量也有限,出了問(wèn)題解決不了;另一方面,哪怕是互聯(lián)網(wǎng)項(xiàng)目,發(fā)展到后期,也不約而同地開(kāi)始約束前端隨意調(diào)用nodejs API的行為。

建議使用libcef提供Web能力,同時(shí)native封裝有限的API供Web調(diào)用。這里我不推薦使用框架原生的webview,比如QtWebEngine,以及winform自帶的WebBrowser組件,這些工具比較冷門,資料少,出了問(wèn)題不好排查,而且瀏覽器內(nèi)核版本也未必符合要求。

結(jié)論:libcef入選,electron淘汰,原生webview淘汰。

接下來(lái)考察C#和Qt,這兩個(gè)技術(shù)各有支持者,不是非黑即白的關(guān)系。比如我看韋大的答案下面很多人在爭(zhēng)論工控領(lǐng)域應(yīng)該用Qt還是C#,其實(shí)國(guó)內(nèi)工控領(lǐng)域的老大浙大中控,這兩個(gè)技術(shù)都在使用。

我個(gè)人比較推薦Qt,極其強(qiáng)大,跨平臺(tái),可以用C++單一語(yǔ)言(調(diào)試成本低),還有一些很貼心的功能,比如基于qss的換膚。不要覺(jué)得換膚不重要,實(shí)際上做項(xiàng)目賣軟件的公司經(jīng)常遇到這樣的需求,要么是甲方想用專有皮膚,要么是你接到的項(xiàng)目是OEM項(xiàng)目,中間商要求換膚。

但如果使用Qt,我不推薦使用Quick(Qml),太非主流,而且對(duì)比Web沒(méi)什么優(yōu)勢(shì)。建議能用Web的模塊就用Web,需要深度開(kāi)發(fā)的模塊使用QWidget配合OpenGL深度開(kāi)發(fā)。

結(jié)論:Qt入選,但是Quick淘汰。

C#能有一席之地,主要是因?yàn)閭鹘y(tǒng)。有些領(lǐng)域長(zhǎng)期以來(lái)就是使用C#開(kāi)發(fā),人才比較集中(C#人才確實(shí)比C++好招,而且便宜,也更不易跳槽),開(kāi)發(fā)效率也確實(shí)高。如果沒(méi)有跨平臺(tái)訴求,也不是前瞻性很強(qiáng)的項(xiàng)目,可以考慮沿用C#(關(guān)于前瞻性,多說(shuō)一句,新冷戰(zhàn)都要來(lái)了,你確定你的項(xiàng)目不需要跨平臺(tái)嘛)。

用了C#,還要選擇是用winform還是用WPF,按理說(shuō)這不該是個(gè)問(wèn)題——無(wú)腦WPF就完事兒了,畢竟開(kāi)發(fā)效率高,對(duì)于高分屏等新問(wèn)題微軟也會(huì)有相應(yīng)的支持。但是什么問(wèn)題只要涉及到“傳統(tǒng)”,就說(shuō)不清楚了,只能說(shuō)如果是新產(chǎn)品,不考慮技術(shù)資產(chǎn)繼承的話,建議WPF。

結(jié)論:WPF入選,winform你看著辦。

綜上,如果是我來(lái)作架構(gòu)師,通常情況下我會(huì)選擇Qt+libcef。兼顧強(qiáng)大功能與開(kāi)發(fā)效率,同時(shí)Qt和Web前端都是前景光明的主流技術(shù),社區(qū)力量強(qiáng)大,技術(shù)風(fēng)險(xiǎn)小。如果考慮到特定行業(yè)的技術(shù)積累(不光是你自己的積累,還有供應(yīng)商等等)和人才招聘,可以考慮WPF+libcef。

總結(jié)

以上是生活随笔為你收集整理的qt和c#怎么选_请问目前做windows桌面应用程序,MFC、QT、C#哪个更好?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。