You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
|**Reactive layout**| No | Computed Pos/Dim |**[Bindable] source-generated with dependency tracking**|Event-driven invalidation |
186
+
|**Reactive layout**| No | Computed Pos/Dim |**[Bindable] source-generated with dependency tracking**|MVVM binding with auto-invalidation |
187
187
|**Flexibility**| Low | High (Pos/Dim arithmetic) |**Very high (WPF/Avalonia-level)**| Moderate |
188
188
189
189
XenoAtom.Terminal.UI has the most sophisticated layout system with a proper `FlexAllocator` (grow/shrink/min/max like CSS Flexbox), full Grid with row/column definitions, and DockLayout. Terminal.Gui's Pos/Dim system with arithmetic composition is also very powerful. SharpConsoleUI's layout is simpler -- it prioritizes the compositor pipeline over layout complexity.
@@ -193,7 +193,7 @@ XenoAtom.Terminal.UI has the most sophisticated layout system with a proper `Fle
@@ -225,7 +225,7 @@ Be honest about the right tool:
225
225
-**Need maximum community and ecosystem?** The bigger libraries have more users, more contributors, more blog posts, and more StackOverflow answers.
226
226
-**Targeting .NET 9 or older?** SharpConsoleUI requires .NET 9. Spectre.Console and Terminal.Gui v1 support .NET Standard 2.0. XenoAtom requires .NET 10.
227
227
-**Need DatePicker, Slider, ColorPicker, or HexView?** Terminal.Gui has these built-in. XenoAtom has Slider and ColorPicker. SharpConsoleUI doesn't (yet).
228
-
-**Need reactive data binding?** XenoAtom's `[Bindable]` source-generated property system with automatic dependency tracking is significantly more sophisticated than manual events.
228
+
-**Need source-generated reactive bindings?** XenoAtom's `[Bindable]` source-generated property system with automatic dependency tracking is more sophisticated than SharpConsoleUI's lambda-based MVVM bindings.
229
229
230
230
## When SharpConsoleUI Shines
231
231
@@ -236,6 +236,7 @@ SharpConsoleUI is the right choice when you need:
236
236
-**Dashboard / monitoring tools** -- independent async window threads mean each panel updates on its own schedule without blocking the UI.
237
237
-**IDE-like tools** -- [LazyDotIDE](https://github.com/nickprotop/LazyDotIDE) is a working .NET IDE built entirely on SharpConsoleUI, proving the framework handles complex, multi-window applications.
238
238
-**Embedded terminal + UI** -- TerminalControl gives you a real PTY-backed terminal emulator inside a window, alongside your UI controls. Unique in the .NET ecosystem.
239
+
-**MVVM data binding** -- `Bind()` and `BindTwoWay()` with lambda expressions, type converters, and standard `INotifyPropertyChanged` ViewModels. All controls support property change notification out of the box.
239
240
-**Spectre.Console integration** -- use `[red bold]markup[/]` in every control, and embed any `IRenderable` (Tables, Charts, BarCharts) as a windowed control. Extends Spectre.Console rather than replacing it.
240
241
-**Live data visualization** -- SparklineControl and BarGraphControl update in real-time with configurable styles.
241
242
-**Plugin-based architectures** -- extend the framework with custom themes, controls, windows, and services.
0 commit comments