WPF chat application with MVVM and custom TCP networking
I developed a simple desktop chat application in WPF using the MVVM pattern and DataBinding. The UI is minimal: a message list, input box, connection status indicator and a list of active users.
The architecture follows MVVM principles:
View (WPF XAML) – layout and bindings only;
ViewModel – ICommand-based actions for sending messages, connection state management, an ObservableCollection for the messages;
Model – message/user models and networking logic.
The project was designed as a teaching example for my students to show:
– how to work with low-level C# networking classes (TcpClient / custom ETcpClient and ETcpConnection);
– how to build a clean MVVM architecture with clear separation of concerns and transparent data binding.
I designed the structure of the application, set up MVVM, implemented the networking layer and data bindings so that the chat behaves reliably and updates in near real time.
Tech stack: C#, WPF, MVVM, DataBinding, ICommand, ObservableCollection, custom TCP networking (TcpClient / TcpConnection).
The architecture follows MVVM principles:
View (WPF XAML) – layout and bindings only;
ViewModel – ICommand-based actions for sending messages, connection state management, an ObservableCollection for the messages;
Model – message/user models and networking logic.
The project was designed as a teaching example for my students to show:
– how to work with low-level C# networking classes (TcpClient / custom ETcpClient and ETcpConnection);
– how to build a clean MVVM architecture with clear separation of concerns and transparent data binding.
I designed the structure of the application, set up MVVM, implemented the networking layer and data bindings so that the chat behaves reliably and updates in near real time.
Tech stack: C#, WPF, MVVM, DataBinding, ICommand, ObservableCollection, custom TCP networking (TcpClient / TcpConnection).