Pouze tento týden sleva až 80 % na e-learning týkající se C# .NET. Zároveň využij akci až 30 % zdarma při nákupu e-learningu - Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Lekce 2 - Visual Studio a první konzolová aplikace v C# .NET

V minulé lekci, Úvod do C# a .NET frameworku, jsme si řekli něco o jazyce jako takovém a také jsme pochopili, co je to .NET framework.

V dnešním tutoriálu se zaměříme hlavně na IDE Visual Studio. Ukážeme si, jak se používá a naprogramujeme si jednoduchou konzolovou aplikaci.

IDE je zkratka Integrated Development Environment (integrované vývojové prostředí) a jednoduše řečeno se jedná o aplikaci, ve které píšeme zdrojový kód a pomocí které potom naši aplikaci testujeme a ladíme.

Začít musíme samozřejmě tím, že si Visual Studio nainstalujeme. Pokud studujete IT školu, je velmi pravděpodobné, že máte přes MSDN přístup k ostré verzi Visual Studio Enterprise zdarma. Pokud ne, nezoufejte, protože Visual Studio (dále jen VS) má edici Community, která je zcela zdarma a to dokonce i pro komerční účely. I ta vám bude dlouho stačit, protože její omezení nejsou nijak velká. Zde máte link ke stažení Visual Studio Community.

Instalace

Pokud máte alespoň elementární znalosti angličtiny, doporučujeme VS nainstalovat v tomto jazyce. Až budete pokročilí programátoři, ušetří vám to spoustu nepříjemností. Ideálně by se měl psát anglicky i kód, ale pro názornost budeme v celém kurzu a i v některých ukázkových programech používat české identifikátory. Je na vás a vašich znalostech angličtiny jak vaše programy budete psát. Výhodou anglického programu je samozřejmě to, že jako velmi pokročilí můžete diskutovat velmi složité problémy na mezinárodních fórech, kde se vyskytují experti na danou oblast. U pokročilých věcí jako jsou databáze nebo web. aplikace je třeba ve VS nastavit mnoho specifických věcí, manuály v češtině nemusíte najít a pak jen přemýšlíte, jaký je asi překlad tohoto checkboxu. Angličtina je v programování standardem. Čeština samozřejmě teď pro začátek není žádný problém a na vaše programy nemá žádný vliv, myslíme to spíše do budoucna.

Pojďme se tedy dát na samotnou instalaci. Instalace se nás zeptá na tzv. sady funkcí, které chceme mít součástí VS. Zaškrtneme sadu "Vývoj desktopových aplikací pomocí .NET". Tato sada umožňuje vyvíjet jak konzolové, tak klasické okenní aplikace:

Instalace Visual Studio pro desktopový vývoj

Spolu s touto sadou se nám také nainstalují nejnovější verze .NET (Core) a .NET Framework. Konkrétní verze a komponenty si lze vybrat v záložce Jednotlivé komponenty. My si vystačíme s výchozím výběrem:

Jednotlivé komponenty

Jestliže se rozhodnete pro používání VS v angličtině, tak si ji nezapomeňte zaškrtnout v záložce Jazykové sady:

Jazykové sady

Potvrdíme tlačítkem Instalovat.

Je možné, že některé edice VS bude třeba zaregistrovat, registrace je zdarma a obdržíte poté sériové číslo, které vám umožňuje program zdarma a legálně používat.

Zálohování a verzování

Kromě IDE programátor potřebuje nějaký nástroj, který bude zálohovat a verzovat jeho práci. Nemůžeme se spolehnout na to, že program prostě budeme ukládat, protože jsme lidé a ne stroje. Lidé dělají chyby a když přijdete o několikadenní nebo dokonce několikatýdenní práci, může to zabolet. Je dobré naučit se na toto myslet hned od začátku. Velmi doporučuji program Dropbox, který je extrémně jednoduchý a sám vaše soubory verzuje (tedy zachovává změny v čase a je možné se vrátit ke starším verzím projektu) a zároveň synchronizuje s webovým úložištěm, i kdyby jste si projekt omylem smazali, přepsali, ukradli vám notebook nebo vám zkolaboval pevný disk, vaše data zůstanou v bezpečí. Dropbox také umožňuje sdílet jeden projekt mezi více vývojáři. Více o Dropboxu viz tento článek, který obsahuje zároveň pozvánku do DropBoxu s 0,5 GB prostoru navíc.

Jako další verzovací nástroj se hojně používá GIT, jeho nastavení ale vydalo na samostatný kurz a Dropbox pro naše účely bohatě postačuje.

Vytvoření projektu

Po spuštění VS se nám zobrazí následující okno, kde vybereme Create a new project pro vytvoření nového projektu:

