TOP
0
0
倒數三天!簡體曬書節單本79折,5本7折
深入淺出.NET框架設計與實現(簡體書)
滿額折
深入淺出.NET框架設計與實現(簡體書)
深入淺出.NET框架設計與實現(簡體書)
深入淺出.NET框架設計與實現(簡體書)
深入淺出.NET框架設計與實現(簡體書)
深入淺出.NET框架設計與實現(簡體書)
深入淺出.NET框架設計與實現(簡體書)
深入淺出.NET框架設計與實現(簡體書)
深入淺出.NET框架設計與實現(簡體書)
深入淺出.NET框架設計與實現(簡體書)
深入淺出.NET框架設計與實現(簡體書)
深入淺出.NET框架設計與實現(簡體書)
深入淺出.NET框架設計與實現(簡體書)
深入淺出.NET框架設計與實現(簡體書)
深入淺出.NET框架設計與實現(簡體書)
深入淺出.NET框架設計與實現(簡體書)

深入淺出.NET框架設計與實現(簡體書)

商品資訊

人民幣定價:129.9 元
定價
:NT$ 779 元
優惠價
87678
領券後再享89折起
海外經銷商無庫存,到貨日平均30天至45天
可得紅利積點:20 點
相關商品
商品簡介
作者簡介
名人/編輯推薦
目次

商品簡介

本書主要介紹.NET框架的核心部分,不僅闡述了框架的核心設計,還展示了實踐代碼和運行效果,同時根據不同的功能模塊擴展出屬於自己的小組件。通過閱讀本書,讀者可以深入了解.NET框架的核心設計,掌握.NET性能調優和ASP.NET Core的部署方式。本書包含18章。第1~3章主要介紹.NET框架、開發環境和運行模式。第4~12章主要介紹依賴注入、配置與選項、後臺任務、中間件、緩存、本地化、健康檢查、文件系統和日志等常用功能模塊。第13~17章主要介紹線程、線程同步、內存管理、診斷和調試,以及編譯技術等內容。第18章主要介紹應用程序的部署方式,包括宿主機的部署,以及Docker和Kubernetes的部署。

作者簡介

馮輝,Microsoft MVP、Dapr Member、.NET Conf China 2020/2021講師、開源技術的積極倡導者與貢獻者。具有豐富的.NET開發經驗,專注於.NET平臺、云原生、服務化和DevOps等技術領域的研究。

名人/編輯推薦

基礎階段:從簡單的示例代碼開始,創建一個非常簡單Demo。

進階階段:編寫代碼的同時,輕鬆學習掌握核心點的實現。

原理階段:抽絲剝繭,通過源碼,讓你了解不同模塊內部的原理。

實踐階段:對章節的內容做更深入的理解和研究,創建自定義具有擴展的模塊。

推 薦 序

次和馮輝接觸是幾年前他邀請我參加濟南.NET 俱樂部的活動,當時我因工作原因未能赴約,到現在仍深感遺憾。在年初的時候得知他正在撰寫一本講解.NET 框架的書,又有幸被邀請為該書寫序,在忐忑之余,我也想借這個機會介紹一下自己在.NET 這條路的心路歷程供讀者參考。

在編程道路上,有兩件事對我產生過很大的影響。件事可以追溯到 10 年前我次接觸編程時,當時我使用.NET 中的 XNA 框架和 WP 框架開發了我的款手機 RPG 遊戲並在 Lumia 820 上運行。這次成功開發遊戲的經歷極大地增強了我對從事編程的信心和對.NET 的興趣。之後因為工作的需要,我對 WPF、WCF 和 ASP.NET 等不同方向的.NET 技術都有所涉獵。第二件事可以追溯到 Microsoft 宣布個開源的.NET 版本 ASP .NET VNext時,當時我就對 VNext 產生了極大的興趣。在學習和推廣 VNext 時,我結識了 Alex LEWIS、He Zhenxi、Xie Yang 等好友,之後我們一起創建了 NCC(.NET Core Community)社區。

初,.NET Core 提供英文文檔作為為數不多的使用參考,所以 NCC 社區剛剛成立時,我們做的件事是翻譯ASP.NET Core 初版本的英文文檔。得益於Microsoft的開源策略,學習.NET Core 的另一個途徑就是閱讀 GitHub 官網上的源代碼,我也由此養成了閱讀開源項目代碼的習慣,並且受益至今。受萬物皆“Services”並且完全管道化的 ASP.NET Core 框架的啟發,我設計了 AspectCore AOP 庫,也在從事云原生開發之後在 Go 語言上繼續參考ASP.NET Core 實現了以依賴注入作為內核的模塊化開發框架。

