1. díl - Úvod, externí třídy ve speciální složce - ISIM

C# .NET Pro pokročilé Instant Messenger Úvod, externí třídy ve speciální složce - ISIM

V této sérii článků si ukážeme jak si naprogramovat jednoduchý instant messenger. Budu vycházet z ISIMu. Vlastně ho teď přepisuji, aby to bylo trošku čitelné a nebyla to taková prasárna, ale to sem neřekl... Nebudu rozebírat detaily. Ale v kódu nechám potřebné komentáře. Případně není problém zeptat se pod článkem nebo ve fóru. Moc nepočítám s tím, že podle toho co budu psát, budeš sestavovat program. Pokud ano, je třeba to pochopit a psát to sám, jak to začneš kopírovat, tak se v tom ztratíš. Projdi si ty jednotlivé úryvky kódu a poté si stáhni zdrojový kód, odzkoušej si jej a projdi si jeho funkcionalitu. Zkus si nějaké změny. Jde mi hlavně o to, ukázat zajímavosti, na které jsem narazil, které se mohou hodit, nějaké fičury a problémy na které jsem narazil a jak jsem je řešil, pak kompletní zdrojový kód, pro zvědavce a koumáky a s ním také možnost si dodělávat vlastní fce a udělat si IMko na míru. Kdyby ti něco nebylo jasné, tak se neváhej ptát, alespoň to počástech rozebereme dopodorbna :)

Co je zajmavý a dobrý vědět. Pokud chci používat tzv. live debugging tedy upravovat program za běhu, je třeba ho mít spuštěný pod platformou x86 a jako Debug -> klepnutí na danou Solution -> Properties -> Configuration properties. Pokud tam x86 nebude dá se přidat, něco jako Add new. Projekt mám .NET FW 3.5 SP1 WinForms x86 AnyCPU.

Nejprve si navrhneme funkcionalitu a roztřídění toho, čím začneme. Tohle bude dlouhá cesta. Propojení jednotlivých prvků a napojení je na knihovny protokolů.

Program.cs

  • Kontrola přítomnosti požadovaného .NET FW
  • Mutex aplikace - může být spuštěna pouze jednou

MainForm.cs

  • Kontakt list

ChatForm.cs

  • Taby jednotlivých konverzací
    • Vlastní RichTextBox konverzace (barevné nicky a smajlíci)
    • TextBox zpráva
    • Tlačítko na odeslání zprávy (něco na něm bude)

ChatTab.cs

  • Vlastní komponenta spravující taby a jejich komponenty

ChatTabPage.cs

  • Vlastní komponenta obsahující výše zmíněné prvky

ContactListVi­ewItem.cs

  • Vlastní komponenta položka kontaktu v kontakt listu obsahující navíc informace o kontaktu

ConversationRTB.cs

  • Vlastní komponenta RichTextBox s barevnými nicky, smajlíky a možností skrolování

Global.cs

  • Všecko co je statický a dostupný ze všady
    • Přístup k okýnkům
    • Funkce messengeru (odeslání, přidání zprávy...)
    • Konverter pro převod objektů jednotlivých knihoven na ISIM friendly
    • Práce s textem

ISIMContact.cs

  • Interface našeho kontaktu - definice vlastností
  • Třídy pro kontakty z jednotlivých knihoven
  • Komparátor kontaktů (dostupnost, jméno)

Login.cs

  • Údaje pro připojení k serveru

Protože je fakt cool mít externí knihovny v složce plugins, tak si řekneme jak to pošéfit. Nejdřív si je přesuneme do požadované složky a znovu ji přidáme tentokrát z ní pak na ní klepneme v references -> Properties. Je tam tuším CopyLocal to je to co zajišťuje kopírování knihovny do složky s programem. Takže už to dělat nebude, muhehe. Teď vytvoříme ApplicationConfig - normálně přidat soubor a tam je přímo tento soubor v nabídce. A do něj se dá:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <probing privatePath="plugins;" />
    </assemblyBinding>
  </runtime>
</configuration>

 

  Aktivity (1)

Článek pro vás napsal David Jančík [sczdavos]
Avatar
Autor je vášnivý programátor v .NET C# a PHP. Nezná slovo "nelze", nebojí se zkoušet nepoznané a pronikat do nových technologií.

Jak se ti líbí článek?
Ještě nikdo nehodnotil, buď první!


 



 

 

Komentáře

Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zatím nikdo nevložil komentář - buď první!