目錄
文章導航
- 01 .NET 應用程序與工具
- 02 核心 C#
- 03 對象和類型
- 04 C#面向對象編程
- 05 泛型
- 06 運算符和類型強制轉換
- 07 數組
- 08 委托, Lambda表達式和事件
- 09 字符串和正則表達式
- 10 集合
- 11 特殊集合
- 12 LINQ - 編輯中
- 13 C#函數式編程 - 未完成
- 14 錯誤和異常 - 未完成
- 15 異步編程 - 未完成
- 16 反射, 元數據和動態編程 - 未完成
- 17 托管和非托管 - 未完成
- 18 Visual Studio 2017 - 未完成
- 19 類庫, 程序集, 包和NuGet - 未完成
- 20 依賴注入 - 未完成
- 21 任務和並行編程 - 未完成
- 22 文件和流 - 未完成
- 23 網絡 - 未完成
- 24 安全 - 未完成
- 25 ADO.NET和事務 - 未完成
- 26 Entity Framework Core - 未完成
- 27 本地化 - 未完成
- 28 測試 - 未完成
- 29 跟蹤, 日志和分析 - 未完成
- 30 ASP.NET Core - 未完成
- 31 ASP.NET Core MVC - 未完成
- 32 Web API - 未完成
- 33 Windows應用 - 未完成
- 34 XAML應用模式 - 未完成
- 35 樣式化Windows應用 - 未完成
- 36 高級Windows應用 - 未完成
- 37 Xamarin.Forms - 未完成
- 附贈01 Composition - 未完成
- 附贈02 XML和JSON - 未完成
- 附贈03 WebHooks和SignalR - 未完成
- 附贈04 機器人和認知服務 - 未完成
- 附贈05 更多的Windows Apps特性 - 未完成
前言
.NET CORE 世界
.NET Core
是一個較新的概念,.NET Core 2.0
從.NET Framework
那繼承了很多API
以便將現有的.NET Framework
應用遷移到.NET Core
上。- 你可以按照
.NET Standard 2.0
創建應用環境來遷移現有應用,該標准包括.NET Framework 4.6.1
、.NET Core 2.0
應用程序和Windows apps
(Build 16299)。 - 更多
.NET Standard
相關的內容請閱讀 .NET Standard 指南 。
- 雖然
ASP.NET Core MVC
跟它的兄弟ASP.NET MVC
很像,但它更容易擴展。你可以使用新技術Razor Pages
來創建新的Web應用程序,當你的項目變的越來越大時,Razor Pages
可以輕松地基於MVC模式進行擴展。 - 在本書寫作時,一項基於
.NET Core
的實時通訊技術SignalR
,正准備發布。 ASP.NET Core
和Javascript
框架(如Angular
和React/Redux
)有很好的集成度。Visual Studio提供了很多模板(Templates),可以直接創建集成這些JS框架的ASP.NET Core
項目,方便后台服務(backend services)開發。- 總而言之,
.NET Core
是一個開源的、使用最新的設計理念、支持跨平台並且開發的應用可以直接在Windows和Linux上運行的新技術。
C# 世界
- C#最早是在2002年發布的,用來開發
.NET Framework
應用程序的一種語言,一開始只是想開發一版 Microsoft 的Java,在正式命名為C#之前,它叫J++。 - 最早C#並不僅僅是按照面向對象的通用開發語言來設計的,它更多考慮的是面向組件編程。隨着時代的發展,C#開始支持越來越多的語法特性,並逐漸支持函數式編程。
- C# 6.0的時候,編譯器源代碼被重寫了一遍,新的編譯器可以適用更廣泛的定制軟件開發,而且不容易崩潰。
- 得益於新寫的編譯器,C# 7.0加入了很多新的函數式編程的特性,如元組(tuples)、模式匹配(pattern matching)等。
C# 7.0 新特性
- 簡要的介紹可以參見 C# 全版本特性一覽 。
- 具體的介紹會在后續正文中的各章節中可見。
ASP.NET CORE 新特性
csproj
文件被重新設計成同時支持.NET Framework
和.NET Core
,以便用戶可以輕松的切換編譯環境。和預覽版不同的是,它被盡可能的精簡了,所以你只要使用一個普通的文本編輯器就能簡單的修改它。- 創建一個
ASP.NET Core
項目的時候,不單單csproj
文件被簡化了,C# 源代碼也同樣被精簡了。例如當你使用默認的WebHostBuilder
的時候,很多代碼都預先定義並且生成好了,配置和日志管理也不用你手工添加。 - 新的
Razor Pages
也很容易上手,有些應用軟件並不需要抽象成MVC模型,就可以直接使用Razor Pages
來完成。
UWP(UNIVERSAL WINDOWS PLATFORM) 新特性
- 通常用戶Windows10系統版本一年會更新兩次,本書寫作的時候更新到了
build 16299, October 2017
。 - 微軟一直致力於提供新的系統設計特性並將其整合到Windows控件庫中。此時最新的特性是流暢設計體系(Fluent Design),該體系共有五大核心元素,包括Light(光感)、Depth(深度)、Motion(動畫)、Material(材質)和 Scale(縮放) 。它整合在標准控件庫中,也允許直接調用——比如通過
Acrylic
或者Reveal
特效的brushes
。為了提供視差效果,ParallaxView
控件也被添加到應用中。 - 用戶同樣可以使用
Windows Template Studio
,Visual Studio的一個擴展,它為用戶提供了一個模版編輯器,內置了許多頁面和預生成的服務。 InkCanvas
控件提供了新的方式以便你能更容易的將這些特效集成到你的應用中。NavigationView
則讓創建自適應(adaptive)的菜單更加的容易——通過一個hamburger
按鈕和SplitView
的配合使用。- 更詳細的內容在本書的正文中介紹。
C# 代碼工具
.NET Core
可以在Windows,Linux或者Mac系統上運行,你可以在任何一個操作系統上安裝Visual Studio Code進行開發。- 更推薦使用的開發工具是Visual Studio,本書寫作的時候是Visual Studio 2017,而本文寫作的時候,最新的是Visual Studio 2019 v16.5版本。你可以使用社區版本,但很多功能特性只有專業版和企業版才提供。
- VS2017可以安裝在
Windows 10 build 1507+
,Windows 8.1
,Windows Server 2012 R2
, 或者Windows 7 SP1
上。如果你想使用本書提供的UWP特性,則需要安裝Windows 10操作系統。 - 如果你想用
Xamarin
創建一個IOS應用,可能你需要一台蘋果工作站。不過就算沒有Mac系統,你依然可以通過Xamarin
創建適用於Windows和Android 的App。 - 微軟提供了一個Mac專用的Visual Studio版本,可以使用這個版本在Mac工作站上開發
ASP.NET Core
和Xamarin apps
,但需要注意的是它無法創建和測試Windows apps。
本書內容
- 第一部分
The C# Language
,包括Chapter 1 - Chapter 18。 - 第二部分
.Net Core and Windows Runtime
,包括Chapter 19 - Chapter29。 - 第三部分
Web Applications and Services
,包括Chapter30 - Chapter32。 - 第四部分
Apps
,包括Chapter33 - Chapter37。
源代碼
- 本書的所有示例代碼都可以在 www.wrox.com 上下載,具體的下載地址為: http://www.wrox.com/WileyCDA/WroxTitle/Professional-C-7-and-NET-Core-2-0.productCd-1119449278,descCd-DOWNLOAD.html 。
- 你也可以訪問 http://www.wrox.com/dynamic/books/download.aspx ,有一些代碼可能也與本書有關。
GITHUB
- 你也可以從Github上獲取本書的所有示例代碼,https://www.github.com/ProfessionalCSharp/ProfessionalCSharp7 。
- 你也可以通過Git工具clone整個
Repository
,這樣你就可以隨時獲取我們的最新更新,如果你有Github的賬戶,你可以直接Fork
。 - 如果你在使用示例代碼的過程中出現任何無法解決的問題,你可以打開 https://github.com/ProfessionalCSharp/ProfessionalCSharp7 上提交
Issue
,請盡可能詳盡的描述你的問題以便我們幫你解決它。
勘誤
- 假如你在閱讀本書的過程中發現任何錯誤,你可以在書籍Errata鏈接處 http://www.wrox.com/WileyCDA/WroxTitle/Professional-C-7-and-NET-Core-2-0.productCd-1119449278,descCd-ERRATA.html 進行提交。
- 或者直接訪問 www.wrox.com/contact/techsupport.shtml 提交你找到的錯誤信息。
個人聲明
本系列文章寫作於2020年2月29日,此時C# 8.0和.NET Core 3.1早已發布,而《Professional C# 7 and .NET Core 2.0》只是筆者此時能找到的最新版本的電子書,想獲得更多的一手資訊,你可以閱讀作者博客:https://csharp.christiannagel.com/。
該書的中文版《C#高級編程(第11版) - C# 7 & .NET Core 2.0》(李銘譯)由清華出版社於2019年出版,在各大電子商城有售。
事實上ECMA通過的C#標准還停留在C# 5.0,因此筆者選擇學習這本C# 7.0的英文電子書。
本系列文章寫作時的環境如下:
C# 8.0
,CLR4
,.NET Framework 4.8
,.NET Core 3.1
,Windows 10 build 18363
,Visual Studio 2019 v16.5
。- 本系列文章主要基於《C#高級編程第11版 - Professional C# 7.0 and .NET Core 2.0》進行翻譯學習。
- 盡量補全相關知識點到2020年已經發布的版本,並且補充以往版本的書籍涉及到的.NET舊技術的翻譯(譬如本書未提及的WPF知識,在最后通過翻閱英文版的C#高級編程第10版,進行補全)。
- 翻譯的過程盡量與自己多年的開發經驗進行驗證,但難免因為學藝不精或者校對疏漏有些貽笑大方的情況,還望有空的讀者不吝指正。
- 一般來說需要3-4天才能完成一章的翻譯、校對,補充更多的示例代碼,預計本次翻譯需要3-4個月的時間,到6月底結束。
資料下載
Github:C# Professional 7 and .NET Core 2.0.pdf + Source Code + Bonus Chapter 01-05