Čekejte prosím
Čekejte, prosím...
Logo sekce

Kurz programování v C# - Lekce 1

31.12.08, 20:22, autor: noonea, vyšlo v blogu: Andriel
Pár mých předchozích článků bylo zaměřeno na nástroje, které pracují s programovacím jazykem C# (a VB.NET, ale to je mimo). Dnes tu publikuji první z několikadílného kurzu o programování právě v tomto oblíbeném jazyce.

V dnešní lekci, zatím první a spíše zkušební, se seznámíme s jazykem C#, frameworkem .NET a napíšeme si trošku netradičně svůj první program "Ahoj světe" (netradičně proto, že nebude v konzoli). Začneme trochou teorie, jak už to bývá, projdeme přes vývojové prostředí, jako které nám poslouží Visual Studio 2008 expression edition, vytvoříme si svůj program a nakonec dostanete zadání úkolu, které bude známkováno jako ve škole podle toho, jak dobře jej vytvoříte a jestli bude program fungovat korektně. Inu, dáme se do toho.

 

Úvod do .NET Frameworku

.NET Framework je platforma od firmy Microsoft vytvořená kolem roku 2000. Když říkám platforma, myslím tím prostředí, na kterém běží program, který vytvoříte. Jestliže vytváříte program v jazycích, které mají označení .NET (což je C#, J#, F#, Visual Basic.NET, popř. třeba ASP.NET), budete potřebovat platformu .NET Framework. Jestliže se pokusíte spustit program vytvořený na této platformě na počítači, kde není nainstalovaný .NET Framework, program se nespustí a vyhodí chybovou hlášku. Proč? .NET Framework se skládá z více částí, neboli modulů. Nebudu zabíhat příliš do detailů, neboť toto není až tak podstatné a detailně by tohle vysvětlování zabralo přes dvacet stránek, proto se o některých modulech zmíním jen okrajově.

 

.NET Framework obsahuje jazyk IL, modul typů a specifikací CLS, překladač JIT a BCL (basic class libary), což je knihovna tříd potřebná pro vytváření programů (neboť vy jakožto programátoři budete nejčastěji využívat již naprogramované knihovny, vytvářet své vlastní budete umět až později). Dobře, to jsme si řekli, co .NET Framework obsahuje, ale jak to funguje?

 

Zjednodušeně, když napíšete kód v C#, nejdříve ho musíte zkompilovat. To obstarává prostředí, v našem případě Visual Studio. Tím to však zdaleka nekončí a celý proces začíná. Ze všeho nejprve se musí kompilovaný kód převést do jazyka IL, což je jazyk vytvořený Microsoftem. Je zde proto, aby mezi sebou byly kompatibilní všechny .NET jazyky. I když program bude vypadat jinak v C# a jinak třeba ve Visual Basic.NET, po kompilaci do IL kódu bude vypadat úplně totožně (pokud bude dělat to samé, samozřejmě). Jak je to možné? Právě díky modulu CLS, který zaručuje správné přiřazení funkcí a tříd a korektní překompilování do IL jazyka. Jestliže má prostředí překompilovaný kód do IL, předává kód samotnému frameworku a ten, pomocí svého interního JIT kompilátoru převede kód do nativního kódu spustitelného procesorem. Ten pak program vykoná.

 

Samozřejmě shrnout fungování .NET Frameworku do pár odstavců je přímo bestialita,proto pro všechny zájemce, kteří chtějí proniknout hlouběji do samotného .NET Frameworku doporučuji buď tento odkaz, anebo rovnou doporučuji knihu C# 2005 Profesionálně, kde je toto téma popsáno na cca 70 stránek.

 

Úvod do Visual Studia 2008 Expression Edition

Jak jsem již řekl, náš kurz bude zaměřen na programování C# ve Visual Studiu(dále jen VS). První krok, který bude potřeba, je stáhnutí VS ze stránek Microsoftu. To můžete buď zde (naše verze je vcssetup.exe), anebo zde, kde stahujete přímo .ISO soubor. Když už máte Visual Studio stáhnuté a nainstalované, podíváme se na uživatelské rozhraní.

 

Nyní si zapněte Visual Studio 2008 Express Edition, klepněte na file -> new -> project a v následujícím okně vyberte v části okna Project Types C# (pokud ještě nemáte vybráno) a v levé části klikněte na Windows Forms application. Tím dáváme najevo, že chceme vytvářet klasickou formulářovou aplikaci tak, jak je v systému Windows známe. (na obrázku pod tímto odstavcem mám navíc pár možností, např. určení cesty souboru hned při jeho vytváření. To expression edice nemá. Je to dáno tím, že já mám Visual Studio 2008 Professional edition, ne Express Edition. Pro. Edice stojí okolo 17 tisíc, ale umožňuje věci, které Express E. neumožňuje. Prozatím nám však postačí EE verze).

 

 

Po startu se vám zobrazí toto:

 

 

Všimněte si podškrtnutých a zakroužkovaných věcí. Pokud se podíváme v pravo nahoru, podškrtl jsem okno Solutin Explorer. To proto, aby jste si uvědomili, že tohle okno se jměnuje Solution Explorer. Často na něj budu v textu odkazovat, proto je dobré mít to na paměti. V něm je uloženo řešení a samotné soubory řešení (program je soubor instrukcí, jenž řeší nějaký problém, proto řešení). Pod Solution Explorerem máme Properties - Vlastnosti. Pokud toto okno nemáte zobrazeno, klikněte na View (menu nahoře) -> Properties Window. Zde měníme vlastnosti různých komponent formulářů i samotného formuláře, např. co bude napsané na tlačítku a podobně. Přesuneme se k prvnímu zakroužkovanému prvku a to je Form1.cs [design] záložka. Záložky jsou již známé z různých programů od webových broswerů až po ICQ, či podobné programy. Když tvoříte program, tvoříte jej ve dvou krocích (již ve Visual Studiu). První je, že navrhujete design, druhý krok je, že dáváte funkčnost tlačítkům a píšete, co se má udělat, když se zmáčkne tohle, nebo když uživatel udělá tamto. Ještě to podrobněji rozebereme, ovšem teď je důležité, aby jste věděli, že se momentálně nacházíte v návrhu designu aplikace a že existuje i druhý mód. Inu a poslední důležitá část je toolbox, na který když najedete, zobrazí se vám spousta věcí, které můžete umístit na formulář, např. tlačítka, textové dialogy a podobně. Zatím si nic na formulář nedávejte, k tomu také dojdeme, ovšem je dobré, aby jste věděli, kde Toolbox je.

 

Úvod do tvorby aplikací

Již přibližně víte, kde co máte dělat a to je dobře. Zatím jsme postavili poměrně solidní základ na tvorbu první aplikace. Sluší se ale předem říct, že psaní aplikace není to jediné, co patří k programování. Programování aplikace je složitá činnost, která vyžaduje více, než jen znalost syntaxe a prostředí. Jak tedy vytvořit aplikaci? Postupujeme v několika krocích (ne nezbytně všech):

 

 

  1. Analýza problému - přemýšlejte, k čemu ten program bude sloužit. K čemu má být program? K výpočtu? K náčrtu grafů? K vypsání textu? Možný postup, jak aplikaci vytvořit si promyslete v hlavě (zatím nemáte žádné znalosti ani nevíte, jaké jsou možnosti Visual Studia a C#, ale časem na to přijdete a pak je tento krok poměrně důležitý. Ne nezbytný, ale důležitý)
  2. Návrh řešení - nikdy byste neměli začínat přímo psaním kódu. Jestliže jste si promysleli, co a jak, je dobré nakreslit si vývojový diagram programu. Tím se zde nebudeme zabývat, ovšem některé firmy třeba vyžadují kompletní dokumentaci programu, což je i vývojový diagram.
  3. Zapsaní řešení - to už je to naše programování samotné. Zde je již fáze, kdy otevřete Visual Studio a začínáte psát program. Vzhledem k tomu, že naše programy budou jednoduché, první dva kroky budeme přeskakovat, ale pokud se budete zajímat o programování hlouběji, doporučuji zjistit si o nich něco více.
Tak, konec teorie našeho prvního tutoriálu o programování v C# a jde se na věc.

Tvorba první aplikace

Naším cílem je vytvořit program, jenž po zmáčknutí tlačítka vypíše do textového pole text "Ahoj, Světe". Je to klasický začátečnický program. My jej však neuděláme do konzole, protože ta samozřejmě neobsahuje žádné tlačítka, ale zpestříme si tvorbu programu a vytvoříme jej přímo v grafické podobě.

 

 

Již jsem řekl, že po zmáčknutí tlačítka aplikace vypíše to textového pole text "Ahoj, Světe". Z toho logicky vyplívá, že na formuláři budou dva prvky. Jeden bude textové pole, druhý bude tlačítko. Najeďte teď do vašeho Visual Studia a klepněte na Toolbox. Najděte položku Button a dvakrát na ni klepněte. Na formuláři se objeví tlačítko. Pokud chcete, můžete klepnout na položku Button jen jednou (tlačítko držte) a přesunout ji na kteroukoliv část formuláře. Této metodě se říká Drag & drop a většina programátorů ji preferuje (ale špatně není ani dvojtý klik na položku). Jestliže máme tlačítko na formuláři, posuneme jej trochu níže (klasicky, chytneme tlačítko a šoupneme ho dolů) a vrhneme se na textové pole. Zase klepneme na Toolbox a vytvoříme stejným způsobem, jako položku tlačítko, položku Text box.

 

Nyní máme na formuláři 2 prvky. Textbox a button. Když zmáčkneme F5, program se spustí, ale nic nebude dělat. Proto jej musíme "oživit". Ještě předtím ale změníme ošklivý nápis na tlačítku (přece nechceme mít v aplikaci tlačítko, na kterém je "button") a jména prvků.

 

Klepněte na tlačítko Button 1 a podívejte se na okno vlastností (v pravo dole pod Solution Explorerem). Najděte ve vlastnostech položku Text a změňte hodnotu z button1 na "Pozdrav". Když to potvrdíte enterem, na formuláři se tlačítko button1 změní na tlačítko Pozdrav. To je ale jen nápis na tlačítku, proto najděte ještě další vlastnost a to vlastnost (name). Tahle vlastnost je velmi důležitá, protože se na ni budeme odkazovat v zápisu kódu. Změňte ji z button1 na pozdrav (pozor na velké a malé písmena, název tlačítka je pozdrav s malým p).

 

Zase potvrdíme enterem a vrhneme se na textové pole. Zde změníme jen jméno, protože text je zadán uživatelem, či programem. Takže najděte zase vlastnost (name) a změňte ji na txtUvitani. Proč takhle? Správně by se měl každý prvek jmenovat způsobem [zkratka]Nazev. Náš prvek je Textbox, proto má zkratku txt a název je uvítání, proto je to txtUvitani. Zase pozor na velké a malé písmena. Náš program by zatím měl vypadat nějak takto.

 

 

 

Všimněte si dvou věcí. Zaprvé, mám aktivní tlačítko. Klepněte proto na své tlačítko také. A zadruhé, mám označený malý blesk v okně vlastností. Tento blesk přidává do programu procedury. Procedura je reakce, která se provede v závislosti na uživatelově akci. Např. pokud uživatel zmáčkne tlačítko, provede se procedura Click. Klepněte proto na ikonku blesku a vyberte proceduru click. Dvakrát klepněte na její jméno (jen jméno, tzn. 2x klepnout na Click) a Visual Studio vás "vyhodí" do textového režimu. Zde začínáme psát kód. Váš kód by měl vypadat takto:

 

 

Tento text vygenerovalo Visual Studio samo o sobě. Může se drobně lišit, např. v namespace, kde můžete mít jinou hodnotu. Vysvětlíme si kód po částech.
První část je část, kde jsou vyp sány příkazy začínající na using xy. Tyto příkazy importují knihovny, např. knihovnu System. Z těchto knihoven čerpáte funkce, procedury a objekty, se kterými pracujete. Např. "using System.Windows.Forms;" značí, že vytváříme formulářovou aplikaci, na které mohou být umístěny tlačítka a textová pole (mimo mnoho dalších samozřejmě).


Další část kódu vypisuje namespace a class form. Tím se nyní nebudeme zabývat, není to podstatné pro běh programu. Tuto část kódu si vysvětlíme později (zatím je to stále jen úvod). Zajímavá část kódu je ale private void pozdrav_Click(object sender, EventArgs e). To je procedura, kterou jsme přidali dvojtým klepnutím na proceduru Click. Syntaxí se zatím nezabývejte, i to si můžeme vysvětlit později. Klepněte však hned za první hranatou závorku, zmáčkněte enter a vepište následující příkaz:

 

Vysvětlíme si nyní příkaz, který jsme vepsali do procedury click tlačítka pozdrav. txtUvitani značí, že budeme něco dělat z textovým polem, jenž jsme nazvali txtUvitani. Další část příkazu, .Text značí, že budeme pracovat s vlastností Text prvku txtUvitani. Jak zjistíte vlastnosti prvku? Jednoduše, v návrhu designu aplikace v okne vlastností jsou vypsány všechny vlastnosti označeného prvku. Třetí část příkazu, rovná se, je přiřazovací příkaz. Značí, že této vlastnosti dáváme nějakou hodnotu. My tam chceme vepsat text Ahoj, Světe a proto tam napíšeme tento text. Je to ovšem text a proto musí být v uvozovkách. Příkaz ukončíme středníkem, což je klasické ukončování všech příkazů.
Tak, nyní máme program, jenž po zmáčknutí tlačítka vypisuje text "Ahoj, Světe". Nebylo to tak obtížné, že? Program spustíme klepnutím na tlačítko F5.

 

Domácí úkol

Za domácí úkol máte pozměnit aplikaci tak, aby obsahovala i druhé tlačítko. Pojmenujte jej jak chcete a text si vytvořte také jaký chcete. To tlačítko by mělo fungovat jako mazací tlačítko, čili při jeho zmáčknutí by měl z textového pole txtUvitani zmizet pozdrav "Ahoj, Světe". Není to vůbec těžké, napovím vám, že v příkaz bude velmi podobný tomu, který jsme už napsali, samozřejmě v procedůře jiného, vámi vytvořeného tlačítka. Pokud budete bezmocní, ptejte se v komentářích. Text vašeho úkolu můžete uvádět v komentářích (zatím je to pouze krátký program, takže je to možné).

 

 

Další články z této sekce...

ANKETA

Přejete si pokračování seriálu o programování v C#?

Ano
Ne

Celkem: 551 hlasů

V této anketě jste již hlasovali.

Buď jste v této anketě již hlasovali, nebo hlasoval někdo se stejnou IP adresou. Pokud chcete hlasovat, zaregistrujte se prosím.

SDÍLET

Hodnocení

OHODNOŤTE ČLÁNEK

Kliknutím na hvězdičku vložíte své hodnocení
Hodnotit mohou pouze přihlášení uživatelé. Děkujeme za Váš hlas.

BlogyProfil blogu
* Založen: 20.6.2007 12:45:07
* BlogRank: 1,55
* Přístupů: 118 950
* RSS: RSS zdroj
Redakce blogu

REDAKCE BLOGU

Celkem redaktorů: 1
Toplist