1. diel - Úvod, externá triedy v špeciálnej zložke - isim
V tejto sérii článkov si ukážeme ako si naprogramovať jednoduchý instant messenger. Budem vychádzať z isim. Vlastne ho teraz prepisuje, aby to bolo trošku čitateľné a nebola to taká prasárna, ale to sem nepovedal ... Nebudem rozoberať detaily. Ale v kóde nechám potrebnej komentáre. Prípadne nie je problém opýtať sa pod článkom alebo vo fóre. Moc nepočítam s tým, že podľa toho čo budem písať, budeš zostavovať program. Ak áno, je potrebné to pochopiť a písať to sám, ako to začneš kopírovať, tak sa v tom stratíš. Prejdi si tie jednotlivé úryvky kódu a potom si stiahni zdrojový kód, odskúšajte si ho a prejdi si jeho funkcionalitu. Skús si nejaké zmeny. Ide mi hlavne o to, ukázať zaujímavosti, na ktoré som narazil, ktoré sa môžu hodiť, nejaké fičury a problémy na ktoré som narazil a ako som ich riešil, potom kompletný zdrojový kód, pre zvedavcov a Superpátračov as ním aj možnosť si dorábať vlastné fce a urobiť si imko na mieru. Keby ti niečo nebolo jasné, tak sa neváhaj pýtať, aspoň to počástech rozoberieme dopodorbna
Čo je Zaujímavý a dobrý vedieť. Ak chcem používať tzv. Live debugging teda upravovať program za behu, je potrebné ho mať spustený pod platformou x86 a ako Debug -> kliknutí na danú Solution -> Properties -> Configuration properties. Ak tam x86 nebude dá sa pridať, niečo ako Add new. Projekt mám .NET FW 3.5 SP1 WinForms x86 AnyCPU.
Najprv si navrhneme funkcionalitu a roztriedenie toho, čím začneme. Toto bude dlhá cesta. Prepojenie jednotlivých prvkov a napojenie je na knižnice protokolov.
Program.cs
- Kontrola prítomnosti požadovaného .NET FW
- Mutex aplikácie - môže byť spustená iba raz
MainForm.cs
- kontakt list
ChatForm.cs
- Taby jednotlivých konverzácií Vlastné RichTextBox konverzácie (farebné
nicky a smajlíci)
TextBox správa
Tlačidlo na odoslanie správy (niečo na ňom bude)
- Vlastné RichTextBox konverzácie (farebné nicky a smajlíci)
- TextBox správa
- Tlačidlo na odoslanie správy (niečo na ňom bude)
ChatTab.cs
- Vlastné komponenta spravujúce taby a ich komponenty
ChatTabPage.cs
- Vlastné komponenta obsahujúce vyššie spomínané prvky
ContactListViewItem.cs
- Vlastné komponenta položka kontaktu v kontakt liste obsahujúci navyše informácie o kontakte
ConversationRTB.cs
- Vlastné komponenta RichTextBox s farebnými nicky, smajlíky a možností skrolovania
Global.cs
- Všetko čo je statický a dostupný zo vsadí Prístup k okýnkům
Funkcia messengera (odoslanie, pridanie správy ...)
Konverter pre prevod objektov jednotlivých knižníc na isim friendly
Práca s textom
- Prístup k okýnkům
- Funkcia messengera (odoslanie, pridanie správy ...)
- Konverter pre prevod objektov jednotlivých knižníc na isim friendly
- Práca s textom
ISIMContact.cs
- Interface nášho kontaktu - definícia vlastností
- Triedy pre kontakty z jednotlivých knižníc
- Komparátor kontaktov (dostupnosť, meno)
Login.cs
- Údaje pre pripojenie k serveru
Pretože je fakt cool mať externé knižnice v priečinku plugins, tak si
povieme ako to pošéfit. Najskôr si ich presunieme do požadovanej zložky a
znova ju pridáme tentoraz z nej potom na nej klikneme v references ->
Properties. Je tam tuším CopyLocal
to je to čo zaisťuje
kopírovanie knižnice do zložky s programom. Takže už to robiť nebude,
muhehe. Teraz vytvoríme ApplicationConfig - normálne pridať súbor a tam je
priamo tento súbor v ponuke. A do neho sa dá:
<?xml version="1.0" encoding="utf-8" ?> <configuration> <runtime> <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> <probing privatePath="plugins;" /> </assemblyBinding> </runtime> </configuration>