這篇文章給大家分享的是有關(guān)什么是.NET Native的內(nèi)容。小編覺得挺實(shí)用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。
成都創(chuàng)新互聯(lián)公司主要業(yè)務(wù)有網(wǎng)站營銷策劃、成都網(wǎng)站設(shè)計、做網(wǎng)站、微信公眾號開發(fā)、小程序開發(fā)、H5建站、程序開發(fā)等業(yè)務(wù)。一次合作終身朋友,是我們奉行的宗旨;我們不僅僅把客戶當(dāng)客戶,還把客戶視為我們的合作伙伴,在開展業(yè)務(wù)的過程中,公司還積累了豐富的行業(yè)經(jīng)驗(yàn)、成都全網(wǎng)營銷推廣資源和合作伙伴關(guān)系資源,并逐漸建立起規(guī)范的客戶服務(wù)和保障體系。
什么是.NET Native?
.NET Native是一套在Visual Studio 2015中編譯通用Windows(UWP)應(yīng)用的預(yù)編譯工具,它可以將托管的中間語言二進(jìn)制文件編譯為本地二進(jìn)制文件,每一個托管的通用Windows應(yīng)用都將受益于這項(xiàng)新技術(shù)。在用戶設(shè)備上安裝之前,應(yīng)用會自動編譯為原生代碼。有關(guān)其工作機(jī)制的詳情可以查看MSDN。
.NET Native會帶來什么?
根據(jù)不同的情況,.NET Native所帶來的好處各種各樣。不過在大多數(shù)情況下,.NET Native將會使得應(yīng)用啟動更快、運(yùn)行更好、占用用戶系統(tǒng)資源更少。具體優(yōu)點(diǎn)如下:
冷啟動效率提升60%
熱啟動效率提升40%
原生編譯時應(yīng)用占用內(nèi)存資源更少
系統(tǒng)無需安裝桌面.NET Runtime
由于應(yīng)用在本地編譯,性能可以借助原生代碼的優(yōu)勢得到改善
可利用業(yè)內(nèi)領(lǐng)先的C#或VB及其編程語言工具
提供全面而一致的.NET編程模型,包括編寫業(yè)務(wù)模型所需的擴(kuò)展API、內(nèi)置內(nèi)存管理以及異常處理等
Debug和Release兩種編譯模式的差異
.NET Native的編譯過程十分復(fù)雜,相比于傳統(tǒng)的.NET編譯,編譯時間稍微長一些。上面提到的那些優(yōu)點(diǎn)犧牲了一部分編譯時間。Visual Studio在編譯應(yīng)用時會提醒開發(fā)者這一點(diǎn),保證了良好的開發(fā)體驗(yàn)。
當(dāng)使用Debug編譯模式時,在應(yīng)用中運(yùn)行的是中間語言代碼,.NET系統(tǒng)部件不和應(yīng)用代碼一起封裝,而且應(yīng)用需要依賴Microsoft.NET.CoreRuntime (CoreCLR)包。這就意味著,開發(fā)者可以享有最優(yōu)的開發(fā)體驗(yàn)。編譯和配置都十分迅速,有著豐富的調(diào)試和診斷信息,在.NET開發(fā)中還可以使用所有熟悉的工具。
而對于Release模式,應(yīng)用會默認(rèn)使用.NET Native工具鏈。由于程序包編譯成了本地二進(jìn)制文件,它就不用再包含.NET框架庫。另外,程序包依賴于最新安裝的.NET Native Runtime而不是CoreCLR包,設(shè)備上的.NET Native Runtime始終與應(yīng)用程序包兼容。
通過Release的本地原生編譯可以在一個模擬用戶使用的環(huán)境里對應(yīng)用進(jìn)行測試。在應(yīng)用開發(fā)過程中,定期的測試十分重要,這樣可以保證查找和修改.NET Native編譯器相關(guān)的錯誤。大多數(shù)情況下.NET Native編譯器會正常工作,但在少數(shù)情況下可能就不那么順利了,比如4維以上的數(shù)組可能引發(fā)錯誤。用戶最后獲得的是.NET Native編譯的應(yīng)用,所以最好在開發(fā)過程中測試應(yīng)用的版本,確認(rèn)無誤而后再發(fā)布。
另外需要補(bǔ)充的是,.NET Native取消了跨平臺的編譯模式。原生編譯的架構(gòu)獨(dú)立,因此跨平臺編譯不再有用。一個附加的結(jié)果是,當(dāng)開發(fā)者打包應(yīng)用程序時,需要將三個體系結(jié)構(gòu)配置(x86、x64、ARM)全部選中,以保證應(yīng)用程序?qū)λ械脑O(shè)備都能兼容。
.NET Native改變了打發(fā)布包的方式,這是給工作流帶來的最后一個重大變化。.NET Native的一大特點(diǎn)是,編譯器可以放置在云端。在Visual Studio中編譯應(yīng)用包時會創(chuàng)建兩個包,一個是.appxupload文件,另一個是側(cè)面加載用的“測試”.appx文件。.appxupload包含了MSIL二進(jìn)制文件和應(yīng)用使用的.NET Native工具鏈版本信息(也記錄在了AppxManifest.xml文件中)。編譯后的程序包接下來放入應(yīng)用商店,然后被相同版本的.NET Native工具鏈編譯。因?yàn)榫幾g器置于云端,開發(fā)者無需在本地重新編譯應(yīng)用程序,便能夠反復(fù)多次修改程序缺陷。
這樣的改變給開發(fā)者工作流又帶來了另外兩個改變。第一是開發(fā)者不能修改應(yīng)用程序包的第四個版本號,這是因?yàn)閼?yīng)用商店需要通過修改版本號來標(biāo)記在云端的每一次編譯行為。不過開發(fā)者還能修改其他三個版本號,所以不必有太大的疑慮。第二是需要開發(fā)者特別注意上傳到應(yīng)用商店的程序包。應(yīng)用商店代替開發(fā)者進(jìn)行原生編譯,所以開發(fā)者不能上傳本地.NET Native編譯器生成的原生二進(jìn)制文件。對此,Visual Studio會幫助開發(fā)者選擇正確的文件。
總結(jié)來說,.NET Native帶來的最主要的變化是以下幾點(diǎn):
使用Release模式定期測試開發(fā)的應(yīng)用程序
確保修訂包編號為0(Visual Studio不允許修改,也不要使用文本編輯器修改)
只上傳創(chuàng)建包時生成的.appxupload文件至應(yīng)用商店。如果上傳通用Windows平臺的.appx文件,應(yīng)用商店會拒絕并報錯
使用.NET Native的其他小技巧
如果開發(fā)者懷疑.NET Native造成了某些錯誤,可以嘗試用以下方法解決。因?yàn)镽elease模式默認(rèn)優(yōu)化了代碼,這會丟失Debug模式下需要的一些生成文件,所以在Release模式中調(diào)試可能會出現(xiàn)錯誤。開發(fā)者可以新建一個自定義模式來使用.NET Native工具鏈,同時不要優(yōu)化代碼。詳細(xì)內(nèi)容可以查看這里。
從一開始就避免.NET Native相關(guān)的錯誤無疑是更好的選擇。Microsoft.NET Native.Analyzer在開發(fā)過程中如果遇到代碼與.NET Native沖突,會給出相應(yīng)的警告。
感謝各位的閱讀!關(guān)于“什么是.NET Native”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學(xué)到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
網(wǎng)站題目:什么是.NETNative
文章路徑:http://www.chinadenli.net/article20/pgiojo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站收錄、小程序開發(fā)、自適應(yīng)網(wǎng)站、電子商務(wù)、企業(yè)建站、虛擬主機(jī)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)