內容簡介
380個精選實例:一步步昇華成.NET Core大內高手
內容簡介
◎微軟資深MVP執筆撰寫
◎微軟全球執行副總裁沈向洋推薦
◎380個實用案例全方位展示.NET Core程式設計技術精要
Visual Studio號稱地表最強大的開發環境,但也是最龐大的系統。你也許想用的是Visual Studio的強大,但卻又想開發出如Ubuntu Linux或MacOS般的輕巧程式,有可能嗎?
.NET Core是你的答案。
微軟最新的核心元件.NET Core不但具有Visual Studio Community版本與生俱來的強大功能,更有精巧的.NET Core的核心,幫助你在最節省資源的情況下,快速輕巧開發出Visual Studio的各種程式,如C#、Web、主控台或MVC的網站架構等等。
本書所有內容均以實例的形式呈現,全書將近400個實例,每個實例都有完整的步驟及清楚的圖示,詳細說明完成實例專案的步驟,讀者可以直接動手實作,親自體驗程式設計的樂趣。讓你從零基礎,一躍成為微軟平台的開發大師。
全書分為三篇:
第一篇 基礎知識。有關開發環境的架設、基礎類型、流程控制、常用集合、LINQ 語法和物件導向思想等內容。
第二篇 技術進階。強化程式設計技能,此部分的實例包含檔案與目錄操作、基礎I/O、序列化/ 反序列化、網路與非同步程式設計、反射與加密演算法應用等內容。
第三篇 ASP.NET Core。此部分主要包含與Web 開發相關的實例,重點有關Web Host 初始化、中介軟體、依賴植入、應用設定、EF Core 等關鍵知識。
涵蓋以下內容:
•在Windows上安裝Visual Studio Community最新版
•在Linux安裝.NET Core SDK/Runtime
•使用.NET Core命列行/IDE建立你的專案
•C#的完整基礎,如流程控制,物件導向、資料型態
•C#的進階使用,包括數學運算及字串處理、泛型及集合
•LINQ的使用、I/O、流處理、文件處理、序列化
•例外的處理、單步偵錯、平行處理
•網路程式設計、反射及Composition、加密演算
•完整的ASP.NET Core,web主機設定
•MVC及Web API、JSON檔案
•應用程式及資料庫的存取
適合讀者群:可作為.NET Core技術相關課程的教學用書,或從事.NET Core技術開發的IT從業者參考。
內容簡介
◎微軟資深MVP執筆撰寫
◎微軟全球執行副總裁沈向洋推薦
◎380個實用案例全方位展示.NET Core程式設計技術精要
Visual Studio號稱地表最強大的開發環境,但也是最龐大的系統。你也許想用的是Visual Studio的強大,但卻又想開發出如Ubuntu Linux或MacOS般的輕巧程式,有可能嗎?
.NET Core是你的答案。
微軟最新的核心元件.NET Core不但具有Visual Studio Community版本與生俱來的強大功能,更有精巧的.NET Core的核心,幫助你在最節省資源的情況下,快速輕巧開發出Visual Studio的各種程式,如C#、Web、主控台或MVC的網站架構等等。
本書所有內容均以實例的形式呈現,全書將近400個實例,每個實例都有完整的步驟及清楚的圖示,詳細說明完成實例專案的步驟,讀者可以直接動手實作,親自體驗程式設計的樂趣。讓你從零基礎,一躍成為微軟平台的開發大師。
全書分為三篇:
第一篇 基礎知識。有關開發環境的架設、基礎類型、流程控制、常用集合、LINQ 語法和物件導向思想等內容。
第二篇 技術進階。強化程式設計技能,此部分的實例包含檔案與目錄操作、基礎I/O、序列化/ 反序列化、網路與非同步程式設計、反射與加密演算法應用等內容。
第三篇 ASP.NET Core。此部分主要包含與Web 開發相關的實例,重點有關Web Host 初始化、中介軟體、依賴植入、應用設定、EF Core 等關鍵知識。
涵蓋以下內容:
•在Windows上安裝Visual Studio Community最新版
•在Linux安裝.NET Core SDK/Runtime
•使用.NET Core命列行/IDE建立你的專案
•C#的完整基礎,如流程控制,物件導向、資料型態
•C#的進階使用,包括數學運算及字串處理、泛型及集合
•LINQ的使用、I/O、流處理、文件處理、序列化
•例外的處理、單步偵錯、平行處理
•網路程式設計、反射及Composition、加密演算
•完整的ASP.NET Core,web主機設定
•MVC及Web API、JSON檔案
•應用程式及資料庫的存取
適合讀者群:可作為.NET Core技術相關課程的教學用書,或從事.NET Core技術開發的IT從業者參考。
作者簡介
作者簡介
周家安
微軟最有價值專家(MVP),擅長.NET及其相關開發技術,專注於探索簡單實用的程式設計學習方法。長期在博客園等技術社群撰寫.NET相關技術文章。
周家安
微軟最有價值專家(MVP),擅長.NET及其相關開發技術,專注於探索簡單實用的程式設計學習方法。長期在博客園等技術社群撰寫.NET相關技術文章。
內容目錄
目錄
序
前言
第一篇 基礎知識
01 架設開發與測試環境
1.1 在Windows上安裝開發環境
實例1 安裝Visual Studio
實例2 修復Visual Studio
1.2 在Linux 作業系統中設定測試環境
實例3 啟用Windows 上的Linux 子系統
實例4 設定root 密碼
實例5 在Linux 系統中安裝.NETCore SDK
實例6 在Linux 系統中安裝.NETCore 執行時期
02 應用程式專案管理
2.1 .NETCore 命令列工具的使用
實例7 使用命令列工具建立.NETCore 專案
實例8 定義新專案的名稱與儲存位置
實例9 編譯應用程式專案
實例10 編譯專案的Release 版本
實例11 建立方案檔案
實例12 列舉或刪除方案中的專案
實例13 執行應用程式
2.2 Visual Studio 開發環境
實例14 使用Visual Studio 建立專案
實例15 在Visual Studio 中執行專案
實例16 顯示程式行號
實例17 在C# Interactive 視窗中做程式實驗
實例18 在方案中增加和移除專案
實例19 增加NuGet 套件參考
實例20 清除NuGet 套件快取
實例21 儲存視窗配置
實例22 給程式打書籤
2.3 程式註釋
實例23 單行註釋
實例24 多行註釋
實例25 文件註釋
2.4 發佈.NETCore 應用專案
實例26 在Visual Studio 中發佈.NETCore 應用
實例27 使用Visual Studio 發佈可獨立執行的專案
實例28 使用dotnet 命令列工具發佈「自包含」專案
03 C# 語言基礎
3.1 命名空間
實例29 使用namespace 關鍵字
實例30 巢狀結構命名空間
實例31 引用命名空間
實例32 在命名空間內部引用其他命名空間
實例33 使用全域命名空間
實例34 為引用的命名空間設定別名
實例35 使用using static 指令
3.2 變數與常數
實例36 一次性宣告多個變數
實例37 讓編譯器自動推斷變數的類型
實例38 使用常數
實例39 取得變數的記憶體位址
實例40 輸出變數的名稱
實例41 為變數分配預設值
3.3 程式進入點
實例42 取得命令列參數
實例43 處理多個進入點
3.4 流程控制
實例44 奇數還是偶數
實例45 使用for 循環輸出文字
實例46 產生由字元組成的圖案
實例47 無窮迴圈的處理方法
實例48 退出循環的方法
實例49 輸出20 以內能被3 整除的正整數
實例50 做一道選擇題
實例51 switch 敘述的類型比對
實例52 在case敘述中使用when子句
實例53 程式跳躍
04 物件導向程式設計
4.1 大類與結構
實例54 宣告公共類別
實例55 為結構定義建置函數
實例56 建置函數的相互呼叫
實例57 靜態建置函數
實例58 驗證屬性值的有效性
實例59 初始化唯讀欄位
實例60 多載方法
實例61 大類實例傳遞給方法後為什麼沒有被更改
實例62 輸出參數
實例63 可變個數的方法參數
實例64 使用按參考傳遞的傳回值
實例65 按參數名稱來傳值
實例66 可選參數
實例67 在宣告時初始化屬性
4.2 委派與事件
實例68 委派實例如何綁定方法
實例69 綁定多個方法
實例70 匿名方法
實例71 封裝事件
實例72 架構提供的委派類型
實例73 將方法作為參數進行傳遞
實例74 使用Lambda 運算式動態產生資料
4.3 繼承與多形
實例75 呼叫基礎類別的建置函數
實例76 重新定義基礎類別的成員
實例77 徹底取代基礎類別的成員
實例78 實現多個介面
實例79 實現介面的結構
實例80 隱藏建置函數
實例81 到底呼叫了誰
實例82 解構函數
實例83 實現IDisposable 介面
實例84 顯性實現介面
實例85 阻止類別被繼承
實例86 巢狀結構類別
實例87 匿名類型
4.4 列舉
實例88 宣告列舉類型
實例89 指定列舉的基礎類型
實例90 常數的標示位運算
實例91 自動產生的常數值
實例92 取得列舉中常數的名稱
實例93 檢查列舉實例中是否包含某個標示位
4.5 特性
實例94 自訂特性類別
實例95 向特性類別的建置函數傳遞參數
實例96 在同一物件上應用多個特性實例
實例97 在執行時檢索特性實例
實例98 方法的傳回值如何應用特性
4.6 運算子
實例99 計算一個整數的階乘
實例100 逐位元平移
實例101 是「大」還是「小」
實例102 typeof 運算子的作用
實例103 使用"+" 運算子將兩個物件的屬性值相加
實例104 對null 進行判斷
4.7 類型轉換
實例105 強制轉換
實例106 將int 數值自動轉型為double 數值
實例107 輸出整數的二進位表示形式
實例108 將位元組陣列轉為字串
實例109 重新定義ToString 方法
實例110 將整數轉為十六進位字串
實例111 自訂自動轉型
4.8 可以為null 的數值型態
實例112 存取可以為null的數值型態
實例113 為Nullable 實例分配預設值
05 數學運算與字串處理
5.1 簡單數學計算
實例114 求一組整數中的最大值和最小值
實例115 計算平均值
實例116 計算一個數值的絕對值
實例117 計算一個矩形序列的周長總和
實例118 求某個角度的正弦值
實例119 求某個數值的立方
實例120 計算矩形的對角線長度
實例121 處理超大整數
5.2 日期/ 時間換算
實例122 今天是星期幾
實例123 取得指定日期的農曆日期
實例124 一天內總共有多少秒
實例125 日期的加/ 減運算
實例126 從日期字串中產生DateTime實例
5.3 常用的字串處理
實例127 使用Concat 方法連接字串
實例128 使用"+" 運算子連接字串
實例129 字串的包含關係
實例130 字母的大小寫轉換
實例131 使用分隔符號連接字串
實例132 尋找以"ay" 結尾的單字
實例133 依據指定的分隔符號來拆分字串
實例134 取代字串
實例135 反轉字串
實例136 插入與刪除字元
實例137 填充剩餘「空白」
實例138 判斷字元是否為數字
實例139 截取字串
5.7 小結
實例140 使用StringBuilder 組裝字串
實例141 字串尋找
實例142 比較字串時忽略大小寫
實例143 "@" 符號在字串中的用途
實例144 處理字串中出現的雙引號
5.4 格式控制符
實例145 輸出百分比
實例146 輸出目前語言中的貨幣格式
實例147 輸出多個幣種格式
實例148 數字的兩種常用格式
實例149 使用字串內插
實例150 長日期與短日期
實例151 自訂日期和時間格式
實例152 自訂小數位數
5.5 從字串到其他類型的轉換
實例153 從二進位字元串產生int實例
實例154 Parse 與TryParse 方法
實例155 對字串進行UTF-8 編碼
實例156 字串的HTML 編碼
實例157 字串自動轉型為自訂類別
06 泛型與集合
6.1 泛型
實例158 使用泛型參數
實例159 實現泛型介面
實例160 限制泛型參數只能使用數值型態
實例161 泛型方法
實例162 將泛型參數限制為列舉類型
實例163 泛型參數的輸入與輸出
實例164
序
前言
第一篇 基礎知識
01 架設開發與測試環境
1.1 在Windows上安裝開發環境
實例1 安裝Visual Studio
實例2 修復Visual Studio
1.2 在Linux 作業系統中設定測試環境
實例3 啟用Windows 上的Linux 子系統
實例4 設定root 密碼
實例5 在Linux 系統中安裝.NETCore SDK
實例6 在Linux 系統中安裝.NETCore 執行時期
02 應用程式專案管理
2.1 .NETCore 命令列工具的使用
實例7 使用命令列工具建立.NETCore 專案
實例8 定義新專案的名稱與儲存位置
實例9 編譯應用程式專案
實例10 編譯專案的Release 版本
實例11 建立方案檔案
實例12 列舉或刪除方案中的專案
實例13 執行應用程式
2.2 Visual Studio 開發環境
實例14 使用Visual Studio 建立專案
實例15 在Visual Studio 中執行專案
實例16 顯示程式行號
實例17 在C# Interactive 視窗中做程式實驗
實例18 在方案中增加和移除專案
實例19 增加NuGet 套件參考
實例20 清除NuGet 套件快取
實例21 儲存視窗配置
實例22 給程式打書籤
2.3 程式註釋
實例23 單行註釋
實例24 多行註釋
實例25 文件註釋
2.4 發佈.NETCore 應用專案
實例26 在Visual Studio 中發佈.NETCore 應用
實例27 使用Visual Studio 發佈可獨立執行的專案
實例28 使用dotnet 命令列工具發佈「自包含」專案
03 C# 語言基礎
3.1 命名空間
實例29 使用namespace 關鍵字
實例30 巢狀結構命名空間
實例31 引用命名空間
實例32 在命名空間內部引用其他命名空間
實例33 使用全域命名空間
實例34 為引用的命名空間設定別名
實例35 使用using static 指令
3.2 變數與常數
實例36 一次性宣告多個變數
實例37 讓編譯器自動推斷變數的類型
實例38 使用常數
實例39 取得變數的記憶體位址
實例40 輸出變數的名稱
實例41 為變數分配預設值
3.3 程式進入點
實例42 取得命令列參數
實例43 處理多個進入點
3.4 流程控制
實例44 奇數還是偶數
實例45 使用for 循環輸出文字
實例46 產生由字元組成的圖案
實例47 無窮迴圈的處理方法
實例48 退出循環的方法
實例49 輸出20 以內能被3 整除的正整數
實例50 做一道選擇題
實例51 switch 敘述的類型比對
實例52 在case敘述中使用when子句
實例53 程式跳躍
04 物件導向程式設計
4.1 大類與結構
實例54 宣告公共類別
實例55 為結構定義建置函數
實例56 建置函數的相互呼叫
實例57 靜態建置函數
實例58 驗證屬性值的有效性
實例59 初始化唯讀欄位
實例60 多載方法
實例61 大類實例傳遞給方法後為什麼沒有被更改
實例62 輸出參數
實例63 可變個數的方法參數
實例64 使用按參考傳遞的傳回值
實例65 按參數名稱來傳值
實例66 可選參數
實例67 在宣告時初始化屬性
4.2 委派與事件
實例68 委派實例如何綁定方法
實例69 綁定多個方法
實例70 匿名方法
實例71 封裝事件
實例72 架構提供的委派類型
實例73 將方法作為參數進行傳遞
實例74 使用Lambda 運算式動態產生資料
4.3 繼承與多形
實例75 呼叫基礎類別的建置函數
實例76 重新定義基礎類別的成員
實例77 徹底取代基礎類別的成員
實例78 實現多個介面
實例79 實現介面的結構
實例80 隱藏建置函數
實例81 到底呼叫了誰
實例82 解構函數
實例83 實現IDisposable 介面
實例84 顯性實現介面
實例85 阻止類別被繼承
實例86 巢狀結構類別
實例87 匿名類型
4.4 列舉
實例88 宣告列舉類型
實例89 指定列舉的基礎類型
實例90 常數的標示位運算
實例91 自動產生的常數值
實例92 取得列舉中常數的名稱
實例93 檢查列舉實例中是否包含某個標示位
4.5 特性
實例94 自訂特性類別
實例95 向特性類別的建置函數傳遞參數
實例96 在同一物件上應用多個特性實例
實例97 在執行時檢索特性實例
實例98 方法的傳回值如何應用特性
4.6 運算子
實例99 計算一個整數的階乘
實例100 逐位元平移
實例101 是「大」還是「小」
實例102 typeof 運算子的作用
實例103 使用"+" 運算子將兩個物件的屬性值相加
實例104 對null 進行判斷
4.7 類型轉換
實例105 強制轉換
實例106 將int 數值自動轉型為double 數值
實例107 輸出整數的二進位表示形式
實例108 將位元組陣列轉為字串
實例109 重新定義ToString 方法
實例110 將整數轉為十六進位字串
實例111 自訂自動轉型
4.8 可以為null 的數值型態
實例112 存取可以為null的數值型態
實例113 為Nullable 實例分配預設值
05 數學運算與字串處理
5.1 簡單數學計算
實例114 求一組整數中的最大值和最小值
實例115 計算平均值
實例116 計算一個數值的絕對值
實例117 計算一個矩形序列的周長總和
實例118 求某個角度的正弦值
實例119 求某個數值的立方
實例120 計算矩形的對角線長度
實例121 處理超大整數
5.2 日期/ 時間換算
實例122 今天是星期幾
實例123 取得指定日期的農曆日期
實例124 一天內總共有多少秒
實例125 日期的加/ 減運算
實例126 從日期字串中產生DateTime實例
5.3 常用的字串處理
實例127 使用Concat 方法連接字串
實例128 使用"+" 運算子連接字串
實例129 字串的包含關係
實例130 字母的大小寫轉換
實例131 使用分隔符號連接字串
實例132 尋找以"ay" 結尾的單字
實例133 依據指定的分隔符號來拆分字串
實例134 取代字串
實例135 反轉字串
實例136 插入與刪除字元
實例137 填充剩餘「空白」
實例138 判斷字元是否為數字
實例139 截取字串
5.7 小結
實例140 使用StringBuilder 組裝字串
實例141 字串尋找
實例142 比較字串時忽略大小寫
實例143 "@" 符號在字串中的用途
實例144 處理字串中出現的雙引號
5.4 格式控制符
實例145 輸出百分比
實例146 輸出目前語言中的貨幣格式
實例147 輸出多個幣種格式
實例148 數字的兩種常用格式
實例149 使用字串內插
實例150 長日期與短日期
實例151 自訂日期和時間格式
實例152 自訂小數位數
5.5 從字串到其他類型的轉換
實例153 從二進位字元串產生int實例
實例154 Parse 與TryParse 方法
實例155 對字串進行UTF-8 編碼
實例156 字串的HTML 編碼
實例157 字串自動轉型為自訂類別
06 泛型與集合
6.1 泛型
實例158 使用泛型參數
實例159 實現泛型介面
實例160 限制泛型參數只能使用數值型態
實例161 泛型方法
實例162 將泛型參數限制為列舉類型
實例163 泛型參數的輸入與輸出
實例164