碼農的轉型之路-上位機開發選型對比

上位機開發選型包括原生技術棧和混合技術棧,所謂混合應用是指基於原生+HTML同時使用開發的應用,涉及的技術框架有Electron、WinForms、WPF、Flutter、qt,另外還有套殼模式下是使用Chromium插件還是Webview2的分析。

 

一、各類框架優劣勢對比

  1. 淺顯易懂:WinForms、WPF和Electron的區別和優缺點

WinForms(Windows Forms)是Microsoft .NET Framework的一部分,使用C#或VB.NET編寫,主要用於Windows平臺的應用程序開發。

 

WPF(Windows Presentation Foundation)也是Microsoft .NET Framework的一部分,使用XAML和C#(或VB.NET)編寫,主要用於Windows平臺的富客戶端應用程序開發。

 

Electron是一個基於Web技術的開發框架,使用HTML、CSS和JavaScript編寫,可以用於跨平臺的桌面應用程序開發,支持Windows、macOS和Linux等操作系統。

WinForms的優點:

  • 簡單易學:WinForms使用傳統的窗體和控件模型,易於學習和使用。
  • 良好的集成性:WinForms是.NET Framework的一部分,可以與其他.NET技術和組件無縫集成。
  • 良好的性能:WinForms應用程序通常具有較低的資源消耗和較快的響應速度。

WinForms的缺點:

  • 限制的UI自定義:WinForms提供的UI控件較少,自定義和樣式化的能力有限。
  • 缺乏現代化的UI特性:WinForms的UI設計風格較爲傳統,缺乏現代化的UI特性和交互效果。

WPF的優點:

  • 強大的UI自定義:WPF使用XAML描述界面,提供豐富的自定義和樣式化能力,可以創建現代化和富有創意的用戶界面。
  • 數據綁定和MVVM支持:WPF內置了強大的數據綁定功能,支持MVVM(Model-View-ViewModel)模式,使應用程序的開發更加靈活和可維護。
  • 矢量圖形和動畫效果:WPF支持矢量圖形和動畫效果,可以創建高質量的可視化效果。

WPF的缺點:

  • 學習曲線較陡峭:WPF的學習曲線相對較陡峭,需要掌握XAML和一些複雜的概念。
  • 較高的資源消耗:由於WPF使用自己的渲染引擎,相比WinForms,WPF應用程序通常具有較高的資源消耗。

Electron的優點:

  • 跨平臺支持:Electron可以將應用程序打包爲可在不同操作系統上運行的可執行文件,提供了跨平臺的能力。
  • 使用Web技術:Electron使用HTML、CSS和JavaScript開發應用程序,可以利用豐富的Web技術和生態系統資源。
  • 社區活躍:Electron擁有活躍的開發社區,有大量的插件和工具可供使用。

Electron的缺點:

  • 較大的應用程序體積:由於Electron需要打包包含Chromium瀏覽器引擎的應用程序,因此應用程序的體積較大。
  • 較高的資源消耗:由於Electron使用Chromium瀏覽器引擎,相比傳統的桌面應用程序,Electron應用程序通常具有較高的資源消耗。

轉載自:https://baijiahao.baidu.com/s?id=1785952782307518905&wfr=spider&for=pc

  2.Electron VS Flutter非全面比較,看看哪個陣營適合你

Electron是一個基於Chromium和Node.js的開源框架,允許使用Web技術(HTML、CSS和JavaScript)構建跨平臺桌面應用程序。它使用主進程和渲染進程的架構,其中主進程運行Node.js環境,負責系統級操作,而渲染進程運行在Chromium中,負責顯示應用程序的用戶界面。

Flutter是一個由Google開發的開源框架,用於構建高性能、跨平臺的移動應用程序。它使用Dart語言編寫,並提供了自己的渲染引擎和組件庫,無需依賴操作系統的原生控件。Flutter應用程序通過單一的渲染線程進行渲染,並具有自己的佈局和繪製引擎。

開發語言

Electron使用Web技術棧,主要使用HTML、CSS和JavaScript進行開發。開發者可以使用衆多的Web開發工具、框架和庫來構建應用程序。

