iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 27
0
DevOps

.NET Core 專案持續整合與部署系列 第 27

導讀:.NET Core 與 .NET 的歷史

# Outline
一、前言
二、歷史簡表
三、結語
A、參考資料
B、獨立時間表
C、延伸話題

# TL;DR
2014 年是 Microsft 擁抱開源的開始,也是 .NET 透過 .NET Core 走向開源社群與跨平台的起點。

身為一個歷史系背景出身的資訊人,再講技術時順便提到歷史也是很正常的事,對吧?XD
—— Day 27

一、前言

Microsoft 近年來開始往開源與跨平台的方向前進,.NET Core 就是其中一項專案,儘管因為起步晚至今生態系仍不如其他早已開源的語言與框架蓬勃,但是穩定且快速的節奏、開放的文化以及 C# 既有的傑出特性,都是讓我們值得其接下來的發展。

在往前邁進前,不妨先回頭看看 .NET Core 的發展沿革,讓我先透過這段歷史了解現有生態的背景以及改革過程,或許能讓我們更能知道如何一起跨進這個新領域,並且調整好心態,擁抱變化與開放文化。

不過我畢竟不是從 .NET Framework 1.0 就開始打滾的資深 C# / .NET 開發者,所以這篇可能無法以經驗的角度切入,比較多的是透過瀏覽網路前人們的文章所做的整理與研究。

二、歷史簡表

2-1. Visual Basic (1991 ~ 1998)

  • 1991 年:Visual Basic 1.0
  • 1992 年:Visual Basic 2.0
  • 1993 年:Visual Basic 3.0
  • 1995 年:Visual Basic 4.0
  • 1997 年:Visual Basic 5.0
  • 1998 年:Visual Basic 6.0

2-2. VBScript & ASP (1996 ~ 2000)

  • 1996 年
    • Windows NT 3.51
    • Internet Explorer 3.0
    • ASP 1.0
    • VBScript 1.0
    • IIS 1.0
  • 1997 年
    • Windows NT 4.0
    • Internet Explorer 4.0、5.0
    • ASP 2.0
    • VBScript 2.0、3.0、4.0、5.0
    • IIS 2.0、3.0、4.0
  • 2000 年
    • Windows 2000
    • Internet Explorer 5.01
    • ASP 3.0
    • VBScript 5.5
    • IIS 5.0

2-2. .NET Framework (2002 ~ 2019)

2-2-1. .NET Framework 1.0 (2002 年)

  • ASP.NET 1.0
    • WebForm
  • Visual Basic .NET 2002(VB 7.0)
  • Visual Basic .NET 2003(VB 7.0)

2-2-2. .NET Framework 2.0 (2005 年)

  • ASP.NET 2.0
    • Web Site Project
  • Visual Basic 2005(VB 8.0)
  • WinForms
  • ADO.NET

2-2-3. .NET Framework 3.0 (2006 年)

  • ASP.NET 3.0
  • WPF、WCF、WPF、W
  • Microsoft AJAX 1.0

2-2-4. .NET Framework 3.5 (2007 年)

  • ASP.NET 3.5
  • ASP.NET MVC MVC 1.0 (2009)
  • Visual Basic 2008(VB 9.0)
  • LINQ

2-2-5. .NET Framework 4.0 (2010 年)

  • ASP.NET 4.0
  • ASP.NET MVC 2.0 (2010)
  • ASP.NET MVC 3.0 (2011)
    • Razor
  • NuGet

2-2-6. .NET Framework 4.5 (2012 年)

  • ASP.NET 4.5
  • ASP.NET MVC 4.0 (2012)
    • ApiController
    • SingalR
  • Visual Basic 2012(VB 11.0)

2-2-7. .NET Framework 4.5.1 (2013 年)

  • ASP.NET 4.5.1
  • ASP.NET MVC 5.0 (2013)
  • One ASP.NET
  • Visual Basic 2013(VB 12.0)

2-2-8. 過渡期

2015 年
  • .NET Framework 4.6
  • ASP.NET 4.6
  • Visual Basic 2015(VB 14.0)
2017 年
  • .NET Framework 4.7
  • ASP.NET 4.7
  • Visual Basic 2017(VB 15.0)
2019 年
  • .NET Framework 4.8
  • ASP.NET 4.8
  • Visual Basic 2019(VB 16.0)

2-3. .NET Core (2016 ~ )

  • 2016 年:.NET Core 1.0
    • ASP.NET Core 1.0
      • Tag Helper
      • View Component
  • 2017 年:.NET Core 2.0
    • ASP.NET Core 2.0
      • Razor Pages
      • IHostingService
  • 2018 年:.NET Core 2.1
    • SignalR
  • 2019 年:.NET Core 3.0
    • WinForms、WPF、UWP

2-4. Microsoft Open Source & .NET Foundation

  • 2014 年:.NET Foundation 成立
  • 2014 年:宣布將開源 ASP.NET vNext 及 .NET Core
  • 2014 年:開源 .NET 編譯器平台 Roslyn
  • 2014 年:推出 Visual Studio Community
  • 2015 年:宣布開發 Visual Studio Code,並開源
  • 2018 年:Microsoft 併購全球最大開源程式碼託管平台 GitHub

