Week 7 of my series, sharing things I’ve learnt, read, watched and listened to, in the pursuit of expanding my knowledge about software development.
Things I’ve Blogged
- Visual Studio 2017 is Released – Reflecting on the loss of project.json and looking ahead to the new VS 2017 experience
Things I’ve Learnt
ASP.NET Core MsBuild is Quicker than Project.json
It seems that the build time for the ASP.NET Core framework is nearly halved after moving back to csproj and MsBuild. Reduced down to approx. 28 mins from 52 mins. Read the tweet here
Live Unit Testing in Visual Studio 2017
It was a little disappointing to learn that the new live unit testing feature is not supporting .NET Core projects at launch. Looks like I’ll have to wait a while to try it since most of my projects are .NET Core at the moment.
Registering a Dependency with a non injectable property using Microsoft.Extensions.DependencyInjection
I was looking at an ASP.NET Core project which was using StructureMap to enable some more advanced service registrations that the built in Microsoft DependencyInjection package allowed. However, after looking through, I only found a few that I wasn’t sure how to register with the built in DI container. The project had a StructureMap registration like this:
c.For<DataValidator>().Transient().Use(() => new DataValidator(DataSource.DefaultData));
The DataSource.DefaultData is a static method in this case. After looking at the IServiceCollection methods, it seems the following line works with the default container to achieve the required result:
services.TryAdd(new ServiceDescriptor(typeof(DataValidator), p => new DataValidator(DataSource.DefaultData), ServiceLifetime.Transient));
Things I’ve Read
- I’m Leaving the EF Team, But Still Working on .NET by Rowan Miller – Big news and best of luck to Rowan. I’ve read much of his content about EF over the years.
- Is Your Code Hard to Understand? by Erik Dietrich
- Next Generation C# / .NET Helper Library Release by Dan Theurer
- Under the Hood of Stopwatch by Timur Guev
- New Git Features in Visual Studio 2017 by Kayla Ngan
- Relationship Hacks: An Allowance System for Adults by Scott Hanselman
- eShopOnContainers Microsoft Container Microservices Reference Sample
- Live Unit Testing in Visual Studio 2017by Steve Smith
- Unit Test Naming Convention by Steve Smith
- Changes to EF Core With the RTM of VS2017 and Tools by Julie Lerman
- Supporting both LTS and Current releases for ASP.NET Core by Andrew Lock
- Amazon Kinesis: the best event queue you’re not using by Chris Zelenak
- Difference between Visual Studio 2017 Community, Professional and Enterprise by Kent Bryant
- RayGun – High-performance real-time application monitoring – Great to a real world example of the performance work from Microsoft on ASP.NET Core. The benchmark figures have looked great, but this is the real test. Would be nice to know if this is using standard MVC controllers for the API or more custom middleware approach.
- TDD Harms Architecture by Robert C. Martin
- Event Driven Microservices Patterns by Carol McDonald
- Running an Elasticsearch cluster with Docker
- Azure Functions vs Web Jobs: How to choose?
- Optimize your productivity with .NET in Visual Studio 2017 by Kasey Uhlenhuth
- ASP.NET Core: Simple localization and language based URLs by Gunnar Peipman
- Do I Really Have to Unit Test This Method? by Nick Chamberlain
- Common Multithreading Mistakes in C# – III: Unsafe Assumptions by Ben Bowen
- Old csproj to new csproj: Visual Studio 2017 upgrade guide by Nate McMaster
- What is the Microsoft.AspNetCore metapackage? by Andrew Lock
- Using routing DataTokens in ASP.NET Core by Andrew Lock
Things I’ve Listened To
- .NET Rocks – Twenty Years of Visual Studio with Julia Liuson
- .NET Rocks – Visual Studio 2017 with Tim Sneath
- CodingBlocks – Episode 56 – Clean Code – How to Build Maintainable Systems
Things I’ve Watched
- Snippets from the Visual Studio 2017 launch live
- Talks Evening: How to change the engine on a plane in flight without crashing – Dan Wood
- 38th eBay Tech talk in Berlin: Raimo Radczewski on EventSourcing & CQRS (Feb 9th, 2017) – A really nice EventSourcing and CQRS talk – Something I’m actively researching at the moment.
- Pluralsight – Understanding ASP.NET Core Security by Roland Guijt – I watched the very good chapter “Centralized Authentication with a Token Service” about IdentityServer which helped cement some of the concepts a little better in my mind.
- AspNetCoreRateLimit – Rate limiting middleware – We’re looking at this for an API project currently. So far it’s been an easy addition and does most of what we need out of the box.