Deploying Agent on Buildserver
In my company I'm in charge of building multiple AI agents:
\- code review (only comments for now, eventually directly fixing small things like typos in naming)
\- code gen (we have vertical slice architecture so simple repetitive things like enabling business directly setting master data from frontend requires like 45+ files / about 3-4h of dev work)
\- pentesting agent
Our infra:
Dotnet backend deployed to multiple IIS depending on project.
Separate Build Server for automatically pulling master branch, building and deploying
Now the CTO wants to deploy the Agents to the Build Server. Imo this is a Terrible idea, since prompt injection is deffo possible.
Would love to hear what your thoughts are.
https://redd.it/1v3ck0h
@r_dotnet
In my company I'm in charge of building multiple AI agents:
\- code review (only comments for now, eventually directly fixing small things like typos in naming)
\- code gen (we have vertical slice architecture so simple repetitive things like enabling business directly setting master data from frontend requires like 45+ files / about 3-4h of dev work)
\- pentesting agent
Our infra:
Dotnet backend deployed to multiple IIS depending on project.
Separate Build Server for automatically pulling master branch, building and deploying
Now the CTO wants to deploy the Agents to the Build Server. Imo this is a Terrible idea, since prompt injection is deffo possible.
Would love to hear what your thoughts are.
https://redd.it/1v3ck0h
@r_dotnet
Reddit
From the dotnet community on Reddit
Explore this post and more from the dotnet community
I built a .NET client for the Mistral Agents API (agents, conversations, connectors, handoffs)
https://www.ivanjurina.com/index.php/2026/07/22/building-enterprise-multi-agent-workflows-in-net-with-mistral/
https://redd.it/1v3febl
@r_dotnet
https://www.ivanjurina.com/index.php/2026/07/22/building-enterprise-multi-agent-workflows-in-net-with-mistral/
https://redd.it/1v3febl
@r_dotnet
Reddit
From the dotnet community on Reddit: I built a .NET client for the Mistral Agents API (agents, conversations, connectors, handoffs)
Posted by Enough_Entry_6333 - 0 votes and 3 comments
Transitioning from Java / Spring Boot to .NET
I've been moved to another department that uses .NET and Azure as the tech stack.
While having no problem picking up the language and the basics of ASP.NET, I'm having trouble finding resources online that go really deep on the framework.
Microsoft Resources are bad in my opinion, too messy.
The job itself is simple, but I was thinking about going 100% in this framework.
Any suggestions? Even paid.
https://redd.it/1v3lqh9
@r_dotnet
I've been moved to another department that uses .NET and Azure as the tech stack.
While having no problem picking up the language and the basics of ASP.NET, I'm having trouble finding resources online that go really deep on the framework.
Microsoft Resources are bad in my opinion, too messy.
The job itself is simple, but I was thinking about going 100% in this framework.
Any suggestions? Even paid.
https://redd.it/1v3lqh9
@r_dotnet
Microsoft
ASP.NET Core, an open-source web development framework | .NET
Build web apps and services that run on Windows, Linux, and macOS using C#, HTML, CSS, and JavaScript. Get started for free on Windows, Linux, or macOS.
How do I prepare for dotnet interviews??
Hi guys,
I joined a service-based company around 4–5 years ago, but I never really got the opportunity to work on a proper development project. Most of my work has been on the support side... bug fixes, minor enhancements, and database updates.
I'm now looking to switch, but I'm not sure how to prepare effectively. I've attended a few interviews, and most of them were heavily focused on scenario based questions, which I found quite challenging.
How should I prepare from here? What topics should I focus on, and how can I bridge the gap between my current experience and what companies expect from a developer?
Any guidance, resources, or advice would be greatly appreciated.
Thank You!!! 🙏🏽
https://redd.it/1v3jdmj
@r_dotnet
Hi guys,
I joined a service-based company around 4–5 years ago, but I never really got the opportunity to work on a proper development project. Most of my work has been on the support side... bug fixes, minor enhancements, and database updates.
I'm now looking to switch, but I'm not sure how to prepare effectively. I've attended a few interviews, and most of them were heavily focused on scenario based questions, which I found quite challenging.
How should I prepare from here? What topics should I focus on, and how can I bridge the gap between my current experience and what companies expect from a developer?
Any guidance, resources, or advice would be greatly appreciated.
Thank You!!! 🙏🏽
https://redd.it/1v3jdmj
@r_dotnet
Reddit
From the dotnet community on Reddit
Explore this post and more from the dotnet community
So, what about MAUI on Linux?
Certainly I cannot be the only one who remembers when they announced running MAUI on Linux through Avalonia and I am not afraid to say I need that YESTERDAY for a project of mine.
But as much as I tried searching online I've yet to see anything I can use for the purpose. What's the deal? Does anyone have any info?
https://redd.it/1v3srbl
@r_dotnet
Certainly I cannot be the only one who remembers when they announced running MAUI on Linux through Avalonia and I am not afraid to say I need that YESTERDAY for a project of mine.
But as much as I tried searching online I've yet to see anything I can use for the purpose. What's the deal? Does anyone have any info?
https://redd.it/1v3srbl
@r_dotnet
Reddit
From the dotnet community on Reddit
Explore this post and more from the dotnet community
What do you think about XAML?
Yesterday, I’ve started working with MAUI, because I want to try out some multiplatform mobile development and I love C# (so MAUI was an obvious choice).
So after a few hours working with xaml I don’t really know how to feel about it. It’s definitely more convinient than WindowsForms or swing, but it somehow feels very clunky.
My question for you is: how do you manage your xaml projects, in terms of complexity and readability?
I don’t really have any experience in mvvm development so I am interested in your thoughts.
https://redd.it/1v494y2
@r_dotnet
Yesterday, I’ve started working with MAUI, because I want to try out some multiplatform mobile development and I love C# (so MAUI was an obvious choice).
So after a few hours working with xaml I don’t really know how to feel about it. It’s definitely more convinient than WindowsForms or swing, but it somehow feels very clunky.
My question for you is: how do you manage your xaml projects, in terms of complexity and readability?
I don’t really have any experience in mvvm development so I am interested in your thoughts.
https://redd.it/1v494y2
@r_dotnet
Reddit
From the dotnet community on Reddit
Explore this post and more from the dotnet community
Feature focus in the C# 16 cycle · dotnet csharplang · Discussion #10276
https://github.com/dotnet/csharplang/discussions/10276/
https://redd.it/1v4llpk
@r_dotnet
https://github.com/dotnet/csharplang/discussions/10276/
https://redd.it/1v4llpk
@r_dotnet
GitHub
Feature focus in the C# 16 cycle · dotnet csharplang · Discussion #10276
Feature focus in the C# 16 cycle Here's where I believe we should apply our resources over the next year or so. Unsafe v2 https://github.com/dotnet/csharplang/blob/main/proposals/unsafe-evoluti...
ASP.NET Core on IIS randomly goes offline for 2 minutes. no errors, no recycle, but TCP CLOSE_WAIT spikes
Hi everyone,
A few weeks ago I posted here about a strange production issue we were having:
[https://www.reddit.com/r/dotnet/s/sdmADloeNS](https://www.reddit.com/r/dotnet/s/sdmADloeNS)
First, I want to say thank you to everyone who replied there. The comments gave me a lot of ideas and helped me improve my monitoring and investigation approach.
I wanted to give an update because I found some new interesting clues, but I still haven't found the root cause.
# The problem
Our website randomly becomes unavailable for around 1-2 minutes, then comes back by itself.
The monitoring tools report: `Socket timeout, unable to connect to server`
Not an HTTP error like 500 or 503.
The strange thing is that during these incidents:
\- DNS is fine
\- The Windows server itself is still online
\- CPU looks normal
\- RAM looks normal
\- Disk looks normal
\- IIS logs don't show failed requests
\- [ASP.NET](https://ASP.NET) Core logs don't show anything useful
This made me suspect that the request is not even reaching [ASP.NET](https://ASP.NET) Core.
# New things I tried
I installed Uptime Kuma directly on the same server and configured it to monitor the website using the server IP address instead of the domain name.
The interesting part is that it still detects the outage.
So this makes me think it is not related to:
\- So this makes me think it is not related to:
\- DNS
\- Domain resolution
\- External monitoring location
\- Some issue before reaching the server
I also checked IIS and confirmed that there was no App Pool recycle and no w3wp.exe restart during the outage.
Another interesting observation:
I have multiple applications running on different IIS App Pools on the same server. During the outage, the other applications continued working normally.
# The TCP connection clue
I started collecting TCP state metrics and sending them to Grafana.
During the outage, I noticed a big change in TCP connections.
The most suspicious thing was `CLOSE_WAIT`.
Before the issue:
Established: ~450
CloseWait: 0
During the issue:
Established: ~200-400
CloseWait: 500+
Example:
12:02
Established: 451
CloseWait: 327
12:03
Established: 237
CloseWait: 510
12:04
Established: 224
CloseWait: 530
Then suddenly:
12:04
Established: 845
CloseWait: 73
12:04
Established: 859
CloseWait: 0
I attached a screenshot from Grafana showing the TCP connection spike.
[Grafana TCP connections during the outage.](https://preview.redd.it/5cnpnnz7v6fh1.png?width=1801&format=png&auto=webp&s=fb6a16441eca2f91303b3e43c1101f2a6257eec3)
This made me start thinking that the problem might be happening somewhere around the TCP layer rather than inside [ASP.NET](https://ASP.NET) Core itself.
# Code changes
During the investigation, I also found some places where we were creating new `HttpClient` instances instead of reusing them.
I already fixed those and moved them to reusable `HttpClient` usage.
However, the problem still happens, so this was probably not the only cause.
# What I am thinking now
At the moment I am investigating more around:
\- Windows TCP/socket behavior
\- IIS/HTTP.sys
\- Connection handling
\- Possible socket leaks
\- Anything that can make the server stop accepting new connections temporarily
The biggest question for me is:
How can the server become unreachable from TCP level while:
\- IIS is still running
\- App Pools are healthy
\- CPU/RAM/Disk are normal
\- No application errors are logged?
# Questions
For people who have dealt with similar IIS/Windows production issues:
\- Have you seen cases where clients get socket timeouts but IIS has no logs at all?
\- Does a large CLOSE\_WAIT increase usually point to an application problem?
\- Can HTTP.sys or IIS have issues without restarting the App Pool?
\- What Windows-level
Hi everyone,
A few weeks ago I posted here about a strange production issue we were having:
[https://www.reddit.com/r/dotnet/s/sdmADloeNS](https://www.reddit.com/r/dotnet/s/sdmADloeNS)
First, I want to say thank you to everyone who replied there. The comments gave me a lot of ideas and helped me improve my monitoring and investigation approach.
I wanted to give an update because I found some new interesting clues, but I still haven't found the root cause.
# The problem
Our website randomly becomes unavailable for around 1-2 minutes, then comes back by itself.
The monitoring tools report: `Socket timeout, unable to connect to server`
Not an HTTP error like 500 or 503.
The strange thing is that during these incidents:
\- DNS is fine
\- The Windows server itself is still online
\- CPU looks normal
\- RAM looks normal
\- Disk looks normal
\- IIS logs don't show failed requests
\- [ASP.NET](https://ASP.NET) Core logs don't show anything useful
This made me suspect that the request is not even reaching [ASP.NET](https://ASP.NET) Core.
# New things I tried
I installed Uptime Kuma directly on the same server and configured it to monitor the website using the server IP address instead of the domain name.
The interesting part is that it still detects the outage.
So this makes me think it is not related to:
\- So this makes me think it is not related to:
\- DNS
\- Domain resolution
\- External monitoring location
\- Some issue before reaching the server
I also checked IIS and confirmed that there was no App Pool recycle and no w3wp.exe restart during the outage.
Another interesting observation:
I have multiple applications running on different IIS App Pools on the same server. During the outage, the other applications continued working normally.
# The TCP connection clue
I started collecting TCP state metrics and sending them to Grafana.
During the outage, I noticed a big change in TCP connections.
The most suspicious thing was `CLOSE_WAIT`.
Before the issue:
Established: ~450
CloseWait: 0
During the issue:
Established: ~200-400
CloseWait: 500+
Example:
12:02
Established: 451
CloseWait: 327
12:03
Established: 237
CloseWait: 510
12:04
Established: 224
CloseWait: 530
Then suddenly:
12:04
Established: 845
CloseWait: 73
12:04
Established: 859
CloseWait: 0
I attached a screenshot from Grafana showing the TCP connection spike.
[Grafana TCP connections during the outage.](https://preview.redd.it/5cnpnnz7v6fh1.png?width=1801&format=png&auto=webp&s=fb6a16441eca2f91303b3e43c1101f2a6257eec3)
This made me start thinking that the problem might be happening somewhere around the TCP layer rather than inside [ASP.NET](https://ASP.NET) Core itself.
# Code changes
During the investigation, I also found some places where we were creating new `HttpClient` instances instead of reusing them.
I already fixed those and moved them to reusable `HttpClient` usage.
However, the problem still happens, so this was probably not the only cause.
# What I am thinking now
At the moment I am investigating more around:
\- Windows TCP/socket behavior
\- IIS/HTTP.sys
\- Connection handling
\- Possible socket leaks
\- Anything that can make the server stop accepting new connections temporarily
The biggest question for me is:
How can the server become unreachable from TCP level while:
\- IIS is still running
\- App Pools are healthy
\- CPU/RAM/Disk are normal
\- No application errors are logged?
# Questions
For people who have dealt with similar IIS/Windows production issues:
\- Have you seen cases where clients get socket timeouts but IIS has no logs at all?
\- Does a large CLOSE\_WAIT increase usually point to an application problem?
\- Can HTTP.sys or IIS have issues without restarting the App Pool?
\- What Windows-level
Reddit
From the dotnet community on Reddit
Explore this post and more from the dotnet community
metrics would you check for this type of problem?
\- Any recommended tools for debugging TCP connection issues on Windows?
I am still investigating and will update again if I find the cause.
Thanks again to everyone who helped in the previous post!
https://redd.it/1v5d7ws
@r_dotnet
\- Any recommended tools for debugging TCP connection issues on Windows?
I am still investigating and will update again if I find the cause.
Thanks again to everyone who helped in the previous post!
https://redd.it/1v5d7ws
@r_dotnet
Reddit
From the dotnet community on Reddit
Explore this post and more from the dotnet community
First preview of ProGPU Avalonia rendering platform and Silk.NET windowing platform for Avalonia bringing powerful ProGPU WebGPU based rendering
/r/ProGPU/comments/1v5kxst/first_preview_of_progpu_avalonia_rendering/
https://redd.it/1v5kyer
@r_dotnet
/r/ProGPU/comments/1v5kxst/first_preview_of_progpu_avalonia_rendering/
https://redd.it/1v5kyer
@r_dotnet
Reddit
From the dotnet community on Reddit: First preview of ProGPU Avalonia rendering platform and Silk.NET windowing platform for Avalonia…
Posted by wieslawsoltes - 1 vote and 1 comment
An update on the world of PeachPDF
PeachPDF is the HTML -> PDF engine I've been building for the last decade that renders HTML into PDF without using a headless browser or external process.
We target .NET 8+, but we also multi-target .NET 10+. We support everywhere .NET 8+ runs, though some features don't work on certain platforms. As an example, iOS doesn't expose system fonts directly as font files, so you have to register fonts directly.
Some updates:
We launched a website: https://peachpdf.net/ This has all of the documentation you'd ever need
I also added a lot of new features:
1. SVG support -- we already have a very good graphics abstraction, so SVG support is essentially just building a scene graph and rendering it, with some basic integration with the other parts of the stack (CSS Cascade, layout inside HTML)
2. CSS Grid support
3. Lots of CSS parsing updates, such as nested CSS, @layer support, CSS Properties, @media evaluation and correctness fixes
3. New CSS layout and painting features: clip-path, aspect-ratio, object-fit
4. CSS Color updates
5. Improved font support: we now use runes for lookup, and we use CSS unicode-range for matching, and we added support for monochrome and color emojis. For features not natively supported by PDF, we can extract the glyph outlines from the font and paint the text as vectors. This was needed for color emojis and several SVG text features
6. More paged media improvements
7. A new .NET AOT command line tool that wraps PeachPDF for use where the .NET library doesn't make sense. Future plans include exposing PeachPDF as a C library so that it can be used from Node.js and Python as well.
As a side project, I've also been working on back porting improvements to the upstream projects that I depend on, such as ExCSS and HTML-Renderer. ExCSS just released a new version that is almost all backports from PeachPDF, and the first 2 foundational features have outstanding PRs waiting approval to HTML-Renderer
And to answer a question -- there is significant use of AI for spec conformance features. It's a great use of AI, since it can read a specification and identity gaps. All of the non-mechanical work is done by myself. Considering I started writing this 10 years ago, it's not a vibe coded project since that didn't even exist when I started.
https://redd.it/1v6b0i0
@r_dotnet
PeachPDF is the HTML -> PDF engine I've been building for the last decade that renders HTML into PDF without using a headless browser or external process.
We target .NET 8+, but we also multi-target .NET 10+. We support everywhere .NET 8+ runs, though some features don't work on certain platforms. As an example, iOS doesn't expose system fonts directly as font files, so you have to register fonts directly.
Some updates:
We launched a website: https://peachpdf.net/ This has all of the documentation you'd ever need
I also added a lot of new features:
1. SVG support -- we already have a very good graphics abstraction, so SVG support is essentially just building a scene graph and rendering it, with some basic integration with the other parts of the stack (CSS Cascade, layout inside HTML)
2. CSS Grid support
3. Lots of CSS parsing updates, such as nested CSS, @layer support, CSS Properties, @media evaluation and correctness fixes
3. New CSS layout and painting features: clip-path, aspect-ratio, object-fit
4. CSS Color updates
5. Improved font support: we now use runes for lookup, and we use CSS unicode-range for matching, and we added support for monochrome and color emojis. For features not natively supported by PDF, we can extract the glyph outlines from the font and paint the text as vectors. This was needed for color emojis and several SVG text features
6. More paged media improvements
7. A new .NET AOT command line tool that wraps PeachPDF for use where the .NET library doesn't make sense. Future plans include exposing PeachPDF as a C library so that it can be used from Node.js and Python as well.
As a side project, I've also been working on back porting improvements to the upstream projects that I depend on, such as ExCSS and HTML-Renderer. ExCSS just released a new version that is almost all backports from PeachPDF, and the first 2 foundational features have outstanding PRs waiting approval to HTML-Renderer
And to answer a question -- there is significant use of AI for spec conformance features. It's a great use of AI, since it can read a specification and identity gaps. All of the non-mechanical work is done by myself. Considering I started writing this 10 years ago, it's not a vibe coded project since that didn't even exist when I started.
https://redd.it/1v6b0i0
@r_dotnet
React/Vue/Svelte on top of MAUI
Hi everyone,
My team (.NET + web devs) needed to ship a desktop and mobile app from an existing React UI, and nothing in the ecosystem quite fit. Electron means a Node backend and shipping a whole Chromium. Tauri means Rust, which nobody on the team writes. MAUI/Avalonia/WPF means throwing away the React UI and rewriting it in XAML. Blazor Hybrid locks you into Razor. Photino was the closest to what I wanted (a .NET shell around the OS WebView) but the JS to C# messaging is raw strings you wire up yourself, and there's no mobile story.
So I started building my own, a framework called Vidra
It's a single OS WebView (WKWebView / WebView2, nothing bundled) hosted by .NET MAUI. UI in whatever web framework you like, native layer in plain C#. The part I actually cared about is type safety: you declare your modules and events in C#, codegen emits matching TypeScript, and every call across the bridge is checked at build time.
Current state: one man show, alpha, Windows and macOS only, APIs will move between 0.x releases. If you want to poke at it,
Mostly I'm trying to sanity-check the idea before I sink more time into it. Would you use something like this once it matures? Contributions are also more than welcome. The project is open source and MIT licensed
https://github.com/rzamfiriu/vidra
https://redd.it/1v72ixl
@r_dotnet
Hi everyone,
My team (.NET + web devs) needed to ship a desktop and mobile app from an existing React UI, and nothing in the ecosystem quite fit. Electron means a Node backend and shipping a whole Chromium. Tauri means Rust, which nobody on the team writes. MAUI/Avalonia/WPF means throwing away the React UI and rewriting it in XAML. Blazor Hybrid locks you into Razor. Photino was the closest to what I wanted (a .NET shell around the OS WebView) but the JS to C# messaging is raw strings you wire up yourself, and there's no mobile story.
So I started building my own, a framework called Vidra
It's a single OS WebView (WKWebView / WebView2, nothing bundled) hosted by .NET MAUI. UI in whatever web framework you like, native layer in plain C#. The part I actually cared about is type safety: you declare your modules and events in C#, codegen emits matching TypeScript, and every call across the bridge is checked at build time.
npm run dev gives you Vite HMR and C# hot reload together. And since the host is MAUI, mobile is a natural item in the roadmapCurrent state: one man show, alpha, Windows and macOS only, APIs will move between 0.x releases. If you want to poke at it,
npm create vidra-app@latest (needs .NET 10 SDK + the MAUI workload, npm run doctor checks your setup).Mostly I'm trying to sanity-check the idea before I sink more time into it. Would you use something like this once it matures? Contributions are also more than welcome. The project is open source and MIT licensed
https://github.com/rzamfiriu/vidra
https://redd.it/1v72ixl
@r_dotnet
Vidra
Vidra | Desktop apps with C#/.NET and any web UI
Build Windows and macOS apps with a web UI and a C#/.NET native layer. Vidra generates the typed bridge and uses the OS WebView, with no bundled Chromium.
ExplorerFocus 1.2.11 — WPF file explorer I built with profiles, remote/cloud and built-in capture
I'm the developer, and this is a solo project that's taken me a few months of work so far.
To manage my personal and code documents I spend most of my day inside the same handful of folders, either on my machine or on remote ones — I need to reach them fast, and I often want to see what's inside a file without actually opening it. Windows Explorer always got in my way more than it helped, so over many evenings I slowly built the explorer I actually wanted to use. I made it for myself first, and it's now my best companion.
ExplorerFocus is built in WPF, .NET 10, for Windows 10/11, single-file self-contained, and it's now a freemium app where the most significant parts are completely free.
A few areas were quite challenging to imagine and develop, and I can list a few:
Copy engine — per-file progress, throughput, ETA, pause/resume/cancel, 1–6 operations in parallel, persistent history. I/O off the UI thread, UI updates at \~10 Hz, atomic writes (temp + publish).
Preview — AvalonEdit (syntax + folding), WebView2 (PDF/Office/Markdown), a fully functional integrated EPUB reader to access tech literature, streaming media (a 2 GB video opens in a flash).
Remote layer — SSH.NET / FluentFTP / WebDAV + OAuth PKCE (Dropbox, OneDrive), all behind a common provider interface → the UI treats remote as local. DPAPI to store secrets, TOFU for host keys/certs.
Capture — a Media Foundation pipeline (MediaStreamSource → MediaTranscoder) for screen/camera/audio, including post-processing and PiP.
Multi-language — instant switching between 12 languages, to make ExplorerFocus usable all over the world.
Packaging — single-file self-contained, no runtime, auto-updater (version.json + SHA-256).
Since a list of features says nothing about the actual work, here's one bug that took real effort:
One that cost me a weekend: the app would suddenly start throwing
A smaller one that drove me mad: scroll a long file list to the bottom and the scrollbar thumb would sit halfway instead of at the end. I was convinced it was
Site and download: https://nunex-mbrothers.github.io/ExplorerFocus
Screenshot below — full details on GitHub: https://github.com/NuneX-mBrothers/ExplorerFocus
Happy to answer questions about whatever you find useful, but what I'd really appreciate is some sincere and honest criticism that could make my work better.
Thanks, and loads of bits & bytes from Portugal.
https://preview.redd.it/9u3al67xglfh1.png?width=1696&format=png&auto=webp&s=84e27574dece0e447d59dbfa19e8b20b289037ad
https://preview.redd.it/iy6ytegyglfh1.png?width=620&format=png&auto=webp&s=95e243294fa8313a2266980bc716e93b1d0a0708
https://redd.it/1v77b70
@r_dotnet
I'm the developer, and this is a solo project that's taken me a few months of work so far.
To manage my personal and code documents I spend most of my day inside the same handful of folders, either on my machine or on remote ones — I need to reach them fast, and I often want to see what's inside a file without actually opening it. Windows Explorer always got in my way more than it helped, so over many evenings I slowly built the explorer I actually wanted to use. I made it for myself first, and it's now my best companion.
ExplorerFocus is built in WPF, .NET 10, for Windows 10/11, single-file self-contained, and it's now a freemium app where the most significant parts are completely free.
A few areas were quite challenging to imagine and develop, and I can list a few:
Copy engine — per-file progress, throughput, ETA, pause/resume/cancel, 1–6 operations in parallel, persistent history. I/O off the UI thread, UI updates at \~10 Hz, atomic writes (temp + publish).
Preview — AvalonEdit (syntax + folding), WebView2 (PDF/Office/Markdown), a fully functional integrated EPUB reader to access tech literature, streaming media (a 2 GB video opens in a flash).
Remote layer — SSH.NET / FluentFTP / WebDAV + OAuth PKCE (Dropbox, OneDrive), all behind a common provider interface → the UI treats remote as local. DPAPI to store secrets, TOFU for host keys/certs.
Capture — a Media Foundation pipeline (MediaStreamSource → MediaTranscoder) for screen/camera/audio, including post-processing and PiP.
Multi-language — instant switching between 12 languages, to make ExplorerFocus usable all over the world.
Packaging — single-file self-contained, no runtime, auto-updater (version.json + SHA-256).
Since a list of features says nothing about the actual work, here's one bug that took real effort:
One that cost me a weekend: the app would suddenly start throwing
FileNotFoundException for assemblies I never reference directly — Accessibility, System.IO.FileSystemWatcher — and then work perfectly after a restart. Single-file publishing loads some assemblies lazily, so if the exe's backing file is replaced while the process is alive, those late loads fail. Two different things were doing it: my own auto-updater swapping the exe in place, and — on one machine — the exe living inside a cloud-synced folder that rewrote it underneath me. The first was fixed in the updater; for the second, the app now warns you at startup if it's running from a synced folder. A smaller one that drove me mad: scroll a long file list to the bottom and the scrollbar thumb would sit halfway instead of at the end. I was convinced it was
VirtualizingStackPanel and its estimated extents, and burned a lot of time there. Then I built a minimal repro with virtualization switched off entirely — same behaviour. It was the ScrollBar template: the Track's RowDefinition was 1*, which fought with the thumb's minimum length. Setting it to 0.00001* fixed it.Site and download: https://nunex-mbrothers.github.io/ExplorerFocus
Screenshot below — full details on GitHub: https://github.com/NuneX-mBrothers/ExplorerFocus
Happy to answer questions about whatever you find useful, but what I'd really appreciate is some sincere and honest criticism that could make my work better.
Thanks, and loads of bits & bytes from Portugal.
https://preview.redd.it/9u3al67xglfh1.png?width=1696&format=png&auto=webp&s=84e27574dece0e447d59dbfa19e8b20b289037ad
https://preview.redd.it/iy6ytegyglfh1.png?width=620&format=png&auto=webp&s=95e243294fa8313a2266980bc716e93b1d0a0708
https://redd.it/1v77b70
@r_dotnet
ExplorerFocus
ExplorerFocus — explorador de ficheiros sem distrações
Alternativa focada ao Windows Explorer, com acessos remotos SFTP/FTP/FTPS/WebDAV e pré-visualização rica.
Application Insights bug - Dependencies telemetry is not sent with Activity
This is a weeeird bug regarding application insights, and I can't seem to wrap my head around it. Hoping either I missed something, or that someone else saw this problem already.
We're creating a long running job that handles multiple tasks at the same time. It calls an internal system and validates the state of some assets, and records the status in a database. The job will run every night in a k8s cluster. We have a BackgroundService class that handles the job. We use Application Insights for our monitoring, and I would like every job executions to be correlated in an operation. Makes debuging much easier if something were to go wrong.
However, once I've added an `Activity` to my job, only SOME of the logs are beeing shown in application insights, and the dependencies data is all gone! The logs are corrolated, but I see no dependencies log. And if I try to look at the dependencies timeline, I see the following message:
Unable to identify root transaction, it may be due to circular parent id reference. Investigate the logs for this operation for malformed parent-child identifications
If I don't create an `Activity` when launching the job, however, all dependencies are shown, but the logs are not corrolated in an operation.
Here's the kicker; once in a blue moon, the `Activity` works as intented, and all logs are shown as expected. But the next execution I try, the problem comes back. Makes me think that it's a problem regarding how fast the application shuts down after the execution, but I think I might just be missing something:
Here's some code showing how the job is built. Some code is ommited for brevity and confidentiality:
// Program.cs
var connectionString = context.Configuration["ConnectionString"];
services.AddApplicationInsightsTelemetryWorkerService(options =>
{
options.ConnectionString = connectionString;
options.EnableTraceBasedLogsSampler = false;
});
services.ConfigureOpenTelemetryTracerProvider((sp, builder) =>
{
builder.AddSource("BackgroundService");
});
services.AddHostedService<MyJob>();
/* ---- */
await host.RunAsync();
// MyJob.cs
internal sealed class MyJob(
ILogger<MyJob> logger,
IHostApplicationLifetime hostApplicationLifetime
): BackgroundService
{
private static readonly ActivitySource JobActivitySource = new("BackgroundService");
protected override async Task ExecuteAsync(CancellationToken stoppingToken)
{
using var activity = JobActivitySource.StartActivity(
"BackgroundService.MyJob",
ActivityKind.Internal
);
activity?.SetTag("job.name", "MyJob");
activity?.SetTag("job.run.id", Guid.NewGuid().ToString());
try
{
var entities = (await retrieveEntitiesToHandle()).ToList();
logger.EntitiesRetrieved(entities.Count);
await Parallel.ForEachAsync(
portPlaques,
new ParallelOptions
{
CancellationToken = stoppingToken,
MaxDegreeOfParallelism = 100,
},
async (entity, _) => await HandleEntity(entity));
_logger.JobIsFinished();
}
catch(Exception e)
{
Environment.ExitCode = 1;
_logger.SyncPortPlaquesToDataverseError(ex);
}
await Task.Delay(TimeSpan.FromSeconds(30), CancellationToken.None); // Delay to ensure all traces are sent
hostApplicationLifetime.StopApplication();
}
}
Am I missing something? Am I not disposing of the `Activity` as I should? How can I ensure that all telemetry is sent before shutting down the application?
Hope someone can make sense of this!
https://redd.it/1v7h4eo
@r_dotnet
This is a weeeird bug regarding application insights, and I can't seem to wrap my head around it. Hoping either I missed something, or that someone else saw this problem already.
We're creating a long running job that handles multiple tasks at the same time. It calls an internal system and validates the state of some assets, and records the status in a database. The job will run every night in a k8s cluster. We have a BackgroundService class that handles the job. We use Application Insights for our monitoring, and I would like every job executions to be correlated in an operation. Makes debuging much easier if something were to go wrong.
However, once I've added an `Activity` to my job, only SOME of the logs are beeing shown in application insights, and the dependencies data is all gone! The logs are corrolated, but I see no dependencies log. And if I try to look at the dependencies timeline, I see the following message:
Unable to identify root transaction, it may be due to circular parent id reference. Investigate the logs for this operation for malformed parent-child identifications
If I don't create an `Activity` when launching the job, however, all dependencies are shown, but the logs are not corrolated in an operation.
Here's the kicker; once in a blue moon, the `Activity` works as intented, and all logs are shown as expected. But the next execution I try, the problem comes back. Makes me think that it's a problem regarding how fast the application shuts down after the execution, but I think I might just be missing something:
Here's some code showing how the job is built. Some code is ommited for brevity and confidentiality:
// Program.cs
var connectionString = context.Configuration["ConnectionString"];
services.AddApplicationInsightsTelemetryWorkerService(options =>
{
options.ConnectionString = connectionString;
options.EnableTraceBasedLogsSampler = false;
});
services.ConfigureOpenTelemetryTracerProvider((sp, builder) =>
{
builder.AddSource("BackgroundService");
});
services.AddHostedService<MyJob>();
/* ---- */
await host.RunAsync();
// MyJob.cs
internal sealed class MyJob(
ILogger<MyJob> logger,
IHostApplicationLifetime hostApplicationLifetime
): BackgroundService
{
private static readonly ActivitySource JobActivitySource = new("BackgroundService");
protected override async Task ExecuteAsync(CancellationToken stoppingToken)
{
using var activity = JobActivitySource.StartActivity(
"BackgroundService.MyJob",
ActivityKind.Internal
);
activity?.SetTag("job.name", "MyJob");
activity?.SetTag("job.run.id", Guid.NewGuid().ToString());
try
{
var entities = (await retrieveEntitiesToHandle()).ToList();
logger.EntitiesRetrieved(entities.Count);
await Parallel.ForEachAsync(
portPlaques,
new ParallelOptions
{
CancellationToken = stoppingToken,
MaxDegreeOfParallelism = 100,
},
async (entity, _) => await HandleEntity(entity));
_logger.JobIsFinished();
}
catch(Exception e)
{
Environment.ExitCode = 1;
_logger.SyncPortPlaquesToDataverseError(ex);
}
await Task.Delay(TimeSpan.FromSeconds(30), CancellationToken.None); // Delay to ensure all traces are sent
hostApplicationLifetime.StopApplication();
}
}
Am I missing something? Am I not disposing of the `Activity` as I should? How can I ensure that all telemetry is sent before shutting down the application?
Hope someone can make sense of this!
https://redd.it/1v7h4eo
@r_dotnet
Reddit
From the dotnet community on Reddit
Explore this post and more from the dotnet community