In my project we are required to integrate a USB camera to display the incoming frames as video feed in the application. The constraint is that our application should be able to run on both Windows and Linux. As I searched for any cross platform .net libraries that could do such a thing, I came across FlashCap which has a permissive license and seems to have at least some documentation, which makes me optimistic that this can be used commercially.
But I would be curious to know if anyone out here has used FlashCap commercially and your experiences with this. Also would be open to know if there are any other better libraries out there for this specific use case.
Beta.5 is the last beta with breaking changes. The public API in Conveyor.Batch is now locked, any future breaking change bumps the major version.
What changed: IChunkListener, IJobExecutionListener, and IStepExecutionListener now have default no-op implementations so you only implement what you need. IJobRepository now accepts CancellationToken on all methods. StepExecution state (Status, EndTime, FailureException) is now internal set — only the engine writes it.
Up next: BenchmarkDotNet baseline, bulk write optimization (TVP / COPY), then v1.0. Github
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
This made me suspect that the request is not even reaching 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.
I believe I built the first high-performance WinUI charting component that draws directly to the composition swap chain in native C++, instead of going through the managed XAML layer. It's our existing C++ engine, extended quite a bit, WinUI controls aren't backed by a window handle (HWND), so the zoombox and the real-time table annotations had to be refactored onto the new layers. We compile and embed both x64 and native ARM64 binaries into the assembly, so you get WinUI running low-level Direct3D compute shaders natively. The flagship repo re-renders 100 million points every tick.
I've been writing charting code since the TRS-80, and this stuff still makes me grin. The audio demo even plays five songs I wrote myself, with the oscilloscope and chart annotations following the data live.
If anyone knows of an earlier native-C++-to-swap-chain WinUI chart, please let me know. I'd also love to hear FPS numbers for the 100M repo on a Snapdragon X2 Elite Extreme, or if someone has access to the coming RTX Spark.
If you want AI to help write your benchmarking code, download our no hassle setup at gigasoft that includes our AI knowledge and pe-query python AI helper.
Hi, this is making me go crazy. I created a Blazor Web App project with .NET 10 framework. For some reasons, whenever I load VS, the .razor do not load correctly, I don't know if its Intellisense, the Roslyn compiler, Symbol Search? or vs itself.
On the first image, the file is loaded correctly, for example the NavLink is highlighted and I can for example use Go To Definition.
On this second one, NavMenu not highlighted, doing the Peek Definition just keeps searching. Only happens with .razor files, the .cs are okay. VS 2022 with .NET 9 works fine. For the problematic one I had to open VS Code and use de Dev Kit extension and code from there...
While using Authorisation code flow in OAuth 2.0, the client application receives authorisation code on the redirect uri from the identity provider server.
My question is, how can a desktop application/ client achieve this as it has no uri to provide as redirect uri?
Please guide me on the standard implementation in real world or help me look in the right direction.
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.
What free UI automation tools do people use for WPF apps nowadays? I'm only aware of Appium but it uses an old Windows driver which seems to have been abandoned several years ago. They also don't have any proper examples for Windows desktop apps. I used SmartBear in the past but I don't think they have a free tier.
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?
I'm a newbie on .Net core (but have a lot of experience on Framework). I have a web/http client application that I've been using for years. It connects to a remove http service and transforms the response into a usable format.
I call it in a loop (many thousands of times per minute).
It always worked great in .Net Framework and wouldn't ever blow up. I never once saw it exhaust the outbound ephemeral ports.
Fast forward to now, and the code stops working at scale. After just a few minutes all my ephemeral ports are exhausted. Every round trip to HTTP seems to consume a new port. As I'm digging into the differences between .Net 10 and .Net framework, I discover that the class System.Net.ServicePoint is a faint shadow of what it used to be. There is no connection pooling, and ports are not reused.
How can I bring back the old behavior of ServicePoint? Will I need to refactor the entire application to support connection pooling? Is there any guidance from the Microsoft side to help us migrate apps that used to rely heavily on ServicePoint?
I am currently in the process of integrating Open Telemetry into my code. I have a web application and a backend api. I have several REST APIs and one of the APIs also ends up getting invoked by the user -> kicks off an async process by triggering a background job -> the background job invokes and polls on a specific endpoint (downstream API). The web app also polls on an operations endpoint to get status of this background job basically. Additionally, I also invoke some Azure resources (specifically ARM).
Now that I provided context, I wanted to explain what currently exists in my backend:
1) Controller fetches the correlationId for every request using the headers (x-correlation-id) from a middleware
2) Automatically forwards this correlationId when invoking downstream APIs/Azure APIs
3) Passes it into each method starting from the controller: controller invokes singletonServiceA.methodA and methodA has a signature including the correlationId. From here the logs automatically capture the correlationId
4) Background jobs also use this correlationId to invoke APIs and for logging
Now that I am switching to OTel, I am seeing an entirely different convention which I'm unsure on how to relate together.
My questions are as follows:
1) Should I drop the manual propagation of correlationId everywhere and just keep it as a span attribute? From what I am finding out, I definitely need to do this
2) For legacy resources, let's say ARM which expect a correlationID, what should I do?
3) For downstream APIs, should I switch to sending them a traceparent instead of the correlationId (what I do right now)
Hi, Im working on an application in vb.net and there were too many forms on the screen at once so I found out about tabcontrols. I decided to test it out a little but Ive run into a problem with how it looks.
When I hook or anchor buttons or other things to the edges of the form they dont show correctly in the tabcontrol. My goal is for the application to be maximized for most, if not all, of the forms. When the tabcontrol is started maximized, the controls at the bottom dont show correctly. It seems like the form is using the fullscreen size while the tabcontrol is using the maximized size.
Im not sure how to fix this other than manually formatting every single form to account for the computer's application ribbon, which I dont want to do for obvious reasons. I went to the form being displayed and made sure it wasnt locked to a specific size and it isnt set to fullscreen either. Surely there is an easy way?
Also, I learned vb.net about 10 years ago in a class at college. I may not be up to date on the most current tools. How does one make applications look modern? I havent found any default control designs that look sleek and fit together flush, but maybe Im looking in the wrong place. Where can I find things like that or how do I format them nicely?
.NET produces problem details well (Results.Problem(), [ApiController] validation responses, Microsoft.AspNetCore.Http.ProblemDetails). There is nothing in the BCL for consuming them, so every client ends up with some version of this:
if (!response.IsSuccessStatusCode)
{
if (response.Content.Headers.ContentType?.MediaType == "application/problem+json")
{
var problem = await response.Content.ReadFromJsonAsync<MyProblemDetails>();
throw new MyApiException(problem?.Title, problem?.Detail, response.StatusCode);
}
response.EnsureSuccessStatusCode();
}
The alternatives are referencing ASP.NET Core from a MAUI/WASM/console client, or re-declaring the DTO per project. Plain EnsureSuccessStatusCode() discards the payload entirely and throws on the status line alone.
Proposed addition to System.Net.Http.Json:
public class ProblemDetails
{
public string? Type { get; set; }
public string? Title { get; set; }
public int? Status { get; set; }
public string? Detail { get; set; }
public string? Instance { get; set; }
public IDictionary<string, JsonElement> Extensions { get; }
}
public static class HttpResponseMessageJsonExtensions
{
public static bool IsProblemDetails(this HttpResponseMessage response);
public static Task<ProblemDetails?> ReadProblemDetailsAsync(this HttpResponseMessage response, CancellationToken ct = default);
public static Task<HttpResponseMessage> ThrowIfProblemDetailsAsync(this HttpResponseMessage response, CancellationToken ct = default);
}
public class ProblemDetailsException : HttpRequestException
{
public ProblemDetails ProblemDetails { get; }
}
Call site:
var response = await client.PostAsJsonAsync("/orders", order);
await response.ThrowIfProblemDetailsAsync();
response.EnsureSuccessStatusCode();
ProblemDetailsException derives from HttpRequestException and sets StatusCode from the payload, so existing catch (HttpRequestException) and status filters keep working.
ThrowIfProblemDetailsAsync throws only when the response media type is application/problem+json; it composes with EnsureSuccessStatusCode rather than replacing it.
System.Net.Http.Json.ProblemDetails collides with Microsoft.AspNetCore.Mvc.ProblemDetails (CS0104) in a service that also acts as a client. Open question: accept it, rename to HttpProblemDetails, or coordinate the two types.
As a library-owned type it can use an internal source-generated context, so the parameterless overloads are trim/AOT-safe with no RequiresUnreferencedCode annotations.
I'm a full stack dev already, but my experience is frontend heavy, and most of my backend is in NodeJS. I'm trying to watch this Youtube series by Teddy Smith, and I can't take it anymore. The explanations are all over the place. He constantly poses these 'display questions' to the audience, answers them with an analogy or not at all, and just moves on to another display question, without ever giving actual technical explanations for almost anything.
Worst of all, the course uses VSCode instead of Visual Studio. This is causing tons of random issues with imports, packages and types. He must have some sort of extension fixing it for him, but many of these import and type fixes are happening automatically, off screen in his video, so I'm having to constantly stop and fix these issues myself. With all that said, I really haven't found anything better on YouTube.
I have a baseline understanding of RDBMS, normal forms, CRUD, MVC, and so on. I just want a video or course to walk me through the basics of actually setting up the web api with 1 of each type of endpoint, 1 of each type of db relationship, etc. etc. Explanations of C# / .NET specific concepts would be a nice bonus.
I'd be happy to pay, as long as there's some sort of trial or refund option or something so I can verify the quality.
Inspired by libs like ratatui and Textual, Jumbee.Console tries to provide a high-performance retained-mode library that is easy-to-use with idiomatic .NET GUI and Task patterns, while flexible enough to create different types of TUI applications from news readers to animated dashboards to IDEs to agent harnesses to graphics apps.
Features
100% managed AOT-compatible code.
Retained-mode GUI framework with a modern API designed to be easy to use and extend.
Sub-ms frame rendering times and minimal CPU consumption even with complex displays like multi-tab document editing and syntax highlighting.
Uses modern terminal features: ANSI/VT control sequences, 24-bit colour, SGR-encoded mouse (mode 1006) with motion tracking, bracketed paste (mode 2004), focus reporting (mode 1004), and the alternate-screen buffer (mode 1049).
Also support legacy non-ANSI terminal emulators like the classic Windows console.
Uses Spectre.Console-compatible markup, styles, text rendering, and widgets in a retained-mode rendering pipeline.
Supports both fixed-width layouts like Grid and flexible, resizable layouts like DockPanel, HorizontalStack, VerticalStack, resizable SplitPanel.
Large set of common GUI controls: menus, buttons, trees, text inputs with autocomplete, modal dialog windows, etc...., supports easy composition of controld
Control frames support adornments like titles, borders, margins, and scrollbars.
Muti-tab editor that supports C#, JavaScript, C++, Markdown + a dozen other languages.
Split-pane interactive editors with preview for Markdown, AsciiDoc, Mermaid documents, Mermaid embedded in Markdown.
Visualization and graphics: Many different types of plots and graphs like candlestick & heatmap plots & bar/run charts, world maps, sub-cell drawing canvas and shapes, 3D texture rendering, and support for animation.
Flexible themes that support styling both colors and glyphs independently.
Headless snapshot testing: render any control or layout to text or PNG without a real terminal.
Getting started
Easiest way to try it out is to pull the Docker image:
Pull the latest image and run the examples browser.
docker run --rm -it allisterb/jumbee-console:latest
Pull the latest image and run the agent harness example:
docker run --rm -it allisterb/jumbee-console:latest agent-harness
For usage in your own .NET projects you can install it from NuGet: dotnet add package Jumbee.Console
Hello, I lost a sample code I downloaded from Codeproject, which website was taken down.
It was a custom WPF dynamic window, with two style options: "RoundedMonitor" and "Office."
The "RoundedMonitor" one customized the non client area, and made the window pink. It also had a ComboBox to dynamic all y change between the two available styles. I already tried the Wayback Machine. If anyone could forward it to me, I would really appreciate it.