目錄
文章導航
- 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/。html
該書的中文版《C#高級編程(第11版) - C# 7 & .NET Core 2.0》(李銘譯)由清華出版社於2019年出版,在各大電子商城有售。git
事實上ECMA經過的C#標準還停留在C# 5.0,所以筆者選擇學習這本C# 7.0的英文電子書。github
本系列文章寫做時的環境以下:正則表達式
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編程