Instant Chat in WPF

Al ergens in 2008 had ik het idee opgevat om een Chat app. te maken die ik direct kon gebruiken in mijn thuisnetwerk.
Nadat ik mijn eerste project met WPF had gedaan was ik helemaal verkocht. Helaas door wat carrière moves en het behalen van allerlei certificeringen bleef het bij een ontwerpje in XAML.
Totdat ik eind 2010 weer wat meer tijd kreeg en besloot het af te gaan maken. Destijds had ik een VB app. ontdekt die (helaas erg buggy) maar gedeeltelijk de functionaliteit gaf die ik wilde en als uitganspunt diende.
Daarom zelf aan slag gegaan en wel met de volgende design beslissingen in mijn achterhoofd:

  • De GUI moest in WPF zijn, gemakkelijk te installeren met her en der cool uitziende animatie en er (in mijn ogen) gelikt uit zien.
  • De GUI mocht geen weet hebben van de logica die er achter zit. Vandaar de keuze voor een MVC pattern, zou ik het opnieuw doen dan had ik een MvvM pattern gekozen, maar in basis verschillen ze niet zoveel van elkaar. Maar de laatste sluit beter aan bij WPF en Silverlight.
  • Met het pattern in gedachte zou het gemakkelijk moeten zijn logica her te gebruiken voor mijn komende projecten met een WCF service en een versie in WPF en Silverlight.
  • Het gebruik van UDP voor netwerk transport om geen continu kanaal open te hebben staan naar alle PC's in het netwerk.
  • Gebruik maken van directe binding naar de properties van het objecten model via de Controllers om het MVC pattern te ondersteunen.
  • Alle style relateerde zaken moeten apart in te stellen en te onderhouden zijn.
     

Terug kijkend naar het eindresultaat is dit allemaal in redelijke mate bereikt, de controllers sturen de Commands en achterliggende domein objecten naar de GUI. De netwerk logica is goed gescheiden van het domein model en de Controllers, Verder heb ik het domein model geinstatieerd in een Globals klasse (eigenlijk in strijd met het principe van "Loose coupling"). Dit omdat er toch altijd maar een instantie draait van de app. wil ik deze centraal bijhouden omdat deze leest en schrijft naar configuratie settings. Enkele features die ik zelf (uiteraard) erg waardeer zijn:

  • Het direct aanpassen van alle tekst als de taal wordt aangepast.
  • Het direct kunnen zien of een andere PC in het netwerk actief is.
  • Het direct kunnen zien of op een andere PC de Instant Chat app. actief is.
  • De app. heeft een contextmenu in de taskbar, iets wat (nog) niet ondersteund wordt in WPF.

Hopelijk kun je zelf nog meer features ontdekken die je bevallen en/of feedback geven op wat je minder vindt of uitbreidingen voor de toekomst. Wees trouwens vrij om je eigen inzichten in de originele code te verwerken.

<Volgende>

-June 2018+
SMTWTFS
272829303112
3456789
10111213141516
17181920212223
24252627282930
1234567
  • RSS
  • Add To My MSN
  • Add To Windows Live
  • Add To My Yahoo
  • Add To Google

Statistics

  • Entries (1)
  • Comments (0)

Archives


Hier kun je Commentaar kwijt: 

Thursday, May 5, 2011 3:02:00 PM

Om je opmerkingen achter te laten even op Reactie() klikken!

Download gegevens

In Instant Chat Vervolgd deel 1 en verder, kun je nog meer uitleg vinden over de code en solution opzet.

Om de broncode en binaries te downloaden klik op de onderstaande .rar file.

<Volgende>

Site Map | Printable View | © 2008 - 2018 LeBroITSolutions | | HTML 5 | CSS