-
>
全國計算機等級考試最新真考題庫模擬考場及詳解·二級MSOffice高級應用
-
>
決戰行測5000題(言語理解與表達)
-
>
軟件性能測試.分析與調優實踐之路
-
>
第一行代碼Android
-
>
JAVA持續交付
-
>
EXCEL最強教科書(完全版)(全彩印刷)
-
>
深度學習
.NET Core 2.0 應用程序高級調試-完全掌握Linux.macOS和 Windows跨平 版權信息
- ISBN:9787302505334
- 條形碼:9787302505334 ; 978-7-302-50533-4
- 裝幀:一般膠版紙
- 冊數:暫無
- 重量:暫無
- 所屬分類:>>
.NET Core 2.0 應用程序高級調試-完全掌握Linux.macOS和 Windows跨平 本書特色
本書系統論述了.NET Core 的相關概念、編譯方法、命令行工具使用方法、調試環境搭建,調試器基本使用方法、.NET Core 調試擴展基本使用方法、.NET Core 多線程應用程序調試、以及.NET Core 內存管理垃圾收集器等相關知識。全書論述了如下主題: .NET Core 你需要知道的; .NET Core 的編譯; .NET Core 命令行工具; 調試環境的配置; 調試器的基本命令; .NET 基本調試命令; 多線程調試; async 和await; 內存和垃圾收集。
.NET Core 2.0 應用程序高級調試-完全掌握Linux.macOS和 Windows跨平 內容簡介
隨著.NET Core 開源和跨平臺的特性逐漸被廣大開發者熟知和接受,有越來越多的.NET 應用從Windows 平臺向Linux 平臺進行遷移,有越來越多的開發者在Linux 或者macOS 操作系統上開發.NET 應用。同時,這也給之前只熟悉在Windows 平臺上開發.NET 應用的開發者帶來了一系列挑戰。怎樣在Linux 和macOS操作系統上有效地使用工具對.NET Core 應用程序進行調試,找出程序中隱藏的代碼錯誤和內存中的問題成為保障應用程序在Linux 和macOS 上平穩運行的重要課題。本書從.NET Core概念、.NET Core 相關工具、調試器選擇、調試命令介紹和多線程、內存調試實踐等多個環節對.NET Core在Linux、macOS和Windows 三個操作系統上如何進行調試做了詳盡的介紹。內容包括.NET Core基礎知識、.NET Core 的編譯、.NET Core 命令行工具、調試環境的配置、調試器的基本命令、.NET 基本調試命令、多線程、async和await、內存和垃圾收集等,分9章全面地闡述了.NET Core 跨平臺調試技術。
.NET Core 2.0 應用程序高級調試-完全掌握Linux.macOS和 Windows跨平 目錄
推薦序Ⅲ
前言Ⅴ
贊譽Ⅸ
第1章.NET Core基礎知識
1.1.NET Core到底是什么
1.1.1從軟件許可協議說開源
1.1.2構成.NET Core的重要組件
1.2.NET Standard又是什么
1.3.NET Core的一些重要工具
1.4常見問題解答
第2章.NET Core的編譯
2.1.NET Core源代碼在Linux操作系統上的編譯
2.1.1獲取.NET Core源代碼
2.1.2安裝編譯源代碼必要的工具
2.1.3在CentOS上手工編譯LLVM、Clang和LLDB
2.1.4在Linux上編譯.NET Core源代碼
2.2.NET Core源代碼在Windows操作系統上的編譯
2.2.1下載和安裝Visual Studio
2.2.2安裝其他**軟件
2.2.3在Windows系統上執行.NET Core編譯
2.3.NET Core源代碼在macOS操作系統上的編譯
第3章.NET Core命令行工具
3.1.NET Core CLI的安裝
3.2創建.NET Core項目
3.3.NET Core項目的遷移
3.4.NET Core項目的構建
3.5.NET Core項目的發布
3.6對.NET Core項目進行管理
3.6.1dotnet sln命令介紹
3.6.2項目之間的引用管理
3.6.3項目的包管理
3.6.4項目引用NuGet包的恢復
3.7.NET Core應用的執行
3.8將.NET Core項目發布成NuGet包
3.8.1dotnet pack命令介紹
3.8.2dotnet nuget push命令介紹
3.8.3dotnet nuget locals命令介紹
3.8.4dotnet nuget delete命令介紹
3.9dotnet相關命令的使用
3.9.1創建解決方案和項目
3.9.2設置項目的引用
3.9.3添加測試工程
第4章調試環境的配置
4.1調試環境設置概述
4.2Linux操作系統調試環境設置
4.2.1在Linux上設置ulimit
4.2.2在Linux操作系統上部署調試器
4.2.3在Linux操作系統上抓取內存轉儲文件
4.3在macOS操作系統上部署調試器
4.4在Windows操作系統上部署調試器
4.4.1Windows上安裝Windbg
4.4.2在Windows上抓取內存轉儲
第5章調試器的基本命令
5.1使用LLDB進行調試
5.1.1LLDB調試器簡介
5.1.2命令行參數
5.1.3一段用于演示的代碼
5.1.4LLDB的啟動和退出
5.1.5設置斷點
5.1.6單步調試指令
5.1.7查看調用堆棧
5.1.8線程切換
5.1.9寄存器調試指令
5.1.10查看內存數據
5.2Windbg調試器和基本指令
5.2.1Windbg簡介
5.2.2Windbg的啟動和退出
5.2.3Windbg設置斷點
5.2.4Windbg查看堆棧調用
5.2.5Windbg線程相關指令
5.2.6Windbg寄存器相關指令
5.2.7Windbg查看內存數據
第6章.NET基本調試命令
6.1.NET調試擴展概覽
6.2.NET數據結構的基本知識
6.2.1對象在內存中的形態
6.2.2MethodTable和EEClass
6.2.3MethodDesc
6.3.NET調試擴展命令
6.3.1代碼和堆棧調試命令
6.3.2CLR數據結構相關調試命令
6.3.3內存對象分析相關命令
6.4那些所謂的調試套路
第7章多線程
7.1多線程基礎
7.1.1線程的基本概念
7.1.2.NET Core多線程同步對象
7.2一個簡單的多線程程序調試
7.2.1MassiveThreads程序
7.2.2LLDB調試MassiveThreads
7.2.3Windbg調試MassiveThreads
7.2.4MassiveThreads調試總結
7.3程序死鎖的調試
7.3.1DBDeadlockHang應用程序
7.3.2使用LLDB調試死鎖
7.3.3使用Windbg調試死鎖
7.3.4死鎖調試總結
第8章async和await
8.1基于任務的異步編程模式
8.2如何寫好一個TAP異步方法
8.2.1函數的命名和聲明
8.2.2異步方法中的代碼
8.2.3函數中的異常處理
8.2.4異步方法執行過程中的終止
8.2.5異步任務執行進度的通知
8.3async/await是什么
8.4async/await調試
8.4.1使用LLDB在Linux上調試異步方法
8.4.2在Visual Studio 2017上調試異步方法
第9章內存和垃圾收集
9.1.NET Core內存管理工作原理
9.1.1從一行簡單的代碼看內存申請
9.1.2.NET Core內存管理概覽
9.1.3托管堆內存的分代管理
9.1.4Finalizer隊列
9.2內存泄漏調試
9.2.1如何診斷內存泄漏
9.2.2Linux的內存泄漏調試
9.2.3Windows下的內存泄漏調試
9.3Finalizer隊列調試
后記
.NET Core 2.0 應用程序高級調試-完全掌握Linux.macOS和 Windows跨平 節選
第3章 .NET Core命令行工具 第3章.NET Core命令行工具 .NET Core命令行工具簡稱.NET Core CLI,是開發人員與.NET Core交互的唯一用戶界面。開發人員通過.NET Core CLI可以創建、恢復和發布.NET Core應用程序。本章將介紹.NET Core CLI的詳細用法! 3.1.NET Core CLI的安裝 .NET Core CLI是一個獨立的開源項目,可以獨立安裝。在一些特殊的情況下,需要單獨部署和更新.NET Core CLI的版本。更多時候.NET Core CLI是隨.NET Core SDK一起安裝的。.NET Core SDK下載地址: https: //www.microsoft.com/net/download/all! 3.2創建.NET Core項目 在正式開發.NET Core應用之前,需要首先創建一個.NET Core的項目。使用.NET Core CLI可以創建已經支持的各種類型.NET Core應用程序。 dotnet new命令用來創建.NET Core的項目相關文件,例如用來描述項目的csproj文件,項目模板中自帶的一些頁面和代碼文件等。dotnet new的參數如命令3.1所示。 dotnet new 。-o|--output] [-all|--show-all] [-h|--help] 。跿emplate options] [--force] [--type] [-i|--install] 。-u|--uninstall] dotnet new dotnet new [-all|--show-all] dotnet new [-h|--help] 命令3.1dotnet new 其中TEMPLATE參數用來指明創建新.NET項目的項目模板。目前,.NET Core支持的項目模板主要類型如表3.1所示! ”3.1dot new項目模板明細表 項 目 模 板項 目 類 型 支 持 語 言 console 創建一個.NET Core控制臺應用項目 C# VB.NET F# classlib .NET Core類庫項目 C# VB.NET F# mstest 創建一個mstest框架為基礎的單元測試項目 C# VB.NET F# xunit 創建一個XUnit開源測試框架為基礎的單元測試項目 C# VB.NET F# web 創建一個空的ASP.NET Core Web項目 C# mvc 創建一個ASP.NET Core MVC Web項目 C# F# razor 創建一個支持Razor頁面的ASP.NET Core MVC項目 C# webapi 創建一個ASP.Net Core WebAPI項目 C# nugetconfig 創建一個用于制作NuGet包的配置文件 sln 創建一個與Visual Studio兼容的sln解決方案文件 page 創建一個僅支持Razor視圖的ASP.NET Core項目 viewimports 創建一個ASP.NET Core MVC使用的視圖模板_ViewImports.cshtml文件 viewstart 創建一個ASP.NET Core StartMVC使用的視圖模板_ViewStart.cshtml文件 參數lang或language用于指定項目所使用的編程語言。目前.NET Core的一些項目模板可以指定C#、VB.NET或者F#作為編程語言,其他的編程語言暫不支持。在Linux和macOS上,有一個常識: 參數通常分為長參數(以開頭)和短參數(以),lang作為language的縮寫是以為開頭的,而language把參數名寫全了,因此使用作為開頭! 氮瞡或name用來指定項目的名稱,如果不指定項目名稱,那么dotnet new將會使用當前所在目錄的目錄名稱作為項目的名稱! 氮瞣或output用來指定dotnet new生成的項目文件的輸出目錄。在指定這個參數后,dotnet new會在當前目錄中創建一個指定名字的子目錄,并將生成的項目文件放入子目錄中! 氮瞐ll或showall用來顯示dotnet new所支持的項目模板信息。 參數l或list用來顯示dotnet new的全部參數幫助信息和支持的項目模板信息! 氮瞙或help用來顯示dotnet new的全部參數幫助信息,支持的項目模板信息和使用樣例! 氮勃瞗orce讓dotnet new生成的全新項目文件覆蓋現有項目文件。 參數type過濾顯示dotnet new支持的項目模板。type默認支持的類型有project、item和other。例如,可以使用dotnet new type item來顯示dotnet new支持創建的單個文件類型,例如sln、viewimport和viewstart類型。 參數i或install用來安裝自定義項目模板。自定義項目模板格式與Visual Studio支持的自定義項目模板相同,都是一個zip文件! 氮瞮或uninstall用來卸載已安裝的自定義項目模板。 3.3.NET Core項目的遷移 對于早期版本的如.Net Core 1.0或者1.1版本的應用程序,dotnet命令行工具提供了dotnet migrate命令來幫助開發者從低版本的項目文件遷移到高版本的項目文件。 dotnet migrate遷移命令的語法如命令3.2所示! otnet migrate [] [-t|--template-file] 。-v|--sdk-package-version] [-x|--xproj-file] [-s|--skip-project-references] [-r|--report-file] [--format-report-file-json] [--skip-backup] [-h|--help] 命令3.2dotnet migrate dotnet migrate既支持根據解決方案文件sln以遞歸的形式遷移整個解決方案的所有項目,也可以通過指定一個單獨的項目路徑來遷移單個.Net Core項目。從目前的具體情況來看,dotnet migrate的主要作用是根據指定的sln文件或者JSON格式的.NET 1.x項目的project.json文件內容分析項目之間的引用關系,并把JSON格式的項目內容翻譯成MSBuild支持的XML格式的csproj文件,*后把舊的project.json格式的項目文件刪除! 氮瞭或templatefile用來顯式地指定一個MSBuild模板,讓要轉化的項目以這種項目模板作為目標進行轉化。.NET Core 2.0支持的項目模板可參考dotnet new命令一節中支持的項目模板列表! 氮瞯或sdkpackageversion用來指定項目遷移后將基于哪個.NET Core版本。默認情況下,dotnet migrate進行遷移操作是不會修改項目依賴的.NET Core版本的。對于一個.NET Core 1.x的項目,如果不指定這個參數,那么項目遷移之后僅僅是把project.json文件轉化為MSBuild格式的csproj文件,但是并不會強制升級項目所依賴的.NET Core版本。如果想把一個.NET Core 1.x項目升級到.NET Core 2.0,那么需要通過v或者sdkpackageversion參數指定.NET Core版本,如命令3.3所示! otnet migrate -v netcoreapp2.0 命令3.3dotnet項目遷移到2.0 參數x或xprojfile用來指定xproj文件的位置。 如果當前文件夾內不止一個xproj文件,則必須指定該參數。 xproj文件是.NET Core 1.x中用來描述構建配置的文件。由于.NET Core 1.x期望獲得Visual Sudio和Xamarin Studio(現在已經更名為Visual Studio for Mac)等集成開發環境之間構建的兼容性,因此發明了xproj文件。這個文件以XML格式的形式描述了構建一個.NET Core 1.x項目的基本參數。由于是.NET Core 1.x定義的xproj,因此被所有支持.NET Core 1.x開發的集成開發環境所支持。在.NET Core 2.0時代,項目文件將重新回歸csproj或vbproj等項目文件類型,構建參數包含于csproj等項目文件中。通常情況下,project.json文件和xproj文件共存于同一個目錄下,dotnet migrate可以自動定位xproj文件的位置。在一些特殊情況下,就需要通過x或xprojfile來指定待轉換項目的xproj文件的路徑! 氮瞫或skipprojectreferences,用來告訴dotnet migrate在進行項目遷移時,僅遷移當前項目,而不對其引用的項目進行遷移。而在默認情況下,dotnet migrate會根據project.json文件中描述的項目引用關系,遞歸式地將全部相關項目進行遷移。 參數r或reportfile用來指定遷移過程中產生的遷移報告的保存路徑。如果不指定這個參數,就不會產生遷移報告! 氮勃瞗ormatreportfilejson將遷移報告轉化成json格式文件進行輸出! 氮勃瞫kipbackup在指定dotnet migrate操作時不對待遷移項目進行備份,直接執行遷移操作并刪除project.json文件。在默認情況下,即不指定該參數時,dotnet migrate需要先備份整個項目再執行遷移操作。 3.4.NET Core項目的構建 .NET Core 2.0項目的構建主要依賴于MSBuild實現。通過MSBuild讀取項目文件中的構建配置,調用編譯器、腳本等完成一系列的構建動作。通過項目構建,可以獲得用于執行的二進制輸出結果! otnet build命令用來構建指定的項目和指定項目的依賴項目。通過構建,得到.NET Core的二進制可執行輸出。dotnet build命令語法如命令3.4所示! otnet build [] [-o|--output] [-f|--framework] 。-c|--configuration] [-r|--runtime] [--version-suffix] 。--no-incremental] [--no-dependencies] [-v|--verbosity] [-h|--help] 命令3.4dotnet build 如果要編譯的項目不在當前目錄,那么可以通過dotnet build項目所在目錄的方式進行編譯,即使用參數。如果沒有指定項目目錄,就編譯當前目錄下的項目。 參數o或output用來指定構建結果的輸出目錄。項目經過構建而生成的*終二進制可執行內容將被保存在指定目錄下。 參數f或framework用來指定未來的編譯結果要運行在哪一個.NET Framework版本上。并且,這個Framework版本已經在該項目文件中指定了。這也很好理解,不能指望一個為.NET Core 2.0編寫的項目可以運行在.NET Framework 2.0版本上,因此目標框架必須在項目文件中已經聲明過。Framework通常按簡短的目標框架名字對象(Target Framework Moniker,TFM)來表示。在給定framework參數時,使用TFM名稱即可,詳見表3.2所示! ”3.2簡短目標框架與.NET版本對照表 名稱縮寫TFM .NET Standard netstandard netstandard1.0 netstandard1.1 netstandard1.2 netstandard1.3 netstandard1.4 netstandard1.5 netstandard1.6 netstandard2.0 .NET Core netcoreapp netcoreapp1.0 netcoreapp1.1 .NET Framework net net11 net20 ……
.NET Core 2.0 應用程序高級調試-完全掌握Linux.macOS和 Windows跨平 作者簡介
李爭 微軟(中國)有限公司開發者體驗與平臺合作事業部資深技術顧問。專注于微軟公有云平臺Azure的解決方案和架構設計、Azure應用的實施,以及Azure上的開源技術等工作。曾在微軟企業服務部作為原廠技術支持工程師工作多年,承擔企業開發者代碼調試和技術支持、Web應用前端后端代碼調優,以及IIS 的問題診斷、調優、培訓等工作。具有豐富的企業客戶臨場解決嚴重系統問題的經驗。擁有四十多門微軟認證證書,涵蓋了幾乎全部微軟開發相關技術,同時也是一位具有十多年授課經驗的微軟認證講師(MCT)。 著有《微軟互聯網信息服務(IIS)實踐》《微軟開源跨平臺移動開發實踐》暢銷圖書。
- >
【精裝繪本】畫給孩子的中國神話
- >
龍榆生:詞曲概論/大家小書
- >
小考拉的故事-套裝共3冊
- >
上帝之肋:男人的真實旅程
- >
有舍有得是人生
- >
月亮虎
- >
經典常談
- >
自卑與超越