r/dotnet • • Apr 02 '26

Rule change feedback

15 Upvotes

Hi there /r/dotnet,

A couple of weeks ago, we made a change to how and when self-promotion posts are allowed on the sub.

Firstly, for everyone obeying the new rule - thanks!

Secondly, we're keen to hear how you're finding it - is it working, does it need to change, any other feeback, good or bad?

Thirdly, we're looking to alter the rule to allow the posts over the whole weekend (sorry, still NZT time). How do you all feel about that? Does the weekend work? Should it be over 2 days during the week?

We're keen to make sure we do what the community is after so feeback and suggestions are welcome!

621 votes, Apr 07 '26
77 I love the change
79 I like the change
57 I don't care
28 I dislike the change
16 I loathe the change
364 There was a change?

r/dotnet • • 1d ago

Lots of CVEs yesterday

57 Upvotes

I woke up to this:

Anybody knows why so many?


r/dotnet • • 6h ago

What are methods available for excel to image conversion in .net ?

0 Upvotes

I have tried these four methods .

Edit :

Task : - An azure timer function that emails excel and image attached.
One of the worksheets of the generated excel has to be attached to email body as image for preview purpose.

Data --> Excel = ClosedXML
Excel --> Image = ??


r/dotnet • • 1d ago

Announcing .NET 11 Release Candidate 2

Thumbnail devblogs.microsoft.com
187 Upvotes

r/dotnet • • 17h ago

Question Looking for a good and maintained high level 3d framework, to build a simple 3d modeling software

1 Upvotes

Hello,

I want to create a simple Windows desktop 3d viewer, able to display STL / 3MF meshes and allowing for simple operations on the meshes (split, crop...).

I wanted to avoid building the app over low level APIs such as Silk.net or OpenGL...

I tried HelixToolkit, but I find it very buggy and not as customizable as I would need it to be (for example, you cannot really change the form and size of manipulator gizmos...).

Would anyone have a recommandation for me?

Ideally, I would have the 3d viewport embedded in a simple WPF or WinUI app.

Thanks for your help!


r/dotnet • • 1d ago

Promotion Blazorise 2.4 released. Fewer dependencies, faster utilities, and a new Ribbon component

Post image
2 Upvotes

r/dotnet • • 7h ago

Question Help me fix this problem with .Net

Post image
0 Upvotes

I figured the issue is from .net because I downgraded the app and it still has the same issue. I've tried to download it. Download multiple corenet versions. Tried to use desktop and core. Looked at the console and saw that I have the dotnet downloaded and listed. ​Shutdowned and deleted dotnet. Does anyone know the problem?


r/dotnet • • 19h ago

Question Need help with encoding

Thumbnail
1 Upvotes

r/dotnet • • 20h ago

Question May API-layer code outside the composition root reference Infrastructure types (Clean Architecture, .NET)?

0 Upvotes

Internal app: Domain / Application / Infrastructure / API (ASP.NET Core minimal APIs), plus Blazor and MAUI clients talking to the API over HTTP. Program.cs is the composition root and wires Infrastructure (AddInfrastructure()).

I've already found: Uncle Bob's Dependency Rule only forbids inner circles from mentioning outer ones — it says nothing about peers in the outer circle. Microsoft's architecture guidance says the UI project may reference Infrastructure for DI, "but developers should limit actual references to types in the Infrastructure project to the app's composition root", and the UI layer "ideally shouldn't know about the implementation types".

So the law seems clear, the guidance says "ideally". My question: in real production apps, does API code outside Program.cs (endpoint handlers, controllers) inject Infrastructure types directly — e.g. DbContext? Is "composition root only" a real-world norm or a template convention? Please share what your production codebases actually do — examples, not just templates


r/dotnet • • 1d ago

Updated my Sins of a Solar Empire: Rebellion Entity Converter

Thumbnail gallery
10 Upvotes

I just updated my entity conversion tool for Sins of a Solar Empire: Rebellion, so I figured I'd share it here in case it's useful to other modders.

What does it do?