即使對 .NET Core 已經相對熟悉,我在閱讀本書樣稿之後還是感覺眼前一亮。本書由淺入深地介紹了.NET Core 框架的核心部分,如依賴注入、配置與選項、中間件、緩存、日志、多線程等。我相信,不管是.NET Core 的初學者,還是想要繼續進階的中高級開發工程師,都能從這本書中獲得很大的幫助。

近幾年技術浪潮興替,從大數據、移動互聯網、云計算技術的興起,再到如今人工智能、云原生技術的流行,.NET Core 完成了從運行時、BCL(Base Class Library,基礎類庫)到開發框架的一系列蛻變。得益於分層編譯、重新實現的集合類、Span、網絡/文件 I/O 等諸多細節的優化,.NET Core 不僅在幾輪的 TechEmpower 性能評測中名列前茅,還可以搭配 C#,使.NET Core 成為事實上的云原生應用開發的平臺之一。謹以此序和同為.NET Core 的使用者及愛好者共勉之。

Apache SkyWalking PMC、NCC 社區創始人 劉浩楊

2022 年 8 月於杭州

前言

隨著.NET 技術的發展,涌現出眾多的設計思想和核心概念。值得開發人員關注的技術點有很多,如 ASP.NET Core 模塊的設計、跨平臺調試與部署等。

.NET 已經成為一種熱門的現代技術體系,從.NET 徹底邁向跨平臺和開源開始,已經歷經了約 10 個版本。新一代的.NET 平臺以擁抱云原生為核心,擁有更小的體積、更少的資源占用和更快的啟動速度,並且支持水平擴展。

筆者也算是一個親歷者,從.NET Core 1.0 到現在,是一個從重生到繁榮的成長階段,.NET 生態更加開放,開源社區越來越活躍,不僅支持傳統的 x86 架構體系,還支持ARM 架構,並且獲得了龍芯 LoongArch 架構及諸多新興架構體系的踴躍支持,同時在工業、IoT、車聯網等領域獲得了廣泛運用。無論是從社區參與度,還是從 NuGet 的下載量,都不難看出.NET 的發展速度。

.NET 具備原生的跨平臺部署能力,是一種用於構建多端應用的開放平臺。使用.NET 可以構建桌面應用、云服務、嵌入式應用及機器學習應用等,讀者可以從 GitHub 官網的 dotnet組織中獲取它所有的源代碼。

計算機科學家 Alan J. Perlis 曾說過:“不能影響你的編程思維方式的語言不值得學習和使用。”由此可知,“思維”非常重要,只有了解一門編程語言或框架的基礎模型與核心設計,才能將其應用到日常的編程中。

框架的設計過程是非常複雜的,筆者偏向於將複雜問題簡單化,先研究它的實現方式,再了解它的設計模式,通過這一層層的推導過程,慢慢地了解整體脈絡。閱讀源代碼是一個枯燥但會帶來收獲的過程。在本書中,筆者將框架設計方法,以及它們的實現(可擴展性)方式毫無保留地寫下來。

本書集成了筆者在工作中使用.NET 開發應用程序的編寫經驗和調試經驗,同時結合了筆者關於 Linux 平臺和容器云平臺的使用經驗。通過本書,筆者將介紹每個模塊的核心設計與實現,因為要想在生產環境中大規模使用,就需要在這個複雜而龐大的項目中抓到主線,了解內部的實現和調試技術,以便快速定位問題和解決問題。

本書對 ASP.NET Core 的部分核心內容進行了深入解析,在這個基礎上延伸內容,以及自定義擴展實例,初學者可以更深入地了解 ASP.NET Core 內部的運作方式。本書也涵蓋了很多基礎知識,如垃圾回收、調試、線程等,除此之外,添加了部署方面的內容,將應用程序部署到宿主機、Docker 和 Kubernetes 中。

筆者通過對.NET 技術的原理進行剖析及實例的演示,幫助讀者快速熟悉框架的核心設計及實現原理。希望讀者在閱讀完本書後,能夠將書中的內容學以致用,使用.NET 構建出高性能的應用程序,同時為開源社區添磚加瓦。

關於勘誤

完成本書絕不是一件簡單的事情。雖然筆者力爭保證內容的準確性,並且花費了很長的時間和大量的精力核對書中的文字和內容,但個人水平有限,書中難免存在一些不足之處,望廣大讀者批評指正。歡迎發郵件至 hueifeng2020@outlook.com,期待您的反饋。

致謝

感謝鄒溪源、嚴振範、鍋美玲、李衛涵、胡心(Azul X)、管生玄、黃新成(一線碼農)和周杰等人對本書的審核和校對,同時感謝家人、朋友和同事在筆者編寫本書期間給予的支持與鼓勵。

