Vývojov{ prostředí pro programov{ní v C# Cílem kapitoly je sezn{mit s vývojovými prostředími, používanými pro programov{ní v C#. Klíčové pojmy:
Vývojové prostředí, kompilátor, debugger, třída Debug, třída Trace, Microsoft Visual Studio .NET, SharpDevelop
Obsah Obsah...................................................................................................................................................... 1 Možnosti vývoje.................................................................................................................................... 1 Vývoj .NET aplikací pomocí PSPadu ............................................................................................ 2 SharpDevelop.................................................................................................................................... 4 Microsoft Visual Studio .NET ......................................................................................................... 5 Vývoj formul{řové aplikace .......................................................................................................... 10 Microsoft Visual C# 2010 Express Edition ...................................................................................... 15 Vývoj vývojových prostředí.............................................................................................................. 16 Šamani .............................................................................................................................................. 16 Vizu{lní programov{ní ................................................................................................................. 17
Možnosti vývoje Aby bylo možné programovat v C#, je zapotřebí mít možnost zdrojový kód programu zkompilovat a spustit. Ke kompilaci programů je zapotřebí kompil{tor (překladač) – pro C# csc.exe. Ke spuštění programu je třeba běhové prostředí .NET runtime, což je kolekce dynamických knihoven. Programovat v C# je možné i bez použití speci{lního vývojového prostředí s využitím libovolný textového editoru, který je souč{stí .NET frameworku. M{me-li zdrojový kód programu v souboru program.cs a chceme-li vytvořit spustitelný soubor s n{zvem program.exe, stačí v příkazovém ř{dku napsat: csc program.cs
Chceme-li vytvořit spustitelný soubor s jiným jménem, než m{ soubor se zdrojovým kódem programu, musíme použít přepínač /out: csc /out:pozdrav program.cs
Komfortnější přístup je použití PSPadu a ještě větší komfort poskytne program{torovi vývojové prostředí Microsoft Visual Studio Express, nebo SharpDevelop – obojí je zdarma ke st{hnutí na Internetu.
9.3.2012
Vývojov{ prostředí pro programov{ní v C#
1/17
Pro velké projekty lze použít Microsoft Visual Studio Professional/Team, které je placené a obsahuje množství n{strojů usnadňující vývoj. Odkazy na vývojov{ prostředí: http://msdn.microsoft.com/vstudio/express/ http://www.sharpdevelop.com/
Alternativně lze použít Mono Framework: http://www.mono-project.com/
Framework je ke stažení z webu Microsoftu: http://msdn.microsoft.com/netframework/
Vývoj .NET aplikací pomocí PSPadu PSPad je freeware textový editor podporující několik desítek typů souborů, ve kterých zvýrazňuje syntaxi a obsahuje pro ně předdefinované Po spuštění PSPadu musíme udělat několik úprav. Nastavit zvýrazňovač C# a zavěsit na PSPad kompil{tor csc.exe. Nastavení zvýrazňovače C# 1. V horní nabídce klikneme na Nastavení 2. V menu vybereme Nastavení zvýrazňovačů
3. V seznamu vybereme první položku < not assigned > a zaškrtneme ji
4. Vpravo v seznamu Uživatelské zvýrazňovače vybereme C# a potvrdíme OK
9.3.2012
Vývojov{ prostředí pro programov{ní v C#
2/17
Zavěšení kompil{toru C# na PSPad Při otevření PSPadu m{me v levé č{sti otevřen n{strojoví panel, pokud ne, zobrazíme ho kl{vesovou zkratkou Ctrl + F2. N{sledující postup je třeba opakovat u každého nově vytvořeného projektu. 1. Po kliknutí PTM na Nový projekt zvolíme Nastavení projektu
2. Přejdeme na z{ložku Kompil{tor 3. U položky kompil{tor zad{me cestu k aplikacicsc.exe, jak jsem již zmínil, nalezneme ji v C:\Windows\Microsoft.NET\Framework\v3.5\csc.exe 4. Do položky parametry vepíšeme n{sledující: /out:muj_program.exe *.cs 5. Do položky Výchozí adres{ř zvolíme cestu k našim zdrojovým souborům a potvrdíme přes OK 6. Chceme-li program po kompilaci spustit, nastavíme cestu ke spustitelnému souboru.
Otevřeme nový soubor a zvolíme šablonu C#:
9.3.2012
Vývojov{ prostředí pro programov{ní v C#
3/17
Nastavení lze vyzkoušet jednoduchého programu:
pomocí n{sledujícího
using System; using System.Collections.Generic; using System.Text; namespace GoogleRequester { public class Class1 { static void Main(){ Console.WriteLine("Vytvořeno v aplikaci PSPad"); Console.ReadLine(); } } }
SharpDevelop SharpDevelop je freewarov{ obdoba Microsoft Visual Studia, jeho vývoj začal v roce 2000. Z{měrem autorů bylo vytvořit otevřené a nez{vislé integrované vývojové prostředí pro jazyk C#. Jak však čas ubíhal, SharpDevelop se kromě C# spř{telil i s Visual Basicem .NET, takže stejně dobře poslouží také vývoj{řům v tomto programovacím jazyce. Program je k vývoj{řům v jazyce C# štědrý, obsahuje řadu projektových šablon. Vybírat můžete z šablon pro tvorbu konzolových aplikací, aplikací pro systém Windows, knihoven ovl{dacích prvků, multimedi{lních aplikací běžících s podporou rozhraní DirectX a dokonce i služeb systému Windows. Sbírku dotv{ří ASP.NET webové aplikace a projekty pro Mono. Bohužel, vývoj webových aplikací není podložen vizu{lním n{vrh{řem. Editor zvýrazňuje syntaxi, nabízí alternativy, pom{h{ s dokončov{ním příkazů a urychluje běžně prov{děné činnosti (jako je třeba překrytí metody b{zové třídy v podtřídě). Zajímav{ je možnost automatické konverze programu v C# do podoby aplikace Visual Basicu .NET a opačně. Dalším plusem je možnost generov{ní HTML
9.3.2012
Vývojov{ prostředí pro programov{ní v C#
4/17
dokumentace ve stylu Microsoft Help 2.0 podle XML dokumentačních značek rozmístěných po fragmentech zdrojového kódu. Při ladění svých aplikací mohou vývoj{ři sledovat programov{ vl{kna, prohlížet hodnoty lok{lních proměnných a rozebírat z{sobník vol{ní. Vyvíjený software lze podrobit sérii testů, přičemž vývoj{ř může také analyzovat pokrytí kódu. Do kategorie slabých str{nek se řadí absence refaktorizace, chybějící produktov{ dokumentace v z{kladní instalaci (uživatel je poř{d odkazov{n na web) a nahodile fungující dynamick{ n{pověda. Výhody aplikace SharpDevelop Podpora kompil{torů Microsoft a Mono C# IntelliSence a schopnosti pro expanzi kódu Vizu{lní designéři formul{řů Windows Prohlížeč na úrovni projektu Integrovan{ utilita pro prohlížení objektů Utility pro manipulaci s datab{zemi Integrace s dokumentací SDK
Microsoft Visual Studio .NET Microsoft Visual Studio .NET je kompletní vývojové prostředí pro .NET Nabízí: barevné zvýraznění syntaxe inteligentní doplňov{ní kódu n{vrh{ře oken podporu ladění kontextovou n{povědu Microsoft Visual Studio .NET umožnuje členění kódu do logických celků: Solution Nejkomplexnější celek v celé hierarchické struktuře je solution, neboli řešení. Může obsahovat několik samostatných projektů. Project Project je samostatně přeložiteln{ č{st řešení napsan{ pouze v jednom programovacím jazyce. Zakl{d{me-li nový projekt, zvolíme: File – New – Project:
9.3.2012
Vývojov{ prostředí pro programov{ní v C#
5/17
N{sledně zvolíme typ projektu (Visual C# Windows), šablonu (Console Application), umístění a n{zev vytv{řeného projektu:
Na z{kladě specifikované šablony Visual Studio vygeneruje kód:
Do metody Main budeme ps{t vlastní příkazy. Pokud není zobrazený průzkumník řešení (Solution Explorer), můžeme si ho zobrazit volbou View - Solution Explorer:
V okně vidíme jednotlivé č{sti řešení – zde obsahuje pouze 1 projekt: ConsoleApplication19.
9.3.2012
Vývojov{ prostředí pro programov{ní v C#
6/17
Zdrojový kód programu je uložený v souboru Program.cs. Ladění programu pomocí debuggeru Debugger, neboli odlaďovač je souč{st SDK (Software Development Kit = n{stroje pro vývoj softwaru) je vhodný pro jednoduché ladění programu (přeložené s parametrem /debug) Debugger umožňuje: krokov{ní programu zastavení programu na určité r{dce (breakpoint) sledov{ní proměnných a jejich změn (watch) změnu obsahu proměnných za běhu a další činnosti N{sledující obr{zek ukazuje využití panelu Debug a okna Watch 1 pro proch{zení hodnot proměnných s a i. Krokov{ní lze prov{dět pomocí označeného tlačítka, nebo kl{vesou F10. Pokud bychom chtěli krokovat i vnitřek metod, použili bychom F11.
9.3.2012
Vývojov{ prostředí pro programov{ní v C#
7/17
Použité kl{vesové zkratky se zobrazují v nabídce Debug, kde můžeme krokov{ní zastavit a program restartovat. Ladicí panel si můžeme zobrazit volbou: View – Toolbars – Debug. Prov{děný příkaz je žlutě podbarvený a na příslušný ř{dek směřuje žlut{ šipka. Do programu můžeme též vkl{dat body přerušení.
Pro ladění můžeme
použít 4 okna watch a
v každém nastavit sledov{ní jiných proměnných a okno bodů přerušení, mezi nimiž se můžeme přepínat pomocí z{ložek. Ladící výpisy Pro ladění program je možné využít pomocné ladící výpisy a metody Write a WriteLine třídy Console. Ve Visual Studiu je možné vytvořit dva typy spustitelného kódu: Ladicí verzi (debug) Verzi pro distribuci (release) Typ kódu lze vybrat na panelu:
Tomu odpovídají dvě složky v adres{řovém stromu řešení: Debug a Release.
9.3.2012
Vývojov{ prostředí pro programov{ní v C#
8/17
Pro ladící výpisy je možné využít directivu překladače pro podmíněný překlad Příklad
namespace ConsoleApplication19 { class Program { static void Main(string[] args) { int s = 0; for (int i = 1; i < 5; i++) { s += i; #if DEBUG Console.WriteLine("s = {0}", s); # endif } } } }
Výpis hodnoty proměnné s se provede pouze v režimu debug. Třída Trace Umožnuje vkl{dat ladící výpisy. Je třeba použít jmenný prostor: using System.Diagnostics; for (int i = 1; i < 5; i++) { s += i; Trace.WriteLine(s); }
Třída Trace m{ řadu metod a vlastností, které můžeme zjistit z inteligentní n{povědy:
Metody jsou podobné konzolovým: Trace.Write(); Trace.WriteLine();
9.3.2012
Vývojov{ prostředí pro programov{ní v C#
9/17
Je možné nastavit odsazov{ní výpisu: Trace.Indent(); Trace.Unindent();
Výpis lze uskutečnit pomocí metod s podmínkou: Trace.WriteLineIf(i == 3, s); Vypíše se hodnota proměnné s pouze když proměnn{ i m{ hodnotu 3. Asserty Asserty jsou podmínky, které musí být splněny v daném bodě. Pokud podmínka není splněna, aktivuje se dialog o pokračov{ní/ignorov{ní/zrušení Příklad
for (int i = 1; i < 5; i++) { s += i; Trace.Assert(i==3,"Podminka i==3 neni splnena, i="+i.ToString()); Trace.WriteLine(s); }
Není-li splněna uveden{ podmínka (i==3), objeví se okno s nastaveným hl{šením:
Třída Debug Podobně, jako třídu Trace lze využít i třídu Debug:
Příklad použití: Debug.WriteLine(i);
Nevýhodou tříd Debug a Trace je, že nelze prov{dět ž{dný další kód, pouze výpis
Vývoj formul{řové aplikace Uk{zali jsme si vývoj a ladění konzolové aplikace a nyní si uk{žeme vývoj formul{řové aplikace s využitím Microsoft Visual Studia 2008 (zkr{ceně MVS).
9.3.2012
Vývojov{ prostředí pro programov{ní v C#
10/17
Založíme nový projekt (File – New - Project) s využitím šablony projektu Windows Forms Application.
V poli Name uvedeme n{zev projektu, nebo ponech{me nabízený n{zev. V poli Location bychom mohli nastavit jinou cestu k projektu, než n{m nabízí MVS (C:\Documents and Settings\Uživatel\Dokumenty\Visual Studio 2008\Projects). Ovl{dací prvky ve vývojovém prostředí N{sledně se zobrazí tzv. designer (z{ložka Form1.cs [Design]). Je v něm zobrazený formul{ř, který představuje okno naší budoucí aplikace. Pokud nem{me zobrazený panel n{strojů (ToolBox), můžeme si ho zobrazit příkazem View – Toolbox. Tento panel obsahuje sadu n{strojů (komponent), které budeme umísťovat na formul{ř. Rovněž je dobré mít zobrazené okna Properties a Solution Explorer. V okně Properties můžeme měnit nastavení komponent a formul{ře. Solution Explorer je průzkumník, který zobrazuje všechny soubory, které m{me v projektu (formul{ře, třídy a jiné typy souborů). Uveden{ okna je možné spojit do jednoho a přepínat se mezi nimi pomocí z{ložek v dolní č{sti okna.
9.3.2012
Vývojov{ prostředí pro programov{ní v C#
11/17
Přid{ní komponenty na formul{ř Komponentu z ToolBoxu vybereme tak, že na ní klikneme a přet{hneme ji na pr{zdný formul{ř. Vyberme například komponentu Button (tlačítko). Za stisknutého levého tlačítka myši ho rozt{hneme pomocí myši do požadovaných rozměrů. K uspoř{d{ní více komponent na formul{ř n{m pomůžou tzv. vodící č{ry, které umožňují zarovnat komponenty vůči sobě. Každ{ komponenta m{ své jméno a vlastnosti. Jméno i vlastnosti komponent lze pro vybranou komponentu měnit v okně Properties. Jméno komponenty je u položky Name. Nový n{zev může obsahovat písmena, čísla (nesmí být na zač{tku) a podtržítko. Různé komponenty nemohou mít stejné n{zvy. Změna vlastností komponenty Je třeba si uvědomit, že měníme vlastnosti označené komponenty. V okně Properties najdeme vlastnost, kterou chceme změnit a změníme její hodnotu.
Změníme-li u tlačítka vlastnost Text na Pozdrav, změní se i text, uvedený na tlačítku. N{sledující tabulka obsahuje seznam obvyklých vlastností komponent:
9.3.2012
N{zev vlastnosti
Funkce
Name
Určuje jméno komponenty
BackColor
Barva pozadí
BackgroundImage
Obr{zek na pozadí
Dock
Ukotvení komponenty
ForeColor
Barva textu
Text
Text v komponentě nebo titulek okna
Height
Výška komponenty
Width
Šířka komponenty
Visible
Viditelnost komponenty (True – viditeln{, False – neviditeln{)
Enabled
Uzamčení komponenty (True – odemčen{, False – zamčen{)
Top
Vzd{lenost horního okraje od horního okraje formul{ře
Left
Vzd{lenost levého okraje od levého okraje formul{ře
Vývojov{ prostředí pro programov{ní v C#
12/17
Tvorba procedury pro obsluhu ud{losti Formul{řové aplikace reagují na určité akce uživatele (klepnutí na tlačítko, výběr položky v menu, stisk kl{vesy). Proceduru pro obsluhu ud{losti tvoří posloupnost příkazů, které se postupně provedou, jestliže nastane obsluhovan{ ud{lost. Proceduru pro obsluhu kliknutí na tlačítko vytvoříme tak, že dvakr{t poklepeme levým tlačítkem myši na naše tlačítko ve formul{ři. Tím se přepneme z režimu n{vrhu do okna s kódem. Okno s kódem je na z{ložce Form1.cs a obsahuje kostru kódu. Kurzor je umístěný uvnitř metody button1_Click, kter{ bude obsluhovat kliknutí na tlačítko.
Nyní napíšeme do metody (tam kde m{m na obr{zku umístěn kurzor) kód: MessageBox.Show("Nazdar");
Program spustíme z nabídky Debug, nebo kl{vesami F5, případně Ctrl+F5, nebo ikonou se zelenou šipkou:
9.3.2012
Vývojov{ prostředí pro programov{ní v C#
13/17
Po spuštění programu a kliknutí na tlačítko se zobrazí dialogové okno se zpr{vou „Nazdar“.
MVS implicitně vytv{ří projekty ve složce Projects: C:\Documents and Settings\Uživatel\Dokumenty\Visual Studio 2008\Projects\ MVS vytv{ří spoustu souborů, z nichž nejvýznamnější jsou soubory s koncovkou cs ve složce s n{zvem projektu: Form1.cs, Form1.Designer.cs, Program.cs. Soubor s příponou sln představuje solution (řešení) a dvojklikem na něj lze spustit MVS a otevřít v něm příslušné řešení. Soubor s koncovkou csproj obsahuje projekt. Obsluha ud{losti změny rozměrů formul{ře Uk{žeme, jak je možné zachytit změnu rozměrů formul{ře a jeho šířku a výšku zobrazit v titulkovém pruhu formul{ře. Po označení formul{ře klikneme na ikonu se žlutým bleskem a zvolíme ResizeEnd. Budeme obsluhovat ud{lost ukončení změny velikosti formul{ře.
Po dvojkliku na pr{zdné políčko vedle ResizeEnd napíšeme do metody příkaz: this.Text = this.Width.ToString() + " " + this.Height.ToString();
Po změně velikosti formul{ře za běhu programu se v jeho titulkovém pruhu bude zobrazovat aktu{lní šířka a výška formul{ře.
9.3.2012
Vývojov{ prostředí pro programov{ní v C#
14/17
Konfigurace prostředí MVS Prostředí MVS můžeme nakonfigurovat volbou: Tools – Options. Objeví se dialogové okno, v němž můžeme prov{dět různé volby:
Pokud například chceme nastavit číslov{ní ř{dků v editoru pro jazyk C#, zvolíme: Text editor – C# - General a v č{sti Display zaškrtneme zaškrt{vací políčko Line numbers.
Microsoft Visual C# 2010 Express Edition Microsoft Visual C# 2010 Express Edition je nejnovější verze z řady vývojových prostředí společnosti Microsoft, které je stejně jako minulé verze zcela zdarma. Aplikace m{ nový vzhled rozhraní, vhodný zejména pro začínající a mírně pokročilé program{tory. Microsoft m{ v řadě Express Edition verzi i pro C++, Web Developer, SQL Server Express Edition. Tato aplikace pracuje pouze s jazykem C# na rozdíl od kompletního Microsoft Visual Studia 2010, které pracuje s celým portfoliem .NET jazyků. Hlavní nabídka IDE Microsoft Visual C# 2010 Express Edition: inovovaný design GUI pln{ podpora C# .NET 4.0, tedy i nové prvky .NET 4.0 plně vizu{lní vývoj WinForms aplikací WFP aplikace, XAML, Console Application konektivita s SQL Serverem Express Edition, MS Access datab{ze výborné možnosti nastavení ladění, kompilace, publikov{ní projektů
9.3.2012
Vývojov{ prostředí pro programov{ní v C#
15/17
přehledné odhalení chyb, vizu{lní nastavení vlastností možnosti vkl{d{ní různých typů tříd do aplikace Program lze st{hnout na ofici{lním webu společnosti Microsoft. Instal{tor d{le stahuje komponenty z webu. Prostředí je zcela zdarma, jen je do 30 dní nutn{ bezplatn{ registrace na webu. Microsoft Visual C# 2010 Express (je dostupn{ zdarma) je k dispozici na této str{nce: http://www.microsoft.com/express/Downloads/#2010-Visual-CS
Vývoj vývojových prostředí V současné době se zd{, že samotné programovací jazyky nebo nové metodiky už nemohou d{le zjednodušit a zrychlit vývoj aplikací. Tuto roli nyní přebírají podpůrné n{stroje , které umožňují automatické generov{ní kódu, a vývojov{ prostředí (IDE), v nichž jsou tyto n{stroje často integrov{ny. Program{toři se mohli s vývojovým prostředím poprvé setkat už před více než 30 lety, neboť první takové prostředí s sebou přinesl Basic. Tento jazyk byl totiž navržen jako interpreter, který umožňoval spouštět č{sti programu a hned vidět jejich výsledky. Díky tomu mohli program{toři pracovat interaktivně, a tedy daleko efektivněji, než bylo obvyklé. První integrovan{ vývojov{ prostředí (např. jazyků Turbo Pascal, Microsoft C aj.) byla značně jednoduch{ a nevýkonn{, ale i přesto nabízela mnohem více než tradiční příkazov{ ř{dka. Zpoč{tku tato IDE obsahovala vlastně jen textový editor, překladač, n{stroje pro nastavov{ní voleb a n{stroje pro pr{ci s projekty a se soubory. K nim později přibyly prostředky pro symbolické ladění, pro vytv{ření pomocných datových souborů (prostředky – resources – ve Windows) aj.
Šamani Při programov{ní aplikací pro Windows (ale i jiných) se uk{zalo, že většina programů dodržuje jedno z{kladní schéma. V „oknech“ je to např. funkce WinMain, obsahující popis a registraci třídy okna, vytvoření, zobrazení a překreslení okna a cyklus výběru zpr{v z fronty. Také „okenní“ procedura je vlastně povinnou souč{stí programu a m{ své ust{lené schém{ – jeden příkaz, který podle druhu došlé zpr{va určuje, co se m{ st{t. Velice brzy proto začala IDE nabízet služby různých n{strojů, které se podle okolností nazývají Wizard, Expert, SmartGuide atd. IDE pak vytv{ří kostru aplikace podle našich zadaných požadavků, v níž koment{řem označí místa, na kter{ m{ uživatel doplnit svůj zdrojový kód. Je jasné, že touto pomocí podstatně zrychlují programov{ní. Většina takových pomocníků z IDE však využív{ speci{lní (nestandardní) knihovny dod{vané s překladačem – IOC (IBM), MFC (Microsoft a dnes i jiné překladače), OWL (Borland), VCL (Borland) atd. To ale znamen{, že
9.3.2012
Vývojov{ prostředí pro programov{ní v C#
16/17
uživatel musí vedle standardu použitého programovacího jazyka zn{t nejen danou knihovnu, ale i strukturu aplikace, kterou daný n{stroj vytvoří.
Vizu{lní programov{ní V devades{tých letech se začal při programov{ní uplatňovat nový postup – vizu{lní programov{ní. Za první n{znak bychom mohli považovat n{stroje na vytv{ření prostředků (resources) určených pro programy pro Windows, jako byl např. Resource Workshop, které umožňovaly vytvořit některé souč{sti programu vizu{lně pomocí myši na z{kladě předdefinovaných souč{stí. Poprvé jsme se s vizu{lním programov{ním mohli ve významné míře setkat v prvních verzích Visual Basicu a později ve vylepšené podobě v n{strojích jako je Delphi, C++ Builder, JBuilder, Power++, PowerJ, Visual Age apod. Princip je už dnes dobře zn{mý – nejčastěji používané složky aplikací jsou zapouzdřeny do komponent, obvykle implementovaných jako objektové typy. Z{kladní postup při vizu{lním programov{ní lze shrnout takto: Po vytvoření nového projektu otevře IDE pr{zdné okno aplikace a vytvoří k němu odpovídající zdrojový kód. Do nabídnutého okna můžeme pomocí myši vkl{dat komponenty, které si vybereme z palet. Přitom prostředí generuje odpovídající zdrojový kód. Programov{ní založené na komponent{ch lze velice dobře přirovnat ke stavbě z panelů. Je rychlé a snadno zvl{dnutelné, ale drahé – vyžaduje speci{lní n{stroje a výkonný počítač. Vytvořené programy jsou totiž zpravidla podstatně rozs{hlejší než podobné programy založené na „obyčejném“ překladači a aplikačním rozhraní operačního systému. Dosažen{ řešení také nemusí být vždy tak kvalitní, jak bychom si př{li, neboť občas je třeba přizpůsobit se možnostem prefabrikovaných dílů (komponent). Shrnutí:
V kapitole jsou studenti sezn{meni s vývojovými prostředími, používanými pro programov{ní v C#. Jsou uvedeny možnosti používaných vývojových prostředí, použití kompil{toru, debuggeru, třídy Debug a Trace Microsoft Visual Studia .NET. Kromě konzolové aplikace je uvedený postup vývoje formul{řové aplikace. Na z{věr jsou uvedeny trendy vývoje vývojových prostředí.
9.3.2012
Vývojov{ prostředí pro programov{ní v C#
17/17