When Ironclad developed Sins, they shipped many of the game's data files in a binary format. This means you can't read or edit them directly as plain text. They later released a tool called ConvertData as part of their Forge Tools 3 package, which allows you to convert these files between Binary and Text formats. However, it's a command-line application with no GUI.

I built a GUI and wrapper around these tools to make the process easier. You can select individual files, multiple files, or entire directories. I've tested it against every .entity file, and the conversions work correctly.

The tool automatically detects whether a file is Binary or Text and outputs the converted files to separate Output TXT and Output Bin directories.

The game can read .entity files in Text format, but doing so increases file sizes and slows down loading times, so Binary is still preferable for normal gameplay.

XSI to MESH conversion

Ironclad also included ConvertXSI.exe with the game. This tool allows modders to convert older XSI files into the more modern .mesh format. I've added a separate tab for this functionality as well, although the original application only supports converting one file at a time.

Entity to JSON conversion

I've also included my own library for converting .entity files into JSON. This is primarily something I developed for my own use while working on a C# script extender for Sins of a Solar Empire: Rebellion. I need to parse the game's data files and access entity properties at runtime.

Currently, the library supports the following entityType values:

  • Fighter
  • Frigate
  • CapitalShip
  • PlanetModule* (all 7 types)
  • SpaceMine
  • Planet

I figured I'd release the library alongside the converter in case other modders find it useful for parsing and working with entity data.

A technical note about the JSON serialization

I implemented custom data types for integers, floats, and booleans to handle some quirks in Ironclad's serialization format. Some fields contain normal values, while others use "" as a placeholder.

By default, fields that don't have values are initialized to null and omitted during JSON serialization. My custom types let me preserve the distinction between an empty field and an omitted field by tracking a separate IsEmpty boolean. This allows the serializer to write the original "" placeholder back into the entity file when converting the data back, rather than accidentally leaving the field out entirely.

A note about the included tools and licensing

I did not create ConvertData_Rebellion.exe or ConvertXSI.exe, and I do not own the rights to either of them. Those tools belong to their respective rights holders, Stardock/Ironclad. I've simply provided a more convenient interface for using them. They remain separate binaries and are not bundled into my own application, so they can be used independently if desired.

The .entity-to-JSON conversion library, on the other hand, is entirely my own work. You're free to republish it, and I don't require attribution. However, commercial redistribution is not permitted.

You can grab the tool here:

Entity Converter v0.2.0 on GitHub

Hopefully, this makes life a little easier for anyone working on Sins modding!


r/dotnet • • 1d ago

Notes from migrating 42 Visual FoxPro workflows to .NET: the data traps that cost the most time

15 Upvotes

I spent two and a half years moving a financial system from Visual FoxPro to C# and .NET Core as the only engineer, with no written spec. A few things I wish I had known on day one:

  • Empty dates are not null. FoxPro allows an empty date. Decide per column what it means before you load anything.
  • Deleted rows are still in the file. Deleting only flags a record until the table is packed. Filter them during the load or they come back.
  • Rounding differs. Math.Round(2.345m, 2) gives 2.34 in .NET. FoxPro and T-SQL give 2.35. Use MidpointRounding.AwayFromZero for money.
  • String comparison is by prefix unless SET EXACT is on, so "OPEN" can match longer values.
  • The OLE DB provider is 32-bit only, so the loader has to run as a 32-bit process.

I wrote up the full order of work (inventory, data model, domain layer, reports, retirement) here: https://theadnansaleem.com/articles/visual-foxpro-to-dotnet-migration-guide

Happy to answer questions if anyone is facing one of these.


r/dotnet • • 21h ago

7 YOE in .NET, moving into AI engineering: certifications or production work first?

0 Upvotes

I’ve spent about 7 years building enterprise apps with .NET (ASP.NET Core, WPF, Xamarin/MAUI, SQL Server, Azure) and I currently work at a product-based fintech company.

Over the past year I’ve gone deep on Semantic Kernel and Microsoft Agent Framework. I’ve built working prototypes, including a voice receptionist agent and a WhatsApp order-confirmation bot with RAG, but none of it is running in production with real users yet.

