激情六月丁香婷婷|亚洲色图AV二区|丝袜AV日韩AV|久草视频在线分类|伊人九九精品视频|国产精品一级电影|久草视频在线99|在线看的av网址|伊人99精品无码|午夜无码视频在线

高校合作1:010-59833514 ?咨詢電話:400-810-1418 服務(wù)與監(jiān)督電話:400-810-1418轉(zhuǎn)接2

基于跨平臺(tái)的C# UI技術(shù)

發(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)。

現(xiàn)代生態(tài)系統(tǒng)

自.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)行部署。

現(xiàn)代運(yùn)行時(shí):Mono/Xamarin,.NET Core,Web Assembly

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平臺(tái)

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

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

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)行渲染。

如何選擇

v您需要瀏覽器支持嗎?

如果是這樣,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)目的方法。

您是否將臺(tái)式機(jī)與下載App Store之外的應(yī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è)令人信服的選擇。

熱門課程推薦

熱門資訊

請(qǐng)綁定手機(jī)號(hào)

x

同學(xué)您好!

您已成功報(bào)名0元試學(xué)活動(dòng),老師會(huì)在第一時(shí)間與您取得聯(lián)系,請(qǐng)保持電話暢通!
確定