One year ago today, Devolutions committed $3M to support Avalonia's open-source development.
Today, we’re sharing exactly how that sponsorship has changed the trajectory of our framework.
| GitHub | https://github.com/KirillOsenkov |
| https://twitter.com/KirillOsenkov | |
| BlueSky | https://bsky.app/profile/kirillosenkov.com |
One year ago today, Devolutions committed $3M to support Avalonia's open-source development.
Today, we’re sharing exactly how that sponsorship has changed the trajectory of our framework.
📰 AI-Powered MSBuild Investigation with the Microsoft Binlog MCP Server
Diagnose MSBuild build failures and performance issues with AI using the new Microsoft Binlog MCP Server - 15 specialized tools that let your AI assistant investigate binary logs.
https://devblogs.microsoft.com/dotnet/msbuild-binlog-mcp-server/ #dotnet
can't remember if i shared this fun computer thing i made
it's a lil toy for interactively exploring 1-bit dither — including my beloved Atkinson dither from the MacPaint era — by playing with it like it's a board game
try it here, but note there's zero instruction and the UI is full of secrets: https://www.inkandswitch.com/tangents/dither-explorer/
or, more fun, watch me explain how it works by saying words and moving my hands a lot: https://www.youtube.com/watch?v=9vZcmWhTeOM&list=PLCC8lmauZTzeEP7mIsOOI4HKeeyBN2rIy&index=5&t=114s
trip out, have fun <3
Let's talk about extracting information from MSBuild-based projects, like C# projects (.csproj).
I have no particular reason to do this; I just think it's cool. However, this might be useful to extract information from your build system without needing to run a full build, or as an alternative to having more complicated MSBuild logic to create an output file.
Starting in .NET 8 you can run:
```
dotnet build -getProperty:Foo
```
Instead of running a build, this will output the value of the "Foo" property. For example:
```
> dotnet build -getProperty:TargetFramework
net9.0
```
You can ask for multiple properties, in which case dotnet will return a JSON object:
```
> dotnet build -getProperty:TargetFramework,OutputType
{
"Properties": {
"TargetFramework": "net9.0",
"OutputType": "Exe"
}
}
```
Avalonia XPF turns 4 today.
4 years ago, we committed the very first lines of code that would make WPF cross-platform.
Since then, countless organisations have used XPF to modernise existing applications, reach new platforms, and extend the life of their WPF apps.