WriteAsync .NET

Testing, coding, in that order.

Redecorating with C++

The decorator pattern is one of the classics in the Gang of Four Design Patterns book. Let’s explore this pattern first with a C# example. This is just your average decorator, which as the code comments say, employs inheritance and…

By Brian Rogers | 12 March, 2023 | design | No Comments |
Read more

UberQueue challenge

David Fowler tweeted: Coding challenge for you in any language. I want to see different ways of expressing this computation: The challenge was, of course, expressed in C# and what luck — that was my chosen implementation language! Before I…

By Brian Rogers | 15 August, 2021 | async, concurrency, tdd | No Comments |
Read more

Letter Boxed: Rust impl, part 4 (complete solver)

After some incremental progress in our Letter Boxed solver, we’re now ready to complete the app. Our hard-won “expertise” in Rust now makes the last several steps largely mechanical. The first set of changes produces LetterBox and Vertices structs, so…

By Brian Rogers | 7 April, 2021 | design, native, tdd | No Comments |
Read more

Letter Boxed: Rust impl, part 3 (modules, trie, I/O)

Our Rust-based Letter Boxed code so far has just the core character-based data types. Today we’ll add the trie. Before we move on, we need to keep our house in order. Rather than have one massive lib.rs file, we should…

By Brian Rogers | 5 April, 2021 | design, native, tdd | 1 Comment |
Read more

Letter Boxed: Rust impl, part 2 (panicking, hashing, parsing)

Previously we began our Rust exploration of Letter Boxed with the core St and Ch structs. Now we’ll complete their functionality. The next test on our TODO list looks like this in the C# version: We’ve already encountered our first…

By Brian Rogers | 2 April, 2021 | design, native, tdd | 1 Comment |
Read more

Letter Boxed: Rust impl, part 1 (basics)

We’ve already set up the development environment, so let’s write some Rust code! A good place to start is with the bottom layer data structures, known as Str and Ch in the C# version. To review, Ch is an enumeration…

By Brian Rogers | 31 March, 2021 | design, native, tdd | 1 Comment |
Read more

Letter Boxed: introducing Rust!

In the ongoing Letter Boxed solver saga, we have explored native code from the C++ angle. After all, C++ is still comfortably among the top of the close-to-the-metal programming languages (at least according to some sources). But it’s 2021 AD…

By Brian Rogers | 29 March, 2021 | native, scripts | 1 Comment |
Read more

Letter Boxed: out with the old

Software rot is inevitable if projects are not maintained with care. It is nice to think that in today’s write once, run anywhere world, a rock-solid application with no planned changes can continue to work perhaps without even recompiling; of…

By Brian Rogers | 15 March, 2021 | cross-platform, games, legacy, scripts | 2 Comments |
Read more

Cross-platform without complexity: finishing up

Our cross-platform project has interoperable C++ and .NET code. However, the command line and IDE experience still only accounts for the C++ side. Let’s start with the IDE. First, a bit of bad news — there doesn’t seem to be…

By Brian Rogers | 14 August, 2020 | cross-platform, scripts | No Comments |
Read more

Cross-platform without complexity: .NET interop

The cross-platform project has a shared library now. Wouldn’t it be fun to try to build an interop project using P/Invoke with this library? To account for the addition of .NET projects, we’ll need to revisit the project structure: inc…

By Brian Rogers | 12 August, 2020 | cross-platform, tdd | 2 Comments |
Read more
  • « Previous
Copyright ©2023 WriteAsync .NET | Theme by: Theme Horse | Powered by: WordPress