免费观看又色又爽又黄的小说免费_美女福利视频国产片_亚洲欧美精品_美国一级大黄大色毛片

遷移#SNMP到.NETCore平臺的心得是什么

遷移#SNMP到.NET Core平臺的心得是什么,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。

目前創(chuàng)新互聯(lián)已為成百上千的企業(yè)提供了網(wǎng)站建設(shè)、域名、網(wǎng)站空間、網(wǎng)站改版維護、企業(yè)網(wǎng)站設(shè)計、播州網(wǎng)站維護等服務(wù),公司將堅持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。

準備階段

首先,Visual Studio 2015是必要的開發(fā)工具。雖然它已經(jīng)包含了.NET Core的原始測試版,這里還是推薦下載 RC1 安裝包,

http://get.asp.net

請下載 ASP.NET 5 RC 那個版本。下面都是假設(shè)在 Windows 系統(tǒng)上。

執(zhí)行安裝程序,它會進一步下載更多的部件。等到安裝完成,就可以進行 .NET Core RC1程序的開發(fā)。

下面讓我們進一步升級到 RC1 Update 1這個升級版本:

  1. 打開 Visual Studio Command Prompt。

  2. 執(zhí)行”dnvm upgrade”命令。

  3. 再執(zhí)行”dnvm list”命令。

如果一切正常,那么這時候輸出應(yīng)該是這樣的,

C:\Program Files (x86)\Microsoft Visual Studio 14.0>dnvm list

Active Version           Runtime Architecture Location                     Alias
—— ——-           ——- ———— ——–                     —–
       1.0.0-rc1-final   clr     x86          C:\Users\lextm\.dnx\runtimes
       1.0.0-rc1-update1 clr     x64          C:\Users\lextm\.dnx\runtimes
  *    1.0.0-rc1-update1 clr     x86          C:\Users\lextm\.dnx\runtimes default
       1.0.0-rc1-update1 coreclr x64          C:\Users\lextm\.dnx\runtimes
       1.0.0-rc1-update1 coreclr x86          C:\Users\lextm\.dnx\runtimes

開始遷移

下面可以開啟 Visual Studio 2015,并且創(chuàng)建一個類型是 Class Library (Package) 的新工程(Visual Studio 2015 Update 1似乎把這個工程類型改名了,研究中)。這種工程的文件后綴是.xproj。這種工程的編譯結(jié)果會是一個 NuGet 包。

在往里面加入新東西之前,我們先來研究一下 project.json 文件。

需要注意的是 project.json 是全新的管理依賴項的方式,它既代替了原來管理 NuGet 包的 packages.config,也替代了原來 .csproj 工程文件中管理引用的部分。

一個范例是 #SNMP Library 現(xiàn)在使用的 project.json 文件,

https://github.com/lextm/sharpsnmplib/blob/netcore5/SharpSnmpLib/project.json

從中我們可以看到,既有用來描述 NuGet 包的各種元數(shù)據(jù)信息,也包含依賴項。

其中比較主要的部分是它指明了兩個平臺別名(moniker),一個是 .NET Framework 4.5.1(net451),另一個是 .NET Platform Standard 5.4(dotnet5.4)。

前者有一個基本的引用列表,所以不太需要指明具體庫的應(yīng)用,但是比較特殊的是 System.Runtime.Serialization,所以它是唯一需要寫明的一個引用。

而后者怎是一個新的別名,用來標識一個包含完整 API 清單的 .NET 平臺。凡是支持這個平臺標準5.4版本的 CLR 實現(xiàn)(不限 .NET Framework,Mono 或者 Xamarin),都可以使用我們編譯之后的 NuGet 包。關(guān)于平臺標準的細節(jié)可以閱讀下面的文檔,

https://github.com/dotnet/corefx/blob/master/Documentation/architecture/net-platform-standard.md

不過它已經(jīng)更新 RC2 的版本,所以版本號已經(jīng)改為從1.0計算了。

面向平臺標準開發(fā)的一大困擾就是所有的引用都需要手工指明。而這些引用也最后來自于對應(yīng)的 NuGet 包。那么怎么尋找這些包和它們的對應(yīng)版本呢?

簡單來說,步驟就是將要遷移的項目代碼手工拷貝到新工程里,然后編譯。凡是找不到的類型,我們使用微軟臨時發(fā)布的一個查詢網(wǎng)站

http://packagesearch.azurewebsites.net

來查詢包含它的 NuGet 包和版本。這是一個有點費時間的過程,因為

  • 有些類型是 RC1不存在的,而且可能也不會出現(xiàn)在 RC2等后續(xù)版本。于是需要換變通的方式。

  • 有些類型在后續(xù)版本中會有,那么需要等待。

  • 有些類型僅僅出現(xiàn)在桌面版本的 .NET Framework 中于是需要條件編譯。

因為僅僅作為一個測試,所以我在遷移 #SNMP Library 過程中就刪去了很多代碼。另外由于 Socket 類型的同步方法都被移除,我也不得不將很多 #SNMP Library 的代碼改寫為 async/await 方式。等微軟正式發(fā)布 RC2,我會考慮再遷移一部分代碼過去。

到此,只要編譯通過,那么初步的遷移工作也就結(jié)束了。

寫在最后

還有其他值得注意之處:

  • 和 project.json 對應(yīng),Visual Studio 會維護一個 project.lock.json 文件。這個文件詳細記錄了依賴項展開的情況,了解它的結(jié)構(gòu)有利于調(diào)試一些依賴項問題。但是不要將它簽入到版本控制。

  • .xproj 工程不像 .csproj 那樣需要明確指示工程包含的源文件,而是默認將同一文件夾下面所有源文件引入。因此有可能遷移過程中需要調(diào)整下工程文件的組織。

  • 暫時沒有特別方便的單元測試集成。后面應(yīng)該會有。

  • dotnet5.x 是個臨時的別名,后面都會改成 netstandard1.x。

上面僅僅談到了遷移過程中最為重要的步驟。一些工具,如 dnvm 由于 RC2 起會被 dotnet 工具取代,所以都沒有詳細介紹。現(xiàn)在這個階段,還是淺嘗輒止比較經(jīng)濟實惠。

看完上述內(nèi)容是否對您有幫助呢?如果還想對相關(guān)知識有進一步的了解或閱讀更多相關(guān)文章,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝您對創(chuàng)新互聯(lián)的支持。

新聞名稱:遷移#SNMP到.NETCore平臺的心得是什么
文章路徑:http://m.newbst.com/article40/iicdho.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供標簽優(yōu)化商城網(wǎng)站品牌網(wǎng)站制作微信小程序電子商務(wù)定制網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站網(wǎng)頁設(shè)計