iT邦幫忙

2017 iT 邦幫忙鐵人賽
DAY 1
4
自我挑戰組

中風人生30天全記錄系列 第 1

第九話…[技術文].NET Core初體驗

今天我想複習我的技術知識,參加這次鐵人賽的目的之一在當復健過程來進行,中風的題目講得也差不多了,就來談談技術方面的議題,本來今年鐵人賽就有意思想.NET COre為主题開一個賽題,但因中風,學習過程中斷,就無法深入討論,只能寫些小品文來議論一番,看看自己的技術能力還留下多少。
.NET Core是.NET Framework的最新版本,也是一個跨平台的版本,目前己經能夠在Windows、Linux及Mac上運作,據說還要移殖到FreeBSD的平台上。為什麼Microsoft要推出.NET Core?這和Linux及Mac平台大幅成長及目前網站開發的主流思維,我們稱之為Modern Web Design的流行有關。
.NET Framework基本上只能在Windows平台上運作,無緣於Linux和Mac市場。而.NET Framework的基本架構,根本不適合移殖到其他平台上,所以,Microsoft要打破.NET Framework原有的疊床屋架構,另外建構出一個新的.NET平台,以利於移殖到Linux及Mac環境,其實,Linux和FreeBSD、Mac都是師出同源,能移殖到Linux,就能移殖Mac及FreeBSD。
根本上,.NET Core是採用類似Open SOurce的套件化的方式來管理有的類別庫,有別於.NET Framework的一個龐大的完整包把所有類別庫一次股腦安裝下去,而且,有不少類別庫只能在WIndows環境下才能運作,在Open Source的理念下,是個封閉環境,不利於部署於與發行到非Windows的平台上運作。
Modern Web Development的理念則全盤打翻傳統站開發的方法論,傳統網站開發的方法承傳自傳統應用程式的開發方法,我們可以由以往常見的軟體開發程序來看,System Analysis->System Design->Program Development->Unit Test->Integrated Test->User Acceptable Test->Go live!, 這個過程明顥不符合在現代網站開發的過程下,由於網際網路的普及,以及各種網站開發輔助工具的流行,和所謂MVC結構的興起,在在打破傳統軟體開發的模組化與順序部署的作法,而透過網際網路的軟體部署方式,更與傳統軟體安裝方式不同,光碟片和安裝工具裏那熟悉的[Next]按鈕消失不見,新一代的部署工具是NPM、Bower和Gulp這些Open Source套件管理工具。
到目前為止,.NET Core開發團發宣稱有98%的.NET Framework類別庫己移殖到.NET COre,那麼龐大的.NET Framework類別庫移殖,覺得實在是沒必要。雖然用了Open Source的部署工具,只有專案中會用到的類別庫會被部署,不會把所有.NET類別庫全盤部署,隨著網站專案規模数大,龐大的類別庫也代表程開發人員隨心所慾下載使用各種別庫的結果是更複雜的類別庫管理,於是,管理NPM、Bower、Gulp的工具就應聲而起,現在,我們己可見到Yarn,一種號稱比NPM更好用更忕套件管理工具。可預期,不久的來各種套件管理工具百家爭鳴,Open Source的問題也在於此,太多的選擇,造成維運上的困難。
熟悉Visual Studio的人會問,那Nuget呢?這個套件管理工具還是存在,而且還掌控著.NET最底層的套件管理。嚴格來說,.NET COre包括.NET Stadard Library及.NET Standard Platform兩大部份。
.NET Standard Library包括下列類別庫:
• Microsoft.DotNet.CoreHost
• NETStandard.Platform
• System.Collections.Concurrent
• System.Linq
• System.Runtime.Numerics
• System.Text.RegularExpressions
.NET Standard Platform則包括下列類別庫:
• Microsoft.NETCore.Platforms
• Microsoft.NETCore.Runtime
• Microsoft.Win32.Primitives
• System.AppContext
• System.Collections
• System.Diagnostics.Debug
• System.Diagnostics.Tools
• System.Diagnostics.Tracing
• System.Globalization
• System.Globalization.Calendars
• System.IO
• System.IO.FileSystem
• System.IO.FileSystem.Primitives
• System.Net.Primitives
• System.Net.Sockets
• System.Reflection
• System.Reflection.Extensions
• System.Reflection.Primitives
• System.Reflection.TypeExtensions
• System.Runtime
• System.Runtime.Extensions
• System.Runtime.Handles
• System.Runtime.InteropServices
• System.Runtime.InteropServices.RuntimeInformation
• System.Text.Encoding
• System.Text.Encoding.Extensions
• System.Threading
• System.Threading.Tasks
• System.Threading.Timer
可以看到.NET COre基本己包括大多數網站開發需要的套件庫,在這裏要說明一下,類別庫(Libraried)和套件庫(Packages)是指相同的東西,在微軟的環境裏講庫類別庫,這是傳統編譯式程式語言,例如C、C#、VB等的用詞,而新式的網站開發,多用譯式程式語言,像是HTML、Javascript等等,則是用套件庫來指稱。
要使用.NET Core,要
1. 先安裝Visual Studio 2015 with Update 3
你可能會說,啊呀!Visual Studio的授權費那麼貴,誰用起,現在Microsoft己推出Community版本,功能正式版本一樣。微軟那麼笨,不賺錢了嗎?不是這樣的,Community版本不能用來商業化網站的開發上。
另外,如困你不想用那麼複雜又笨重的IDE介面,還有跨台的Visual Studio Code可以用,這對習慣Open SOurce開發發環境的程式設計人員更為好用的簡單工具。
喔,現在有Vsual Studio 2017了,可以的話就下載最新版來用吧。了不起日後正式版出來,改寫整個專案就行了。
1. 安裝.NET Core Tool Preview for Visual Studio
如果用Visual Studio Code的話,這個步驟可以省略吧!
3. 建立.NET Core project.
如果用Visual Studio Code,也是可以用Project功能的。
另外,如果你在用Git這些Open Source工具,Viisual Studio也能直接和Git上的專案整合,Community或Code版都可以嘔。
今天沒實作內容,明天就會有了。
請各位看倌多多批評指教,這篇是我中風後腦子不靈光的情況下寫的第一篇技術文,如有錯誤或不適當的地方,煩請指正。
/images/emoticon/emoticon41.gif


下一篇
第十話…NET Core專案以Visual Studio Code及.NET Core CLI實作
系列文
中風人生30天全記錄5

尚未有邦友留言

立即登入留言