2017/10/24

.Net Standard 學習心得與想法

.Net Standard 發展的勢頭越來越旺,身為一個跟資訊沾點邊的人當然要好好地來了解一下。
以下是我的一些想法,如果有錯誤的地方歡迎來指正。

網路上已經有了很多.Net Standard 的相關文章,不論是官方的說明、還是網友的分享都寫得非常的精采,但是這些都還是無法解我的疑惑?
大部分的介紹文都會放這張圖


     資料來源:https://blogs.msdn.microsoft.com/dotnet/2016/09/26/introducing-net-standard/

這張圖讓我了解了.Net Standard 的架構,但是然後呢?
我應該怎麼使用.Net Standard 在我現有的專案上?
難道要我把現有的專案都用.Net Standard 的標準改寫嗎?
這些疑惑讓我對.Net Standard 這項技術有無從下手的感覺。
好在天無絕人之路,看了一篇文章
https://dotblogs.com.tw/aspnetshare/2017/02/26/20170225-netstandardagain
其中有一段
".Net Standard 並不算是一個實做任何東西的 platform,其實它是一系列的規範來要求每個 platform 在不同的版本下需要實做出那些 API"
我瞬間懂了,這其實說的就是物件裡的介面嘛!
簡單的說就是微軟定義了好幾組要大家遵守的介面API,並在編譯時幫忙將 .Net Standard API 對應到.Net Framework、Net Core、XAMARIN等實際可用的同名方法。

實際上應該要怎麼使用呢?
我的想法是:
在開發一個符合.Net Standard架構的系統,這個新的.Net Standard系統主要是要把已開發的.Net Framework系統供外部呼叫使用
有點類似MVC 的controller 的功用
假設我有一個已開發完成的 .Net Framework DLL 專案,那麼我先依據以下這張表決定要用哪一版的.Net Standard來開發

舉個例子:
我有一個.Net Framework開發的系統 ABC.DLL
我先依據ABC.DLL使用的.Net Framework版本參考以下這張表決定要用哪一版的.Net Standard來開發


    資料來源:https://github.com/dotnet/standard/blob/master/docs/versions.md

在來另開一個新的.Net Standard專案STD.DLL,當然STD.DLL必須能呼叫使用ABC.DLL
然後外部系統不論是用.Net Framework、Net Core還是XAMARIN來開發,只要支援STD.DLL 的.Net Standard版本
都可以透由STD.DLL 來使用 ABC.DLL。

沒有留言:

張貼留言