Why do we need .NET Core? We already have .NET! This is something of a puzzle for many Windows programmers, but the whole point is that .NET Core is cross platform and open source. This means you can run it on Linux, Mac OS or Windows. This sounds attractive, but there is a snag - .NET Core doesn't include everything that a .NET programmer might expect to use. In particular, there is no UI Framework. This seems to imply that you are going to be restricted to command line utilities, but there are more ways of getting things done than you might imagine.

This book isn't a deep look at .NET Core, but if you have any doubts about what it might be useful for then you can find out by reading it. Its key feature is a number of examples which demonstrate using .NET Core.

Chapter 1 goes over getting started with .NET Core including slightly off topic things like setting up a VM for Linux. It also covers using Visual Studio and Visual Studio Code. There are lots of screen dumps, perhaps a few too many but tastes vary. The chapter ends with a look at F# which is a language you really need to know something about but not a language that is essential to .NET Core.

After the introduction Chapter 2 might be the information you really need. It deals with using native libraries from .NET Core - yes its P/Invoke and how to use it. Of course the big problem with using P/Invoke is that it makes your app platform dependent but in the current state of .NET Core you don't have a lot of choice. The example uses ncurses, a library for building GUI like forms using nothing but the text based terminal emulator.

Chapter 3 moves on to a more obvious route to making useful .NET Core apps - ASP .NET Core. If you lack a UI just use HTML. The chapter introduces a Tic-Tac-Toe example using SignalR. Chapters 4, 5 and 6 carry on using ASP .NET Core to create a Chat application, including the Microsoft Bot Framework, a guide to MVC architecture, Razor and testing.

Chapter 7 moves off to the cloud and covers using Azure to create VMs and using the App Service. The next chapter builds on this with a movie booking service using Entity Framework. Chapter 9 is about Microservices and is right up to the cutting edge with a discussion of Blazor, see Blazor .NET In The Browser if you don't already know about this.

The final chapter is about functional programming with F# and, while interesting and useful, is slightly off-topic. Most .NET Core users are going to be using C# or C++ and F# isn't going to figure that much. So full marks for being F# supporters, but another chapter going more into using .NET Core as opposed to ASP .NET Core would have been a better choice.

Conclusion

.NET Core 2.0 By Example is a good book if you want an overview of .NET Core with some almost realistic examples - you can see how to develop them further. It isn't for the expert, but you do need to have some background in .NET development, preferably C#, and perhaps a side interest in finding out more about F#. It is a useful book to help find your way through the maze of .NET Core. You need to know that it isn't big on explaining grand principles and it is essentially example-led. If you don't like finding out how things work by example then you are probably not going to want to read this book.

My only wish is that it concentrated a little more on .NET Core rather than ASP .NET Core - not everyone wants to create web apps. Despite this there is plenty to get you started on making sense of .NET Core and why it might be useful.