當前位置:首頁 > 技術學院 > 技術前線
[導讀]上位機開發(fā) 常用的平臺及語言

一、有哪些上位機開發(fā)平臺(優(yōu)缺點和使用場景)

由于上位機概念的廣泛性,所以上位機開發(fā)平臺可以是任何開發(fā)平臺。這里介紹幾個常用的經典的上位機開發(fā)平臺及其特性。

VB(Visual Basic)

開發(fā)語言:Basic(BASIC是一種直譯式的編程語言,在完成編寫后不須經由編譯及連接等步驟即可執(zhí)行,類似腳本語言)

開發(fā)工具:Visual Basic(語言簡單易用,對面向對象編程和多線程編程支持不完整)

適用平臺:WINDOWS ALL

平臺特點:以面向對象的思想開發(fā)可視化圖形界面的應用程序。采用面向對象程序設計方法(Object-Oriented Programming),把程序和數據封裝起來作為一個對象,每個對象都是可視的。開發(fā)人員在界面設計時,可以直接用Visual Basic 6.0的工具箱在屏幕上"畫"出窗口、菜單、命令按鍵等不同類型的對象,并為每個對象設置屬性。在流行的時候有大量功能庫可以使用,比如典型的數據庫管理控件。VB屬于在剛剛出現圖形界面開發(fā)階段的開發(fā)平臺。由于平臺老舊以及basic編程語言的缺點,現在已經沒有人使用了。雖然現在有了“Visual Basic .NET”但是使用的人很少。

VC(Virtual C++)

開發(fā)語言:面向對象語言C++(微軟更具C++標準實現的微軟版本, 編譯器采用cl.exe)

開發(fā)工具:Visual C++

適用平臺:WINDOWS ALL

平臺特點:以面向對象的思想開發(fā)可視化圖形界面的應用程序。最大的亮點是MFC框架。是微軟公司提供的一個類庫,以C++類的形式封裝了Windows API,并且包含一個應用程序框架,以減少應用程序開發(fā)人員的工作量??蚣鼙容^精簡,對于初學者理解電腦軟件開發(fā)框架有很大幫助。這也成了他的缺點,導致使用MFC開發(fā)軟件效率相對很低(程序猿要做大量界面編碼工作)。MFC開發(fā)出來的軟件界面也很簡陋,主要原因是要想美化需要程序猿自己做大量美化工作(量大到不適合個人開發(fā)者做這個美化工作)。當然在電腦端剛剛出現圖形界面開發(fā)時候,MFC這個框架簡直大量簡化了程序猿的工作量,并且提高了程序的質量。因此一度非常流行,以至于現今(2020年)還有這個MFC開發(fā)平臺的身影(大多處于維護階段的老項目)。

Delphi

開發(fā)語言:Object Pascal

開發(fā)工具:delphi7

適用平臺:WINDOWS ALL

平臺特點:Delphi 擁有一個可視化的集成開發(fā)環(huán)境(IDE),采用面向對象的編程語言ObjectPascal和基于部件的開發(fā)結構框架。Delphi它提供了非常多個可供使用的構件,利用這些部件,開發(fā)人員可以快速地構造出應用系統(tǒng)。開發(fā)人員也可以根據自己的需要修改部件或用Delphi本身編寫自己的部件。和VC相比,Delphi更簡單、更易于掌握,而在功能上卻絲毫不遜色;和VB相比,Delphi則功能更強大、更實用。 Delphi確實功能豐富開發(fā)效率高,到目前也還有人用。只是絕大多數是在做老項目的開發(fā)了,新項目基本上不會再用Delphi寫。主要原因是Delphi不是微軟自家的孩子。隨著微軟系統(tǒng)大量的系統(tǒng)更新,以及微軟自己的C#開發(fā)平臺興起,使得Delphi跟不上節(jié)奏了(Pascal編程語言本身也很少在其他開發(fā)平臺使用)。

WinForm

開發(fā)語言:C#

開發(fā)工具:Visual Studio

適用平臺:WINDOWS ALL

