>> Console.WriteLine(“ Všetkých Vás zdravím! ”);
Po malej odmlke a načerpaní nových síl som tu s novou sériou článkov o programovaní v perfektnom programovacom jazyku C#. Cez leto som s úspechom viedol aj kurz programovania v C# založený na predchádzajúcej sérii článkov, preto pozdravujem mojich „študentov“ z Novej Bani !!
Pretože ohlasov a e-mailov s požiadavkou na pokračovanie seriálu som dostal dosť, bolo už len otázkou času kedy sa pustím do druhej série. Čakal som na nejaké znamenie, kedy bude dobré začať písať pilotný diel a to znamenie sa stalo predminulý týždeň (29.10.05) - Microsoft uviedol finálnu verziu .NET Framework 2.
Samozrejme, ako správny fanúšik C# som bol medzi prvými, kto si ju stiahol aj s kompletnou dokumentáciou (SDK) a pustil som sa do jej skúmania. Pretože som sledoval aj celý vývoj Beta verzií, bol som zvedaví ako sa ustáli posledná špecifikácia C# v.2.
Táto séria je tesne viazaná na predchádzajúcu a preto ak ste naďabili :-) na tento seriál prvý raz až týmto článkom, je nevyhnutné aby ste si zbežne pozreli všetkých 32 predchádzajúcich dielov (ktoré, ako sa dočítate, nevyžadujú žiadne predbežné vedomosti) .
>>Čo budeme robiť?
Celkový vývoj seriálu závisí hlavne na Vás, čitateľoch. Na začiatok ale tému zvolím ešte ja. Potrebné je dohnať špecifikáciu C# v2 oproti v1.1. Aj keď už minulú sériu som chcel priamo začať na beta verzii C# 2, na základe viacerých ohlasov som sa čo najviac držal ešte špecifikácii v1.1. Pretože sme prebrali len základnú syntax a techniky (čo ostalo viac menej nezmenené), nová verzia C# bude pre Vás znamenať skôr „nové“ veci ako „iné“ veci.
Potom sa pustíme do vecí ako sú delagáti, udalosti a podobné užitočné „hračky“ :-)
A keď budeme poriadne „podkutí“ syntaxou tak začneme WinForms, kde si ukážeme základné princípy (nie detaily) vytvárania „okien – windows“. Pretože to bude už hlavne prezentačná vrstva programov, ktorá sa vytvára jednoducho klikaním na komponenty, túto časť programovania volám : click sem click tam :-)
>>Čo budeme potrebovať?
.NET Framework 2.0 - Runtime 22,4MB
.NET Framework 2.0 – SKD 354MB
Ak viete trochu „IT“ t.j. počítačovú angličtinu tak Vám odporúčam pozrieť si hneď po nainštalovaní sekciu SDK >> What's New in the .NET Framework -> What's New in the .NET Framework Version 2.0. Ak angličtina nie je Vaša silná stránka, čítajte pozorne nasledujúcich pár článkov.
POZNÁMKA ! Pretože dokumentácia SDK sa skladá z 7 884 súborov a 2 473 adresárov, odporúčam Vám pred inštaláciu defragmentovať hard-disk. A kým sa to nainštaluje môžete si ísť kľudne niečo zajesť. Takže, dobrú chuť! :-)
>>Aké vývojové prostredie budeme používať?
Minimálne podmienky : Notepad
Štandartné : SharpDevelop
Pohodlné : Visual Studio .NET 2005
SharpDevelop si môžete stiahnuť tu:
http://www.icsharpcode.net/OpenSource/SD/Download/
UPOZORNENIE: SharpDevelop je v súčasnosti skompilovaný pre verziu .NET Framework 1.1, takže pre jeho spustenie ju musíte mať nainštalovanú. Tu nejde ani o spätnú kompatibilitu, ale priamo inštalátor SharpDevelopu si na začiatku zisťuje, či je nainštalovaná verzia 1.1 alebo menej (nerátali s možnosťou vyššej verzie).
Keď budete programovať v SharpDevelope, ukladajte si robotu tak často ako sa len dá, pretože posledných pár verzií má problém so zamŕzaním !!!!
.NET Framework 1.1 si môžete stiahnuť tu.
>>Aký operačný systém potrebujem?
To by ste sa divili (aj ja som sa divil keď som to skúšal:-) ) ale .NET Framework ide takmer bez problémov rozbehať už aj na Windows 98 !! Jedine je potrebné doinštalovať Internet Explorer 5.5 a viac. U ostatných Windows je to už úplne bez problémov.
>>Sú potrebné aj po inštalačné nastavenia?
Len jedno maličké nastavenie musíte spraviť v SharpDevelope, aby výsledné programy boli na 100% kompilované pre C#2. Takže spravte v ňom tieto kroky, keď už máte prvý krát založený nejaký ten projekt:
Project -> Project Options ->Configurations->Debug
->Runtime/Compiler->Compiler version
A tam nastavte najnovšiu verziu. Toho času je to v2.0.50727. To isté aj v možnosti Release.
>>Sľúbené porovnanie rýchlostí
Spravil som si jednoduchý program, ktorý násobí dve komplexné štvorcové matice Ich veľkosť sa zadá z klávesnice a obsah tvoria náhodne vygenerované komplexné desatinné čísla (t.j. imaginárna a reálna zložka). Samozrejme, že na komplexný benchMarking by mal taký program robiť oveľa, oveľa viac ale aj tak som dosiahol zaujímavé výsledky.
Program okrem aritmetiky testuje hlavne alokáciu objektov a prístup k poliam. Veď ak Vás to zaujíma a chcete si spraviť vlastný benchMarking, zdrojáky a jednotlivé skompilované verziu si môžete stiahnuť tu:
www.inet.sk/download/user/TestPack.zip
Ak vám niečo hovorí násobenie matíc a komplexné čísla, viete si veľmi ľahko spočítať koľko operácií je potrebné vykonať na jedno násobenie takýchto matíc. Ja som dospel k výsledku : dosť veľa :-)
>>Parametre testu
Veľkosť komplexných matíc : 500x500
Časová jednotka : milisekundy
Počet meraní : Každý režim 5x, z toho priemerná hodnota
Môj procesor : AMD Atlhon 1,3GHz
>>Výsledky testu
.NET Framework 1.1.4322
Debug režim-> 39609 ms
Release režim-> 36578 ms
.NET Framework 2.0.50727
Debug režim-> 39562 ms
Release režim -> 34062 ms
Takže len zmenením verzie kompilátora som dosiahol priemerné zrýchlenie o 2,5s !! Aj keď podľa mňa sú obidva časy celkom slušné vzhľadom na výpočtovú náročnosť testovacieho programu.
POZNÁMKA: Všimol som si, že k službám (services) Windows po nainštalovaní .NET Framework 2 pribudla nová : .NET Runtime Optimization Service v2.0.50727 _X86.
Doteraz som sa presne nedopátral, aká jej úloha. Ak to zistím, dám Vám vedieť alebo mi napíšte do diskusie ak Vy niečo zistíte.
>>Čo bude nabudúce?
Napr. si ukážeme funkciu, ktorá už priamo umožňuje farebne vypisovať do konzoly, bez toho aby ste museli komplikovane volať externé knižnice WinAPI.
>>Vaše pripomienky a konštruktívnu kritiku píšte do diskusie alebo na môj e-mail.
Michal Čižmár
micitn@orangemail.sk
See You !