發(fā)布時(shí)間:2024-01-04 15:29:22 瀏覽量:239次
以C?;蚱渌?NET的語言(例如Visual Basic(VB))可以使用多種UI技術(shù)構(gòu)建跨平臺(tái)應(yīng)用程序。本文研究了三種技術(shù),并討論了在哪些情況下開發(fā)人員可以使用這些技術(shù)。本文使您對(duì)C#中可用于構(gòu)建前端應(yīng)用程序的技術(shù)有一個(gè)基本的了解,并將回答諸如哪些平臺(tái)可用的問題。 可以在瀏覽器中運(yùn)行嗎?它會(huì)具有原生的外觀和感覺嗎?另外,可以將其部署到應(yīng)用商店嗎?
.NET Framework是一項(xiàng)在2000年代初期創(chuàng)建的技術(shù),主要用于Windows桌面應(yīng)用程序。當(dāng)時(shí)主要的兩種語言是C#和VB。這些語言可編譯為通用中間語言 (CIL-以前稱為Microsoft中間語言MSIL)。當(dāng)時(shí),.NET的主要競(jìng)爭(zhēng)對(duì)手是 Java。它與.NET相似,但從一開始就是為跨平臺(tái)兼容性而設(shè)計(jì)的。Java包括跨平臺(tái)的UI框架Swing。.NET發(fā)布后不久, Mono平臺(tái)于2004年發(fā)布。此框架允許將庫編譯為CIL并在Linux等平臺(tái)上運(yùn)行。但是,UI技術(shù)(例如 Windows窗體)在.NET上構(gòu)建的版本無法在其他平臺(tái)上運(yùn)行,因?yàn)樗鼈円蕾嘩indows操作系統(tǒng)的本機(jī)組件。Mono平臺(tái)不斷發(fā)展,開發(fā)人員為每個(gè)平臺(tái)創(chuàng)建了多個(gè)UI組件,但是沒有一個(gè)跨平臺(tái)UI組件成為事實(shí)上的標(biāo)準(zhǔn)。Microsoft不會(huì)將任何UI技術(shù)都推向所有平臺(tái)。
自.NET成立以來,情況發(fā)生了很大變化?,F(xiàn)在,人們每天至少使用五種主要操作系統(tǒng):Windows(臺(tái)式機(jī)/平板電腦),OSX(臺(tái)式機(jī)),Android(電話/平板電腦),iOS(電話/平板電腦),Linux(主要是臺(tái)式機(jī))。還有許多其他平臺(tái)來驅(qū)動(dòng)諸如手表之類的設(shè)備和諸如Tizen之類的電視組件。隨著App Store的出現(xiàn),應(yīng)用程序的部署機(jī)制也在迅速改變?,F(xiàn)在,在手機(jī)上部署應(yīng)用程序的標(biāo)準(zhǔn)方法是通過各種應(yīng)用程序商店,人們開始期望他們的手機(jī)和平板電腦能夠運(yùn)行與臺(tái)式機(jī)相同的應(yīng)用程序。
現(xiàn)在,在應(yīng)用程序開發(fā)部署中,安全性是一個(gè)重要的考慮因素。臺(tái)式機(jī)落后于手機(jī),因?yàn)樵S多應(yīng)用程序仍然需要用戶以安裝程序的形式下載該應(yīng)用程序,然后手動(dòng)進(jìn)行安裝。這是一個(gè)巨大的問題,任何忽略此問題的開發(fā)人員都將承擔(dān)后果。如果用戶被迫從互聯(lián)網(wǎng)下載應(yīng)用程序,那么他們就會(huì)遭受惡意軟件的攻擊。他們失去了對(duì)應(yīng)用程序級(jí)別權(quán)限的控制,并向計(jì)算機(jī)打開間諜軟件的權(quán)限。沒有權(quán)限審查該軟件。隨著用戶變得越來越精明,越來越少的人開始容忍這種情況,并選擇通過App Store或在瀏覽器中部署應(yīng)用程序。
關(guān)鍵是這樣的:
您需要安全地部署應(yīng)用程序,并且需要在盡可能多的平臺(tái)上進(jìn)行部署。
Xamarin 是一家公司,其工程師創(chuàng)建了Mono平臺(tái)以在許多平臺(tái)上運(yùn)行CIL。Xamarin在2016年被微軟收購。他們?nèi)匀痪S護(hù)Mono平臺(tái),該平臺(tái)允許C#代碼在iOS,Android和其他平臺(tái)上運(yùn)行。開發(fā)人員經(jīng)常使用Xamarin作為Mono的同義詞,但是Xamarin還是一套CIL庫,可在非Windows平臺(tái)上驅(qū)動(dòng)應(yīng)用程序。
.NET Core是類似于 .NET Framework的現(xiàn)代桌面運(yùn)行時(shí)環(huán)境。它可以在OSX,Linux和Windows等操作系統(tǒng)上運(yùn)行。自成立以來,開發(fā)人員在Mono平臺(tái)之上構(gòu)建了多個(gè)UI框架,因此構(gòu)建跨平臺(tái)運(yùn)行的前端應(yīng)用程序的能力已成為現(xiàn)實(shí)。其中一些UI框架也可以在Mono上運(yùn)行。這意味著現(xiàn)在有可能構(gòu)建跨平臺(tái)相似性完美的像素的應(yīng)用程序。
開發(fā)人員不能忽略 Web Assembly(Wasm)。它是一種內(nèi)置于瀏覽器中的新興技術(shù),并得到W3C的支持。這項(xiàng)技術(shù)從本質(zhì)上允許開發(fā)人員編譯可以在瀏覽器中運(yùn)行的代碼,而這些代碼可以像JavaScript一樣安全地運(yùn)行。最重要的是,它是獨(dú)立于語言的“基于堆棧的虛擬機(jī)的二進(jìn)制指令格式”。C#編譯為這種指令格式,因此為C#開發(fā)人員打開了UI功能的新世界。C#代碼可以以Silverlight 類似的方式在瀏覽器中運(yùn)行。
XAML在這里也需要提及。XAML是一種標(biāo)記語言,用于在大多數(shù)基于C#的UI框架中以聲明方式定義UI。這里提到的三個(gè)平臺(tái)都支持XAML。XAML對(duì)C#就像HTML對(duì)JavaScript。但是,XAML比HTML更進(jìn)一步,因?yàn)樗粌H包括CSS之類的樣式,而且還具有非常強(qiáng)大的數(shù)據(jù)綁定功能。
以下是基于這些運(yùn)行時(shí)的UI技術(shù)。
Uno
Uno Platform是基于XAML的開源UI庫和平臺(tái),可在iOS,Android和Web Assembly上運(yùn)行。它呈現(xiàn)給本機(jī)控件,但嘗試在非Windows 10平臺(tái)上模擬Windows UWP圖形庫。它具有現(xiàn)代的Windows 10外觀,并且可以使用XAML樣式輕松自定義。
“通用Windows平臺(tái)橋,允許基于UWP的代碼在iOS,Android和WebAssembly上運(yùn)行”。
https://github.com/nventive/Uno
平臺(tái): iOS,Android,WebAssembly,Windows(作為UWP)
App Store: Apple Store,Google Play,Microsoft Store(使用UWP編譯時(shí))
渲染類型:本機(jī)??丶男袨榕c在本地平臺(tái)上一樣。但是,默認(rèn)情況下,控件的樣式類似于Windows 10應(yīng)用程序,并且接近完美像素。可以更改樣式,使其看起來更像本機(jī)平臺(tái)。
Xamarin.Forms
Xamarin.Forms是基于XAML的開源工具包,支持Android,iOS,Windows UWP,開箱即用的預(yù)覽OSX,并且將來可能會(huì)支持Linux。它是一種手機(jī)驅(qū)動(dòng)的UI技術(shù),但通過將聲明性XAML呈現(xiàn)給本機(jī)UI組件,彌合了手機(jī),平板電腦和臺(tái)式機(jī)之間的鴻溝。
Xamarin.Forms為.NET開發(fā)人員提供了完整的跨平臺(tái)UI工具包。在Visual Studio中使用C#構(gòu)建完全本機(jī)的Android,iOS和通用Windows平臺(tái)應(yīng)用程序。
https://docs.microsoft.com/zh-cn/xamarin/xamarin-forms/
平臺(tái): iOS,Android,Tizen,Windows(作為UWP)。其他平臺(tái)正在 預(yù)覽中。
App Store: Apple Store,Google Play,Microsoft Store
渲染類型:本機(jī)。專為iOS構(gòu)建的應(yīng)用在外觀和行為上均類似于iOS應(yīng)用。Android應(yīng)用的外觀和行為類似于Android應(yīng)用。
Avalonia
Avalonia是基于XAML的開源UI庫和平臺(tái),可在Windows,Linux和OSX上運(yùn)行。社區(qū)基于Windows WPF UI框架。因此,它主要針對(duì)臺(tái)式機(jī)使用,可能不太適合移動(dòng)應(yīng)用程序。
我們支持Windows,Linux和OSX,并提供針對(duì)Android和iOS的實(shí)驗(yàn)性移動(dòng)支持。
http://avaloniaui.net/
平臺(tái): Windows,Linux和OSX,以及對(duì)iOS和Android的實(shí)驗(yàn)性支持。該技術(shù)主要基于 .NET Core。
應(yīng)用商店:未知。將來可能會(huì)通過App Store發(fā)行Avalonia應(yīng)用。但是,目前尚無明確的文檔或執(zhí)行此操作的途徑。
渲染類型:像素完美。該平臺(tái)控制渲染,并且不依賴本機(jī)組件進(jìn)行渲染。
如果是這樣,Uno Platform可能是這里的明顯贏家。這是唯一從頭開始支持Wasm的平臺(tái)。從頭開始構(gòu)建具有瀏覽器支持的應(yīng)用程序是一個(gè)明智的選擇,因?yàn)樗梢源_保最大程度的滲透。用戶不必從App Store下載應(yīng)用程序即可使用您的應(yīng)用程序,但可以免受惡意軟件的侵害。
注意:Xamarin.Forms和Uno Platform可以一起使用。
如果是這樣,Xamarin.Forms可能是正確的選擇。像Uno平臺(tái)一樣,Xamarin.Forms允許在各個(gè)平臺(tái)之間聲明性地定義UI,但基于本機(jī)平臺(tái)呈現(xiàn)UI。因此,不會(huì)因不以特定于平臺(tái)的方式運(yùn)行的控件而使用戶感到震驚。默認(rèn)情況下,樣式近似于平臺(tái)的本機(jī)外觀,而Uno Platform看起來更像Windows10。但是,Xamarin.Forms和Uno Platform都允許為其本機(jī)平臺(tái)進(jìn)行樣式設(shè)置。
Xamarin.Forms當(dāng)前已獲得Microsoft的全面支持,因此可以保證在不久的將來會(huì)獲得支持。但是,Uno平臺(tái)是一個(gè)令人印象深刻的平臺(tái),無疑是Xamarin.Forms的值得競(jìng)爭(zhēng)者。如果要構(gòu)建本機(jī)應(yīng)用程序,則需要同時(shí)試用Uno Platform和Xamarin.Forms,以了解最適合您的項(xiàng)目的方法。
從某種意義上講,這是一個(gè)反問。如前所述,您不應(yīng)期望用戶在商店或?yàn)g覽器之外下載應(yīng)用。但是,在某些合理的情況下,您的用戶可能會(huì)喜歡具有 .NET Core運(yùn)行時(shí)所有功能的,在Linux,Windows和OSX上都是像素完美的自定義適合桌面的體驗(yàn)。在這種情況下,Avalonia是您最好的選擇。
作為一個(gè)UI庫,Avalonia不應(yīng)該被低估。任何WPF開發(fā)人員都熟悉它,并且非常容易運(yùn)行和直接使用。強(qiáng)大的 .NET Core平臺(tái)使其成為一個(gè)令人信服的選擇。
熱門資訊
1. iPhone6的UI設(shè)計(jì)尺寸規(guī)范,原來如此重要!
想要了解iPhone6界面設(shè)計(jì)的尺寸規(guī)范嗎?這里為您詳細(xì)介紹iPhone6的UI設(shè)計(jì)尺寸規(guī)范,包括界面尺寸、圖標(biāo)尺寸、可點(diǎn)擊高度規(guī)范、搜索欄高度規(guī)范以及界面元素之間的距離規(guī)范。
2. 12個(gè)絕佳的UI設(shè)計(jì)網(wǎng)站,助力你的創(chuàng)作之旅!
將為大家介紹12個(gè)絕佳的UI設(shè)計(jì)網(wǎng)站,這些網(wǎng)站不僅可以為你提供靈感,還可以幫助你學(xué)習(xí)新的技巧,助力你的創(chuàng)意之旅!dribbbleDribbble 是一個(gè)面向設(shè)計(jì)師的...
3. 移動(dòng)端UI設(shè)計(jì)中常見的5種APP界面類型,你get到了嗎?
通過介紹移動(dòng)端UI設(shè)計(jì)中的閃屏頁、引導(dǎo)頁、浮層引導(dǎo)頁、空白頁和首頁等5種APP界面類型,幫助大家更好地了解UI設(shè)計(jì)的基本知識(shí)
4. 10個(gè)免費(fèi)學(xué)習(xí)UI設(shè)計(jì)的網(wǎng)站 提升你的設(shè)計(jì)能力
怎樣可以提升你的UI設(shè)計(jì)能力!第一個(gè):站酷站酷想必是設(shè)計(jì)師都知道的一個(gè)網(wǎng)站,里面不止有UI設(shè)計(jì)的資源,還有其他設(shè)計(jì)的,不如:平面設(shè)計(jì)、網(wǎng)頁設(shè)計(jì)、字體...
5. 移動(dòng)端列表頁和表單頁設(shè)計(jì)秘訣:讓你的APP點(diǎn)擊率翻倍
在移動(dòng)端設(shè)計(jì)中,列表頁和表單頁是不可或缺的部分。一個(gè)好的列表頁和表單頁設(shè)計(jì)能夠讓用戶輕松地獲取信息并產(chǎn)生點(diǎn)擊欲望,從而提高點(diǎn)擊率。本文將為你...
6. 推薦10本適合UI設(shè)計(jì)師看的書籍,輕松掌握技能!
對(duì)于想要提高自己的設(shè)計(jì)能力和創(chuàng)造力的小白和UI設(shè)計(jì)師來說,這本書是一個(gè)很好的選擇。4.《設(shè)計(jì)的覺醒》(IKKO TANAKA)推薦理由: 這本書是日本現(xiàn)代平面...
7. 零基礎(chǔ)學(xué)UI設(shè)計(jì)要多久?培訓(xùn)完能拿多少工資?
探索零基礎(chǔ)UI設(shè)計(jì)培訓(xùn)的時(shí)長(zhǎng)與薪資前景。了解數(shù)字藝術(shù)教育領(lǐng)域的專業(yè)課程,以及培訓(xùn)后的職業(yè)發(fā)展機(jī)會(huì)。
8. 物聯(lián)網(wǎng)APP UI設(shè)計(jì):創(chuàng)造智能硬件領(lǐng)域的沉浸式體驗(yàn)
ui設(shè)計(jì)應(yīng)該讓用戶一目了然,能夠快速找到所需的信息和功能。在設(shè)計(jì)過程中,應(yīng)盡量使用簡(jiǎn)潔的圖標(biāo)、文字和色彩,避免過多的視覺干擾。符合用戶習(xí)慣:ui設(shè)...
9. 武漢UI設(shè)計(jì)培訓(xùn)班費(fèi)用怎么樣?想學(xué)UI設(shè)計(jì)要多少錢?
想了解武漢UI設(shè)計(jì)培訓(xùn)班的費(fèi)用是多少嗎?不知道學(xué)UI設(shè)計(jì)要花多少錢?不妨看看這篇文章,了解UI設(shè)計(jì)培訓(xùn)班的學(xué)費(fèi)價(jià)格以及學(xué)習(xí)內(nèi)容。
10. 設(shè)計(jì)中的色彩心理學(xué):淺析中西方色彩的歷史演變與設(shè)計(jì)應(yīng)用
摘要:本文探討了色彩的歷史演變和設(shè)計(jì)應(yīng)用。通過對(duì)色彩在早期文明社會(huì)中的實(shí)用運(yùn)用、不同文化背景下色彩觀念的差異、色彩在設(shè)計(jì)中的重要性以及新興技...
最新文章
同學(xué)您好!