About:

Grant Winney is a software developer and technical editor with a passion for learning and sharing knowledge.

Website:

Specializations:

Interests:

Software development C# .NET React Erlang DevOps Agile process

Outgoing Links:

Andrew Lock
Subscribe to RSS:
WebView2 is a new control for displaying web pages in a WinForms app using Microsoft Edge as the rendering engine. The control is available on NuGet and can be easily initialized. It allows navigation to websites, loading custom H...
In .NET 5, WinForms got a major upgrade to the MessageBox called TaskDialog. It's way more flexible and powerful. The new control called TaskDialog allows for much more customization. It supports a more complex interface for displ...
The text discusses the new feature in .NET 9 for WinForms that allows multi-selection in the FolderBrowserDialog. It explains how to use the updated control and provides code examples. The author expresses surprise at the addition...
The text discusses the GetStockIcon method in .NET 8 for WinForms, which allows access to stock Windows icons at runtime. It explains how to use the method, its pros and cons, and provides examples of its usage.
The text discusses the use of raw string literals in C# 11 / .NET 7, and how they differ from quoted and verbatim strings. It explains the behavior of raw string literals, and how they can be used in single-line and multi-line sce...
The text discusses the use of primary constructors with classes and structs in C# 12 / .NET 8. It explains the differences between traditional constructors and primary constructors, and how to use primary constructors in classes a...
The text discusses the changes in C# 9, focusing on removing ceremony, adding the record modifier for classes, and equality in classes, trains, and records. It compares the standard class, class with equality defined by us, and re...
The .NET team has made some helpful additions to LINQ in recent years, including set-based updates from C# 10 / .NET 6. The post discusses set-based methods such as ExceptBy, IntersectBy, UnionBy, and DistinctBy, and provides code...
The text discusses the new additions to LINQ in C# 10 / .NET 6, specifically the MinBy and MaxBy methods. It explains how these methods can be used to find the max or min value of a collection, and how they provide more flexibilit...
The text discusses the new additions to LINQ in C# 13 / .NET 9, CountBy and AggregateBy. It provides examples of how to use these methods and compares them to traditional LINQ methods. It also includes code examples and explanatio...
The text provides 5 short examples of using Async, CancellationToken, and IProgress in coding. The author shares their experience with writing async code and how it can be challenging. The examples include running tasks, auto-canc...
The text discusses the use of TimeProvider and FakeTimeProvider in WinForms. It explains how to backport TimeProvider, use it in WinForms, and test it using FakeTimeProvider. It also covers the limitations of using FakeTimeProvide...
The author discusses the issue of SSRS not updating the default value for a parameter. They explain the problem, the history of the issue, and potential solutions, including a workaround involving the SetParameters stored procedur...
The .NET 8 (C# 12) release included new constructs for abstracting time and timers, two things that have traditionally been a pain when it comes to testing. A few days ago, I took a first look at time abstraction using the new Tim...
The text discusses the difficulties of testing time in C# and how .NET 8 (C# 12) introduces an abstract TimeProvider class to make it easier. It explains different ways to work with time in a C# app, and how to test time-dependent...