Software Engineering categories

You can't out-exercise a bad diet

I heard a great quote yesterday: You can’t out-exercise a bad diet And this is a great metaphor for technical debt. We all agree that you need to pay down your tech debt in your software. And it’s great to commit to addressing a little technical debt during each sprint. The problem is that this is the …

Code Katas

Our team recently went through the Bowling Game Kata (as seen on Clean Code) from Uncle Bob. Here are some interesting learnings and takeaways from the session that I picked up on. Practice makes perfect The only way to get good at something is to practice. The concept of doing a Code Kata is to practice the art of TDD …

Automated OCD with Stylecop

I never really got into Stylecop or FXCop. I did make use of some of the Resharper autoformatting configuration, and static analysis features, and have in the past automated and configured this. But since starting to use Visual Studio Code, I have been looking for more and more ways to get the benefits of the Visual …

A Windows Service using netcoreapp on dotnet

I wrote Building a Windows Service with .Net Core and had a bit of flack because I was only using .Net core to build a .Net 4.5.2 application. Technically the title is still valid, it was a windows service, and I built it using .Net Core tools. But since people came looking for the answer to actually hosting a …

Developers are not lazy, they're efficient

Well, mostly. I hear the excuse a lot from developers, “Oh, because I am lazy”. This seems to be some sort of way of justifying the way we do some of our development, automation scripts, bash power-user commands like grep and awk, even writing a program to solve something we could do ourselves manually. …

My C# naming conventions

I have opinions! I’ve been meaning to write this article for a while. I have various opinions about code formatting, and they may or may not conform to the norm. Also, they change occasionally as and when I get a good explanation of why a different way is better, or when I discover a technique while learning a …

.Net Core SDK 2.* Series - Self-contained Applications

This is a series on the latest 2.* .Net Core bits, Following on from the original .Net Core Series Getting Started What’s in the box Using Multiple Projects Testing NuGet Multi-targeting Publishing Portable Applications Self-contained Applications <=(We are here) (At the time of writing, 2.1.4. I use windows, …

.Net Core SDK 2.* Series - Publishing Portable Applications

This is a series on the latest 2.* .Net Core bits, Following on from the original .Net Core Series Getting Started What’s in the box Using Multiple Projects Testing NuGet Multi-targeting Publishing Portable Applications <=(We are here) Self-contained Applications (At the time of writing, 2.1.4. I use windows, …

.Net Core SDK 2.* Series - Multi-targeting

This is a series on the latest 2.* .Net Core bits, Following on from the original .Net Core Series Getting Started What’s in the box Using Multiple Projects Testing NuGet Multi-targeting <=(We are here) Publishing Portable Applications Self-contained Applications (At the time of writing, 2.1.4. I use windows, …

.Net Core SDK 2.* Series - NuGet

This is a series on the latest 2.* .Net Core bits, Following on from the original .Net Core Series Getting Started What’s in the box Using Multiple Projects Testing NuGet <=(We are here) Multi-targeting Publishing Portable Applications Self-contained Applications (At the time of writing, 2.1.4. I use windows, …

.Net Core SDK 2.* Series - Testing

This is a series on the latest 2.* .Net Core bits, Following on from the original .Net Core Series Getting Started What’s in the box Using Multiple Projects Testing <=(We are here) NuGet Multi-targeting Publishing Portable Applications Self-contained Applications (At the time of writing, 2.1.4. I use windows, …

.Net Core SDK 2.* Series - Using Multiple Projects

This is a series on the latest 2.* .Net Core bits, Following on from the original .Net Core Series Getting Started What’s in the box Using Multiple Projects <=(We are here) Testing NuGet Multi-targeting Publishing Portable Applications Self-contained Applications (At the time of writing, 2.1.4. I use windows, …

A PowerShell Watch Command

I use dotnet-watch a bunch and have used a version via grunt/gulp a little in the past as well. In front of me, I had some TypeScript, tsc and an app.ts file. I wanted to watch it and trigger tsc automatically. But there was no csproj, no NuGet, and no npm in sight. I went searching far and wide for solutions, and some …

.Net Core SDK 2.* Series - What's in the box

This is a series on the latest 2.* .Net Core bits, Following on from the original .Net Core Series Getting Started What’s in the box <=(We are here) Using Multiple Projects Testing NuGet Multi-targeting Publishing Portable Applications Self-contained Applications (At the time of writing, 2.1.4. I use windows, …

.Net Core Series - Self-contained Applications

This is a series on the .Net Core 1.0 bits. Looking for .Net Core 2 Series? Getting Started What’s in the box Using Multiple Projects Testing NuGet Multi-targeting Publishing Portable Applications Self-contained Applications <=(We are here) This was meant to be an article on Self-contained applications in .Net …

Subcutaneous Testing against React + .Net Applications with Storyteller - A Reply

A week or two ago Jeremy Miller posted an article Subcutaneous Testing against React + .Net Applications. It outlined some early R&D on the new Storyteller.Redux, which allows you to run Storyteller tests against Redux stores using WebSockets. While he had a proven way of communicating between React/Redux and …

TypeScript over JavaScript, Always

Prelude As a developer, JavaScript is inevitable. Unless you’re a dba or mobile app developer I suppose, but I digress. When working with JavaScript applications, you certainly have to be using a build pipeline of some description. If you are not at least bundling and minifying you are certainly doing it wrong, …

There can be only one return; 0 RLY?

My opinions and choices on style of coding evolves and changes over time. By blogging about this now, I can refer back later when I change my mind. I can also elicit the opinions of others to influence me to change my ways if I happen to be wrong and not know it yet. Lets talk about returns. There is an opinion that …

In C#, your structs should be immutable.

I wrote some code. It was simple code. I had a collection. I iterated over the collection and updated the values. I did this several times in an outer loop. The code didn’t work. Why didn’t it work? My collection was an array of Structs. When I pulled an item out in the for loop, it was copied. When I …

.Net Core SDK 2.* Series - Getting Started

This is a series on the latest 2.* .Net Core bits, Following on from the original .Net Core Series Getting Started <=(We are here) What’s in the box Using Multiple Projects Testing NuGet Multi-targeting Publishing Portable Applications Self-contained Applications (At the time of writing, 2.0.3. I use windows, …