Learning ASP NET Core 2.0 – My First Review

Jamie Taylor
Learning ASP NET Core Header Image

Today’s header image is based on the cover art for Learning ASP.NET Core 2.0
at Packt Publishing

One of my New Year’s resolutions for 2018 is to read more. It’s not that I don’t read a lot anyway

I’m part of a monthly Pratchett book club, for instance

but I don’t tend to read technical books that often. Sure I’ll tackle the greats and the important books in my industry

just before Christmas 2017, I wrote a “top 10” on my other blog

But I’ve yet to sit down and read any on .NET Core or ASP NET Core. This was a conscious decision on my part, because a lot of things changed between version 1 and 2 meaning that a lot of the early books where quickly outdated.

That all changed in the New Year though, as I thought I’d give a few .NET Core 2 related books a chance. As good as the source code is

and it’s always the single source of truth

and as good as the documentation is becoming, sometimes it’s a good idea to read through the organised thoughts of someone who has taken the time to master a technology

bless you for thinking, “like this blog?”

So I’ve gone an bought a bunch books on .NET Core, ASP NET Core, and EF Core in the hopes of reading through them and filling in what ever gaps I might have. I also thought I’d go through each one, after I’ve read them and collected my thoughts on them.

Without further ado

whatever did I do with my ado?

Before We Continue

Just before I go into my thoughts on this book, these are my views and thoughts and I am not being paid or endorsed for them. I’ll add a link for purchasing the book in the next section, if you choose to click through and buy the book I will make nothing from the link.

I just wanted to make that clear, before we go any further.

Learning ASP.NET Core 2.0

Learning ASP.NET Core 2.0 is co-authored by Jason De Oliveira and Michel Bruchet, is published by Packt Publishing and was released in December 2017. Its ISBN 13 is 9781788476638 and you find the book for sale here.

If you’d prefer a GoodReads link, then click here

The first thing you notice about this book is that it has a whopping 516 pages, which is only slightly shorter than C# in Depth. I’ve included the comparison as I recently finished re-reading C# in Depth, so the comparison made sense to me.

Initial Thoughts

There are a few times in the opening sections where De Oliveira and Bruchet seem to confuse .NET Core and ASP NET Core with each other. I’m not sure whether this was intentional or whether it was accidental, but it’s completely understandable though I could see it being confusing for developers who are completely new to the entire .NET ecosystem.

someone who is a node developer, for instance

The first few sections of book cover installation of the SDK and IDEs required to develop ASP NET Core applications on all three major OS platforms:

  • Windows
  • MacOS
  • Ubuntu 16.04

Some of the steps that are included are out of date and have changed, but there are notes explaining that the steps will likely change in newer (now current) versions of the tools. This extends to the use of Bower, which is a tool that De Oliveira and Bruchet recommend using but that has been end of life’d as of October 2017

I wonder what the turn around of publishing a book is. Its likely that Bower was end of life’d after the book was written but before it was published

The authors even cover VSTS (Visual Studio Team Services) and the basics of Agile and CI/CD, including how to connect Visual Studio to VSTS and pulling from git via Team Explorer in Visual Studio. Even some useful git functionality (feature branches, push pull, and commit) but these are from a 10,000 foot view and are not very detailed

as they’re not the primary focus of the book

The main focus of the book is on building a Tic-Tac-Toe game with some pretty advanced ASP NET Core stuff. This includes the use of middleware

which I’ve covered before, on this very blog

and a, rather basic, message pipeline in Javascript.

This book does not cover SignalR. There is a section on using websockets for real time communication, andDe Oliveira and Bruchet recommend looking into SignalR as it wasn’t available when they were writing the book. It makes sense to use a stable technology in the book rather than SingalR, as it was in Alpha when the book was written and it would have changed shortly after the book was published.

Just like the ASP NET Core for Beginners MVA Course, this book starts with an empty console application

the result of running dotnet new console (i.e. “Hello, World”)

and builds everything for the game on top of that.

Depth of Content

Compared to C# in Depth, I flew through this book: where C# in Depth took around a month to complete (reading between one and two hours a day on weekdays), Learning ASP.NET Core 2.0 took me just under a week (with the same reading schedule).

if you’re interested, I read this book on my Kindle Paperwhite during my commute and using the Packt online reader in the evenings.

Where Jon Skeet goes into masses of detail, describing each new important addition to the C# language, De Oliveria and Bruchet speed through building an application with ASP NET Core 2. They accomplish a quick read by having whole sections based around a very simple two step tactic:

  1. Copy the following code, which does X
  2. You now know how to implement X

This leads to a fantastically quick read

especially since I was reading this on my morning commutes

but I feel like I lost out a little by not reading at my computer and copy/pasting the code. Especially since almost everything after the half way mark in this book takes this approach.

Then again there were sections where I had spotted issued with the code or screenshots. These have since been fixed for the digital versions of the book, but anyone with physical copies of the book will still have those issues

the same thing would plague any physical book, I guess

One of the issues that I spotted was a possible account enumeration issue. Although the application that De Oliveira and Bruchet build in this book is an extremely simple one and readers wouldn’t be expected to use blocks of code verbatim

I would probably use TypeScript for client-side stuff, but it would be out of scope for the book

in a real-world application, account enumeration would be a very real security issue.

Would I Recommend This Book?

There’s a neat application behind this book in the form of a Tic-Tac-Toe game with external auth providers, a method for creating games and inviting players, and a leader board of sorts. All of that is pretty impressive in itself, and its definitely worth reading the book to find out specifically how De Oliveira and Bruchet implemented them.

However, the print and ebook bundle for the book is currently

at the time of publishing this article

£24.70 (with the eBook being listed at £8.60). Whether, what becomes a copy/paste-a-thon after the halfway mark is worth paying that much is down to personal preference. I managed to pick up the eBook version (from Packt) for £4.80 during a sale, and I feel like it was worth about that much.

That might sound really harsh, but remember that half of this book reads like a series of blog posts which you’re encouraged to copy/paste along with.

I can see this book being a useful starting point for anyone who knows nothing about either .NET Core or ASP NET Core, but if you have any experience with those technologies then there will be little for you in this book.

Maybe I went into this book expecting too much, having a fair bit of experience with both .NET Core and ASP NET Core

as I hope you’ll agree

I didn’t get a huge amount out of reading this book. I picked up on some cool things here and there, as I’m sure we all do when reading through blog posts.

Have you read this book? What did you think to it?

If you have yet to read any books on .NET Core or ASP.NET Core, what’s stopping you? Is it the same issue I had: that everything changes, and very quickly during the first few major versions of a technology or framework?

Jamie Taylor
A .NET developer specialising in ASP.NET MVC websites and services, with a background in WinForms and Games Development. When not programming using .NET, he is either learning about .NET Core (and usually building something cross platform with it), speaking Japanese to anyone who'll listen, learning about languages, writing for his non-dev blog, or writing for a blog about video games (which he runs with his brother)