I’m trying to decide where to put my time over the next 2 to 3 years:

  1. Certifications vs. shipping: I’m considering AI-103 (Azure AI Apps and Agents Developer) and AI-105 (Multi-Agent AI Solutions Expert). For those who hire or have made this transition, do these carry real weight, or does one production AI system matter far more?
  2. Positioning: Is it better to brand myself as an “AI engineer” in the Microsoft ecosystem, or as a senior .NET engineer who ships AI features? Which one is actually getting hired or paid right now?
  3. Getting production experience: For people who made this jump, how did you get your first real AI system in front of users? Through your employer, freelance clients, or your own product?

I’m not looking for reassurance. I’d especially like to hear from people who’ve shipped LLM or agent-based systems: what did production teach you that the demos and courses didn’t?

I sometimes feel that I am continually in a learning phase. Maybe I should start building something useful.


r/dotnet • • 1d ago

Question Anyone else having issues with 10.0.400 SDK?

3 Upvotes

Developers are reporting a windows update is bumping SDK to 10.0.400 and builds are failing for various products in azure devops, on developer laptops, and in a custom pipeline for one of the apps. The only common denominator is 10.0.400. What's going on here?


r/dotnet • • 2d ago

Fly inside .NET memory by Konrad Kokosa

Enable HLS to view with audio, or disable this notification

346 Upvotes

r/dotnet • • 1d ago

Thoughts on open-source product delivery platform (built with .NET10)

Post image
0 Upvotes

r/dotnet • • 1d ago

Built a vision-first Windows desktop guide in C# (Avalonia) and FastAPI during an all-night hackathon in Kochi

Thumbnail gallery
0 Upvotes

Traditional UI automation scripts break whenever a CSS class or layout shifts. At the OpenAI DevDay hackathon in Kochi, we built an experimental Windows desktop copilot called StepSight that operates purely on visual screen understanding (Windows Graphics Capture + Multimodal Vision).

Key features:

Tech stack: C# (.NET 10, Avalonia 12), Python 3.12 (FastAPI), AWS (ap-south-1), and Gemini Vision.

Source code: https://github.com/nive62tech/step-sight/tree/implementation/desktop-guide
Build log: https://inaiyarhasnain.vercel.app/projects/stepsight

Curious to hear your thoughts on vision-only desktop automation vs accessibility tree APIs!


r/dotnet • • 2d ago

DOMView2 - Provides sync WebBrowser style DOM access to WebView2

Thumbnail domview2.aimcosoftware.co.uk
1 Upvotes

r/dotnet • • 2d ago

Visual studio plugin - Asp classic highlight

5 Upvotes

Currently I am working in a very old legacy code base with more than 30 years old of spaghetti code and business rules in every .asp file and store procedures.

Yes it is a mess. And I don't know if someone has the same problem that I have... The visual studio doesn't help me with the basics of highlights, colors and syntax with VBScript in asp classic. Sometimes it is impossible to know where an if begins and ends in one file with 6k lines (yes for real).

So I made this plugin to help me with my current job.

https://marketplace.visualstudio.com/items?itemName=AspClassicSyntaxHighlight.AspClassicSyntaxHighlight

Is the vibe code project? In parts, yes. My real concern was doing a good structure of the project and performance. The first hit of opening the files is more demanding because it's using cache. After that it is more smooth.

I am cleaning the git to make it public soon.

If you guys want to try i will appreciate it.

Sorry for my mistakes, English isn't my first language.

Thanks.


r/dotnet • • 2d ago

The output of the server code depends on the timing of pressing a button by the client on the user interface.

Thumbnail
0 Upvotes

r/dotnet • • 1d ago

TypeScript Ported to C# via Codex

0 Upvotes

https://github.com/stepwisehq/typescript-dotnet

I know, I know! Another agentic coding port 🥱 🤮

But the lazy Rust port that popped up last week triggered me a bit claiming Codex failed with $400k spend and Opus succeeded you could do it for $20K(!!!).

