I received a preview copy of this new book, C# 8.0 and .NET Core 3.0 – Modern Cross-Platform Development, by Mark Price and wanted to provide some of my initial thoughts. I have reviewed the topics covered by the book and read several sections in detail to get a sense of who could benefit from reading it and how well it was written. So far, I have been very impressed by the quality, breadth, and depth of this book.
I would recommend this book to several different types of developers:
- New, aspiring developers – The book offers some great history on .NET development and lays a solid foundation for starting your development journey with Visual Studio, VS Code or VS for Mac. Language and framework fundamentals are explained and enhanced with useful exercises at the end of each chapter, reinforcing the concepts. Some basic development concepts/practices, such as inheritance and unit testing, are discussed in the early chapters.
- Experienced .NET Framework developers new to .NET Core – The chapters on .NET Core and ASP.NET Core step through the changes and enhancements that were significant to each release. There is a section on porting apps from .NET Framework to .NET Core, discussing how this can be done and whether it should be done (hint: usually not).
- Developers using .NET Core who are new to .NET Core 3.0 – There are some sections on the latest features of .NET Core 3.0, including Blazor and desktop development with WPF and WinForms Core apps on Windows.
While some of the more specific aspects of .NET development like ASP.NET Core, Blazor and Xamarin are not discussed in great depth, the author explains the basics well and provides a good kick-start on these topics. Readers can take what they learned on them here and go deeper with some other, more specific books. If you’re looking to build your first ASP.NET Core MVC or ASP.NET Core WebAPI project, this book gives enough details to give you a great start in those areas, in my opinion.
I work on a team that focuses on our application performance, so the chapter on Performance and Scalability was of particular interest. The author provides a solid introduction to .NET Core performance topics, including asynchronous programming with Tasks, locking concepts, and using async and await to keep your app responsive.
The section on Machine Learning with ML.NET is a great intro to machine learning concepts for developers with little to no exposure to it. It steps readers through the process of building a website that provides product recommendations based on a trained model and displays those recommendations in the site’s shopping cart.
I have really enjoyed this book so far. I’m looking forward to getting a print copy to continue exploring it. For me, print is the best way to get the most out of this kind of programming book. Shorter books on specific topics can work better as eBooks, but I like to keep copies of large reference books on my desk to quickly flip to earmarked pages. Check out the free Kindle sample on Amazon. I think you’ll like what you read and will want to order a copy for yourself.