qt和c#怎么选_请问目前做windows桌面应用程序,MFC、QT、C#哪个更好?
回答問題之前,先裝個逼——沒有主導過生命周期三年以上的桌面軟件項目的,閉嘴。你連一個桌面軟件項目的生命周期都沒經歷過,你憑什么做技術選型?憑信仰嗎?
裝逼結束,正文開始。
首先,非主流技術和過時技術先淘汰掉,包括但不限于:delphi、mfc、c++ builder、gtk+、java系、易語言……
最終入圍的基本上就三種選擇:Web、Qt、C#。
首先說Web,我們明確一點,當下的桌面軟件項目,必須具備完整的Web能力(包括開發/部署/運行/測試等),直觀的說就是你的軟件中必須包含瀏覽器。尤其是企業軟件,發展到后期,除了核心功能之外,必然附帶大量的增刪改查模塊,這部分不用Web你會極其難受。有些人可能native用的挺熟練的,覺得不就是表格表單報表么?我用native一樣堆出來——相信我,你在浪費生命。
Web必然入選,但是注意,Web入選不意味著electron入選。事實上如果不是互聯網公司的項目,我不建議使用electron。一方面,傳統公司不需要迭代那么快,他們前端力量也有限,出了問題解決不了;另一方面,哪怕是互聯網項目,發展到后期,也不約而同地開始約束前端隨意調用nodejs API的行為。
建議使用libcef提供Web能力,同時native封裝有限的API供Web調用。這里我不推薦使用框架原生的webview,比如QtWebEngine,以及winform自帶的WebBrowser組件,這些工具比較冷門,資料少,出了問題不好排查,而且瀏覽器內核版本也未必符合要求。
結論:libcef入選,electron淘汰,原生webview淘汰。
接下來考察C#和Qt,這兩個技術各有支持者,不是非黑即白的關系。比如我看韋大的答案下面很多人在爭論工控領域應該用Qt還是C#,其實國內工控領域的老大浙大中控,這兩個技術都在使用。
我個人比較推薦Qt,極其強大,跨平臺,可以用C++單一語言(調試成本低),還有一些很貼心的功能,比如基于qss的換膚。不要覺得換膚不重要,實際上做項目賣軟件的公司經常遇到這樣的需求,要么是甲方想用專有皮膚,要么是你接到的項目是OEM項目,中間商要求換膚。
但如果使用Qt,我不推薦使用Quick(Qml),太非主流,而且對比Web沒什么優勢。建議能用Web的模塊就用Web,需要深度開發的模塊使用QWidget配合OpenGL深度開發。
結論:Qt入選,但是Quick淘汰。
C#能有一席之地,主要是因為傳統。有些領域長期以來就是使用C#開發,人才比較集中(C#人才確實比C++好招,而且便宜,也更不易跳槽),開發效率也確實高。如果沒有跨平臺訴求,也不是前瞻性很強的項目,可以考慮沿用C#(關于前瞻性,多說一句,新冷戰都要來了,你確定你的項目不需要跨平臺嘛)。
用了C#,還要選擇是用winform還是用WPF,按理說這不該是個問題——無腦WPF就完事兒了,畢竟開發效率高,對于高分屏等新問題微軟也會有相應的支持。但是什么問題只要涉及到“傳統”,就說不清楚了,只能說如果是新產品,不考慮技術資產繼承的話,建議WPF。
結論:WPF入選,winform你看著辦。
綜上,如果是我來作架構師,通常情況下我會選擇Qt+libcef。兼顧強大功能與開發效率,同時Qt和Web前端都是前景光明的主流技術,社區力量強大,技術風險小。如果考慮到特定行業的技術積累(不光是你自己的積累,還有供應商等等)和人才招聘,可以考慮WPF+libcef。
總結
以上是生活随笔為你收集整理的qt和c#怎么选_请问目前做windows桌面应用程序,MFC、QT、C#哪个更好?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ubuntu 两块硬盘挂载不上_win1
- 下一篇: java 类似xamarin_xamar