• Farewell 2021, Hello 2022

    And so 2021 finishes and 2022 begins. 2021 has been a different year, not the least because I changed jobs and joined SixPivot in February! (more reflections on that next month).

    View across Happy Valley reservoir

    Looking back on 2021, some of the technology highlights include:

    • Passing 2 exams (and failing one)
    • Getting a Synology NAS, a new laptop and other related hardware for the home office
    • Digging into Azure more deeply
    • .NET 6 and Visual Studio 2022 launched

    I've enjoyed helping out with the video streaming and production at my local church. I'm looking forward to continuing that in the new year, and as a result of that, I also decided to step down in my role as a Sunday school teacher - something I've been doing since my own kids were very little. I'll definitely miss building some awesome train track layouts!

    For the year ahead from a family perspective, there's some milestones as our kids move to the next stage of their schooling.

    I don't have any plans to travel overseas. Microsoft have again decided to run the MVP Summit as a virtual event, which is a good call. Maybe one day I'll get back to Seattle and Redmond, but not this year. It would be great to be able to safely visit interstate. There are friends and new colleagues I'm really looking forward to catching up with.

    COVID has obviously been ever-present, if not so much physically in Adelaide and South Australia (compared to some parts of the world) but certainly in the news and impacting life. That's changing now, thanks to the government relaxing restrictions now that vaccinations have been taken up by most people. Unfortunately, that's also coincided with the Omicron variant, so now all of a sudden we're dealing with growing community transmission for the first time here and growing hospitalisation. That is concerning and a little scary.

    Time will tell if 2022 sees the return of in-person events within Australia. We had a good run in 2021 with many of our .NET user group meetings being able to be held physically. I hope we can continue that, and ideally we'd be able to bring back DDD Adelaide. I'll be taking a cautious approach - I don't want to risk the health of attendees, or my own family.

    Sign on big old gum tree saying 'Trespassers Prosecuted'

    I'm on leave for a couple of weeks over the Christmas/New Years break. We've been making the most of a local reservoir that's opened up to the public and going for some great walks in the evenings (daylight saving makes this easier too). I must admit I was a little sceptical when they first started the building process, but now having access to areas that were previous off-limits (hence the old sign!) is great. And it's been taken up by the local community with the car park often overflowing. Not sure what the large mobs of kangaroos think of all these new visitors coming to visit their home, but at least the ducks don't seem to mind!

    I do hope you have a safe, happy 2022.

  • Summer holiday reading

    It's Summer holidays, Christmas was a few days ago, there's sunny, warm weather on the forecast. Perfect days for lazing around home and reading a good book or two.

    I happen to be passing Blackwood Books recently (we were actually visiting an adjacent shop but I thought I'd have a quick look). I asked to see their 'local history' section and was taken along some winding corridors to a couple of bookcases full of books. I didn't have that long to browse, but two books looked interesting.

    Not Only in Stone

    Book cover - Not only in stone (Affiliate link)

    Not Only In Stone by Phyliss Somerville was first published way back in 1942. It tells the story of Mary (Polly) Thomas and her family, who emigrated to South Australia from Cornwall, England in 1865. It caught my attention as parts of the story are based in Wallaroo, Moonta and Kadina - towns on the Yorke Peninsula that I have some family connections of my own. It is a fascinating snapshot of early colonial life.

    I'm two thirds through the book as I write this. So far Polly has endured numerous hardships, but is not deterred in providing for and making a home for her family. I'll be interested to see how it ends.

    A Sacred Trust: The Uniting Churches in the Mitcham Hills

    Book cover - A Sacred Trust

    At first glance a possibly unusual pick. I grew up in the Mitcham Hills area, and have been involved in the Methodist and then Uniting Church my entire life. This book, written by Rosemary Mitchell and published back in 2000, traces the history of the many Uniting Churches that were and continue to be in the Mitcham Hills area. I have a vague recollection of being aware of the book, possibly around the time it was launched, but I didn't have a copy and a few people I've talked to since also had either forgotten or didn't know about it.

    The old history is fascinating, and just the effort (especially in the early days) that people put into ensuring that they had worship services was inspiring. Take this quote from page 6 (discussing the travelling preachers did in the 1850s)

    Later Mr Illman who lived at Unley would walk to Cherry Gardens in the morning, walk on to Clarendon for the evening service and walk back to Unley

    That's a decent drive in a car today, let alone walking on foot. Google Maps suggests that's around 50kms! Possibly in the 1850s you might have been able to take a more direct shortcut across the hills from Cherry Gardens to Clarendon, but that's still astounding.

    Map showing trip from Unley to Cherry Gardens and Clarendon

    In the latter sections, there are lots of familiar names. Families and people I knew when I was growing up (and some I'm still connected to). Fun fact, I'm actually mentioned in the book too! (via my volunteering with the Blackwood Youth Project back in the 1990s). That was a pleasant surprise.

    There's a few passing mentions of indigenous people living in the area in the early days. It would be interesting to find out more about that - might need to see if there's any other books that cover Aboriginal history of the area in more detail.

    I don't know if the book is still available anywhere. I'll make some enquiries to see if it's still for sale, otherwise I might have to lend my copy out to friends and family that found it interesting.

  • What's new in .NET 6

    I'm compiling information for our next Adelaide .NET User Group meetup which is focusing on the launch of .NET 6 and Visual Studio 2022.

    .NET 6 is the final area in this series. It encompasses changes to both the runtime and base class libraries. There is a lot going on here, so do let me know if I've missed something.

    Preview 1

    More details in https://github.com/dotnet/core/issues/5853

    ARM64

    • On Windows, we’re adding support for Windows Forms and Windows Presentation Framework (WPF)

    Theme

    • Improve startup and throughput using runtime execution information (PGO)

    .NET CLI

    • Response files are now supported
    • Directives

    Libraries

    • New math APIs
    • Improved support for Windows ACLs
    • Portable thread pool

    Runtime

    • Support for Apple Silicon (M1 Arm64), .NET Rosetta 2 Emulation
    • Improving single file apps
    • Single-file signing on macOS
    • Crossgen2
    • Dynamic PGO
    • Arm64 performance
    • Hardware-accelerating structs

    Preview 2

    More details in https://github.com/dotnet/core/issues/5889

    Theme

    • Improve .NET Inner Loop Performance
    • .NET has a great client app development experience

    .NET Libraries

    • System.Text.JsonReferenceHandler.IgnoreCycles
    • PriorityQueue
    • Better parsing of standard numeric formats
    • SignalR – Nullable annotations

    Runtime

    • Framework Assemblies are compiled with Crossgen2
    • Profile guided optimization
    • JIT improvements

    Preview 3

    More details in https://github.com/dotnet/core/issues/5890

    Libraries

    • Faster handling of structs as Dictionary values
    • Faster interface checking and casting

    Runtime

    • Codegen

    Tools

    • Initial .NET Hot Reload support now available for web apps

    Preview 4

    More details in https://github.com/dotnet/core/issues/6098

    Tools

    • Hot Reload with the Visual Studio debugger and dotnet CLI

    Libraries

    • System.Text.Json support for IAsyncEnumerable
    • System.Text.Json Writeable DOM Feature
    • Microsoft.Extensions.Logging compile-time source generator
    • System.Linq enhancements
    • Significantly improved FileStream performance on Windows
    • Enhanced Date, Time and Time Zone support

    Runtime

    • CodeGen

    .NET Diagnostics

    • EventPipe for Mono and Improved EventPipe Performance
    • IL trimming
    • Single-file publishing

    CLI install of .NET 6 SDK Optional Workloads

    Preview 5

    More details in https://github.com/dotnet/core/issues/6099

    .NET SDK

    • Optional Workload improvements
    • NuGet Package Validation
    • more Roslyn Analyzers
    • Enable custom guards for Platform Compatibility Analyzer

    Windows Forms

    More detail in separate post

    • default font
    • More runtime designers

    Libraries

    • Dropping support for older frameworks
    • Microsoft.Extensions
    • JsonSerializer Source generation
    • WebSocket Compression
    • Socks proxy support
    • Support for OpenTelemetry Metrics
    • Vector<T> now supports nint and nuint
    • Support for OpenSSL 3
    • Add support ChaCha20/Poly1305 cryptography algorithm

    Interop

    • Objective-C interoperability support

    Diagnostics

    • (EventPipe/DiagnosticsServer) – MonoVM

    Runtime

    • CodeGen

    Preview 6

    More details in https://github.com/dotnet/core/issues/6325

    x64 emulation update

    Tools

    • .NET SDK Optional Workload improvements
    • Crossgen2 replaces crossgen

    Libraries

    • TLS support for System.DirectoryServices.Protocols
    • Improved sync-over-async performance

    Runtime

    • W^X memory policy
    • CodeGen

    Preview 7

    More details in https://github.com/dotnet/core/issues/6444

    .NET SDK

    • C# project templates modernized

    Libraries

    • Reflection APIs for nullability information
    • ZipFile Respects Unix File Permissions
    • NativeMemory APIs
    • System.Text.Json serialization notifications
    • System.Text.Json serialization property ordering
    • “write raw” JSON with System.Text.Json.Utf8JsonWriter
    • Synchronous stream overloads on JsonSerializer
    • System.Text.Json.Nodes.JsonNode support for dynamic is removed
    • System.Diagnostics Propagators
    • Simplified call patterns for cryptographic operations
    • Full Case Mapping Support in Globalization Invariant Mode

    Runtime

    • W^X (write xor execute) support for all platforms and architectures
    • CodeGen

    Early .NET 7 Feature Preview

    • Generic Math

    Release Candidate 1

    More details in https://github.com/dotnet/core/issues/6569

    • Source build
    • Profile-guided optimization (PGO)
    • Dynamic PGO
    • Crossgen2
    • Security mitigations
    • HTTP/3
    • SDK workloads

    Release Candidate 2

    More details in https://github.com/dotnet/core/issues/6570

    • C# 10
    • .NET SDK: C# project templates modernized
    • macOS and Windows Arm64 Update

    Focussed posts

    In addition the following posts were made: