|
Začátečník |
Pokročilý |
Profesionál |
|||||
|
|
|
||||||
Úvod
do světa .NET /2. díl Moderní technologie
vývoje softwaru |
||||||||
|
|
Budete potřebovat
přibližně 45 minut |
|
Operační systém
použitý v příspěvku: Windows XP Vývojové nástroje:
Visual Basic .NET |
||||
|
Vážení čtenáři,
hlavní náplní druhé části seriálu bude představení pracovního prostředí aplikace Visual Basic .NET, ovšem ještě před tím si povíme pár slov o dynamickém managementu paměti, jenž zabezpečuje .NET Framework prostřednictvím Garbage Collection (GC).
Představení Garbage
Collection
V minulém dílu jsme si pověděli, co je to zásobník a hromada a rovněž jsme si ukázali, jak je to s použitím hodnotových a referenčních proměnných. Jak už víte, objekty jsou v paměti ukládány na hromadu (heap). Po každém úspěšném pokusu o vytvoření objektu je pro tento objekt alokován jistý prostor v paměti počítače. Jednoduše řečeno, objekt existuje tak dlouho, dokud na něj „ukazuje“ některá proměnná referenčního typu. Garbage Collection permanentně sleduje vytvořený objekt a rovněž tak i reference, které jsou na tento objekt „navázány“. Ve většině svého „životního cyklu“ působí Garbage Collection jako vlákno s nízkou prioritou. Ovšem v případě, že se dostaví nedostatek paměti, je priorita vlákna zvýšena a GC začne vykonávat svou práci tím, že odstraní z paměti nepotřebné elementy. Pokud GC splní svou úlohu (zabezpečí maximalizaci paměťového prostoru), je opět „přepnut“ do módu s nízkou prioritou. Garbage Collection si můžete představit jako inteligentní paměťovou „policii“, která neustále sleduje zákoutí paměti a hledá nepotřebné objekty, které následně zlikviduje. Princip práce GC je zjednodušeně zachycen na obr. 1.
Obr. 1 – Schematické zobrazení činnosti Garbage
Collection
Popišme si nyní jednotlivé části obrázku podrobněji. V prvním kroku jsou znázorněny dvě referenční proměnné, pomocí kterých lze přistupovat k objektu, jenž je uložen na hromadě. Předpokládejme, že v dalším kroku dojde k likvidaci referenčních proměnných (proměnné se dostanou „mimo“ svého oboru platnosti). V tomto okamžiku nastane „prolomení“ objektových referencí. Připomenu, že celou vzniklou situaci sleduje Garbage Collection, který následně podrobí destrukci i samotný objekt (třetí krok). Přibližně takto by jsme mohli ve zkratce objasnit využití služeb správy paměti pomocí Garbage Collection.
Pro samotného programátora představuje existence Garbage Collection jasnou výhodu v tom, že již může hodit za hlavu všechny starosti s explicitním odstraňováním objektů z paměti. GC se sám postará o to, aby byla správa paměti opravdu bezpečná. Na druhé straně, i když si můžeme být jisti skutečností, že nepotřebné objekty budou z paměti odstraněny a paměť tak uvolněna, nevíme s určitostí povědět, kdy k této likvidaci objektů dojde. Garbage Collection tedy nepracuje s tzv. deterministickou finalizací, při které vždy programátor vydá pokyn na likvidaci objektu v přesném časovém okamžiku. I tento problém se ovšem dá vyřešit tím, že zavoláme specifickou metodu Dispose, aby jsme přinutili GC k okamžité reakci.
Charakteristika pracovního prostředí VB .NET
Spustíte-li Visual Basic .NET a vytvoříte nový projekt typu Windows Application, můžete se střetnout s podobnou strukturou pracovního prostředí aplikace, jaká je zobrazena na obr. 2. Pokud podržíte tlačítko myši na některé z číselných značek v obrázku, uvidíte popis této číselné značky. Po klepnutí na číselnou značku se přímo zobrazí další informace o vybrané sekci.
Obr. 2 – Ukázka integrovaného vývojového prostředí (IDE)
Visual Basicu .NET
Je možné, že jako začínajícímu, nebo mírně pokročilému uživateli, se vám může zdát vývojové prostředí poněkud „přeplněné“. Ano, máte pravdu. Visual Basic .NET je ve srovnání se svým starším bratříčkem daleko víc propracovanější a robustnější. Pojďme si tedy povědět pár informací o jednotlivých částech vývojového prostředí, jak jsou znázorněny na obr. 2.
Část 1: Titulní pruh okna aplikace a pruh s hlavními nabídkami
aplikace
V titulním pruhu jsou obsaženy informace o právě otevřeném projektu; jde o název projektu a jeho stav. Domnívám se, že bude vhodné, když pojem „stav“ blíže vysvětlím. Projekt Visual Basicu se může v zásadě nacházet ve dvou stavech nebo režimech:
Při režimu návrhu aplikace pracuje programátor se samotnou aplikací, např. upravuje parametry hlavního okna aplikace, píše programový kód atd. Režim návrhu aplikace lze přirovnat k opravě automobilu. Podobně, jak se servisní technik stará o svěřený automobil, tak i programátor pečuje o svou aplikaci.
Při běhu aplikace je prováděn programový kód aplikace. V tomto režimu je aplikace spuštěna a programátor s ní manipuluje stejným způsobem jako finální uživatel. Pokud budeme chtít rozvinout předchozí analogii s automobilem, režim běhu aplikace můžeme přirovnat k procesu jízdy automobilu, tedy pohybu automobilu po určené trajektorii.
Pod titulním pruhem aplikace se nachází pruh s hlavními nabídkami. Ve Visual Basicu .NET se můžete střetnout s těmito typy základních nabídek:
·
File
Nabídka obsahuje velké množství standardních příkazů, které můžete znát i z jiných softwarových aplikací. Jsou zde příkazy pro založení nového projektu, otevření stávajícího projektu, uložení projektu a všech jeho součástí, seznam posledně otevřených projektů a souborů a mnohé další.
·
Edit
Nabídka sdružuje příkazy pro práci s textem, případně jinými objekty. Nacházejí se zde příkazy pro vyjmutí, kopírování, vkládání, výběr, dále příkazy pro hledání a záměnu a podobně.
·
View
Pomocí příkazu v této nabídce můžete zviditelnit okno pro zápis kódu či okno pro návrh vzhledu formuláře. Nabídka obsahuje také příkazy pro zobrazení mnohých dalších panelů nástrojů či speciálních oken, jako např. Průzkumníka řešení (Solution Explorer), nebo okno se seznamem dostupných vlastností pro různé objekty (Properties Window).
·
Project
Všechny příkazy, které se vážou k právě otevřenému projektu tvoří čtvrtou nabídku. Prostřednictvím dostupných příkazů můžete do projektu přidávat nové, nebo již existující programové součásti, dále moduly, třídy, komponenty a odkazy na další externí součásti.
·
Build
Nabídka Build pozůstává z příkazů pro sestavení aplikace a vygenerování spustitelného souboru (assembly).
·
Debug
V okamžicích, kdy budete pilně odstraňovat veškeré chyby z vaší aplikace, jistě využijete možností, které vám poskytuje nabídka Debug. Přidružené příkazy vám dovolí převzít chod aplikace „do svých rukou“. Můžete využívat např. krokování programu či umísťování zarážek na požadovaná místa.
·
Tools
V této nabídce je umístěna velice důležitá položka Options, která vám umožňuje upravit si vzhled a chování aplikace k obrazu svému. Kromě ní se v nabídce nachází příkazy spouštějící externí vývojové nástroje.
Slouží pro práci s jednotlivými okny aplikace.
Obsahem poslední nabídky jsou položky pro zobrazení nápovědy, „zavolání“ technické podpory či zobrazení informací o verzi aplikace.
|
K základním nabídkám jsou v případě potřeby přidány ještě
dodatečné nabídky. Např. při práci s formuláři se k standardním
nabídkám přidají další dvě, a to Data a Format. |
Část 2: Panely nástrojů
Panely nástrojů jsou tvořeny soustavou tlačítek s rozličnými ikonami, které v značné míře urychlují práci a orientaci v pracovním prostředí aplikace. Kromě základních panelů nástrojů můžete zobrazit také další, které budete chtít „mít na očích“. Panely obdržely i jistou dávku inteligence, a tudíž vám umožní shlédnout jejich obsah i v případě, že prostor pro panel je menší než jeho rozsah. Tehdy se při pravém okraji panelu zobrazí dvojitá šipka, která po aktivaci nabídne seznam těch položek panelu, které nebylo doposud vidět (obr. 3).
Obr. 3 – Inteligentní panel
nástrojů
Část 3: Souprava nástrojů (Toolbox)
Souprava nástrojů v ucelené formě uvádí všechny dostupné ovládací prvky, které můžete ve většině případů umístit na formulář a dále s nimi pracovat. Její podobu lze vidět na obr. 4.
Obr. 4 – Souprava nástrojů aplikace Visual Basic .NET
Souprava nástrojů obsahuje skutečně velké množství ovládacích prvků, které můžete použít ve vašich aplikacích. S mnohými prvky se obeznámíme v dalších částích tohoto seriálu. Instance, neboli kopie těchto ovládacích prvků se zpravidla umísťují na formulář, případně na tzv. podnos komponent.
Část 4: Formulář
Formulář je základní vizuální jednotkou aplikace ve Visual Basicu .NET. Po technické stránce jde o standardní okno obdélníkového tvaru, které disponuje všemi potřebnými elementy: systémovou nabídkou, titulkovým pruhem, tlačítky pro minimalizaci, maximalizaci a uzavření okna, dále aktivní plochou a okrajem. Podobu formuláře můžete vidět na obr. 5.
Obr. 5 - Formulář
Nachází-li se vaše aplikace v režimu návrhu, můžete při okrajích formuláře spatřit malé čtverce, které vám umožňují měnit velikost jednotlivých stran formuláře. Pokud budete chtít změnit horizontální nebo vertikální velikost formuláře, ukažte myší na tyto speciální „kotvící“ značky a tažením je přemístěte do požadované pozice.
Visual Basic je velice dobře proslulý tím, že umožňoval vývojářům velmi lehce vytvářet formuláře a umísťovat na ně instance příslušných ovládacích prvků. Tuto myšlenku lze považovat za základní kámen filosofie vizuálního programování. Ještě jednodušeji řečeno, pokud chtěl programátor přidat na formulář některý z ovládacích prvků, prostě jej „namaloval“ na formulář a bylo. Pokud jste zatím nikdy neměli tu čest pracovat s vizuálním návrhem formulářů, zde je postup, jak umístit na formulář instanci ovládacího prvku Button (tlačítko):
Uvedený proces lze pozorovat na obr. 6.
Obr. 6 – Postup přidání
instance ovládacího prvku Button na
formulář
|
Všimněte si, že po vybrání ovládacího prvku Button ze soupravy
nástrojů se změní kurzor myši na křížek s ikonou právě vybraného
ovládacího prvku. V našem příkladě vypadá kurzor myši takto: Visual Basic vás i tímto způsobem informuje o typu ovládacího prvku,
se kterým právě pracujete. |
Část 5: Průzkumník řešení (Solution Explorer)
Průzkumník řešení představuje správce vašeho řešení. Pod pojmem „řešení“ si můžete představit komplexní rámec vašeho vývojářského projektu. Řešení může obsahovat jeden, nebo i víc projektů, či jiných softwarových součástí. Přitom tyto součásti nemusí být napsány jenom ve Visual Basicu .NET. Do stávajícího řešení lze přidávat i jiné prvky, které byly vytvořeny v dalších programovacích jazycích podporujících standard .NET (např. Visual C# .NET nebo Visual C++ .NET). Architektura řešení je zobrazena na obr. 7.
Obr. 7 – Okno Průzkumníka
řešení
Popišme si nyní okno Průzkumníka řešení podrobněji. Jak můžete vidět, všechny součásti vašeho řešení jsou seskupeny do přehledné stromové struktury prvků. V našem případě se v řešení nachází jeden projekt, jenž je standardně pojmenován jako WindowsApplication1. Pokud nezadáte při výběru nového řešení váš vlastní název, Visual Basic použije standardní název. Všimněte si, že jméno projektu je zobrazeno tučným písmem. To znamená, že tento projekt se spustí okamžitě poté, co vydáte příkaz na vybudování a spuštění aplikace. Na další úrovni stromové struktury se nachází položka References. Tato sdružuje všechny potřebné odkazy na prostory jmen (např. System, System.Data, System.Drawing, System.Windows.Forms atd.) či externí komponenty. Výčet pokračuje souborem AssemblyInfo.vb. Pokud poklepete na položku AssemblyInfo.vb, zobrazí se obsah přidruženého souboru, který uchovává informace o assembly daného řešení. Ukázku podoby tohoto souboru můžete spatřit na obr. 8.
Obr. 8 – Obsah souboru AssemblyInfo.vb
Soubor obsahuje množství atributů, které lze měnit, např. AssemblyTitle, AssemblyDescription, AssemblyCompany a mnohé další. V tomto vydání Programátorské laboratoře se můžete naučit, jak modifikovat některé z atributů v souboru AssemblyInfo.vb.
Poslední položkou v stromové struktuře Průzkumníka řešení je formulář (Form1).
|
V prostředí VB .NET mají všechny soubory se zdrojovým kódem
(formuláře, moduly, třídy a další) jednotnou příponu .vb. |
Na závěr této části bych si dovolil ještě připomenout, že v horní části okna Průzkumníka řešení se nachází panel nástrojů s několika tlačítky. Počet přístupných tlačítek se mění v závislosti od vybrané položky v stromové struktuře Průzkumníka řešení. Pokud máte vybranou položku s formulářem, panel by měl mít tuto podobu (obr. 9).
Obr. 9 – Panel nástrojů Průzkumníka
řešení
My se budeme prozatím soustředit na následující tři tlačítka:
1.
View
Code |
Po aktivaci tlačítka
se zobrazí editor pro zápis zdrojového kódu aplikace. |
2.
View
Designer |
Klepnete-li na toto
tlačítko, zobrazí se podoba formuláře, kterou můžete libovolně měnit (jde o
režim návrhu aplikace). |
3.
Properties |
Po stisknutí se
zviditelní okno s vlastnostmi souboru formuláře (Form1.vb). |
Část 6: Okno s vlastnostmi objektů (Properties Window)
Properties Window zobrazuje hodnoty vlastností všech objektů, se kterými v prostředí Visual Basicu pracujete. Ve skutečnosti je Visual Basic .NET plně objektově orientovaným vývojovým nástrojem, a pokud to poněkud přeženeme, můžeme přijít k tvrzení, že „všude, kam se podíváte, je objekt“. Na vysvětlenou, objekt je instancí určité třídy a jako taký disponuje svými vlastnostmi a metodami. Rovněž je schopný reagovat na vnější podněty, kterým se ve vizuálním prostředí říká události. Objektem je samotný formulář a objekty jsou také všechny instance ovládacích prvků, které na formulář umístíte. Pro modifikaci hodnot vlastností objektů v režimu návrhu je vám k dispozici speciální okno Properties Window, které je zobrazeno na obr. 10.
Obr. 10 – Okno
s vlastnostmi objektů (Properties Window)
Pokud klepnete na instanci jakéhokoliv ovládacího prvku, seznam jeho vlastností se objeví v tomto okně. Změnu hodnoty příslušné vlastnosti uskutečníte tak, že klepněte myší do pravého pole a zadáte, nebo vyberete požadovanou hodnotu pro danou vlastnost. Vlastnosti můžou být seřazeny podle abecedy (tak je to na obrázku), nebo podle předem definovaných kategorií.
Část 7: Okno Output
Pokud vydáte příkaz pro sestavení aplikace, v tomto okně se zobrazí všechny informace o procesu generace aplikace. Jestliže vše proběhne v pořádku, VB .NET zobrazí v okně Output správu „Build: 1 succeeded, 0 failed, 0 skipped“.
Část 8: Stavový pruh aplikace
V stavovém pruhu se zobrazují další dodatečné správy, které vám VB .NET v jistých okamžicích zobrazuje. Např. při úspěšném sestavení aplikace je vypsán řetězec „Build succeeded“.
Ján Hanák