Rick Strahl
banner
rickstrahl.west-wind.com
Rick Strahl
@rickstrahl.west-wind.com
Wind, waves, code, punk rock and everything in between. Markdown, .NET and all things Web.
Blogged: Using the new WebView2 AllowHostInputProcessing Keyboard Mapping Feature

Finally finished this post that describes a new WebView feature that allows passing through keystrokes from WebView->Host to naturally handle Windows behaviors correctly.

weblog.west-wind.com/posts/2025/A...
Using the new WebView2 AllowHostInputProcessing Keyboard Mapping Feature
If you've used the WebVIew2 control for a UI interactive Hybrid active you've probably run into some odd keyboard behavior, where some keys cannot be captured properly in the host application or are n...
weblog.west-wind.com
August 21, 2025 at 7:27 PM
Blogged: Unpacking Zip Folders into Windows Long File Paths

Wrote up some notes from my recent misadventures with the #dotnet ZipFile class and unpacking long filenames.

weblog.west-wind.com/posts/2025/J...
Unpacking Zip Folders into Windows Long File Paths
Ah, long file paths bit me again today - this time with `ZipFile.ExtractToDirectory()` not unzipping long path files, even when specifying long path syntax for the output folder. In this post I briefl...
weblog.west-wind.com
June 23, 2025 at 2:57 PM
That’s what we call a Whiteout!

Insane day on the water today with gusts to 50mph and mast high swell rolling down the river.

Not forecast either which makes it all the better!

#gorgelife
June 14, 2025 at 3:36 AM
Are you feeling it yet?
www.youtube.com/watch?v=5zFz...
Anti-Trust - The Masters of Disaster
YouTube video by Anti-Trust Punk Rock Music
www.youtube.com
June 11, 2025 at 6:50 PM
Blogged: Adding Runtime NuGet Package Loading to an Application

The post discusses adding NuGet support to my .NET LiveReloadServer tool and it's dynamic loose Razor page support recently. Been really useful to me for several 'Sites with Benefits'.

weblog.west-wind.com/posts/2025/J...
Adding Runtime NuGet Package Loading to an Application
It's not a common use case, but if you need need to dynamically add external code at runtime, NuGet packages are the most familiar way for developers to add that functionality besides old-school direc...
weblog.west-wind.com
June 10, 2025 at 10:41 PM
Blogged: Using Windows Media Speech Recognition in WPF

Wrote up some of the struggles I've shared over the last week while integrating Windows SDK, WinRT and speech recognition in a WPF app. End result: 👍

weblog.west-wind.com/posts/2025/M...
Using Windows.Media SpeechRecognition in WPF
Windows has a pretty capable SpeechRecognition engine built-in via Windows Media services. In .NET these features are accessible via the Windows SDK (WinSdk) that expose these Windows features to .NET...
weblog.west-wind.com
March 25, 2025 at 9:22 AM
Blogged: Accessing Windows Settings Dialogs from Code via Shell Commands

Quick blog post for reference that also points at the resource key links available for the protocol handler.

weblog.west-wind.com/posts/2025/M...
March 13, 2025 at 11:08 PM
Evening session….

Klein aber fein!
March 9, 2025 at 7:03 AM
Ooops! This is what breaking off a harness hook looks like 😱

Aluminum hook was worn and ripped right off. Quite the slam… sometimes it’s better not to know what happens after you go down 😂🏴‍☠️
March 5, 2025 at 6:58 AM
Kava and I having a golden moment 😀
March 2, 2025 at 8:55 AM
Blogged: Inline Confirmations in JavaScript Html UI

weblog.west-wind.com/posts/2025/F...
February 28, 2025 at 6:52 AM
Posted my annual .NET version comparison throughput tests along with some initial perceptions of moving to .NET 9.0.

This year is a little... different.

weblog.west-wind.com/posts/2025/J...
Comparing Raw ASP.NET Request Throughput across Versions: 8.0 to 9.0 Edition
Once again I'm taking a look at the newish .NET release and how it compares to the previous release - this time .NET 9.0 from .NET 8.0. I'll run my simple load tests to compare performance and also di...
weblog.west-wind.com
January 21, 2025 at 6:17 PM
Dropped a new single from the forth coming Anti-Trust album:

War Machine

Never forget: War is the REAL Enemy!

open.spotify.com/album/3x1R7W...
War Machine
Anti-Trust · Single · 2024 · 1 songs
open.spotify.com
January 19, 2025 at 9:51 PM
Evening session…
January 12, 2025 at 12:11 AM
Screwing around with building a very simple runtime expression evaluator that doesn't need to compile - just parse and invoke.

So far so easy but once you get to methods with parameters the easy part's done with 😂
January 11, 2025 at 11:56 PM
Last ride of 2024…

Small waves and trying out a new camera mount. Result: another broken GoPro mount…
January 1, 2025 at 6:36 PM
Updating the C# scripting engine in Westwind.Scripting to support layout pages.

I finally got fed up with trying to shoehorn other script engines into my templating solutions - Razor especially (both hosted and internal).

This is plain old, raw C# code being rendered.

github.com/RickStrahl/W...
December 30, 2024 at 10:14 PM
Running into a weird issue with dynamic and anonymous types while updating my C# scripting library.

I'm passing in a model that's an anon type, cast to dynamic, and access to dynamic props then fails.

But using Reflection works (ie. the type is there).
December 29, 2024 at 9:00 PM
Blogged: Back to Basics: Using the Parallel Library to Massively Boost Loop Performance

Posting a follow up to recent tweet regarding converting a linear for loop to parallel and gaining huge performance improvements.

weblog.west-wind.com/posts/2024/D...
Back to Basics: Using the Parallel Library to Massively Boost Loop Performance
I recently had another occasion to add Parallel.ForEachAsync() into an application to improve performance of an Http look up operation drastically. When I tweeted a note on X there was quite a bit of ...
weblog.west-wind.com
December 28, 2024 at 7:36 AM
Always nice to get an easy win: Switching to a Parallel loop with literally a couple of lines of code and getting massive perf improvements.

Link checking in Markdown Monster on one of my old blog posts with lots of links went from 20 seconds down to 2.5 seconds.
December 23, 2024 at 9:19 AM
New Anti-Trust music from the upcoming Anti-Trust - The Masters of Disaster album.

This video is based on themes from Corey Doctorow's discussions on Enshittification of our ever more digital lives.

www.youtube.com/watch?v=Ftgw...
Anti Trust - Enshittify
YouTube video by Anti-Trust Punk Rock Music
www.youtube.com
December 20, 2024 at 2:06 AM
Pushed up a new version of LiveReloadServer today. It's a local, self-contained, x-platform static Web server that also supports loose Razor pages and built-in Markdown rendering plus LiveReload.

Updated to .NET 9.0 and fixed a few small issues.

github.com/RickStrahl/L...
December 18, 2024 at 12:03 AM