平臺特點:WinForm是目前很流行的Windows應用程序開發(fā)平臺,現在大部分windows應用程序都是使用WinForm開發(fā),提供對最新windows系統(tǒng)特性的支持,且擁有大量的第三方類庫。全面支持各種開發(fā)技術。開發(fā)的程序對windows所有系統(tǒng)都有非常好的兼容性和不俗的性能。屬于微軟的.net開發(fā),擁有強大齊全的各種封裝好的成熟類庫。借助優(yōu)秀的C#開發(fā)語言。是現階段Windows應用程序開發(fā)的不二之選。由于使用的人和公司多,Winform開發(fā)有大量博客可以參考,工作機會也很多,相比于其他開發(fā)平臺更好找工作。(至于擔心發(fā)布軟件還需要安裝net運行庫,沒有擔心的必要,微軟在系統(tǒng)中就自帶來常用的net運動庫,同時安裝包安裝程序的時候還可以檢測是否缺net運行庫,并引導安裝)。

WPF

開發(fā)語言:C#

開發(fā)工具:Visual Studio

適用平臺:WINDOWS ALL

平臺特點:WPF是在Winform的基礎上,重新使用新框架開發(fā)的應用程序編程平臺。對winform開發(fā)完全兼容。wpf引入了全新的界面布局框架XAML,可以輕松的創(chuàng)建出豐富美觀的界面,同時可以使用高級的動畫和特效,對屏幕自適應比winform更好。wpf使用DirectX來繪制控件(使用顯卡繪制),winform使用GDI來繪制控件(使用CPU繪制),因此wpf現實效果好,且不會大量占用cpu。由于WPF比Winform所使用的技術新,目前還是使用Winform的多一些。當然想要軟件最終效果好,更炫酷一點,那么你就選擇WPF。

Qt

開發(fā)語言:C++ (編譯器:linux: g++、macos: clang、win32: mingw、msvc)

開發(fā)工具:Qt Creater、Visual Studio

適用平臺:WINDOWS ALL、Linux、 MacOS

平臺特點:Qt是一個跨平臺應用程序開發(fā)框架,用于開發(fā)桌面程序、嵌入式程序和手機app。支持的操作系統(tǒng)平臺包括:Linux, OS X, Windows, VxWorks, QNX, Android, iOS, BlackBerry, Sailfish OS等。Qt最大的特點是跨平臺開發(fā),即:一次編碼多系統(tǒng)編譯。就是說只寫一次代碼,然后把這個代碼拿到各個系統(tǒng)上分別編譯。即可生成各個系統(tǒng)下的原生應用程序(并不是java那種依賴運行庫的跨平臺)。因此Qt開發(fā)的應用程序在各個系統(tǒng)下都可以獲得和原生應用程序同樣的性能。其次Qt使用面向對象語言C++開發(fā),因此運行效率比C#高。適用于開發(fā)一些需要大量運算的應用程序。比如圖像處理軟件,特效制作軟件等。由于Qt使用C++語言編程,因此以前使用VC++寫的老項目可以輕松使用

Qt重新開發(fā)(C++庫可以直接使用,之前C++代碼寫的邏輯函數可以復制過來直接使用)。這么好的平臺為什么用的人和公司不太多呢。因為之前Qt是收費的,用于開發(fā)商業(yè)軟件避免不了要交這個費用(不交錢法律上吃官司)?,F在Qt支持LGPL協(xié)議,意味著可以免費開發(fā)商業(yè)軟件了。qt也支持拖拽添加控件和布局軟件頁面。同時還支持使用qss動態(tài)修改控件樣式。再加上Qt的layout動態(tài)布局功能??梢詫崿F非常好看的軟件。這一點比winform好。外觀高度定制修改和wpf是一個水平。這里需要說明Qt編寫程序跨平臺編碼的前提是統(tǒng)一使用Qt提供的系統(tǒng)庫函數,如果你直接使用了Windows的系統(tǒng)庫函數,那么這個程序就只能在windows下編譯并使用了,除非你在其他系統(tǒng)上編譯時候替換成其他系統(tǒng)相應功能的系統(tǒng)庫函數。一般功能開發(fā)來說Qt提供的庫函數足夠豐富,除非是系統(tǒng)特有的功能需要Qt開發(fā)中特別處理。

Android

