目录
- 01 .NET Applications and Tools
- 02 Core C#
- 03 Objects and Types
- 04 Object-Oriented Programming with C#
- 05 Generics
- 06 Operators and Casts
- 07 Arrays
- 08 Delegates, Lambdas and Events
- 09 Strings and Regular Expressions
- 10 Collections
- 11 Special Collections
- 12 Language Integrated Query
- 13 Functional Programming with C#
- 14 Errors and Exceptions
- 15 Asynchronous Programming
- 16 Reflection, Metadata and Dynamic Programming
- 17 Managed and Unmanaged Memory
- 18 Visual Studio 2017
- 19 Libraries, Assemblies, Packages and NuGet
- 20 Dependency Injection
- 21 Tasks and Parallel Programming
- 22 Files and Streams
- 23 Networking
- 24 Security
- 25 ADO.NET and Transactions
- 26 Entity Framework Core
- 27 Localization
- 28 Testing
- 29 Tracing, Logging and Analytics
- 30 ASP.NET Core
- 31 ASP.NET Core MVC
- 32 Web API
- 33 Windows Apps
- 34 Patterns with XAML Apps
- 35 Styling Windows Apps
- 36 Advanced Windows Apps
- 37 Xamarin.Forms
介绍
.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提供了很多模版可以直接创建集成这些JS框架的ASP.NET Core
项目方便后端开发。
- 总而言之,
.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 新特性
ASP.NET CORE 新特性
-
csproj
文件被重新设计成同时支持.NET Framework
和.NET Core
,以便用户可以轻松的切换编译环境。和预览版不同的是,它被尽可能的精简了,所以你只要使用一个普通的文本编辑器就能简单的修改它。
- 创建一个
ASP.NET Core
项目不单单csproj
文件被简化了,C# 源代码也同样被精简了。例如当你使用默认的WebHostBuilder
的时候,很多代码都预先定义并且生成好了,配置和日志管理也不用你手工添加。
- 新的
Razor Pages
也很容易上手,有些应用软件并不需要抽象成MVC模型,就可以直接使用Razor Pages
来完成。
- 通常用户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。
源代码
GITHUB
勘误
声明
- 本文写作于2020年2月29日,此时C# 8.0和.NET Core 3.0早已发布,而《Professional C# 7 and .NET Core 2.0》是笔者此时能找到的最新版本的电子书。
- 该书的中文版《C#高级编程(第11版) - C# 7 & .NET Core 2.0》(李铭译注)由清华出版社2019年2月18日出版,在各大电子商城有售。
- 事实上ECMA通过的C#特性标准还停留在C# 5.0,因此笔者选择学习这本C#7.0的英文电子书,同时将部分关键点翻译并保留下来以便后续翻看,关键技术点尽量保留中英对照,并追加在学习过程中个人测试用例和一些参考文献。
- 本系列文章应该算是个人学习笔记,预计是一天翻译学习一章左右,全书共37章,大概耗时一个半月。
Professional C# 7 and .NET Core 2.0 - 简介