.NET 歷代版本與 ASP.NET 架構介紹

更新 2026.09.21

前言:.NET 平台的兩條路線

項目 .NET Framework .NET(原 .NET Core)
平台 僅限 Windows 跨平台(Windows、Linux、macOS)
最新版本 4.8.1(2022) .NET 10(2025),每年 11 月發布新的主要版本
開發狀態 4.8 是 4.x 系列最後一個主要版本,之後以安全與可靠性更新為主 持續開發,並有 LTS/STS 支援週期
Web 框架 ASP.NET(Web Forms、MVC 5、Web API 2) ASP.NET Core
支援方式 隨所在 Windows 版本的生命週期(4.5.2 之後的版本) 依各版本的 LTS/STS 週期

從 .NET 5 開始,名稱由「.NET Core」改為「.NET」,本文以「.NET Core/.NET」統稱這條路線。

.NET Framework:是由微軟開發的一個軟體開發平臺,一個致力於敏捷軟體開發(Agile software development)的平臺,注重快速應用開發(Rapid application development)以及平臺獨立性、網路透明化。

CLR 是以一種採用系統虛擬機運行的編程平臺,以通用語言運行庫(Common Language Runtime)為基礎,支援多種語言(C#、F#、VB.NET、C++、Python 等)的開發。.NET 也為應用程式介面(API)提供了新功能和開發工具。

.NET Framework 版本歷史

舊版日期沿用原文;4.7.1 之後的日期取自微軟生命週期頁面,與公告或 RTM 日期可能相差數日。

2002 年 1/16 .NET 1.0(最早的 .NET 架構)

【完整版號 – 1.0.3705】

  • 與 Visual Studio .NET 一起發行的第一個版本
  • 第一個微軟 Visual Studio .NET 的發行版,被稱作 Visual Studio .NET 2002
  • 物件導向的 Web 應用程開發,支援繼承、多型與其他標準物件導向程式設計的功能。
  • 以 Microsoft Windows 程式設計為基礎
  • 開發人員能夠使用在 Web Server 上使用的 DLL 類別庫來建立比 HTML 輸出更強應用

2003 年 4/24 .NET 1.1

【完整版號 – 1.1.4322】

與 Windows Server 2003 和 Visual Studio .NET 2003 一起發表。第一個被 Windows 作業系統 Windows Server 2003 所內置的 .NET Framework 版本

  • 行動裝置控制項(內建了對 mobile ASP.NET 控制項的支援)
  • 自動化輸入驗證(加入了 ASP.NET 應用程式的代碼安全存取功能)
  • 內建了對 ODBC 和 Oracle 資料庫的支援

2005 年 11/7 .NET 2.0

【完整版號 – 2.0.50727.42】

和 Visual Studio 2005、Visual Web Developer Express 與 SQL Server 2005 一起發表。

  • 新的資料控制項(GridView、FormView、DetailsView)
  • 新的宣告式資料存取技術(SqlDataSource、ObjectDataSource 與 XmlDataSource 控制項)
  • 導覽控制項(SiteMap、Menu、TreeView)
  • 主版頁面 (Master Page)
  • 登入控制項
  • 主題
  • 表皮 (skin)
  • Web 部件 (Web Part)
  • 個人化服務 (Profile)
  • 全功能的預先編譯能力
  • 全新的當地語系化技術
  • 支援 64 位元平台
  • 提供者類別模式

2006 年 11/21 .NET 3.0

內建於 Windows Vista,新增四個主要元件:

  • Windows Presentation Foundation(WPF)
  • Windows Communication Foundation(WCF)
  • Windows Workflow Foundation(WF)
  • Windows CardSpace

2007 年 11/19 .NET 3.5

與 Visual Studio 2008 和 Windows Server 2008 一起發表。

  • 新資料控制項(ListView、DataPager)
  • ASP.NET AJAX 含入至 .NET Framework,成為 .NET Framework 的一部份
  • 提供支援 LINQ 的 LinqDataSource 控制項
  • 包含一個支援 C# 和 VB.Net 中心的語言特性的編譯器,以及對語言整合查詢(LINQ, Language-Integrated Query)的支援

2008 年 8/11 .NET 3.5 Service Pack 1

Visual Studio 2008 Service Pack 1 發表。

  • 內含 ASP.NET Dynamic Data
  • 在 ASP.NET AJAX 應用程式中支援瀏覽器歷史控制 (controlling browser history)
  • 將多個 JavaScript 檔案合併到單一檔案以強化有效的下載

2010 年 4/12 .NET 4.0

與 Visual Studio 2010 一起發表。

  • 配合 .NET Framework 4.0 讓 Web 應用程式具有如並列運算函式庫(Parallel Library)等新功能。
  • ASP.NET MVC 2.0
  • jQuery 完全整合與 ASP.NET AJAX Client Library 強化,以及 AJAX CDN 的支援。
  • ASP.NET 的 Render Compatibility (3.5 以前版本或 4.0 版),可控制許多 ASP.NET Web 控制項的繪製行為,以配合標準 HTML 與 jQuery 的處理。
  • SEO 的支援。
  • 自訂快取提供者 (Extensible Output Cache)。
  • QueryExtender 的支援。
  • CSS 控制行為的變更。
  • 自訂的 Client ID 輸出。
  • ViewState 的控制。
  • 配合 Visual Studio 2010 的 Web Deploy 工具。
  • Entity Framework 4.0 的支援。
  • Dynamic Data Framework 與 Chart Control 內建至核心中

4.5 至 4.7

  • 2012 年 8/15 .NET 4.5,與 Visual Studio 2012 一起發表
  • 2013 年 10/17 .NET 4.5.1,與 Visual Studio 2013 一起發表
  • 2014 年 5/5 .NET 4.5.2
  • 2015 年 7/20 .NET 4.6,與 Visual Studio 2015 一起發表
  • 2015 年 11/30 .NET 4.6.1,與 Visual Studio 2015 Update1 一起發表
  • 2016 年 8/2 .NET 4.6.2
  • 2017 年 4/5 .NET 4.7,與 Visual Studio 2017 一起發表

4.7.1 至 4.8.1

  • 2017 年 10/17 .NET 4.7.1,新增 .NET Standard 2.0 的支援
  • 2018 年 4/30 .NET 4.7.2
  • 2019 年 4/18 .NET 4.8,.NET Framework 4.x 系列最後一個主要版本
  • 2022 年 8/9 .NET 4.8.1,目前最新的 .NET Framework 版本,新增原生 Arm64 支援,可安裝於 Windows 11 與 Windows 10 22H2

.NET Framework 支援狀態

版本 支援狀態
2.0、3.0 已於 2011-07-12 終止
4.0、4.5、4.5.1 已於 2016-01-12 終止
4.5.2、4.6、4.6.1 已於 2022-04-26 終止
4.6.2 支援至 2027-01-12
3.5 SP1 支援至 2029-01-09
4.7、4.7.1、4.7.2、4.8、4.8.1 隨所在 Windows 版本的生命週期,只要安裝在受支援的 Windows 上就會持續支援

新專案若必須使用 .NET Framework,應以 4.8.1(或至少 4.8)為目標。

.NET Core/.NET 版本歷史

.NET Core 在 2016 年推出,是跨平台、開源的重新實作,取代 .NET Framework 成為微軟的主要方向。

版本 發布日期 類型 支援狀態(截至 2026 年 9 月)
.NET Core 1.0 2016-06-27 — 已於 2019-06-27 終止
.NET Core 1.1 2016-11-16 — 已於 2019-06-27 終止
.NET Core 2.0 2017-08-14 — 已於 2018-10-01 終止
.NET Core 2.1 2018-05-30 LTS 已於 2021-08-21 終止
.NET Core 2.2 2018-12-04 — 已於 2019-12-23 終止
.NET Core 3.0 2019-09-23 — 已於 2020-03-03 終止
.NET Core 3.1 2019-12-03 LTS 已於 2022-12-13 終止
.NET 5 2020-11-10 — 已於 2022-05-10 終止
.NET 6 2021-11-08 LTS 已於 2024-11-12 終止
.NET 7 2022-11-08 STS 已於 2024-05-14 終止
.NET 8 2023-11-14 LTS 維護階段,支援至 2026-11-10
.NET 9 2024-11-12 STS 維護階段,支援至 2026-11-10
.NET 10 2025-11-11 LTS 主動支援,支援至 2028-11-14
.NET 11 目前為 RC1(2026-09-08) STS 預計 2026 年 11 月正式發布

發布節奏與支援期間:

  • 每年 11 月發布新的主要版本。
  • 偶數版本為 LTS,享有三年的免費支援與修補;奇數版本為 STS,支援兩年。
  • 各版本的支援結束日期對齊每月第二個週二(Patch Tuesday)。
  • 維護階段是支援期間的最後 6 個月,只提供安全性修補。

ASP.NET 的兩條路線

ASP.NET 是微軟的 Web 應用程式開發框架,可用來開發伺服器端應用程式。依所在的平台,分成兩條路線:

項目 ASP.NET(.NET Framework) ASP.NET Core(.NET)
平台 僅限 Windows,執行於 IIS 跨平台,也可在容器中執行
開發模型 Web Forms、MVC 5、Web API 2(各自獨立) MVC 與 Web API 合併為同一套 Controller 模型,另有 Razor Pages、Minimal APIs、Blazor、SignalR、gRPC
伺服器 IIS(System.Web) 內建 Kestrel,可搭配 IIS、Nginx、Apache 等作為反向代理
設定 web.config appsettings.json 與環境變數
Web Forms 支援 不支援
版本狀態 隨 .NET Framework 4.8.1 維護,功能不再擴充 隨 .NET 版本持續更新

ASP.NET Core 的特色:

  • 內建相依性注入(Dependency Injection)與中介軟體(Middleware)管線
  • 可單一檔案發佈、支援自我包含(self-contained)部署
  • 在 IIS 上透過 ASP.NET Core Module 託管

ASP.NET Core 的請求流程:請求 → Kestrel(或先經過 IIS、Nginx 轉送)→ 中介軟體管線 → 端點(Controller、Razor Page 或 Minimal API)→ 回應。

新專案建議使用 ASP.NET Core,並選擇受支援的 LTS 版本(例如 .NET 10)。既有的 ASP.NET Web Forms 專案沒有直接升級的路徑,微軟提供 System.Web adapters 等工具協助逐步遷移,但 Web Forms 頁面需要重寫。

ASP.NET 運行架構(.NET Framework 與 IIS)

以下內容說明 ASP.NET(.NET Framework)在 IIS 上的運作方式。

.NET Framework 的元件堆疊

.NET Framework 元件堆疊

ASP.NET 是 Web 應用程式的開發框架,其中 Web Forms 是傳統的開發模型之一,(跟 Windows Form 概念有點像),是伺服器端應用程式的熱門開發工具技術

ASP.NET 在 IIS 中的執行流程

ASP.NET 運行的架構分為幾個階段:

  • 在 IIS 與 Web 伺服器中的訊息流動階段
  • 在 ASP.NET 網頁中的訊息分派
  • 在 ASP.NET 網頁中的訊息處理

ASP.NET B/S 語言介紹(Web Forms)

ASP.NET 頁面流程
伺服器端與用戶端

瀏覽器與伺服器程式語言

  • 在用戶端瀏覽器:主要透過 html、css、javascript 三者大宗前端網頁語言所構成,偏向靜態的頁面資訊呈現
  • 伺服器端:可執行程式語言比如 PHP、ASP.NET (CLR)、JSP (JVM)…,偏向動態的後端互動,會需要經由 Server 做過邏輯處理
  • 在 ASP.NET(.NET Framework)中主要透過 IIS(Internet Information Services)這套 Server 軟體來處理瀏覽器和伺服器之間互動的業務
瀏覽器與伺服器互動

ASP.NET 中常見的一些檔案種類

  • .ashx:一般處理 ASP.NET 核心程序 (在 AJAX 部分會時常看到)
  • .aspx:用於 WebForm 前端網頁頁面模板配置
  • .aspx.cs:用於後端伺服器邏輯流程
  • .ascx:控制元件模組(多個控件的組合用於重複利用)
  • .asax:包括 ASP.NET 應用程式層級的事件語法
  • .asmx:用於 Web Service 的應用開發
  • .config:配置用文件

在應用程式開發中:

  • .aspx 是 @Page 指令集的頁面模板(用戶端前段網頁顯示),也就是一系列 html、css、javascript,主要控件(Server Control)也都定義於此
  • .aspx.cs 則是伺服器端的後台(端)程式,預設 Page_load 初始化第一次運行時之進入點

此種前 aspx 後 cs 的方式又稱為 CodeBehind(代碼後置)

.aspx 裏頭我們是可以透過 <%= name %> 或者 <% Say(); %> 兩種語法調用出後端 .cs 的程式回傳結果的

(備註:屬性欄位只允許訪問非 private 的)

缺點:因為預設都直接顯示在最頂部容易破壞網頁

範例截圖 1
範例截圖 2
範例截圖 3
範例截圖 4

.aspx.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class Default0 : System.Web.UI.Page
{
    protected string name = "小明";

    protected void Page_Load(object sender, EventArgs e)
    {

    }

    protected void Say()
    {
        Response.Write("Hello World");
    }
}

.aspx

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default0.aspx.cs" Inherits="Default0" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>

<title></title>
</head>
<body>
    <form id="form1" runat="server">

<div>

<h1>TEST</h1>
        <br />

<h2><%= name %> </h2>
        <br />

        <% Say(); %>

    </div>
    </form>
</body>
</html>

前端的 .aspx 檔案最終編譯出來的 class 會繼承 .cs 的後端檔案的 class

編譯關係示意

這裡我們要有一個觀念:寫的網站運行時都會被 Compile 為程式集,頁面則是變成 class

接下來我們要來查找編譯後的程式集位置

查找程式集位置

後台程式

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class Default0 : System.Web.UI.Page
{
    protected string name = "小明";

    protected void Page_Load(object sender, EventArgs e)
    {
        Response.Write(this.GetType() + "<br />");
        Response.Write(this.GetType().Assembly.Location + "<br />");
    }

    protected void Say()
    {
        Response.Write("Hello World");
    }
}

經 ILSpy 反編譯後查看 DLL,就可清楚看到 .aspx 會生成一個名為 default0_aspx 的 class 去繼承 Default0

ILSpy 反編譯結果

從 Web Forms 到 ASP.NET Core:概念對照

以下是常見 Web Forms 項目在 ASP.NET Core 中的對應做法,供遷移或學習時參考。

Web Forms(.NET Framework) ASP.NET Core 的對應做法
.aspx 頁面 Razor Pages(.cshtml)或 MVC 的 View
.aspx.cs 後置程式碼 Razor Pages 的 PageModel(.cshtml.cs)或 MVC 的 Controller
.ascx 控制元件 Partial View、View Component 或 Razor 元件
.ashx 通用處理常式 中介軟體(Middleware)或 Minimal API 端點
.asmx Web Service 不支援,改用 Web API 或 gRPC
Global.asax 應用程式事件 Program.cs 中的服務註冊與中介軟體管線
web.config appsettings.json 與環境變數
Server Control 與 ViewState 沒有對應的機制,改用 Tag Helper、Model Binding 與前端框架

範例:以 Razor Pages 重寫上面的頁面

Program.cs:

var builder = WebApplication.CreateBuilder(args);
builder.Services.AddRazorPages();

var app = builder.Build();

app.UseStaticFiles();
app.MapRazorPages();

app.Run();

Pages/Index.cshtml.cs:

using Microsoft.AspNetCore.Mvc.RazorPages;

public class IndexModel : PageModel
{
    public string Name { get; } = "小明";

    public void OnGet()
    {
    }
}

Pages/Index.cshtml:

@page
@model IndexModel

<h1>TEST</h1>
<h2>@Model.Name</h2>

與 Web Forms 的差異:

  • 不再有 runat="server" 的伺服器控制項,頁面內容直接用 @Model.Name 這類 Razor 語法輸出。
  • 不使用 Response.Write 把內容輸出到頁面最上方,輸出位置由 .cshtml 的標記決定,也就沒有原文提到「顯示在最頂部容易破壞網頁」的問題。
  • 不需要 CodeBehind 的編譯關係(.aspx 編譯後繼承 .cs 的 class),PageModel 與頁面以 @model 連結。

小結

  • .NET Framework 已定案在 4.8.1,維護以 Windows 的生命週期為準;ASP.NET(Web Forms、MVC 5、Web API 2)也隨之進入維護狀態。
  • 新專案應使用 .NET 與 ASP.NET Core,並選擇受支援的 LTS 版本。截至 2026 年 9 月,.NET 8 與 .NET 9 都將在 2026-11-10 結束支援,.NET 10 是目前的 LTS。
  • 舊有 Web Forms 專案需要評估重寫或逐步遷移的成本,並留意所使用的 .NET Framework 版本是否仍在支援期內(4.6.2 支援至 2027-01-12)。

參考資料