開發(fā)語言:Java

開發(fā)工具:Android Studio

適用平臺:安卓手機、安卓平板、安卓電視等

平臺特點:安卓開發(fā)官方的開發(fā)平臺就是Android Studio,是開發(fā)安卓app的官方指定平臺。其他各個開發(fā)平臺雖然也能開發(fā)安卓app,但是實際開發(fā)效果和Android Studio沒法相比。因此你需要開發(fā)安卓的上位機客戶端,就不要用雜七雜八的開發(fā)平臺了,安心學習java和Android Studio吧。雖然現在的混合app開發(fā)技術很火爆,但是如果你的安卓app是配合硬件使用的,就不建議使用混合app開發(fā)技術了,因為使得項目使用的技術變復雜了,即便是你能搞定,對于后續(xù)接手的程序猿維護開發(fā)就不方便了(對于以硬件為主的公司而言)。需要任意一臺電腦和測試手機或平板即可開發(fā)。

IOS

開發(fā)語言:Object-C、swift

開發(fā)工具:Xcode

適用平臺:蘋果手機、蘋果平板

平臺特點:Xcode是開發(fā)IOS軟件的唯一且官方的開發(fā)平臺。如你公司的硬件設備需要開發(fā)IOS的app。那么這個開發(fā)平臺幾乎是唯一也是最好的選擇。開發(fā)需要一臺蘋果電腦、一個公司或個人開發(fā)者賬號(按年收費)、一臺蘋果手機或平板。

LabVIEW

開發(fā)語言:拖拽圖形開發(fā)

開發(fā)工具:LabVIEW

適用平臺:Wondows、MacOS、Linux

平臺特點:LabVIEW是一種程序開發(fā)環(huán)境,由美國國家儀器(NI)公司研制開發(fā),LabVIEW與其他計算機語言的顯著區(qū)別是:其他計算機語言都是采用基于文本的語言產生代碼,而LabVIEW使用的是圖形化編輯語言編寫程序,產生的程序是框圖的形式。LabVIEW開發(fā)環(huán)境集成了工程師和科學家快速構建各種應用所需的所有工具,旨在幫助工程師和科學家解決問題、提高生產力和不斷創(chuàng)新。也就是說LabVIEW是幫助硬件開發(fā)工程師測試硬件的工具。通過拖拽畫圖即可運行出一個相當于上位的客戶端。其集成的眾多控件都是和硬件相關的,因此只適用于硬件開發(fā)測試,不適合其他任何上位軟件開發(fā)。LabVIEW開發(fā)的軟件也可以打包成獨立的安裝包。

MATLAB

開發(fā)語言:MATLAB

開發(fā)工具:MATLAB

適用平臺:Wondows、MacOS、Linux

平臺特點:MATLAB是工程師和科學家使用的一個高級數學工具軟件。雖然是個工具但是他具有開發(fā)圖形交互界面以及計算機通信的全部功能。因此也在這里稍微介紹一下。MATLAB主要用于計算機視覺、信號處理、機器人等控制系統(tǒng)、模型設計以及算法驗證。提供了Python、Java、C、C++等外部語言接口,可以供外部其他程序調用(用于調試與驗證算法)。因此在開發(fā)特殊行業(yè)的上位機軟件時候需要用到MATLAB??梢岳肕ATLAB單獨開發(fā)一個測試上位機端,也可以和其他開發(fā)平臺聯(lián)合開發(fā)上位端。MATLAB支持把MATLAB算法轉換成C/C++代碼、HDL、和CUDA代碼,便于算法的應用。

二、硬件工程師做簡單的上位機軟件,應該選擇哪個平臺

對于硬件開發(fā)工程師來說,想要做一個上位機軟件無論你選哪個開發(fā)平臺都不簡單,就像要上位機程序猿開發(fā)嵌入式硬件一樣難,都需要深入學習。除非你使用LabVIEW。

由于硬件工程師做一個上位機一般需求也不會太復雜,他的需求就是“怎樣用最少的精力開發(fā)一個基本能用的上位工具軟件,我也不打算深入去開發(fā)專業(yè)的上位機軟件”。

根據這個需求,從最簡單到復雜依次推薦的開發(fā)平臺如下:

