跳至內容
主選單
主選單
移至側邊欄
隱藏
導覽
首頁
近期變更
隨機頁面
MediaWiki說明
Taiwan Tongues 台語維基
搜尋
搜尋
外觀
建立帳號
登入
個人工具
建立帳號
登入
檢視 ASP.NETCore 的原始碼
頁面
討論
臺灣正體
閱讀
檢視原始碼
檢視歷史
工具
工具
移至側邊欄
隱藏
操作
閱讀
檢視原始碼
檢視歷史
一般
連結至此的頁面
相關變更
特殊頁面
頁面資訊
外觀
移至側邊欄
隱藏
←
ASP.NETCore
由於以下原因,您無權編輯此頁面:
您請求的操作只有這些群組的使用者能使用:
使用者
、taigi-reviewer、apibot
您可以檢視並複製此頁面的原始碼。
'''ASP . NET Core'''是新一代的 ASP . NET,早期號做 ASP . NET vNext,並且咧推出初期號名做 ASP . NET 五,毋過隨著 . NET Core 的成熟,以及 ASP . NET 五的號名予外界將伊看做是 ASP . NET 的升級版,但伊其實是新一代對頭開始打造的 ASP . NET 核心功能,因此微微仔軟宣佈共改做佮 . NET Core 仝步的名,即 ASP . NET Core。 ASP . NET Core 可運行佇咧 Windows 平台佮非 Windows 平台,如 Mac OSX 以及 Ubuntu Linux 作業系統,是 Microsoft 第一个有跨平台能力的 Web 開發框殼。 微軟佇咧一開始開發就將 ASP . NET Core 開源,因此伊嘛是開源專案的一員,由 . NET 基金會 ( . NET Foundation ) 所管理。 ==開發的歷程== ASP . NET vNext 上早是佇二空一四年五月被提出,彼當陣是用專案代號 K ( Project K ) 號名,包含工具佮執行期平台攏以 K 來號名,這个名稱做 KRE ( K Runtime Environment ) 如: * KLR ( K Language Runtime ) : Project K 的執行期平台。 * KVM ( K Version Manager ) : Project K 的版本的管理員。 * KPM ( K Package Manager ) : Project K 的套件管理員,類似 node . js 的 npm ( Node . js Package Manager )。 * K ( K Loader ) : Project K 的程式啟動器。 KRE 佇咧二空一四年度的時陣捌一度佇咧版本黜規个出現 RC 的字眼,毋過隨後 ASP . NET Core 開發團隊發出一份新的 Roadmap,公佈後續的版本計畫。 到位矣 Build 二千空一十五時,微軟將專案 K 重號名,改稱做 . NET 執行環境 ( . NET Execution Environment ),簡稱 DNX,其實工具嘛開始咧進行更名 : * DNVM ( . NET Version Manager ) : DNX 的版本的管理員。 * DNU ( . NET Package Manager ) : DNX 的工具,會當支援建造,閣原佮管理封裝等等。 * DNX ( . NET Loader ) : DNX 的程式啟動器。 後續到矣 ASP . NET Core RC 一時,. NET Core 已經發展甲熟矣,而且嘛有家己的工具 . NET Core CLI ( dotnet . exe ),這當陣微軟決定欲 DNX 和 . NET Core CLI 合併,並且正式於 ASP . NET Core 一垺零 . 零 RC 兩个時陣欲 DNX 支援終止,改由 . NET Core CLI 提供基礎的編譯佮執行功能。 ==核心功能== ASP . NET Core 核心設計上是採用 Open Web Interface for . NET ( OWIN ) 為概念發展,OWIN 佇咧概念就強調講以程式碼來定義系統功能,並一度佇咧 ASP . NET MVC 五列入其功能之一,後續的 Web API 佮 SignalR 嘛使用矣 OWIN,但並無引起太濟開發人員的重視,其主要因為這條 Visual Studio 簡化了傷多元件間參考定義的工課,若是欲回歸由原始碼作業,顛倒會予開發人員閣無法度適應。毋過隨著微軟確定將 ASP . NET Core 開發做會當迒平台的核心架構的時,其專案參考系統嘛有 Visual Studio 為主的加入參考對話盒仔踅向到以 project . json ( . NET Core / ASP . NET Core 的專案組態檔 ) 為主,予開發人員袂當閣用 GUI 介面來加入元件參考,利用編輯 project . json 的方式加入,這陣由程式碼加入功能的做法才慢慢仔予人開發人員所接受,雖然講這佇 Mac 以及 Linux 環境是閣較平常猶毋過的代誌。 ===是由程式碼決定功能=== ASP . NET Core 講法法應用矣 . NET 的擴充方法 ( Extension Method ),將 ASP . NET Core 的功能模組 ( ASP . NET Core 伊的術語是 Middleware ) 以擴充方法的方式佮掛佇咧 IApplicationBuilder 介面上,以 Use 一開頭的方法為號名標準,所有應用程式所需要的功能攏愛添加佇咧 Startup 類別內,DNX Runtime 佇咧啟動的時陣會揣應用程式來看 Startup 東西,並且喚起伊內底的特定方法 ( 如 Configure ( ) ),以加入應用程式的功能。 像下列程式碼: ===內建的相依注入=== ASP . NET Core 核心內起了基本的相依注入 ( Dependency Injection ) 能力,這意味對 ASP . NET Core 應用程式有閣較強的擴充能力,連帶的如 ASP . NET Core MVC ( ASP . NET Core 的 Web 開發框殼 ) 嘛因為 ASP . NET Core 的相依注入功能,可在 Controller 內直接注入介面東西。ASP . NET Core 內底提供兩種相依照注入功能,一个是管線式相依照注入 ( ASP . NET Core 共號做 Framework-Provided Services ),另外一種是由系統註冊的依照注入,由開發人員利用 ASP . NET Core 提供的 IServiceCollection 介面內的方法註冊需要的介面佮服務,才由程式來取用。 IServiceCollection 支援四種類型的服務相依照注入: 一 . Transient : 逐改要求的時陣攏建立,無論講敢有仝一个範圍。 二 . Scoped : 只有佇一个要求範圍內底建立一改,佇彼時陣的範圍內底等於 Singleton。 三 . Singleton : 只會提供一个物件的執行個體,毋過生成是由系統做。 四 . Instance : 佇應用程式的性命週期內只會提供一个物件的執行個體,猶毋過生成是由開發人員負責。 ASP . NET Core 嘛無限干焦會當用 ASP . NET Core 本身的相依注入功能,若是有佮意抑是慣勢用的相依注入元件 ( 如 Autofac、StructureMap 等 ),嘛會當用𪜶取代內底起的相依注入功能。 ===代管 ( Hosting ) 方式=== ASP . NET Core 共咱奧援自我代管 ( Self-hosting ) 以及 Web Server 代管 ( Web Server-hosting ) 的功能,早期 ASP . NET Core 有延續以 IIS 為主要代管服務的設計 ( 彼陣的代號為 Helios ),但是到甲 ASP . NET Core Beta 八時,微軟宣佈欲以 Kestrel Server 為主要的代管侍服器,Kestrel Server 是以 libuv 為基礎開發的 Web Server 代管行程 ( Hosting Process ),藉由 libuv 的協助,Kestrel Server 會當迒平台,嘛會當適合 IIS,軟勢嘛為著 IIS 使用 Kestrel Server 咧發展矣 IIS Platform Handler,予 IIS 會當直接共 HTTP 的要求直接轉送予 Kestrel Server。 自 ASP . NET Core 一垺零 . 零-rc 做伙的,代管方式已經回歸以 Kestrel Server 為主,原本的 IIS Platform Handler 嘛依照 ASP . NET Core 的特性改寫為 ASP . NET Core Module,如果要使用 IIS 架設 ASP . NET Core 應用程式,著愛使用此模組。 ==專案系統== 佇咧 ASP . NET Core v 一丈零的時陣,ASP . NET Core 無閣用矣 . csproj 的專案管理方式,是改用以 kha-tá-lok-guh 為主的這个案管理,原本的 Web . config 無閣存在矣,取代之的是 project . json,以及作為組態設定的 appsettings . json 檔案,這兩个檔案攏是 JSON 格式。雖然講佇 Visual Studio 的 ASP . NET Core 的專案範本內底,Web . config 猶閣存在,但是伊的存在干焦為著欲踮 IIS 中附掛上 HTTP Platform Handler 爾爾。 隨著 . NET Core v 一垺一回歸到講 MSBuild 的策略,ASP . NET Core v 做伙閣再倒轉來 . csproj 的專案管理方式,但是猶原保留 kha-tá-lok-guh 為主的專案管理做法。 ===v 一丈零的時陣=== ====project . json==== ASP . NET Core v 一丈空時期由 project . json 主掌專案的執行期的組態設定,包含專案的套件參考 ( Package References )、專案的基本設定、啟動指令、包括抑是排除指定 kha-tá-lok-guh、猶閣有建造時的相關事件指令等。 下列 JSON 為 project . json 的範例: ====appsettings . json==== appsettings . json 是用來代替 Web . config 內的 < appSettings / > 佮 < connectionStrings / > 兩个開發人員上捷用的組態區段,其內容比如講下底 : 猶毋過 appsettings . json 無成 project . json 是由 DNX 自動讀取,appsettings . json 抑是後續加入的組態檔攏是屬於功能之一,依照 ASP . NET Core 由程式碼決定功能的特性,開發人員需要加入下列程式才會當予 appsettings . json 生效。 ===v 一孵一个時期=== 隨著 . NET Core 一垺一回歸 MSBuild 建置系統管理後,ASP . NET Core 一扣一的套件管理嘛會當支援 IDE GUI 的圖形化介面參考管理功能。 ASP . NET Core 一孵一的 Visual Studio 工具嘛另外加入去矣 Bower 套件的圖形化介面管理功能。 ==套件相依管理== ASP . NET Core 的套件相依管理 ( Package Dependency Management ) 由 project . json 負責,project . json 內的 dependencies 區段佮 frameworks 區段負責管理對套件的相依,以及對特定 Framework 版本內組件的相依。 dependencies 內底的套件是以 " 套件代碼 " : " 版本 " 的格式設定,比如講 " Microsoft . AspNet . Mvc " : " 一垺零 . 零-rc 一-final " 表示參考 Microsoft . AspNet . Mvc 套領的 v 一垺零 . 零-rc 一-final 版本。套件佮版本的資訊是用 NuGet 所提供,佮往過就愛參考的方式加入去對特定組件的相依性有真大的無仝,這嘛是 . NET Core / ASP . NET Core 的特色之一,毋免閣去安裝大包的 . NET Framework,只要使用 DNU 的 restore 指令,就愛還原所參翕的相依套件。 frameworks 是定義了特定系統環境內所相依的特定組件佮其版本,佇這个定義的組件就愛事先安裝佇電腦內才會當提用,佮 dependencies 會閣原套件無仝。開發人員會當予定一个字串來代表特定環境 ( 比如講 dnx 四十五表示 DNX on . NET 四配五、dnxcore 五表示 DNX on . NET Core 五 ),然後佇內底指定特定的組件佮其版本。 自一孵零 . 零-rc 二起,DNX 的功能由 . NET Core CLI 取代,彼陣仔因此閣原套件的指令改做 dotnet restore。 ==組件== ASP . NET Core 以 . NET Core 的基礎發展,其目前的組件有: 一 . ASP . NET Core MVC : 目前欽定的 Web 應用程式開發框架。 二 . ASP . NET Core SignalR : 新一代的長時輪詢 ( Long-Time Polling ) 訊息通訊基礎建設,計畫佇咧 ASP . NET Core 一垺零 . 零釋出來才會繼續進行開發。 三 . Entity Framework Core : 後一代的 ADO . NET Entity Framework,採用 . NET Core 閣重新設計,為欽定的 ORM 資料的存取技術。 四 . Identity Core 五 . Razor Core 六 . Blazor 七 . Kestrel web server ==開發工具== ASP . NET Core 的可用開發的工具有: * Visual Studio,內建有 ASP . NET Core 的彼个案本,嘛會當使用 IDE 的功能建造和部署應用程式 ( 比如講 Azure Web App 抑是講 ASP . NET Docker Image on Azure 等 )。 * Visual Studio Code,迒過平台的 Visual Studio 編輯器。 * Yeoman Generator for ASP . NET,提供予 Mac 佮 Linux 等作業系統,會當直接產生專案範本的工具。 * 只要是文字編輯器攏會當編修 project . json 佮程式碼檔案,毋過欲家己處理建造佮部署的細節。 ==版本的過程== ==參考== [[分類: 待校正]]
返回到「
ASP.NETCore
」。