From 9cfd22145bdbf6783fd8b0db60d36dd25ef28931 Mon Sep 17 00:00:00 2001 From: Mark J Price Date: Sat, 4 Feb 2023 10:19:53 +0000 Subject: [PATCH] Add what's new in 7E page --- README.md | 1 + docs/whats-new.md | 79 +++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 80 insertions(+) create mode 100644 docs/whats-new.md diff --git a/README.md b/README.md index 9130cc8..a7d751c 100644 --- a/README.md +++ b/README.md @@ -60,6 +60,7 @@ The appendix and color figures are available to download as PDFs: Corrections for typos and other mistakes and improvements like refactoring code. Useful links to other related material. - [Book Links](book-links.md) - [Improvements & Errata - list of corrections](docs/errata) +- [What's New in the 7th Edition](docs/whats-new.md) - [Seventh edition's support for .NET 8](docs/dotnet8.md) ## Microsoft Certifications diff --git a/docs/whats-new.md b/docs/whats-new.md new file mode 100644 index 0000000..c5581cb --- /dev/null +++ b/docs/whats-new.md @@ -0,0 +1,79 @@ +**What's New in the 7th Edition** + +There are hundreds of minor fixes and improvements throughout the 7th edition; too many to list individually. All errata and improvements listed [here](https://github.com/markjprice/cs10dotnet6/blob/main/docs/errata/README.md) have been made to the 7th edition. + +The main new sections in C# 11 and .NET 7, 7th edition compared to C# 10 and .NET 6 6th edition are shown below. + +# Chapter 1 + +- Understanding .NET support: explains that *Current* support is now renamed *Standard Term Support (STS)*. + +# Chapter 2 + +- Raw string literals and Raw interpolated string literals: new C# 11 features. + +# Chapter 3 + +- Storing multiple values in an array: not a new feature but previous editions didn't really cover arrays. +- List pattern matching with arrays: a new C# 11 feature. + +# Chapter 4 + +- Understanding top-level programs and functions: I explain in detail how top-level programs work with separate files for `partial Program` class since I use that technique throughout the book. +- Most of the function examples have been improved based on reader feedback, for example, going beyond supported ranges to see when exceptions and overflows occur. +- A brief aside about the correct usage of the terms *arguments* and *parameters*. +- Hot reloading during development. +- Logging information about your source code. + +# Chapter 5 + +- Avoiding a namespace conflict with a using alias, and Renaming a type with a using alias. Not new but useful for readers to know. +- Requiring properties to be set during instantiation: the new C# 11 `required` keyword. + +# Chapter 6 + +- Checking for `null` in method parameters: explains the story behind `!!` in C# 11. +- Treating warnings as errors: added for good practice. +- Understanding warning waves. + +# Chapter 7 + +- Viewing source links with Visual Studio 2022: explain differences between viewing source links and decompiling, with `Enumerable.Count` method as an example which then helps to understand later why `Count()` can be inefficient. + +# Chapter 8 + +- Activating regular expression syntax coloring: the new `[StringSyntax]` attribute introduced in .NET 7. +- Improving regular expression performance with source generators. + +# Chapter 9 + +- Working with Tar archives. New in .NET 7. + +# Chapter 10 + +- Customizing the reverse engineering templates: I just mention that this is possible because it's interesting but too advanced for this book. +- More efficient updates and deletes. Uses new methods in EF Core 7. + +# Chapter 11 + +- Sorting by the item itself. Uses new methods in .NET 7. +- Be careful with Count! A section about the `Count()` method implementation and how it can be tricky to work with efficiently. +- Paging with LINQ. A new section for the book but not a new LINQ feature. Just helpful to cover before getting into web development. + +# Chapter 13 + +- Enabling request decompression support. +- Enabling HTTP/3 support. + +# Chapter 14 + +- Using output caching. Output caching was added in ASP.NET Core 7. + +# Chapter 15 + +- Support for logging additional request headers in W3CLogger. +- Enabling HTTP/3 support for HttpClient. + +# Chapter 16 + +- Enabling location change event handling. \ No newline at end of file