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 pro 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 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 daného 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 do samotné instalace. 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:
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:
Jestliže se rozhodnete pro používání VS v angličtině, nezapomeňte si ji zaškrtnout v záložce 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í
Programátor kromě IDE potřebuje také 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, někdo vám ukradl 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:
Na další stránce si najdeme konzolovou aplikaci, vybereme ji a pokračujeme stisknutím Next:
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
:
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 našem případě .NET 6.0):
Vytvoření projektu už jen potvrdíme kliknutím na tlačítko Create.
Ovládání Visual Studia
Okno nyní vypadá asi takto, my jsem jej zmenšili, aby se sem vešlo
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!");
Vynechali jsme 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éže aplikace, s ní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ě totéž. 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ýhoda, 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á, které 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á je pro nás metoda Main()
,
mezi jejíž 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 totiž být více, ale o tom si
povíme později). Vlastně můžeme zatím ignorovat úplně vše vyjma těla
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ávesou F5. VS má velmi dobře řešené klávesové zkratky 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 jistí, ž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
Nyní se podíváme, 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
následně 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 zažitým zvykem, že prvním programem v nějakém novém jazyce bývá tzv. Hello world. Jedná se o program, který jakýmkoliv 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áme kvůli zjednodušení): s jedním k zobrazení textu a dalším 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řipomeneme, ž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:
Metoda ReadKey()
nemá žádné parametry, přesto však za
její název musíme napsat závorku, která 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 ho
naleznete pod klávesou Esc:
Náš kód tedy bude nyní vypadat nějak takto:
using System;
namespace OnlineApp
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello ITnetwork!");
Console.ReadKey();
}
}
}
Program spustíme pomocí klávesy F5.
Konzolová aplikace
Hello ITnetwork!
Gratulujeme, 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. Výsledky budou vždy přiloženy ke stažení také u dalších C# tutoriálů. Doporučujeme vám však vytvořit si projekt nejprve pomocí tutoriálu a ke stažení se uchýlit jen v případě, když vám něco nepůjde. Pokud program pouze hned 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 3750x (36.76 kB)
Aplikace je včetně zdrojových kódů v jazyce C#