Úvodní dialog Visual Studio
Tento výukový obsah pomáhají rozvíjet následující firmy, které dost možná hledají právě tebe!

Na další stránce si najdeme konzolovou aplikaci, vybereme ji a pokračujeme stisknutím Next:

Visual Studio – Create a new project

Nějakou dobu zůstaneme u konzolových aplikací (příkazová řádka), protože k jejich obsluze potřebujeme minimální znalosti z objektového světa a jsou tedy ideální k naučení základů jazyka.

Jako jméno aplikace zvolíme PrvniAplikace. U lokace vybereme složku C:\Users\vase_jmeno\Dropbox\Csharp:

Visual Studio – Configure your new project

Po opětovném kliknutí na Next se dostaneme na stránku s výběrem frameworku (implementace .NET). Výběr necháme na nejnovějším možném (v mém případě .NET 6.0):

Visual Studio – Additional information

Vytvoření projektu už jen potvrdíme kliknutím na tlačítko Create.

Ovládání Visual Studia

Okno nyní vypadá asi takto, já jsem jej zmenšil, aby se sem vešlo :)

Okno Visual Studia

Zajímat nás bude zejména prostřední okno s otevřeným souborem Program.cs, do kterého nám VS vygenerovalo jednoduchý zdrojový kód:

Console.WriteLine("Hello, World!");

Vynechal jsem zde první řádek textu. Jedná se o tzv. komentář, který nám umožňuje do kódu psát různé poznámky. Tyto komentáře nemají vliv na funkčnost programu, protože se vůbec nekompilují do mezikódu. Tento konkrétní komentář nás odkazuje na oficiální dokumentaci funkcionality C#, kterou si vysvětlíme dále.

Kód bez příkazů nejvyšší úrovně

Od .NET 6.0 je možné používat tzv. příkazy nejvyšší úrovně, které zjednodušují kód. Bez nich by kód té samé aplikace, se kterým se také budete setkávat, vypadal takto:

using System;

namespace PrvniAplikace
{
    internal class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Hello, World!");
        }
    }
}

Na první pohled se může zdát, že se jedná o zcela jiný kód. Ve skutečnosti ale oba kódy dělají úplně to samé. Jediným rozdílem je, že VS generuje projekty od verze .NET 6.0 s využitím tzv. příkazů nejvyšší úrovně, které byly přidány v C# 9. Tato funkcionalita nám umožňuje vynechat všechen kód, který je ve druhé ukázce kódu navíc oproti tomu našemu. VS jej totiž vygeneruje automaticky za nás během kompilace do mezikódu. Pro nás je to vlastně výhodou, jelikož některé části jsou na pochopení poměrně složité. I tak si je však alespoň intuitivně vysvětlíme, kdybyste náhodou pracovali se starší verzí C# a .NET.

První řádek nám říká, jaké knihovny z .NET budeme využívat. Zde je uvedena knihovna System, bez ní bychom asi těžko něco naprogramovali, protože obsahuje např. základní metody pro práci s konzolí. Klíčová slova namespace a class zatím nebudeme řešit, spokojíme se s tím, že je to určitý způsob, jak se aplikace v C# strukturují. Klíčová pro nás je metoda Main(), mezi ty složené závorky pod ní (tedy do jejího těla) se píše kód. Main je vyhrazené slovo a C# ví, že má po spuštění aplikace vykonat právě tuto metodu (může jich tam být totiž více, ale o tom opět později). Vlastně můžeme zatím ignorovat úplně vše až na tělo metody Main().

I v .NET 6.0 a novějších projektech je možné využívat tuto strukturu s metodou Main(). Pro zjednodušení se tomu však vyhneme. Všechen kód, který zatím budeme psát, se nakonec při kompilaci automaticky vloží do těla metody Main().

První spuštění aplikace

Druhým důležitým prvkem v okně pro nás bude zelené tlačítko Play s názvem aplikace (PrvniAplikace) v horní liště, které program zkompiluje a spustí. Můžeme si to zkusit. Otevře se nám konzole, do které se vypíše text Hello, World!:

Konzolová aplikace
Hello, World!

Spuštění můžeme provést též klávesovou zkratkou F5. Klávesové zkratky má VS velmi dobře řešené a ty pokročilejší připomínají systém akordů, když je budete znát, práce vám půjde rychleji od ruky. Nalevo od tlačítka Play máme vybráno Debug. To znamená, že se program bude kompilovat v Debug módu a bude obsahovat určité rutiny k výpisu chyb. Tento mód se používá zejména pro testování programu (když ho vyvíjíme) a běh programu může být kvůli tomu o něco pomalejší. Jakmile si budeme jisti, že je program hotový, přepneme na Release a spustíme. Výsledkem bude vytvoření a spuštění programu tak, jak je ho možné šířit mezi lidi.