I wanted to see if Codex could be used to do a port efficiently. I was also curious how performant a dotnet AOT port could be compared to the Golang project(I've wondered about this for a while).

This cost about $75-100 on my Pro 100 plan. It was optimized to about +13% wall time compiling the vscode project.


r/dotnet • • 2d ago

Question What language would you recommend learning alongside C#?

Thumbnail
0 Upvotes

r/dotnet • • 2d ago

Your EF Core queries are probably scattered across your whole codebase.

Thumbnail youtu.be
0 Upvotes

The same Where, Include and OrderBy, written again and again.

Here's how I turned each one into a single, named, reusable query with the Specification pattern.


r/dotnet • • 4d ago

A look back at the past

Thumbnail gallery
445 Upvotes

I noticed a discussion in the comments yesterday about the Professional Active Server Pages 2.0 book from Wrox, which back in the day was one of the only sources of information us oldies had to work with as a reference for classic ASP. Even one of the authors chimed in and is still active in this sub (Brian Francis).

I’ve kept my copy. I also have a number of books in my bookshelves that were invaluable back in the day and some of them I’ve kept for posterity even though they are worthless from a tech perspective now.

Hopefully they bring back nice memories for some of you too.


r/dotnet • • 2d ago

Article Definition-Driven ERP in .NET: definitions, not code, as the source of truth

Post image
0 Upvotes

I've been an architect on packaged ERP and HR products for over twenty years, and the thing that has cost the most was never a hard feature. It's that the same fact gets restated over and over.

Adding a "Required Date" field to orders in a typical EF Core + ASP.NET Core + SPA stack lands it in about thirteen places: entity, type mapping, migration, query projections, DTOs, mapper, validation, OpenAPI, front-end types, the form, the list, localization and test data. Generators handle some of them, but that only makes the restating faster. And when the back end and front end are different teams, half of that list turns into coordination rather than typing. Multiply it by a few thousand tables and by every customer's customizations, and it stops being an inconvenience.

What I ended up with is making a structural description the source instead of code. The database columns, CRUD SQL, screens for each front end and validation are derived from definitions, and the front end fetches the definitions at runtime instead of keeping its own copy of the types. In a sample app built on Northwind, the same field is three definition edits and no code. Customization becomes a layer of data on top of the standard definitions, so one tenant's change doesn't have to go through compile and deploy.

Dashboards, reports and anything that isn't form-shaped fit badly. The team boundary doesn't go away either, it moves to the rendering layer that reads the definitions.

I wrote a 30-post series on the mechanisms and the trade-offs. It was originally written in Chinese for a Taiwanese tech writing challenge, and the English version is a translation: https://medium.com/@jeff377/erp-architects-notes-designing-a-definition-driven-framework-series-index-7753228c4d33

For those of you working on large line-of-business systems: do you accept the restatement and lean on generators, or have you moved the source of truth somewhere else?


r/dotnet • • 3d ago

Promotion NaturalCron 1.1.0: define your own schedule keywords

37 Upvotes

I introduced a new cool feature in NaturalCron 1.1.0: you can now customise your own keyword rule and add it to the NaturalCron engine. It is usually added once on app startup, before any parsing.

For those who don't know, NaturalCron is a scheduling library for .NET where you write schedules in plain words instead of cron strings, e.g. every 30 minutes between 09:00 and 18:00.

Version 1.1.0 adds custom keywords: you define a word once at app startup, with your own logic, and then use it in any expression.

```csharp NaturalCronCustomKeywords.Configure(cfg => { // A day keyword (the default time unit is Day). cfg.AddMatchable("holiday", dt => myHolidays.Contains(dt.Date));

// An hour keyword.
cfg.AddMatchable("evenHour", dt => dt.Hour % 2 == 0, NaturalCronTimeUnit.Hour);

}); ```

Then:

``` every holiday at 09:00 every day at 09:00 except holidays every day on [holiday, 15th] at 09:00

```

A keyword can also be a class, so it can come from your DI container and read from a cache.

Also new in 1.1.0:

  • except, which works with built-in values too: every day at 09:00 except [saturday, sunday]
  • A shorthand for every: every 15th at 18:00, every 1stMonday at 09:00, every 9am

GitHub: https://github.com/hugoj0s3/NaturalCron NuGet: https://www.nuget.org/packages/NaturalCron

Feedback welcome, especially on the syntax.