LabVIEW:

優(yōu)點:投入最少的精力即可學會,而且可以快速開發(fā)出可用的上位機軟件

缺點:僅適合硬件特別相關的功能,不方便定制開發(fā)常用軟件

Qt:

優(yōu)點:可以滿足所有高級軟件功能開發(fā)。使用C++語言開發(fā),與硬件開發(fā)者使用的C最接近,相對容易上手開發(fā)。這里不推薦GTK+,是因為GTK+雖然是使用C語言編程,更加方便硬件工程師開發(fā),但是因為可參考的文檔和例子太少,讓硬件開發(fā)人員去讀GTK官方文檔并理解軟件開發(fā)上的一些概念,實在不理智。這里不推薦VC++,是因為VC++畢竟老舊了各種類庫也不如qt豐富,且學習VC++所需要的精力和學習Qt所用的精力沒有多少區(qū)別。因此還不如學習更好的qt?,F在也可以在網上找到很多qt的例子和博客,不用像以前擔心參考示例太少。

缺點:除了學習C++語法之外,還需要學習電腦軟件開發(fā)的一些概念,以及學習Qt框架知識和Qt庫函數使用方法

C#WinForm:

優(yōu)點:可以滿足所有高級軟件功能開發(fā)。使用高級語言C#開發(fā),開發(fā)效率高

缺點:需要全新學習C#語言,以及電腦軟件開發(fā)概念以及圖形界面庫函數功能

三、開發(fā)商業(yè)軟件應該選擇哪個開發(fā)平臺

商業(yè)公司開發(fā)的軟件是給眾多客戶使用的,軟件的好壞對應著公司的收益。因此,開發(fā)商業(yè)軟件要選擇開發(fā)平臺的時候,就比個人開發(fā)者面臨的限制多很多。一般面臨的限制如下:

開發(fā)平臺的普遍性:是否有很多人用,是否能隨時招聘到對應平臺的程序猿

開發(fā)平臺的穩(wěn)定性:開發(fā)出來的軟件是否穩(wěn)定、安全、易用

開發(fā)平臺是否收費:是否收費也很重要,有些平臺收費很貴,每賣一個軟件都有交使用費用就很不合算

開發(fā)平臺是否持久:開發(fā)平臺的公司是否對這個開發(fā)平臺做持續(xù)維護和新技術更新

以上為一個公司選擇開發(fā)平臺基本考慮要素。除此之外,所選平臺只要能滿足功能需求即可。

目前滿足以上基本考慮要素的PC軟件(偏上位機軟件)開發(fā)平臺有:

C#_WinForm

C#_WPF

C++_QT

本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內容真實性等。需要轉載請聯(lián)系該專欄作者,如若文章內容侵犯您的權益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或將催生出更大的獨角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數字化轉型技術解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關鍵字: AWS AN BSP 數字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術公司SODA.Auto推出其旗艦產品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關鍵字: 汽車 人工智能 智能驅動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務中斷的風險,如企業(yè)系統(tǒng)復雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務連續(xù)性,提升韌性,成...

關鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據媒體報道,騰訊和網易近期正在縮減他們對日本游戲市場的投資。

關鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數據產業(yè)博覽會開幕式在貴陽舉行,華為董事、質量流程IT總裁陶景文發(fā)表了演講。

關鍵字: 華為 12nm EDA 半導體

8月28日消息,在2024中國國際大數據產業(yè)博覽會上,華為常務董事、華為云CEO張平安發(fā)表演講稱,數字世界的話語權最終是由生態(tài)的繁榮決定的。

關鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應對環(huán)境變化,經營業(yè)績穩(wěn)中有升 落實提質增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務引領增長 以科技創(chuàng)新為引領,提升企業(yè)核心競爭力 堅持高質量發(fā)展策略,塑強核心競爭優(yōu)勢...

關鍵字: 通信 BSP 電信運營商 數字經濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術學會聯(lián)合牽頭組建的NVI技術創(chuàng)新聯(lián)盟在BIRTV2024超高清全產業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現場 NVI技術創(chuàng)新聯(lián)...

關鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關鍵字: BSP 信息技術
關閉
關閉