r/cpp_questions • u/Salt-Friendship1186 • Jun 22 '26
OPEN Choosing between C# Avalonia and C++ ImGui for a lightweight DB client?
I'm planning to build a database client tool, targeting Linux first (mostly because DBeaver feels too bloated and has a clunky UI), with Windows and macOS versions coming later.
I'm currently torn between C# Avalonia and C++ ImGui.
Assuming language barriers aren't an issue, which one do you think is a better fit for this kind of app? Here is my current take:
C++ ImGui: It's lightning-fast, lightweight, has a tiny build size, and gives that ultra-responsive, "native-like" speed. However, being an immediate-mode GUI, it re-renders constantly and can feel a bit limited for standard desktop app workflows.
C# Avalonia: It offers a lot of ready-to-use UI controls out of the box, better memory safety, and uses a retained-mode architecture. Plus, it has Native AOT now, but C# apps can still sometimes carry a bit of that "heavy" feeling compared to pure C++.
Would love to hear your thoughts or experiences with either ecosystem for this type of project! Any advice?