Adresářová struktura konzolové aplikace

Podíváme se, jak vypadá naše aplikace na disku. Otevřeme si složku s aplikací, tedy C:\Users\vase_jmeno\Dropbox\Csharp\PrvniAplikace\. Nalezneme v ní soubor PrvniAplikace.sln, který zastupuje tzv. solution Visual Studia. Solution (řešení) je soubor projektů a může tedy obsahovat více aplikací. V praxi se toho využívá např. ve vícevrstvých aplikacích nebo při testování, pro nás je zajímavé jen to, že právě přes tento soubor budeme naše aplikace potom otevírat. Nalézá se zde také složka PrvniAplikace/, ve které již sídlí náš projekt. Otevřeme si ji.

Soubor PrvniAplikace.csproj obsahuje soubor našeho projektu, i přes něj lze naši aplikaci otevřít. Program.cs obsahuje samotný zdrojový kód. Zajímat nás bude ještě složka bin/, jejíž název napovídá, že obsahuje binární (strojový) kód naší aplikace. Otevřeme ji.

Vidíme, že obsahuje podsložky Debug/ a Release/. V nich jsou poté samotné exe soubory naší aplikace (pokud jsme ji samozřejmě alespoň jednou spustili v této konfiguraci). Pokud se budete chtít se svými aplikacemi někomu pochlubit, exe soubor ve složce Release/ je právě to, co jim pošlete. Dalších souborů si nemusíte všímat.

Hello world

Je zarytým zvykem, že prvním programem v nějakém novém jazyce bývá tzv. Hello world. Jedná se o program, který jakýmkoli způsobem uživateli zobrazí hlášku "Hello world", případně nějaký podobný text. Takový program nám VS vlastně již vygenerovalo. Vysvětlíme si jej a trochu upravíme. Budeme pracovat se dvěma příkazy (pozn. výraz příkazy používám kvůli zjednodušení), jeden k zobrazení textu a další k vyčkání na stisk libovolné klávesy, aby program hned neskončil.

K výpisu textu slouží:

Console.WriteLine("Text");

A k vyčkání na klávesu:

Console.ReadKey();

Console je tzv. třída. Pojmem třída budeme zatím chápat soubor nějakých příkazů, příkazům se v C# říká metody. Console tedy obsahuje metody k obsluze konzole. Voláme na ni metodu WriteLine(), která vypíše text. Vidíme, že metodu na třídě voláme pomocí operátoru tečka (.). Každá metoda může obsahovat nějaké vstupní parametry, které se zadávají do závorky a jsou oddělené čárkou. V případě metody WriteLine() je parametrem text k vypsání. Textu budeme říkat textový řetězec nebo jen řetězec (anglicky string) a budeme ho psát do uvozovek, aby tomu C# rozuměl a nezaměňoval ho s jinými příkazy.

Opět připomenu, že u projektů starších než .NET 6.0 píšeme příkazy do těla metody Main().

Uvozovky jsou na české klávesnici na stejné klávese jako ů, ale píšeme je se Shift:

Uvozovky

Metoda ReadKey() nemá žádné parametry, přesto však za její název musíme napsat závorku, ta je v C# povinná. Příkazy píšeme na samostatné řádky a za každý píšeme středník (;).

Pokud nevíte, kde je na klávesnici ;, tak pod Esc:

Středník

Náš kód tedy bude nyní vypadat nějak takto:

Console.WriteLine("Hello ITnetwork!");
Console.ReadKey();

Program spustíme pomocí klávesy F5.

Konzolová aplikace
Hello ITnetwork!

Gratuluji, právě jste se stali programátorem :)

Závěrem ještě drobná vychytávka. Zkuste si ve svém Visual Studiu napsat na novou řádku cw a pak dvakrát stisknout Tabulátor. Vypíše se vám celý příkaz: Console.WriteLine();. Tomuto kouzlu se říká snippet a během kurzu si zmíníme další podobné užitečné zkratky.

Dnešní projekt je přiložen jako soubor na konci článku, i u dalších C# tutoriálů budu vždy výsledek přikládat ke stažení. Doporučuji si ale nejprve projekt vytvořit pomocí tutoriálu a ke stažení se uchýlit jen v případě, když vám něco nepůjde. Pokud program hned jen stáhnete, nic se nenaučíte :)

To bude pro dnešek vše, v příští lekci, Proměnné, typový systém a parsování v C# .NET, se podíváme na základní datové typy a vytvoříme si jednoduchou kalkulačku.


 

