Aplikacja czatu WPF z MVVM i własną implementacją TCP
Opracowałem prosty stacjonarny czat WPF z wykorzystaniem wzorca MVVM oraz mechanizmu DataBinding. Interfejs jest minimalistyczny: lista wiadomości, pole wprowadzania, wskaźnik połączenia oraz lista aktywnych użytkowników.
Architektura zbudowana jest na zasadach MVVM:
Widok (WPF XAML) — tylko układ i powiązania;
Model widoku — komendy (ICommand) do wysyłania wiadomości, stan połączenia, ObservableCollection dla listy wiadomości;
Model — modele wiadomości/użytkowników oraz logika pracy z siecią.
Projekt był pomyślany jako praktyczny przykład dla studentów:
– praca z niskopoziomowymi klasami sieciowymi C# (TcpClient / własne ETcpClient, ETcpConnection);
– demonstracja czystej architektury z MVVM, podziałem odpowiedzialności oraz przejrzystym powiązaniem danych.
Zaprojektowałem strukturę aplikacji, skonfigurowałem MVVM, zrealizowałem logikę sieciową oraz powiązania danych tak, aby czat działał stabilnie i aktualizował się w trybie zbliżonym do rzeczywistego czasu.
Wykorzystane technologie: C#, WPF, MVVM, DataBinding, ICommand, ObservableCollection, własne klasy TCP (ETcpClient / ETcpConnection).
Architektura zbudowana jest na zasadach MVVM:
Widok (WPF XAML) — tylko układ i powiązania;
Model widoku — komendy (ICommand) do wysyłania wiadomości, stan połączenia, ObservableCollection dla listy wiadomości;
Model — modele wiadomości/użytkowników oraz logika pracy z siecią.
Projekt był pomyślany jako praktyczny przykład dla studentów:
– praca z niskopoziomowymi klasami sieciowymi C# (TcpClient / własne ETcpClient, ETcpConnection);
– demonstracja czystej architektury z MVVM, podziałem odpowiedzialności oraz przejrzystym powiązaniem danych.
Zaprojektowałem strukturę aplikacji, skonfigurowałem MVVM, zrealizowałem logikę sieciową oraz powiązania danych tak, aby czat działał stabilnie i aktualizował się w trybie zbliżonym do rzeczywistego czasu.
Wykorzystane technologie: C#, WPF, MVVM, DataBinding, ICommand, ObservableCollection, własne klasy TCP (ETcpClient / ETcpConnection).