0
A developer workspace monitor that catches code-pattern risks and container regressions before they derail debugging.
Added May 29, 2026
10 signals
Backend developers struggle with recurring C# design questions around generic queries, DTO projections, domain models, and performance-sensitive collections. At the same time, Docker upgrades or environment drift can silently break dependencies such as DNS, making developers waste hours debugging application code when the real cause is infrastructure.
Teams building C# domain-heavy applications often depend on Dockerized local and staging environments, so productivity breaks at the boundary between application modeling/query changes and fragile container infrastructure. The shared workflow is developer debugging: distinguishing whether a failed feature, query, or service behavior comes from code architecture mistakes or environment regressions like broken container DNS.
Detailed solution approach available for premium members.
Market timing analysis available for premium members.
Dear charp community, I am working on my personal c# game engine and it already works quite well. However, I want to optimise for performance and I now have a problem (or maybe only a concern): All interactable objects belong to classes that derive from the GameObject class (example: classes Floor and Player both inherit GameObject). Now, when checking for collisions, one of these objects may call a method that accepts multiple types as parameter: `List<Intersection> intersections = GetIntersections(typeof(Floor), typeof(Obstacle));` Now, this method currently loops through a precomputed list (that contains all nearby objects for the calling instance) and checks for each object if it is either of type Floor or Obstacle. If it is, the collision check is performed. Otherwise it is skipped. This in itself already seems not too performant to me, because it may loop through 1000 objects even if there are only 2 objects of type Floor and Obstacle. But it gets worse: Sometimes this GetIntersections() method needs to loop through multiple lists and gather objects. So, here is what I currently do: * create an empty temporary list * loop through list A and find all objects that are of type Floor or Obstacle and add them to the temporary list * loop through list B and do the same * loop through the temporary list and do collision check for each object in this list Is creating these temporary lists bad? It would allocate heap space every time I do that, right? What would be a more efficient way to handle this? Since the user may create classes as they please, I do not know the class names beforehand. Also: Most objects I use are already structs (wherever possible) but sometimes I have to use Dictionary or List. In my opinion there is no way around that. That's why I need your help.
Hello, once again I need help with a code. The task is to create a class Fahrzeugverwaltung, which manages two lists Wohnmobil and Lieferwagen. Now i have to create a method, which adds a new vehicle to the lists. But i habe to ensure that the chassis Number (fahrgestellnr) can only occur once. The following code isnt working: class Fahrzeugverwaltung { private List<Lieferwagen> lieferwagen = new List<Lieferwagen>(); private List<Wohnmobil> wohnmobile = new List<Wohnmobil>(); public List<Lieferwagen> GetLieferwagen() { return lieferwagen; } public List<Wohnmobil> GetWohnmobil() { return wohnmobile; } public bool AddWohnmobil(int fahrgestellnr, string hersteller, string modell, int laufleistung, int baujahr, double preis, int schlafplaetze, bool unfallwagen = false) { if(wohnmobile.Contains(fahrgestellnr)) { return false; } else { GetWohnmobil().Add(fahrgestellnr, hersteller, modell, laufleistung, baujahr, preis, schlafplaetze, unfallwagen = false); return true; } } } Sorry for the shit format btw
There is a large project and I'm trying to use ddd philosophy for later feature and apis. Let's say I've an entity, and that entity would have multiple fields. And the number of columns in a table for that entity would also be the same as the entity's fields. Since a table has multiple fields, it would be bad for performance if I get all the columns from that table, since it has multiple columns. However, if I only select the column I want, I have to use a custom DTO for the repository result because I didn't select all the fields from the entity. If I use a custom DTO, that DTO should not have business rule methods, right? So, I've to check in the caller code. My confusion is that in a large project, since I don't want to select all the fields from the table, I've to use a custom query result DTO most of the time. And couldn't use the entity. I think this happens because I didn't do the proper entity definition or table. Since the project has been running for a long time, I couldn't change the table to make it smaller. What can I do in this situation?
I'm attempting to create a generic method that returns a nullable version of T. Currently the best I could work out is just having an overload. Since I want all types really but mostly just the built in simple types (incl. strings, annoyingly) to be possible, this is what I came up with: public async Task<T?> GetProperty<T>(string property) where T : struct { if (_player is not null) try { return await _player.GetAsync(property) as T?; } catch (Exception ex) { Console.WriteLine("WARN: " + ex); return null; } return null; } public async Task<string?> GetStringProperty(string property) { if (_player is not null) try { return await _player.GetAsync(property) as string; } catch (Exception ex) { Console.WriteLine("WARN: " + ex); return null; } return null; } I am aware my debugging is horrible. Is there a better way to do what I'm trying to do? I specifically want to return null or the value rather than do something like have a tuple with a success bool or throw an exception. I tried this, but found the return type with T being uint was... uint. Not uint? (i.e. Nullable<uint>) but just uint. I'm not sure I understand why. public async Task<T?> GetProperty<T>(string property) { if (_player is not null) try { return (T?)await _player.GetAsync(property); } catch (Exception ex) { Console.WriteLine("WARN: " + ex); return default; } return default; }
Warning - don't upgrade docker on debian 13 right now, there's a bug that breaks DNS in all containers. I just updated all of my systems and lost DNS in every one of my 170 containers. My entire infrastructure came to a screaching halt. 5:29.0.4-1 is good 5:29.1.0-1 is bad If you update and everything breaks, you can revert with: apt install docker-ce-cli=5:29.0.4-1~debian.13~trixie docker-buildx-plugin=0.30.0-1~debian.13~trixie docker-ce=5:29.0.4-1~debian.13~trixie docker-ce-rootless-extras=5:29.0.4-1~debian.13~trixie to switch back to yesterday's working version. Note that this does not pin the version, so if you run an apt upgrade afterward it will break again. Hopefully they fix it soon.
+7 more signals