2. diel - Visual Studio a prvá konzolová aplikácia v C# .NET
V minulej lekcii, Úvod do C# a .NET Frameworku, sme si povedali niečo o jazyku ako takom a tiež sme pochopili, čo je to .NET Framework.
V dnešnom tutoriále sa zameriame hlavne na IDE Visual Studio. Ukážeme si, ako sa používa, a naprogramujeme si jednoduchú konzolovú aplikáciu.
IDE je skratka pre Integrated Development Environment (integrované vývojové prostredie) a jednoducho povedané sa jedná o aplikáciu, v ktorej píšeme zdrojový kód a pomocou ktorej potom našu aplikáciu testujeme a ladíme.
Začať musíme samozrejme tým, že si Visual Studio nainštalujeme. Pokiaľ študujete IT školu, je veľmi pravdepodobné, že máte cez MSDN prístup k ostrej verzii Visual Studio Enterprise zadarmo. Ak nie, nezúfajte, pretože Visual Studio (ďalej len VS) má edíciu Community, ktorá je úplne zadarmo, a to dokonca aj na komerčné účely. Aj tá vám bude dlho stačiť, pretože jej obmedzenia nie sú nijako veľké. Tu máte link na stiahnutie Visual Studio Community.
Inštalácia
Pokiaľ máte aspoň elementárne znalosti angličtiny, odporúčame VS nainštalovať v tomto jazyku. Keď budete pokročilí programátori, ušetrí vám to veľa nepríjemností. Ideálne by sa mal písať anglicky aj kód. Je na vás a vašich znalostiach angličtiny, ako vaše programy budete písať, ale výhodou anglického programu je samozrejme to, že ako veľmi pokročilí môžete diskutovať veľmi zložité problémy na medzinárodných fórach, kde sa vyskytujú experti na danú oblasť. U pokročilých vecí, ako sú databázy alebo webové aplikácie, treba vo VS nastaviť mnoho špecifických vecí, manuály v slovenčine nemusíte nájsť a potom len premýšľate, aký je asi preklad daného checkboxu. Angličtina je v programovaní štandardom. Slovenčina samozrejme teraz pre začiatok nie je žiadny problém a na vaše programy nemá žiadny vplyv, myslíme to skôr do budúcnosti.
Poďme sa teda dať do samotnej inštalácie. Inštalácia sa nás spýta na tzv. sady funkcií, ktoré chceme mať súčasťou VS. Zaškrtneme sadu .NET desktop development. Táto sada umožňuje vyvíjať ako konzolové, tak klasické okenné aplikácie:
Spolu s touto sadou sa nám taktiež nainštalujú najnovšie verzie .NET (Core) a .NET Framework. Konkrétne verzie a komponenty si možno vybrať v záložke Individual components. My si vystačíme s predvoleným výberom:
Ak sa rozhodnete pre používanie VS v angličtine, nezabudnite si ju zaškrtnúť v záložke Language packs:
Potvrdíme tlačidlom Install.
Je možné, že niektoré edície VS bude potrebné zaregistrovať, registrácia je zadarmo a obdržíte potom sériové číslo, ktoré vám umožňuje program zadarmo a legálne používať.
Zálohovanie a verzovanie
Programátor okrem IDE potrebuje aj nejaký nástroj, ktorý bude zálohovať a verzovať jeho prácu. Nemôžeme sa spoľahnúť na to, že program jednoducho budeme ukladať, pretože sme ľudia, a nie stroje. Ľudia robia chyby, a keď prídete o niekoľkodennú, alebo dokonca niekoľkotýždňovú prácu, môže to zabolieť. Je dobré naučiť sa na toto myslieť hneď od začiatku. Veľmi odporúčam program Dropbox, ktorý je extrémne jednoduchý a sám vaše súbory verzuje (teda zachováva zmeny v čase a je možné sa vrátiť k starším verziám projektu) a zároveň synchronizuje s webovým úložiskom. Aj keby ste si projekt omylom zmazali, prepísali, niekto vám ukradol notebook alebo vám skolaboval pevný disk, vaše dáta zostanú v bezpečí. Dropbox tiež umožňuje zdieľať jeden projekt medzi viacerými vývojármi. Viac o Dropboxe viď tento článok, ktorý obsahuje zároveň pozvánku do Dropboxu s 0,5 GB priestoru navyše.
Ako ďalší verziovací nástroj sa hojne používa Git, jeho nastavenie ale vydalo na samostatný kurz a Dropbox na naše účely bohato postačuje.
Vytvorenie projektu
Po spustení VS sa nám zobrazí nasledujúce okno, kde vyberieme Create a new project pre vytvorenie nového projektu:
Na ďalšej stránke si nájdeme Console app, vyberieme ju a pokračujeme stlačením Next:
Nejakú dobu zostaneme pri konzolových aplikáciách (príkazový riadok), pretože na ich obsluhu potrebujeme minimálne znalosti z objektového sveta, a sú teda ideálne na naučenie základov jazyka.
Ako meno aplikácie zvolíme FirstApplication
. Pri lokácii
vyberieme zložku C:\Users\your_name\Dropbox\Csharp
:
Po opätovnom kliknutí na Next sa dostaneme na stránku s výberom frameworku (implementácia .NET). Výber necháme na najnovšom možnom (v našom prípade .NET 8.0):
Vytvorenie projektu už len potvrdíme kliknutím na tlačidlo Create.
Ovládanie Visual Studia
Okno teraz vyzerá asi takto, my sme ho zmenšili, aby sa sem zmestilo:
Zaujímať nás bude najmä prostredné okno s otvoreným súborom
Program.cs
, do ktorého nám VS vygenerovalo jednoduchý zdrojový
kód:
Console.WriteLine("Hello, World!");
Vynechali sme tu prvý riadok textu. Ide o tzv. komentár, ktorý nám umožňuje do kódu písať rôzne poznámky. Tieto komentáre nemajú vplyv na funkčnosť programu, pretože sa vôbec nekompilujú do medzikódu. Tento konkrétny komentár nás odkazuje na oficiálnu dokumentáciu funkcionality C#, ktorú si vysvetlíme ďalej.
Kód bez príkazov najvyššej úrovne
Od .NET 6.0 je možné používať tzv. príkazy najvyššej úrovne, ktoré zjednodušujú kód. Bez nich by kód tej istej aplikácie, s ktorým sa tiež budete stretávať, vyzeral takto:
using System; namespace FirstApplication { internal class Program { static void Main(string[] args) { Console.WriteLine("Hello, World!"); } } }
Na prvý pohľad sa môže zdať, že ide o úplne iný kód. V skutočnosti ale oba kódy robia úplne to isté. Jediným rozdielom je, že VS generuje projekty od verzie .NET 6.0 s využitím tzv. príkazov najvyššej úrovne, ktoré boli pridané v C# 9. Táto funkcionalita nám umožňuje vynechať všetok kód, ktorý je v druhej ukážke kódu navyše oproti tomu nášmu. VS ho totiž vygeneruje automaticky za nás počas kompilácie do medzikódu. Pre nás je to vlastne výhoda, pretože niektoré časti sú na pochopenie pomerne zložité. Aj tak si ich však aspoň intuitívne vysvetlíme, keby ste náhodou pracovali so staršou verziou C# a .NET.
Prvý riadok nám hovorí, ktoré knižnice z .NET budeme využívať. Tu je
uvedená knižnica System
, bez nej by sme asi ťažko niečo
naprogramovali, pretože obsahuje napr. základné metódy pre prácu s
konzolou. Kľúčové slová namespace
a class
zatiaľ
nebudeme riešiť, uspokojíme sa s tým, že je to určitý spôsob, ako sa
aplikácie v C# štruktúrujú. Kľúčová je pre nás metóda
Main()
, medzi ktorej zložené zátvorky pod ňou (teda do jej
tela) sa píše kód. Main
je vyhradené slovo a C# vie, že má po
spustení aplikácie vykonať práve túto metódu (môže ich tam totiž byť
viac, ale o tom si povieme neskôr). Vlastne môžeme zatiaľ ignorovať úplne
všetko okrem tela metódy Main()
.
Aj v .NET 6.0 a novších projektoch je možné využívať
túto štruktúru s metódou Main()
. Na zjednodušenie sa tomu
však vyhneme. Všetok kód, ktorý zatiaľ budeme písať, sa nakoniec pri
kompilácii automaticky vloží do tela metódy Main()
.
Prvé spustenie aplikácie
Druhým dôležitým prvkom v okne pre nás bude zelené tlačidlo
Play s názvom aplikácie (FirstApplication
) v hornej
lište, ktoré program skompiluje a spustí. Môžeme si to skúsiť. Otvorí sa
nám konzola, do ktorej sa vypíše text Hello, World!
:
Konzolová aplikácia
Hello, World!
Spustenie môžeme vykonať aj klávesom F5. VS má veľmi dobre riešené klávesové skratky a tie pokročilejšie pripomínajú systém akordov. Keď ich budete poznať, práca vám pôjde rýchlejšie od ruky. Naľavo od tlačidla Play máme vybrané Debug. To znamená, že sa program bude kompilovať v Debug móde a bude obsahovať určité rutiny na výpis chýb. Tento mód sa používa najmä na testovanie programu (keď ho vyvíjame) a beh programu môže byť kvôli tomu o niečo pomalší. Akonáhle si budeme istí, že je program hotový, prepneme na Release a spustíme. Výsledkom bude vytvorenie a spustenie programu tak, ako ho možno šíriť medzi ľudí.
Adresárová štruktúra konzolovej aplikácie
Teraz sa pozrieme, ako vyzerá naša aplikácia na disku. Otvoríme si
zložku s aplikáciou, teda
C:\Users\your_name\Dropbox\Csharp\FirstApplication\
. Nájdeme v nej
súbor FirstApplication.sln
, ktorý zastupuje tzv.
solution Visual Studia. Solution (riešenie) je súbor
projektov a môže teda obsahovať viac aplikácií. V praxi sa to využíva
napr. vo viacvrstvových aplikáciách alebo pri testovaní, pre nás je
zaujímavé len to, že práve cez tento súbor budeme naše aplikácie
následne otvárať. Nachádza sa tu tiež zložka
FirstApplication/
, v ktorej už sídli náš projekt. Otvorme si
ju.
Súbor FirstApplication.csproj
obsahuje súbor nášho projektu,
aj cez neho je možné našu aplikáciu otvoriť. Program.cs
obsahuje samotný zdrojový kód. Zaujímať nás bude ešte zložka
bin/
, ktorej názov napovedá, že obsahuje binárny (strojový)
kód našej aplikácie. Otvoríme ju.
Vidíme, že obsahuje podpriečinky Debug/
a
Release/
. V nich sú potom samotné .exe
súbory našej aplikácie (pokiaľ sme ju samozrejme aspoň raz
spustili v tejto konfigurácii). Pokiaľ sa budete chcieť so svojimi
aplikáciami niekomu pochváliť, .exe
súbor v priečinku
Release/
je práve to, čo im pošlete. Ďalších súborov si
nemusíte všímať.
Hello world
Je zarytým zvykom, že prvým programom v nejakom novom jazyku býva tzv. Hello world. Ide o program, ktorý akýmkoľvek spôsobom užívateľovi zobrazí hlášku "Hello world", prípadne nejaký podobný text. Takýto program nám VS vlastne už vygenerovalo. Vysvetlíme si ho a trochu upravíme. Budeme pracovať s dvoma príkazmi (pozn. výraz príkazy používame kvôli zjednodušeniu): s jedným na zobrazenie textu a ďalším na vyčkanie na stlačenie ľubovoľného klávesu, aby program hneď neskončil.
Na výpis textu slúži:
Console.WriteLine("Text");
A na počkanie na kláves:
Console.ReadKey();
Console
je tzv. trieda. Pojmom trieda budeme
zatiaľ chápať súbor nejakých príkazov. Príkazom sa v C# hovorí metódy.
Console
teda obsahuje metódy na obsluhu konzoly. Voláme na ňu
metódu WriteLine()
, ktorá vypíše text. Vidíme, že metódu na
triede voláme pomocou operátora bodka (.
). Každá metóda môže
obsahovať nejaké vstupné parametre, ktoré sa zadávajú do zátvorky a sú
oddelené čiarkou. V prípade metódy WriteLine()
je parametrom
text na vypísanie. Textu budeme hovoriť textový reťazec alebo len reťazec
(anglicky string) a budeme ho písať do úvodzoviek, aby tomu C# rozumel a
nezamieňal ho s inými príkazmi:
Opäť pripomenieme, že pri projektoch starších ako .NET 6.0
píšeme príkazy do tela metódy Main()
.
Úvodzovky sú na slovenskej klávesnici na rovnakom klávese ako ô, ale píšeme ich so Shift:
Metóda ReadKey()
nemá žiadne parametre, napriek tomu však za
jej názov musíme napísať zátvorku, ktorá je v C# povinná. Príkazy
píšeme na samostatné riadky a za každý píšeme bodkočiarku
(;
).
Ak neviete, kde je na klávesnici ;
, tak ho
nájdete pod klávesou Esc:
Náš kód teda bude teraz vyzerať nejako takto:
using System;
namespace OnlineApp
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello ICTdemy!");
Console.ReadKey();
}
}
}
Program spustíme pomocou klávesy F5.
Konzolová aplikácia
Hello ICTdemy!
Gratulujeme, práve ste sa stali programátorom
Na záver ešte drobná vychytávka. Skúste si vo svojom Visual
Studiu napísať na nový riadok cw
a potom dvakrát stlačiť
Tabuľátor. Vypíše sa vám celý príkaz:
Console.WriteLine();
. Tomuto kúzlu sa hovorí snippet a
počas kurzu si spomenieme ďalšie podobné užitočné skratky.
Dnešný projekt je priložený ako súbor na konci článku. Výsledky budú vždy priložené na stiahnutie aj u ďalších C# tutoriálov. Odporúčame vám však vytvoriť si projekt najskôr pomocou tutoriálu a na stiahnutie sa uchýliť len v prípade, keď vám niečo nepôjde. Pokiaľ program iba hneď stiahnete, nič sa nenaučíte
To bude pre dnešok všetko, v budúcej lekcii, Premenné, typový systém a parsovanie v C# .NET, sa pozrieme na základné dátové typy a vytvoríme si jednoduchú kalkulačku.
Mal si s čímkoľvek problém? Stiahni si vzorovú aplikáciu nižšie a porovnaj ju so svojím projektom, chybu tak ľahko nájdeš.
Stiahnuť
Stiahnutím nasledujúceho súboru súhlasíš s licenčnými podmienkami
Stiahnuté 8x (399.34 kB)
Aplikácia je vrátane zdrojových kódov v jazyku C#