Flutter使用Dart語言進行開發,Dart是一種面向對象的編程語言,具有強大的靜態類型檢查和JIT/AOT編譯器。Dart語言相對較新,但它易於學習,具有良好的性能和可讀性。

轉載自:https://www.zhihu.com/tardis/bd/art/662803053?source_id=1001

  3.上位機用QT還是winform/wpf好?

QT 是一個跨平臺的 C++ 應用程序框架,它提供了豐富的 UI 組件和功能強大的網絡通信、數據庫操作等模塊。QT 的優勢在於其良好的跨平臺性能,可以方便地部署在 Windows、Linux、macOS 等不同操作系統上。此外,QT 還具有強大的 UI 設計能力,可以輕鬆實現各種複雜的界面效果。但是,QT 的缺點也比較明顯,那就是開發難度相對較高,需要開發者具備一定的 C++ 編程基礎。

WinForm 是微軟 .NET Framework 平臺下的一個桌面應用程序開發框架,而 WPF 則是 Windows Presentation Foundation,是微軟新一代的 UI 框架。WinForm/WPF 的優勢在於開發難度較低,容易上手,特別是對於已經熟悉 C# 語言的程序員來說更加便捷。此外,WinForm/WPF 也具有豐富的 UI 組件和良好的性能。但是,WinForm/WPF 的跨平臺能力相對較弱,主要支持 Windows 操作系統。

轉載自:https://baijiahao.baidu.com/s?id=1779606451637272769&wfr=spider&for=pc

二、Chromium還是Webview2?

 討論Chromium還是Webview2,基本都是基於WPF或Winform套殼方案,Webview2本身是基於Chromium開發。

對於wpf的集成web,cefsharp和webview2如何選擇 ?

1. CefSharp:

  - CefSharp是一個基於Chromium的.NET封裝庫,提供了完整的Web瀏覽器控件。它具有強大的功能和靈活性,支持HTML5、JavaScript、CSS等現代Web技術。

  - CefSharp相對來說更成熟,使用較爲廣泛,擁有豐富的文檔和社區支持。

  - 使用CefSharp需要將其作爲第三方庫引用到項目中,並且配置和使用較爲複雜,需要處理跨平臺的依賴和兼容性問題。

2. WebView2:

  - WebView2是微軟官方推出的WPF和WinForms的Web瀏覽器控件,基於新一代的Microsoft Edge瀏覽器內核(Chromium)。

  - WebView2提供了與現代Web標準完全兼容的功能,同時也受益於Edge瀏覽器的穩定性和性能優化。

  - 使用WebView2只需添加一個NuGet包引用,並在應用程序中進行簡單的配置。由於是微軟官方支持的技術,因此與WPF平臺的兼容性更好。

選擇使用CefSharp還是WebView2取決於您的需求和優先考慮的因素:

- 如果您對自定義性和靈活性有更高的要求,或者需要使用特定的Chromium版本,那麼選擇CefSharp可能更適合。特別是在跨平臺開發的情況下,CefSharp提供了更好的跨平臺支持。

- 如果您更注重簡單的集成過程、與WPF平臺更好的兼容性以及由微軟官方支持的解決方案,那麼WebView2可能是更好的選擇。隨着WebView2的不斷更新和改進,它也將成爲更加強大和可靠的解決方案。

轉載自:https://www.jianshu.com/p/3430f97bbe1

 

三、寫在最後

以上技術框架都有大咖加持,不代表就沒有小卡拉米的發揮空間。首先定位不同,我定位的是替代物聯網採集和控制上位機開發的工作量。這裏除了界面使用H5之外,需要提供一套物聯網控制的js接口,比如RFID、地磅秤、溫溼度傳感器、警示燈等,並且支持原生的二次開發能力。另外目前是支持Windows系統,將來支持Android或者鴻蒙系統,對上層H5開發的應用不受影響,可以跨平臺使用。

其模式與uni app開發的類似(在考慮是否直接支持uniapp的html5 plus底層接口,感覺工作量太大,而且定位還是有所不同),在各類平臺的套殼使用原生技術開發,再內嵌一個webview發佈一套js api支持通用UI層調用。

這樣既支持物聯網項目快速開發,又保留了web開發的界面優勢。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章