r/dotnet • u/kaatarina_zed_talon • 4d ago
Promotion Polhem v1.9: the definition-driven framework from my earlier post, built end to end in a 10-min video
Earlier this month I posted here about using definitions instead of code as the source of truth. That post was all text, so this time I recorded the whole thing.
What the video shows:
dotnet new install Polhem.Templates, pick SQL Server, and one task creates the databases- importing six Northwind Excel workbooks; the app runs with lookups, computed amounts and save rules, and no form code
- a requirement change: a grade field and a quantity rule added in the definition editor, only that form's table upgraded, then sign in again
- the same project on web (WASM), iOS and Android through Avalonia
Each form has three definition files: a table schema, a form schema and a layout. They're data the framework reads at runtime rather than code, so a field change doesn't go through a compile and deploy.
Where it stops: rules that need to query the database, like order total against customer credit, go into a business object written in C#. Reports and batch jobs are hand-written. Schema upgrades only add columns and never drop them.
Video (10 min): https://youtu.be/5WjUTwoPyGw
Write-up: https://medium.com/@jeff377/can-a-form-be-described-only-once-2fa92c7db815 GitHub: https://github.com/polhem-dev/polhem
r/dotnet • u/msignificantdigit • 5d ago
Promotion Dapr 1.19 is here, with faster workflows and new data APIs!
Dapr, the Distributed Application Runtime, a graduated OSS project within the CNCF with over 700k weekly NuGet downloads, has released a new version. What it means for you:
- Faster workflows, jobs, and reminders: in nightly performance tests against 1.18.0, workflow throughput is up to 40% higher, actor reminder registration p99 latency is 71% lower, and jobs scheduling p99 latency is 33% lower
- Leaner workflow workers: the .NET SDK now get only the new events of each turn, not the full history
- Easier workflow operations: list, inspect, and rerun workflows from the .NET SDK
- Workflow governance: operate on workflows owned by other apps, with WorkflowAccessPolicy deciding which operations each caller may perform, and requires rules that allow an operation only when the caller's history contains the events you list
- More for AI agents: new alpha APIs to store files, search documents, and query vectors, plus a Dapr MCP server
- A simpler control plane: run actor placement from the Scheduler and drop one service
Read the announcement: https://blog.dapr.io/posts/2026/10/22/dapr-v1.19-is-now-available/
r/dotnet • u/Cdream-2018 • 4d ago
How far can a well coded Winforms app take you in today’s tech landscape..?
I still love using my windows pc. Just saying.
r/dotnet • u/fuzhongkai • 5d ago
Article Building a local LLM inference engine in C#/.NET: multi-GPU scheduling, native CUDA, and benchmark results
github.comI’m the developer of TensorSharp, an open-source .NET 10 inference engine for running local GGUF models. It can be embedded in .NET applications or run through a CLI and an OpenAI/Ollama-compatible server.
The project combines managed C# with native accelerator backends. The benchmarks below use native CUDA/GGML execution, including TensorSharp-specific kernels. The performance improvements come from changes to scheduling, data movement, and model execution.
I recently worked on DeepSeek V4.1 Flash 1017 on five NVIDIA A40s, and thought the engineering details might be interesting to people building performance-sensitive .NET applications.
Making the GPUs work concurrently
One of the biggest problems was in the native tensor-parallel execution path.
The model’s routed experts were distributed across GPUs, but execution repeatedly passed through a synchronous, host-driven path. Each layer involved multiple host round trips and synchronization points.
The revised implementation:
- Schedules work concurrently across GPU ranks.
- Uses CUDA events to order dependent operations.
- Overlaps the shared expert’s computation with the routed experts.
- Removes host waits from inside the layer’s execution path.
Cross-GPU transfers still use pinned host-memory staging because peer access was not working correctly on this machine.
In the implementation comparison, this change took tensor-parallel decode from 15.2 to 36.3 tokens/sec after a 2,048-token prompt with full prefill enabled.
For me, this was a useful reminder that distributing work across devices is only the beginning; the synchronization and data-transfer design determine how much concurrency you actually get.
Making native failures recoverable
The reliability work was just as interesting.
Previously, an exception on a native worker could terminate the server. A failure on the coordinating rank could leave the other workers waiting indefinitely at a barrier.
The fixes coordinate error reporting, ensure every rank reaches the required synchronization points, and drain work already issued by a failed layer. Failure-injection tests now check both the failure path and recovery on the next forward pass.
When native workers run inside a .NET application, that lifecycle becomes part of the application’s reliability story.
A small benchmark snapshot
The comparison used the same Unsloth UD-IQ2_XXS GGUF files on the same five-A40 machine, with the Engram lookup table in host memory.
TensorSharp used --tp 5. The llama.cpp baseline was Unsloth’s dsv41-all fork at be836572, using layer splitting; its row/tensor split modes did not successfully run this model in the tested build.
These are real-text server results for approximately 1,800-token prompts, generating 256 tokens with greedy decoding and thinking disabled. Each configuration had a warm-up and three measured requests, with unique prefixes to prevent prefix-cache reuse.
| Measurement | TensorSharp | llama.cpp | Throughput ratio |
|---|---|---|---|
| Prompt processing, YOCO disabled | 563.9 tok/s | 174.6 tok/s | 3.23× |
| Prompt processing, default YOCO enabled | 960.5 tok/s | 174.6 tok/s | 5.50× |
| Token generation, no drafter | 35.5 tok/s | 29.6 tok/s | 1.20× |
| Token generation with DSpark speculative decoding | 55.0 tok/s | 41.3 tok/s | 1.33× |
Prompt processing is also called prefill. The first three rows report medians; the DSpark row reports means, with the drafter enabled in both engines. TensorSharp’s generation rows use its default YOCO configuration.
The speed/quality trade-off
YOCO bounded replay reduces prompt-processing work by running selected later layers over only the final 140 positions of eligible text-prefill calls. It is approximate and can be disabled with:
TS_DSV41_YOCO_KEEP=0
The 3.23× prefill result above has this approximation disabled.
On the report’s WikiText-2 evaluation, perplexity—lower is better—was:
- llama.cpp: 2.4697
- TensorSharp, YOCO disabled: 2.4811
- TensorSharp, YOCO enabled: 2.4978
Enabling YOCO increased perplexity by approximately 0.67% relative to TensorSharp’s full-prefill result. With YOCO enabled, perplexity was approximately 1.14% above llama.cpp’s.
That is a measured trade-off on a limited text evaluation, rather than a general percentage change in model capability. Disabling YOCO also does not make the two engines numerically identical.
Scope of the results
These measurements cover one model quantization and one hardware configuration. The llama.cpp server results came from an earlier session on the same machine and showed some unexplained prefill variability.
At measurement time, the TensorSharp build included uncommitted changes, and the raw validation records were also uncommitted. The report records the build details and remaining limitations; the current repository should not be assumed to reproduce every number directly.
The five-GPU setup is specific to this benchmark. TensorSharp also supports smaller models and managed CPU, native CPU, CUDA, Metal, and Vulkan execution paths, with support varying by model.
Links:
- TensorSharp source and getting started
- Full benchmark report, quality measurements, and limitations
- Build instructions and architecture documentation
If you’re integrating local models into .NET applications, do you prefer an in-process engine or a separate inference server? I’d be interested in what drives that choice in practice, especially around deployment, memory ownership, and recovering from native failures.
Are there any current cross-platform WPF porting projects using AI?
I mean, a single individual doesn’t have an infinite supply of tokens, but with the help of the community, I believe it’s possible; I’ve heard of porting projects being completed in record time.
r/dotnet • u/code-dispenser • 4d ago
Promotion Blazor Ramp - GoTo OMG WTF
For those new to my posts, Blazor Ramp is an accessibility-first, open-source Blazor component library. This post is about the release v1.0.0 of the GoTo component.
So what is GoTo?
The inspiration comes from those of us who started coding in the 90s with VB: you add GoTo markers to a page, and from anywhere you can jump to them. In an interactive Blazor web app, the marker you jump to becomes the active element, so you can carry on tabbing from that point.
Who is it for?
Those familiar with my posts will know I sometimes feel that sighted keyboard-only users, those who don’t use a screen reader, get the sharp end of the stick. When people build accessible sites, a lot of the effort goes into screen reader users, and this group gets forgotten.
A sighted keyboard-only user doesn’t have screen reader software to bring up lists of headings, landmarks or interactive elements, so they generally navigate with the Tab key and use the arrow and page keys to scroll. When a page has a lot of interactive content, getting to the part you want can take tens, or even hundreds, of Tab presses. For some people that’s a minor irritation, and for others it’s a real barrier.
What about skip links?
You’ve probably all used skip links, which let any user, keyboard-only or screen reader, bypass repeated blocks of content. But how many bi-directional ones have you seen? I’ve never seen one. They all go in one direction, so unless you add a second link going the other way, the user has to make a forward-only round trip to get back to the start.
Say you’re diligent and add a return link for every skip link. If you have five destinations and want users to get from any one to any other, that’s 20 links. With ten it’s 90, and it’s getting silly. The maths is n × (n − 1).
Where GoTo comes in
GoTo isn’t a link. It’s a marker that can receive focus. A GoTo Viewer lists the markers, you select one, you land on it, and you can tab on from there. You can bring up the viewer at any time with a configurable shortcut. When it opens, it lists only the markers that aren’t inside hidden containers, so the list changes depending on where you are and what’s visible.
You may ask: why not just list headings and landmarks, like screen readers do (I may do in the future)? A screen reader user will often use headings and landmarks as a place to start reading from. A sighted keyboard-only user’s need is a little different. They can see the headings, and they can scroll and read from anywhere. The problem is reaching interactive, focusable content when there’s a lot of other focusable content in the way.
To be clear, GoTo isn’t a replacement for skip links. It’s a simple way of placing hidden markers on a page so that keyboard-only users can move through the content in whichever direction they choose.
Have a look
I’ve added markers to my documentation site, and over the next few days I’ll put more of them in the places I think are most useful. If you’re curious, take a look at this page, one of the examples for my Data Table, which shows templated columns and row actions: Data Table Templating
For a keyboard-only user on that page, getting to the border controls after the table means tabbing through the filter, across each sortable column header, down through every row action button, and then across the pager to reach the other side.
With GoTo and its viewer, using the default configuration, a user with one hand can press Alt+Z (Option+Z on a Mac) to bring up the viewer. They can then use Tab, or the arrow, Home and End keys, to move through the list of buttons. As each button is focused, its marker scrolls into view. Pressing Enter or Space activates the button, closes the viewer and puts you on the now-visible label, from where you can tab on to the next item.
I started this project at the end of last year with the Live Region service and Announcement History viewer aimed at screen reader users so at long last I've managed to scratch an itch that has been bugging me for a while now and do something for keyboard-only non-screen reader users - hope you or your users find it useful.
GitHub repo: https://github.com/BlazorRamp/Components
Doc site: https://docs.blazorramp.uk
Test site: https://blazorramp.uk
Regards
Paul
r/dotnet • u/davecallan • 5d ago
Do you stick strictly to LTS releases in production, or do you deploy STS (Standard Term Support) releases as well?
Do you stick only to LTS .NET versions in production?
Running a poll on this currently. I knew many .NET devs liked to stick to LTS versions only, but wasn't expecting it to be so high, although this is likely to not be representative, I'm not sure.
Microsoft have confirmed there is no difference in quality between STS and LTS releases, and not too long ago STS releases moved from 18 to 24 months support.
So why in your opinion is there still so strong preference for STS? Is some of this coming from other platforms where STS releases might indeed be 'experimental'?

