中图网(原中国图书网):网上书店,尾货特色书店,30万种特价书低至2折!

歡迎光臨中圖網 請 | 注冊
> >>
.NET Core 2.0 應用程序高級調試-完全掌握Linux.macOS和 Windows跨平

包郵 .NET Core 2.0 應用程序高級調試-完全掌握Linux.macOS和 Windows跨平

作者:李爭
出版社:清華大學出版社出版時間:2018-09-01
開本: 16開 頁數: 167
中 圖 價:¥35.2(6.0折) 定價  ¥59.0 登錄后可看到會員價
加入購物車 收藏
開年大促, 全場包郵
?新疆、西藏除外
本類五星書更多>

.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或showall用來顯示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格式的項目文件刪除! 氮瞭或templatefile用來顯式地指定一個MSBuild模板,讓要轉化的項目以這種項目模板作為目標進行轉化。.NET Core 2.0支持的項目模板可參考dotnet new命令一節中支持的項目模板列表! 氮瞯或sdkpackageversion用來指定項目遷移后將基于哪個.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或者sdkpackageversion參數指定.NET Core版本,如命令3.3所示! otnet migrate -v netcoreapp2.0  命令3.3dotnet項目遷移到2.0  參數x或xprojfile用來指定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或xprojfile來指定待轉換項目的xproj文件的路徑! 氮瞫或skipprojectreferences,用來告訴dotnet migrate在進行項目遷移時,僅遷移當前項目,而不對其引用的項目進行遷移。而在默認情況下,dotnet migrate會根據project.json文件中描述的項目引用關系,遞歸式地將全部相關項目進行遷移。  參數r或reportfile用來指定遷移過程中產生的遷移報告的保存路徑。如果不指定這個參數,就不會產生遷移報告! 氮勃瞗ormatreportfilejson將遷移報告轉化成json格式文件進行輸出! 氮勃瞫kipbackup在指定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)實踐》《微軟開源跨平臺移動開發實踐》暢銷圖書。

商品評論(0條)
暫無評論……
書友推薦
本類暢銷
編輯推薦
返回頂部
中圖網
在線客服
主站蜘蛛池模板: 山东太阳能路灯厂家-庭院灯生产厂家-济南晟启灯饰有限公司 | 天坛家具官网 | 奥运星-汽车性能网评-提供个性化汽车资讯 | 舞台木地板厂家_体育运动木地板_室内篮球馆木地板_实木运动地板厂家_欧氏篮球地板推荐 | 太阳能发电系统-太阳能逆变器,控制器-河北沐天太阳能科技首页 | 丁基胶边来料加工,医用活塞边角料加工,异戊二烯橡胶边来料加工-河北盛唐橡胶制品有限公司 | 压滤机滤板_厢式_隔膜_板框压滤机滤板厂家价格型号材质-大凯环保 | 河北凯普威医疗器材有限公司,高档轮椅系列,推车系列,座厕椅系列,协步椅系列,拐扙系列,卫浴系列 | 防火窗_耐火窗_防火门厂家_防火卷帘门-重庆三乐门业有限公司 | 立式壁挂广告机厂家-红外电容触摸一体机价格-华邦瀛 | 泰国专线_泰国物流专线_广州到泰国物流公司-泰廊曼国际 | 首页-瓜尔胶系列-化工单体系列-油田压裂助剂-瓜尔胶厂家-山东广浦生物科技有限公司 | 活性氧化铝球|氧化铝干燥剂|分子筛干燥剂|氢氧化铝粉-淄博同心材料有限公司 | 10吨无线拉力计-2吨拉力计价格-上海佳宜电子科技有限公司 | 耐火浇注料价格-高强高铝-刚玉碳化硅耐磨浇注料厂家【直销】 | 礼仪庆典公司,礼仪策划公司,庆典公司,演出公司,演艺公司,年会酒会,生日寿宴,动工仪式,开工仪式,奠基典礼,商务会议,竣工落成,乔迁揭牌,签约启动-东莞市开门红文化传媒有限公司 | 石家庄装修设计_室内家装设计_别墅装饰装修公司-石家庄金舍装饰官网 | 广州展台特装搭建商|特装展位设计搭建|展会特装搭建|特装展台制作设计|展览特装公司 | 合肥地磅_合肥数控切割机_安徽地磅厂家_合肥世佳电工设备有限公司 | 网站建设,北京网站建设,北京网站建设公司,网站系统开发,北京网站制作公司,响应式网站,做网站公司,海淀做网站,朝阳做网站,昌平做网站,建站公司 | 工业硝酸钠,硝酸钠厂家-淄博「文海工贸」 | 英思科GTD-3000EX(美国英思科气体检测仪MX4MX6)百科-北京嘉华众信科技有限公司 | 结晶点测定仪-润滑脂滴点测定仪-大连煜烁 | 新密高铝耐火砖,轻质保温砖价格,浇注料厂家直销-郑州荣盛窑炉耐火材料有限公司 | 深圳市源和塑胶电子有限公司-首页| 申江储气罐厂家,储气罐批发价格,储气罐规格-上海申江压力容器有限公司(厂) | 综合管廊模具_生态,阶梯护坡模具_检查井模具制造-致宏模具厂家 | 济南拼接屏_山东液晶拼接屏_济南LED显示屏—维康国际官网 | PC构件-PC预制构件-构件设计-建筑预制构件-PC构件厂-锦萧新材料科技(浙江)股份有限公司 | 工业车间焊接-整体|集中除尘设备-激光|等离子切割机配套除尘-粉尘烟尘净化治理厂家-山东美蓝环保科技有限公司 | 知企服务-企业综合服务(ZiKeys.com)-品优低价、种类齐全、过程管理透明、速度快捷高效、放心服务,知企专家! | 转子泵_凸轮泵_凸轮转子泵厂家-青岛罗德通用机械设备有限公司 | 江西自考网-江西自学考试网 | 上海平衡机-单面卧式动平衡机-万向节动平衡机-圈带动平衡机厂家-上海申岢动平衡机制造有限公司 | 长沙一级消防工程公司_智能化弱电_机电安装_亮化工程专业施工承包_湖南公共安全工程有限公司 | 气密性检测仪_气密性检测设备_防水测试仪_密封测试仪-岳信仪器 | 东莞办公家具厂家直销-美鑫【免费3D效果图】全国办公桌/会议桌定制 | 深圳高新投三江工业消防解决方案提供厂家_服务商_园区智慧消防_储能消防解决方案服务商_高新投三江 | 江西自考网-江西自学考试网| 匀胶机旋涂仪-声扫显微镜-工业水浸超声-安赛斯(北京)科技有限公司 | 万濠影像仪(万濠投影仪)百科-苏州林泽仪器 |