三、結語

基本上 2014 年,Microsoft 開始擁抱開源文化算是一個分水嶺,自此 .NET Core 開始開發,也陸續推出了 Visual Studio Community 和 Visual Studio Code 對開發者釋出善意,甚至在去年併購了 GitHub。

.NET Core 就是在這樣的變革下開始的,不僅開源、還跨平台。其中跨平台更是讓 .NET Core 在持續整合與交付上跨出一大步,畢竟現在多數的 CI 工具以及虛擬化技術都是以 Linux 為主流。.NET 的既有的開發文化開始與開源文化進行接觸、碰撞、交流,這之中必定會對既有的開發習慣產生衝突,但卻也為 .NET 開發圈開啟了新的一頁,尤其是對於長居於 Unix-like 的 C# 開發者來說,能使用 C# 開發跨平台的程式是一件興奮的事!

以軟體開發與軟體工程史的長河中,從 .NET Core 誕生到現在也不過五年時光,整個生態系還不能說是成熟,很多 .NET 開發者也還停留在 .NET Framework 的觀念,甚至仍然不習慣離開圖形化介面,更別提離開號稱地表最強 IDE 的 Visual Studio。如何在脫離 Visual Studio 後,使用 .NET Core CLI 搭配 NuGet 套件,透過 CI 工具進行持續整合、交付與部署,便是本系列文想在這個過渡期中,嘗試為台灣的 .NET 開發社群帶來的貢獻。

附錄A、參考資料

Wikipedia

歷史

版本發佈資訊

開源相關

其他

附錄B、獨立時間表

C#

  • 2002 年:C# 1.0
  • 2005 年:C# 2.0
  • 2007 年:C# 3.0
  • 2010 年:C# 4.0
  • 2012 年:C# 5.0
  • 2015 年:C# 6.0
  • 2017 年:C# 7.0
  • 2019 年:C# 8.0

.NET Core

  • 2016 年:.NET Core 1.0
  • 2017 年:.NET Core 2.0
  • 2018 年:.NET Core 2.1
  • 2018 年:.NET Core 2.2
  • 2019 年:.NET Core 3.0

.NET Framework

  • 2002 年:.NET Framework 1.0
  • 2005 年:.NET Framework 2.0
  • 2006 年:.NET Framework 3.0
  • 2007 年:.NET Framework 3.5
  • 2010 年:.NET Framework 4.0
  • 2012 年:.NET Framework 4.5
  • 2015 年:.NET Framework 4.6
  • 2017 年:.NET Framework 4.7
  • 2019 年:.NET Framework 4.8

ASP.NET

  • 2002 年:ASP.NET 1.0
  • 2005 年:ASP.NET 2.0
  • 2006 年:ASP.NET 3.0
  • 2007 年:ASP.NET 3.5
  • 2010 年:ASP.NET 4.0
  • 2012 年:ASP.NET 4.5
  • 2015 年:ASP.NET 4.6
  • 2017 年:ASP.NET 4.7

ASP.NET MVC

  • 2009 年:ASP.NET MVC 1.0
  • 2010 年:ASP.NET MVC 2.0
  • 2011 年:ASP.NET MVC 3.0
  • 2012 年:ASP.NET MVC 4.0
  • 2013 年:ASP.NET MVC 5.0

IIS

  • 1996 年:IIS 1.0 (Windows NT 3.51)
  • 1996 年:IIS 2.0 (Windows NT 4.0)
  • 1997 年:IIS 4.0 (Windows NT Internet Option Pack)
  • 2000 年:IS 5.0 (Windows 2000)
  • 2002 年:IIS 5.1 (Windows XP Professional)
  • 2003 年:IIS 6.0 (Windows Server 2003)
  • 2008 年:IIS 7.0 (Windows Server 2008 and Windows Vista)
  • 2009 年:IIS 7.5 (Windows Server 2008 R2 and Windows 7)
  • 2012 年:IIS 8.0 (Windows Server 2012 and Windows 8)
  • 2013 年:IIS 8.5 (Windows Server 2012 R2 and Windows 8.1)
  • 2015 年:IIS 10 (Windows Server 2016 and Windows 10)

Mono

  • 2004 年:Mono 1.0
  • 2008 年:Mono 2.0
  • 2012 年:Mono 3.0
  • 2015 年:Mono 4.0
  • 2017 年:Mono 5.0
  • 2019 年:Mono 6.0

ASP

  • 1996 年:ASP 1.0
  • 1997 年:ASP 2.0
  • 2000 年:ASP 3.0

附錄 C:延伸話題

  • .NET 家族
  • Microsoft 擁抱開源的契機

上一篇
Integrate:NuGet v.s. VISX
下一篇
Virtualize:Kubernetize .NET Core Application
系列文
.NET Core 專案持續整合與部署31

尚未有邦友留言

立即登入留言