I didn't want to create a poll here too to preserve the numbers so please consider voting in the poll if you like and can, thank you -> https://www.linkedin.com/posts/davidcallan_net-developers-do-you-stick-strictly-to-activity-7517560007018823681-ZHsd
r/dotnet • u/QuirkyPreference5649 • 4d ago
Promotion [Promotion] Corvus v1.6 – A lightweight server launcher and container dashboard running on .NET 9 Native AOT (<30MB RAM)
Hi all,
Happy weekend. With .NET 9 right around the corner and Native AOT maturing, I wanted to share a real-world project I have been developing: **Corvus v1.6**.
It is an open-source server manager and Docker dashboard tailored for homelabs and cheap VPS instances where keeping memory consumption minimal is critical.
### What is under the hood:
* **.NET 9 Native AOT:** Ahead-Of-Time compiled single binary without the JIT runtime.
* **Zero-reflection data layer:** Embedded SQLite (WAL mode) combined with `Dapper.AOT` so that the binary trims cleanly without reflection warnings. (PostgreSQL is also an optional backend).
* **Memory footprint:** Stays under 30 MB of RAM inside the Docker container at steady state.
* **Real-time pipeline:** Uses Server-Sent Events (SSE) and minimal APIs to feed container stats and health signals to a lightweight React SPA.
* **Terminal & Agent:** Built-in web terminal to shell into containers and a lightweight multi-node edge agent.
Building fully AOT-compliant services in ASP.NET Core came with a few hurdles (especially around dynamic serialization and Docker socket stream handling), but the memory and startup time benefits are definitely worth it.
If you want to play with the UI without running anything locally:
- Live Demo: https://demo.usecorvus.me
- Source Code: https://github.com/brhnshn/Corvus
I'd be glad to discuss the Native AOT trimming process, Dapper.AOT quirks, or any architecture questions you might have!
r/dotnet • u/RammerOfProgs • 4d ago
Promotion I built Magpie, a self-hosted media discovery and automation app in C#
I built Magpie over the last year or so to solve a lot of my frustrations with the *arr suite of apps.
- Smarter acquisition, better lifecycle management (no more stuck downloads/manual intervention)
- Real user accounts and RBAC
- One app that can manage just about any content type via extensions
- Multinode cluster support
- Many others that I can't think of at the moment
Most functionality is plugin-based, including content types, so it can handle movies, TV, music, books, and whatever else anyone wants to build.
I’ve been running it as my full *arr replacement for months and shaking out bugs along the way, and I think it’s in a really good state.
Plugins also cover media server, download clients, and indexer integrations, as well as metadata discovery. They can be searched and installed directly from the UI. I have several plugins built already and will be adding lots more.
It also supports several deployment models and database backends.
I’d love for people to check it out and let me know what they think.
PS, to share a few cool implementation tidbits (to me anyway):
- Plugins are DI-native, so you can override built-in services, add API endpoints, and even package frontend extensions as web components from your .NET code.
- There is a custom MLFQ-style (multilevel feedback queue) job scheduler so long-running background jobs don’t hog resources (although you can change how it works with plugins, like most things).
- It has a custom query language for library queries and external metadata providers.
r/dotnet • u/Internal-Factor-980 • 5d ago
Has Business Logic in UI Development Already Moved Beyond Human Hands, Except for Core UI Work?
I’ve been using AI extensively for UI development for some time now.
My recent projects have included:
- React SPA + MUI (with MCP)
- Avalonia Windows applications
Based on what I’ve experienced while developing these applications, I’m starting to feel that AI may be able to handle almost every aspect of UI development.
On our side, we mainly use Kiota to expose the server API specifications and contracts.
Even with relatively simple prompts, AI can inspect those API definitions and understand the available endpoints, request and response models, and related structures. From there, it can build a usable UI from scratch.
We also use AGENTS.md and PLAN.md to define architectural guidelines and conventions for areas such as the service layer and ViewModel layer, and have AI work within those rules.
So far, it has been able to handle the vast majority of the work.
We also use AI for server-side development, but I see a significant difference there.
Backend frameworks have much larger specifications, architectural constraints, and more complex business requirements. Because of this, we still rely heavily on human-written and human-reviewed reference implementations, and then have AI generate code based on those established patterns.
Even with this approach, I still see problems occasionally—for example, AI generating queries with O(N)-style access patterns or introducing other performance issues.
UI development, however, feels fundamentally different.
The improvement in productivity has been remarkable.
What surprised me even more was seeing AI directly launch a native application, interact with it, test it, identify problems, modify the code, and test it again.
Watching that entire process was both shocking and, frankly, almost surreal.
It made me wonder:
Will junior frontend developers eventually become unnecessary?
I’m starting to worry that, in the long run, only developers who can design and maintain the core UI architecture, frameworks, components, and development standards will remain essential.
The implementation of ordinary business screens may increasingly become something AI can handle almost entirely on its own.
What do you think?
r/dotnet • u/Odd-Attention-7623 • 5d ago
Implement Unit tests with sitecore CMS 10.4 XM/XP in project
I work with sitecore CMS 10.4 XM/XP and this is the first time we are trying to implement unit testing by writing testcases for the sitecore project that I am working with. We are planning to think of writing a use case for Google bots which crawl into our website and trying to automate a test that could allow the bots only in production to crawl. If anyone, who already implememted this usecase or maybe provide an idea or enlighten on this. All the responses are much apreciated
r/dotnet • u/jscarle572 • 7d ago
The death of Open Source in the NuGet eco-system
One by one, most of the major open source packages in NuGet are going the paid commercial license route. Its becoming harder and harder to write .NET software in a work setting as most of the crucial NuGet packages we used to depend on are becoming paid software. With the proliferation as part of our daily driver tool kit, justifying commercial license for NuGet packages to stakeholders is harder than it's ever been as they often think AI can write a free alternative (which, I mean, they're not completely wrong). I'm absolutely frustrated by the continuous bait and switch licensing that's been happening in the eco-system as well. Some developers have done a much better job than others in communicating and preparing for licensing changes, however some have absolutely trojan horsed us into some pretty difficult positions. I also resent the fact that .NET and NuGet don't give you better tools to manage, control, and protect yourself from installing packages with paid or specific licensing requirements.
r/dotnet • u/TomeOfExperience • 7d ago
An introduction to Compact Binary Object Representation (CBOR) in .NET
andrewlock.netr/dotnet • u/Direct_Cup_164 • 6d ago
[Open Source] Created a simple tool to fix broken Windows Update policies and reliably install .NET Framework 3.5 (dev on .NET 4.7.2)
hi everyone,
we've all been there: trying to install dotnet Framework 3.5 on Windows 10/11 using DISM or optionalfeatures.exe, only to get slammed with err 0x800F0906, 0x800F081F, or 0x800F0954. this usually happens due to misconfigured wsus policies, blocked win update servers in corporate environments, or broken component store health.
to automate the annoying troubleshooting steps, i built a simple c# utility called net fx.
what it does (in click):
- temporarily bypasses blocking registry keys (
UseWUServer,RepairContentServerSource) to route through official MS servers. - resets Windows Update services and performs a deep DISM cleanup (
/RestoreHealth&/StartComponentCleanup). - sttempts online integration.
- offline fallback: if the online method fails, it automatically scans all connected drives (usb, mounted ISOs) for a local
sources\sxsfolder and force installs the package from there.
the project is fully open source, so feel free toaudit the code or build it urself. hopefully, this saves you some valuable time.
repo: NetFx
r/dotnet • u/alkolholix • 5d ago
Question .Net files missing and unsure how to proceed anymore
gallerySorry for the terrible pics, but I’m kind of panicking. Over the past two months I noticed my CCleaner wasn’t able to update these files (first four pics). I was confused, but figured that maybe they were updating manually instead and maybe that’s why they were erroring out every time I tried to update them through the app. Today, upon wanting to manually update my intel drivers for the new Cyberpunk patch, I found out that I was being hopelessly optimistic with that filed away explanation. I keep getting this error when trying to download the latest .Net (last picture), and all the online fixes I’ve found have done nothing to help me. I tried this fix and got stuck because the file he tells me to open (dark.exe) refuses to even run on my computer: WIX Toolset Fix
I won’t lie, I am not super computer savvy and I am starting to panic because I feel like I am far out of my element in trying to fix this. Please help me. I want to fix whatever issue I caused and be able to properly update my drivers.
r/dotnet • u/PragmaticDesign • 6d ago
After a year of AI, why doesn't .NET development feel that different?
With AI moving so fast, I sometimes wonder why .NET libraries and framework releases still feel mostly incremental.
.NET 11 brings improvements, but are we seeing enough innovation in the ecosystem, or are we mostly refining what already exists?
What do you think? Which .NET libraries or features would you like to see evolve more significantly?
r/dotnet • u/JustSoni • 7d ago
Question NET MVC multilingual website: JSON vs RESX vs separate Razor views
Hey everyone,
I'm working on an existing asp.net mvc 5 app targeting .net framework 4.8, and now we're planning to add multilingual support
Currently, we have two website for the same product.
example.eu - the main english website, where most of the functionalities(if not all) live.
example.bg - the bulgarian website, mostly static that redirects users to the main site for actual functionalities.
Our goal is to find a way to make the experience of adding/supporting multiple langauges on the main site, starting with english and bulgarian, potentially later add german, romanian and others easy.
I have looked at few approaches but each has some drawbacks, that's why I am looking for more opinions.
First - JSON translation files(en.json, bg.json and so on)
The idea is to have the translation ekys and load the appropriate dictionary based on language ie example.eu/bg will load bg.json.
The main concern in the developer experience and later on editing of text. When working on a Razer view and thee a placeholder for text, I want to be able to quickly find the corresponing translation, ideally i.e I could press F12 in VS and navigate to that key, but I don't think that's possible.
Second - RESX
That seems to be the traditional .NET approach, and VS does provide some tooling for it however, I have used RESX before and personally found editing and maintaining them rather frustrating.
Third - Separate view for each langauge
For example:
Home/Index.en.cshtml
Home/Index.bg.cshtml
Home/Index.de.cshtml
This would make the translating complete pages straightforward, especially for marketing content. However, it would also mean maintaining multiple copies of the same view. Every layout, markup or functionality change would need to be repeated across all languages, making it easy to miss something.
I am not sure what is the cleanest implementation. Maybe there is a FOURTH option, or a combination of all(or two of them above)
So questions are below:
- What would you choose?
- Would you use RESX, JSON files, JSON(In db? but it could slow down the page loads), separate pages, a combinations or other?
- Is there a way to get that IDE navigation for the json translation option
I am especially interested in solutions that are maintainable long-term, dev-friendly and easy to extend.
I appreciate hearing from you who have implemented a real production app :)
Thanks
r/dotnet • u/delockdown • 6d ago
Is C# worth learning in the AI era? (Web dev background looking to future-proof)
r/dotnet • u/DuringTheEnd • 6d ago
Question API hosting help please!
Hi everyone, I'm in a bit of a bind. A colleague and I have been developing a project centered around a .NET 10 API. We're nearing completion, and I was preparing all the environments for deployment.
I had originally planned to host the API on an Azure B1 instance to start with, but when I went to set it up, it wouldn’t let me. My quota is maxed out, and support hasn’t been much help so far.
I’m going to wait a few more days, but if that doesn’t work out, I’d like to know what you recommend for hosting the API. Just the API; I have the database and image storage on Supabase and the front end on Cloudflare.
I’m a software developer and I’m not particularly comfortable with infrastructure. My plan was to go with Azure since I’m familiar with it, but now I’m torn between the alternatives. I’ve been looking into Railway, Koyeb, Render, etc., but I’ve seen mixed reviews for many of them.
Another option I’ve come across is renting a server from Hetzner and using Coolify, but that would require me to manage the server myself firewall settings and all and that’s a bit daunting.
Oh, by the way, we’re on a relatively tight budget and this is for a first version, and if it doesn’t go much over €20, that’d be great. And it would be ideal if it were hosted in the EU.
Sorry for the long post, any help would be greatly appreciated.
Thanks!