|
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