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

Author: Mark J Price
Publisher: Packt Publishing
Pages:594
ISBN: 978-1787129559
Print:1787129551
Kindle:B01N8UG78Q
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.

Banner

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.

Conclusion

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.

Banner


The Art of Computer Programming, Volume 4, Fascicle 5

Author: Donald Knuth
Publisher: Addison-Wesley
Pages: 320
ISBN: 978-0134671796
Print: 0134671791
Audience: Knuth fans
Rating: 4
Reviewer: Mike James
Another portion of TAoCP. Do you need to read it?



Learn Quantum Computing with Python and Q#

Author: Dr. Sarah Kaiser and Dr. Chris Granade
Publisher: Manning
Date: June 2021
Pages: 384
ISBN: 978-1617296130
Print: 1617296139
Kindle: B098BNK1T9
Audience: Developers interested in quantum computing
Rating: 4.5
Reviewer: Mike James
Quantum - it's the future...


More Reviews

 

 

 

 

Last Updated ( Saturday, 02 September 2017 )