.NET Conf 2017, and My First Stream

Today’s header image was created by Mikael Kristenson at Unsplash
Two shorter things in this week’s blog post:
- .NET Conf and Channel9
- Streaming
aren’t they connected? Read on to find out
.NET Conf and Channel9
This past week
if you’re reading this in the future, “this” was late September 2017
Microsoft held an online, live streamed event. The start of which was when Scott Hunter, Miguel de Icaza, and Mads Torgersen were asked to provide the key note for this year’s .NET Conf in Stockholm, Sweden.
I was unable to attend .NET Conf, but that didn’t stop me from watching the keynote. And neither, too, should it stop you because Microsoft live streamed it. They’ve even stored it on Channel9, so that we can watch it on demand, whenever we want.
isn’t that nice of them
In fact, if you wanted to watch it all over again (or for the first time), can do so here.
The keynote kicked off three days of live streamed videos from Channel9. The videos covered a range of topics from .NET Core to ASP.NET Core and from EF Core to Visual Studio, they were broadcast live and the presenters took questions as they were presenting.
how cool is that?
In fact, Scott Hanselman announced that all of the videos where ready on Twitter, just a few days ago:
All the videos from #dotnetconf are available online now for viewing or downloading! Lots of great free content. https://t.co/0i7BVhm9OB
— Scott Hanselman (@shanselman) September 25, 2017
On top of THAT, this week the Microsoft folks have been hosting Ignite 2017.
AND there was an ASP.NET Community Standup
AND Satya Nadella released his book, “Hit Refresh”
talk about a busy week, how does these folks find time to sleep?!
I’ll be honest with you all, I haven’t had a chance to consume all of the content yet, but I did pick and choose some of the live streams that the Microsoft folks put out during the .NET Conf event.
when I get the chance, I’ll be looking through the Ignite videos, too.
.NET Conf Keynote Speech
The key note is 90 minutes of fantastic stuff. The first 40 minutes are spent with Scott Hunter talking us through some of the cool stuff that .NET Core 2.0 can do,
most of it, we’ve covered here already. But it’s a nice introduction to .NET Core 2.0 and the event
some of the new features of Visual Studio (like live unit tests), and all about AppInsights and the new remote debugging features of Azure.
Then Miguel de Icaza talks us through some of the fantastic stuff that the Xamarin team have been working on, including making Xamarin into a fully cross platform desktop UI platform
he mentions the “trilogy” of platforms (Android, iOS and UWP)
by mentioning the “prequels” to the “trilogy” of platforms (i.e. Android, iOS and WPF)

just before showing this slide he let slip that Xamarin was going full .NET Standard later this year.
just let that sink in for a moment.
He also demoed experimental project called the Embeddinator, which can take ANY .NET library and create a native level application for Android, iOS, MacOS, tvOS, Linux and Windows.
Remember the “any developer, any app, any platform”? They really meant it

He shows this off by passing a Xamarin application and putting it through the Embedinator live,
because he’s brave like that
which produces a native build of his application for Android, iOS, and MacOS.

Part of Mads’ section of the key note was all about some of the cool new features coming to Visual Studio 2017; most of which felt oddly familiar
cough-cough-ReSharper-cough-cough

He also mentioned that the keen eyed users has noticed that Visual Studio 2017 15.3 shipped with an early version of C# 7.1
even though C# 5 and 6 are still to be ECMA-ified

Usually the C# team release full version updates to the spec, but Mads felt that it was time for a partial release:
So we actually went and did our first point release [7.1]. And the point of this point release, primarily just is to grease the skids and feel out what does it feel like to have a point release.
A lot of the changes are syntactical niceties like implicit defaults. For instance, let’s say that you have an async method:
public static async Task<IEnumerable<Book>> GetBooks() | |
{ | |
// do some stuff | |
} |
Well, all async methods should have a cancellation token, and you can add one by doing:
public static async Task<IEnumerable<Book>> GetBooks(CancellationToken | |
cancellationToken = default(CancellationToken)) | |
{ | |
// do some stuff | |
} |
But, as Scott Hanselman has said in the past:
I only have so many key strokes in my fingers
So C# 7.1 can strip that down to you by implicitly providing the default type for the given context like this:
public static async Task<IEnumerable<Book>> GetBooks(CancellationToken | |
cancellationToken = default) | |
{ | |
// do some stuff | |
} |
Which is pretty cool.
There are some other cool things like the “damnit” operator
I’ll let you find out about that one by watching the stream
Streaming
I was live streaming this past weekend, whilst working on some code, and I loved it.
I went from having no code at all, to having an ASP.NET Core MVC application with individual auth, utilising the Onion Architecture. I used the terminal and Rider in order to build the application and talked through what I was doing, when I was doing it. All in all, I was streaming for a good 165 minutes (that’s 2 and 3/4 hours).
I’ll leave an embedded player here, so that you don’t have to go anywhere.
But I’d recommend that you follow me over on my twitch page in order to get updates on when I go live.
Earlier this week, I mentioned on Twitter that I was thinking of making it a semi-regular thing:
I'm thinking of having live coding sessions on a monthly basis. I'll focus on #dotnetcore stuff, any thoughts?
— Jamie (@dotNetCoreBlog) September 26, 2017
And the response was pretty positive. So, going forward, I’m planning on live streaming on a semi-regular basis. I’ll be posting to Twitter about it, and will add something on the side bar to indicate when I’m live.
the keen eyed of you all should have spotted it already
I haven’t set up a schedule yet, but it’s most likely to be either a Saturday or a Sunday.
This means that I’ll be posting new articles a little less often. But I will be posting on here about the streams with show notes which should encompass some of the following stuff:
- What my plan was for the stream (i.e. what I was going to make)
- Any slides or images that I used to illustrate a point
- Links to external documentation (where relevant)
- An embedded player with the show on
I’ve been thinking about the format of the live streams and how it would work, and I think that 165 minutes is too long. As Twitter user Byteflux pointed out:
Sounds great.Enjoyed the last one.Maybe break it into small parts and recap every 30-45min though?.Have to rewatch the last one-took breaks
— Byteflux (@bytefluxio) September 26, 2017
So I think I’ll time box them to a maximum of 2 hours and have short stints of programming at 30-45 minutes each,
that way I can use pomodoros, too
I can then easily break the videos into those smaller chunks and upload them to YouTube.
I know that YouTube is more convenient for some people
So I guess I’m saying that you should look out for the upcoming streams and pages devoted to them.
the keen eyed among you will have noticed that I’ve posted the first one already
Exciting times, or what?