感謝符隆美編輯對我的悉心指導,她對本書的審核和建議使我的寫作水平有了很大的提高,在此表示感謝!

目次

第1章 .NET概述和環境安裝 1
1.1 .NET框架簡介 1
1.2 .NET的開發環境 6
1.3 小結 20
第2章 .NET運行原理概述 21
2.1 .NET CLI概述 21
2.2 小結 36
第3章 ASP.NET Core應用程序的多種運行模式 37
3.1 自宿主 37
3.2 IIS服務承載 38
3.3 將WebAPI嵌入桌面應用程序中 39
3.4 服務承載 41
3.5 延伸閱讀:WindowsFormsLifetime 53
3.6 小結 59
第4章 依賴注入 60
4.1 .NET依賴注入 61
4.2 實現批量服務注冊 80
4.3 小結 84
第5章 配置與選項 85
5.1 配置模式 85
5.2 選項模式 101
5.3 設計一個簡單的配置中心 121
5.4 小結 130
第6章 使用IHostedService和BackgroundService實現後臺任務 131
6.1 IHostedService 131
6.2 BackgroundService 134
6.3 任務調度 137
6.4 小結 142
第7章 中間件 143
7.1 中間件的作用 143
7.2 中間件的調用過程 144
7.3 編寫自定義中間件 147
7.4 在過濾器中應用中間件 151
7.5 製作簡單的API統一響應格式與自動包裝 156
7.6 延伸閱讀:責任鏈模式 159
7.7 延伸閱讀:中間件常見的擴展方法 162
7.8 小結 174
第8章 緩存 175
8.1 內存緩存 175
8.2 分布式緩存 180
8.3 HTTP緩存 188
8.4 小結 193
第9章 本地化 194
9.1 內容本地化 194
9.2 多樣化的數據源 203
9.3 小結 210
第10章 健康檢查 211
10.1 檢查當前應用的健康狀態 211
10.2 發布健康報告 233
10.3 可視化健康檢查界面 238
10.4 小結 240
第11章 文件系統 241
11.1 ASP.NET Core靜態文件 241
11.2 自定義一個簡單的文件系統 247
11.3 小結 253
第12章 日志 254
12.1 控制臺日志 254
12.2 調試日志 281
12.3 事件日志 285
12.4 EventSource日志 292
12.5 TraceSource日志 298
12.6 DiagnosticSource日志 303
12.7 小結 309
第13章 多線程與任務並行 310
13.1 線程簡介 310
13.2 基於任務的異步編程 316
13.3 線程並行 328
13.4 小結 329
第14章 線程同步機制和鎖 330
14.1 原子操作 330
14.2 自旋鎖 333
14.3 混合鎖 337
14.4 互斥鎖 340
14.5 信號量 341
14.6 讀寫鎖 346
14.7 小結 348
第15章 內存管理 349
15.1 內存分配 349
15.2 垃圾回收器 357
15.3 資源釋放 362
15.4 垃圾回收器的設置 368
15.5 小結 374
第16章 診斷和調試 375
16.1 性能診斷工具 375
16.2 Linux調試 421
16.3 小結 433
第17章 編譯技術精講 434
17.1 IL解析 434
17.2 JIT簡介 439
17.3 JIT編譯 441
17.4 AOT編譯 450
17.5 小結 454
第18章 部署 455
18.1 發布與部署 455
18.2 Docker 464
18.3 編寫Dockerfile文件 473
18.4 構建.NET應用鏡像 476
18.5 Docker Compose 481
18.6 Docker Swarm 484
18.7 Kubernetes 489
18.8 小結 500

您曾經瀏覽過的商品

購物須知

大陸出版品因裝訂品質及貨運條件與台灣出版品落差甚大,除封面破損、內頁脫落等較嚴重的狀態,其餘商品將正常出貨。

特別提醒:部分書籍附贈之內容(如音頻mp3或影片dvd等)已無實體光碟提供,需以QR CODE 連結至當地網站註冊“並通過驗證程序”,方可下載使用。

無現貨庫存之簡體書,將向海外調貨:
海外有庫存之書籍,等候約45個工作天;
海外無庫存之書籍,平均作業時間約60個工作天,然不保證確定可調到貨,尚請見諒。

為了保護您的權益,「三民網路書店」提供會員七日商品鑑賞期(收到商品為起始日)。

若要辦理退貨,請在商品鑑賞期內寄回,且商品必須是全新狀態與完整包裝(商品、附件、發票、隨貨贈品等)否則恕不接受退貨。

優惠價:87 678
海外經銷商無庫存,到貨日平均30天至45天

暢銷榜

客服中心

收藏

會員專區