Měl jsi s čímkoli problém? Stáhni si vzorovou aplikaci níže a porovnej ji se svým projektem, chybu tak snadno najdeš.

Stáhnout

Stažením následujícího souboru souhlasíš s licenčními podmínkami

Staženo 3321x (36.76 kB)
Aplikace je včetně zdrojových kódů v jazyce C#

 

Předchozí článek
Úvod do C# a .NET frameworku
Všechny články v sekci
Základní konstrukce jazyka C# .NET
Přeskočit článek
(nedoporučujeme)
Proměnné, typový systém a parsování v C# .NET
Článek pro vás napsal David Čápka
Avatar
Uživatelské hodnocení:
704 hlasů
David je zakladatelem ITnetwork a programování se profesionálně věnuje 13 let. Má rád Nirvanu, sushi a svobodu podnikání.
Unicorn university David se informační technologie naučil na Unicorn University - prestižní soukromé vysoké škole IT a ekonomie.
Aktivity

 

 

Komentáře
Zobrazit starší komentáře (200)

Avatar
Roman Smolas Vlašic:8. února 14:51

Jak Psal Albert - chtělo by to upgrade... ale jinak to fičí... ;)

 
Odpovědět
8. února 14:51
Avatar
Roman Smolas Vlašic:8. února 14:59

Chtělo by to upgrade na Framework 6 ... nakonec se to povedlo...

 
Odpovědět
8. února 14:59
Avatar
David Toman
Člen
Avatar
David Toman:14. února 17:02

Měl bych dotaz, verze VS pro MAC OS vs. WIN budu hodně mimo v případě programování na platformě MAC OS X?

 
Odpovědět
14. února 17:02
Avatar
Rostislav Mikolaš:15. února 9:30

Ahoj, pochopil jsem, že ve VS 2022 je implicitně nainstalován .NET 6.0 a že pro zobrazení základní kostry programu bych měl nainstalovat nějakou nižší verzi .NET Frameworku ale nevyznám se v pojmech ani ve verzích. Nevím co je Targeting Pack ani SDK a jaký je rozdíl mezi .NET6.0 Runtime (LST) a Modul runtime .NET 5.0. Citovaná verze .NET 4.5 k instalaci dostupná zřejmě již není. Nechci v instalaci vytvořit guláš a tak bych se chtěl zeptat, kterou ver .NET mám přesně nainstalovat abych měl prostředí stejné jako je v ukázkách a zda je to nutné pro zdárný průběh dalších lekcí. Díky za radu.

 
Odpovědět
15. února 9:30
Avatar
Iveta Janíková:22. února 11:53

Mám stejný problém jako Rosťa. Sice Michal radí v Installeru změnit jednotlivé komponenty na modul runtime NET 5.0, ale hlásí mi to pak chyby a nehnu se z místa. Jako Rosťa jsem programováním "nepolíbená", takže je to pro mě jako začátečníka už od začátku dost složité. Chtělo by to upgrade článku na verzi NET 6.0 , jinak jsem takříkajíc "v pasti" a nehnu se dál. Díky za případné rady.

 
Odpovědět
22. února 11:53
Tento výukový obsah pomáhají rozvíjet následující firmy, které dost možná hledají právě tebe!
Avatar
r0man.sindler:24. února 19:37

Srozumitelně napsáno, jen by to chtělo aktualizovat i pro framework .net6 , ale to bylo už v názorech zmíněno:)

 
Odpovědět
24. února 19:37
Avatar
Milan Drobek
Člen
Avatar
Milan Drobek:15. května 18:21

Proč se nejde můj exe soubor spustit samostatně (bez ostatních souborů ve složce) a u zdrojového příkladu to jde?

 
Odpovědět
15. května 18:21
Avatar
Werner Yuyong:15. června 3:11

Ahoj,
diky za aktualizaci na nejnovejsi verzi .NET 6.0

 
Odpovědět
15. června 3:11
Avatar
Pavel Falta
Člen
Avatar
Pavel Falta:21. června 23:01

Pro mě normálně napsáno. Nenarazil sem na jediný problém. Jediné co, tak mi to na konci ještě vždy vyhodí adresu, proces a hláška o zavření okna.

 
Odpovědět
21. června 23:01
Avatar
Vojtěch Franc:29. července 8:05

Funguje super, jen se aplikace automaticky uložila jinam, než tutorial popisoval. Stačilo si ale přečíst, co se po spuštění vypíše na konzoli a hned bylo jasno 😉

 
Odpovědět
29. července 8:05
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.

Zobrazeno 10 zpráv z 210. Zobrazit vše