C# 7 and .NET Core: Modern Cross-Platform Development 2e

Author: Mark J Price
Publisher: Packt Publishing
ISBN: 978-1787129559
Audience: Intermediate C# programmers
Rating: 3
Reviewer:Mike James

C# 8 is already being previewed and .NET Core 2 is out. Now is a good time to learn C#.


C# is going through a strange and difficult time. It used to be Microsoft's leading language and was used to create .NET applications. Now Microsoft supports any language you care to use and .NET is almost a legacy platform. The new .NET Core, the open source, cross platform implementation, is interesting but it lacks many of the facilities an original .NET programmer might take for granted.

This book is about C# 7, currently the latest version of C# and .NET Core Version 1.0 and it focuses on cross-platform development.  Chapter 1 dives into the cross platform waters by explaining what tools you can use and how to get started on Windows, Linux and Mac OS. It also explains that you are not going to be using Windows Forms or WPF. If you want a UI then you need to use Universal Windows Platform.


Chapter 2 is a short and simple introduction to C#. This is where you get to write some simple programs. Chapter 3 is a second part of this tutorial. Each of the topics is introduced very briefly and there isn't enough space devoted to the basics if you are a true beginner with no programming experience at all .Of course C# and .NET Core is arguably not the place to start if you are a complete beginner. Chapter 4 moves on to using .NET standard types particularly Strings and regular expressions with some discussion of collections - Lists, Stacks Queues etc. I think regular expression could probably be held over for a later chapter. After all the book hasn't even discussed object oriented programming. This is all a bit too fast and not enough detail. This is a surface introduction rather than an in-depth one.

Chapter 5 moves on to look at debugging including unit testing. Again this seems to be very early in the book to be dealing with such things. There is still a lot of C# proper to cover.

It is only at chapter 6 do we start to work on the ideas of object-oriented programming. At first this concentrates on the mechanics of working with classes - names spaces and importing a name space. Later it explains the basics of creating and using objects. If you are new to objects this will not be enough to get you up to speed. Chapter 7 moves on to inheritance and interfaces and includes things that should have chapters to themselves, like delegates.   



Chapter 8 marks the point where the focus shifts from C# to .NET. Here we meet database use via the Entity Framework and SQL Server. Again not the place for a beginner to start. The next chapter extends the discussion to LINQ including Lambdas. Then on to files and streams - surely files and streams come before database? This chapter also includes XML and JSON.

Chapter 11 is about hashing, codes and  other security matters again this could wait till later. Chapter 12 is about threading and introduced the concept of not blocking the UI thread - only we haven't looked at any way to create a UI as yet; for this we have to wait for Chapter 13. Surely it would have been easier swap the order of these two chapters? At last we have something about building a user interface and using XAML and UWP. It is emphasised that UWP is not cross platform but cross device. You basically have to run Windows 10 to use a UI with .NET Core. This is the reason that the book seems to be back to front. You can't really write about .NET Core if you are going to be implementing a UI. This raises the question of what good .NET Core is used cross platform?

Chapter 14 introduces ASP .NET Core, which is far too big a topic for a single chapter and Chapter 15 tackles Xamarin  Forms which is also too big for a chapter. The final chapter is on packaging your cross plaform apps.


There are two very important things to know about his book. The first is that covers a great deal of material in comparatively few pages. This means it doesn't go deep. Most of the explanations are the sort of thing you would find in the documentation - or even shorter. There is no exploration of anything much off the beaten path and you won't find many gotchas or clever things to do with existing features. The second thing is the strange order that things are introduced in. There are lots of forward references and the book is strong on technical detail and weak on grand ideas. Part of the reason for this is the emphasis on cross platform development. If you stick to cross platform applications then you are writing console apps and server apps. If you want to have a GUI then you are writing Windows 10 UWP or Xamarin mobile apps. However, even taking this restriction into account, the chapters could be more logically arranged and so could the material within them.

This is not a beginner's book and it isn't an expert's book as it doesn't go deep into anything. What it is, is a broad survey of the existing state of .NET Core and C#. If this is what you are looking for then you might find it useful. 

For C# book recommendations see C# Books - Pick of the Shelf Revisited


To keep up with our coverage of books for programmers, follow @bookwatchiprog on Twitter or subscribe to I Programmer's Books RSS feed for each day's new addition to Book Watch and for new reviews.


Object-Oriented Python

Author: Irv Kalb
Publisher: No Starch Press
Date: January 2022
Pages: 416
ISBN: 978-1718502062
Print: 1718502060
Kindle: ‎ B0957SHYQL
Audience: Python developers
Rating: 3
Reviewer: Mike James
Python, Object-Oriented? Not a lot of programmers know that!

Assembly x64 Programming

Author: Mike McGrath
Publisher: Easy Steps
Date: November 2021
Pages: 192
ISBN: 978-1840789522
Print: 1840789522
Kindle: ‎B09FTNN4P5
Audience: Developers wanting to learn assembler
Rating: 5
Reviewer: Harry Fairhead
Assembler, why would you want to learn that!

More Reviews





Last Updated ( Saturday, 02 September 2017 )