C/C++ & Visual C++

 Visual Studio.NET (1.)

Úvodem  |  Datové struktury |   Visual Studio.NET  |  Downloads  |  Otázky a odpovědi

V dnešním dílu rubriku C/C++ opustíme DirectX a podíváme se trochu blíže na vývojové prostředí Visual Studio.NET, protože jej používá stále více programátorů a opouští verzi 6.0. Článek je i pro ty, kteří váhají, zda se jím přechod vůbec vyplatí. Na druhou stranu zde nechci popisovat technologii .NET.

1.1. Instalace prostředí

Visual Studio je nyní k dispozici ve verzi 7.1, které obsahuje pár vylepšení oproti verzi 7.0 (ze zkušenosti bych spíš řekl, že opravuje chyby starší verze), ale v zásadě se dá říct, že obě verze jsou hodně podobné, ačkoliv projekty vytvořené ve verzi 7.0 se musí převést do verze 7.1 a zpětná kompatibilita není zaručena.

Verze pro profesionály
Visual Studio .NET se dodává ve třech variantách:

  • Professional

  • Enterprise Developer

  • Enteprise Architect

U knih, které se zabývají problematikou .NET technologie bude speciální verze Visual Studia .NET, která je omezená na 60 dní.

Verze pro amatéry
Microsoft také umožňuje zakoupit jednotlivé jazyky zvlášť za mnohem nižší ceny:

  • Visual Basic .NET Standard

  • Visual C++ .NET Standard

  • Visual C # .NET Standard

  • Visual J# .NET Standard

Pomocí těchto čtyř nástrojů byste neměli vyvíjet komerční software tzn. software určený k prodeji.

.NET Framework
Jádro technologie .NET Framework je zdarma a můžete si ho stáhnout na stránkách Microsoftu (samozřejmě je součástí instalace, viz. dále). U verze 7.1 je i novější verze Frameworku 1.1.

Před instalací samotného VS.NET

Softwarové požadavky

VS.NET nelze instalovat na systémy Windows 95, 98 a ME. Pro běh aplikací vytvořených VS.NET nelze použít Windows 95. Odinstalujte všechny předchozích verze VS .NET (Release Candidate, Beta 2, Beta 1). Docela zajímavá informace je, že si nové studio "7.1" nevadí se starší verzí 6.0 (dokonce ani 7.0). Tohle tvrdí Microsoft a z vlastní zkušenosti to mohu potvrdit.

Prakticky každý operační systém něco potřebuje:

Windows NT 4.0 Service Pack 6a
Windows 2000 Service Pack 2
Microsoft Windows Installer 2.0
Microsoft Windows Management Instrumentation
Microsoft FrontPage 2000 Web Extensions Client
Microsoft FrontPage 2000 Server Extensions Service Release 1.2
Setup Runtime Files
Microsoft Internet Explorer 6
Microsoft Data Access Components 2.7
Microsoft Jet 4.0 Service Pack 3
Microsoft .NET Framework

Všechny tyto části naleznete na Windows Component Update (WCU) CD, které je součástí balíku. Po vložení prvního CD se automaticky detekuje, co je z toho potřeba a co ne. Nejlépe jsou na tom Windows XP, které vyžadují instalaci pouze .NET Frameworku.

Web projekty vyžadují instalaci dodatečných komponent jako jsou Internet Information Services (IIS) a FrontPage Server Extension (FPSE). Pokud tyto dvě komponenty nenainstalujete, budete moci webové projekty vytvářet pouze na vzdálených počítačích, kde jsou řádně nainstalované. IIS lze instalovat až později, ale pak je nutné opravit instalaci .NET Framework. Instalace vyžaduje internetové připojení, protože musíte stáhnout tzv. Security Updates ze serveru Microsoftu.

Na WCU naleznete adresář dotNetFramework , ve kterém je instalace .NET Frameworku. Zmiňuji to z toho důvodu, že tento soubor je potřeba při instalaci vašeho software na cizí PC, kde není .NET Framework instalován.

Instalace VS.NET

Instalační balík obsahuje alespoň 4 CD s instalací samotného Visual Studia, dále 1 CD Windows Component Update . Verze Enteprise Architect navíc obsahuje Microsoft Visio pro tvorbu blokových schémat, stavových diagramů apod. (po instalaci Visia se do prostředí Studia integruje funkce Reverse Engineer , která umožní vytvořit schémata tříd z již vytvořeného projektu). Dále dostanete Microsoft Visual Source Safe 6.0c pro správu vašich zdrojových kódu mezi spolupracovníky na síti (po instalaci VSS se do Studia opět integruje množství funkcí).

Instalace probíhá ve třech krocích:

1) Start - Licenční smlouva, produktový klíč.
2) Options - Výběr instalovaných součástí.
3) Install - Samotná instalace, kopírování souborů a případná registrace komponent.

A to je vše. Visual Studio NET spustíte příkazem Start-Programy-Microsoft Visual Studio .NET-Microsoft Visual Studio .NET.

1.2. První spuštění

Po prvním spuštění Vám Studio nabídne stránku, kde můžete nastavit klávesnici, pozici oken, nápovědu a podobně. Těm, kdo jsou zvyklí na verzi 6.0 doporučuji nastavit klávesnici tak, jak je vidět na následujícím obrázku:

Help filter určí, která hesla se zobrazí v indexu nápovědy. Filtr můžete samozřejmě změnit přímo v indexu, zde nastavíte implicitní hodnotu.

Volba Internal help znamená, že pokud vyvoláte nápovědu klávesou F1, zobrazí se příslušná stránka přímo ve Studiu. V opačném případě se otevře další okno. Nakonec můžete nastavit akci, která se aplikuje po spuštění studia.

Tuto stránku můžete vyvolat kdykoliv později, pokud po spuštění kliknete na kartu My Profile. Pokud se podíváme na kartu Projects, studio nám zobrazí poslední otevřené projekty. Počet položek v seznamu lze samozřejmě nastavit (viz. příště). Bohužel tato funkce není zcela bezproblémová, protože prostředí si špatně pamatuje datum poslední modifikace projektu, takže třeba projekt, na kterém jste pracovali včera se zobrazí jako poslední apod.

K podrobnějšímu nastavení prostředí se dostaneme v příští lekci.

1.3. Vytváříme nový projekt

To co se nazývalo ve verzi 6.0 Workspace se ve verzi 7.1 nazývá Solution. Hlavní soubor projektu má příponu .sln, takže projekty nejsou zpětně kompatibilní. Na druhou stranu původní soubor .dsw zůstává zachován, takže můžete udržovat projekt pro obě verze studia, tak jako to dělám v případě projektu kurzu Direct X. Pokud otevřete projekt starší verze, studio vás vyzve ke konverzi a vytvoří soubor jméno_projektu.sln.

Nový projekt (solution) vytvoříte pomocí položky menu File->New. Pokud chcete vytvořit více podprojektů v rámci jednoho projektu, je třeba nejprve použít volbu Blank solution. Tato volba vytvoří prázdný adresář pro budoucí podprojekty. Každý podprojekt bude ve vlastním adresáři a spojeny budou právě souborem .sln v kořenovém adresáři projektu. Možná je to trochu zamotané, takže pro jistotu vše ještě jednou zopakuji:

Projekt neboli solution nazveme třeba Pokus01. Pro tento projekt vytvoříme pomocí volby Blank solution adresář Pokus01 a soubor pokus01.sln. Dále budeme přidávat podprojekty volbou Project. Na následujícím dialogu vidíte jak:

Na tomto dialogu můžete samozřejmě vytvořit celý projekt, aniž byste museli použít Blank solution. Volbou Create directory for Solution, která je aktivní, pokud vyberete Close Solution místo Add to Solution, právě zajistíte, že se automaticky vytvoří adresář pro projekt jako kdybyste použili Blank solution. Naopak volba Add to Solution zajistí, že se nový podprojekt vloží do aktuálně otevřeného projektu. Všimněte si, že jednotlivé skupiny projektů, jsou rozdělený ve stromu vlevo podle programovacího jazyka. U C++ se strom dále dělí. To je jedna z dalších výhod nového studia: pro všechny jazyky máme jedno prostředí a projekt se může skládat z podprojektů, kde každý podprojekt bude v jiném jazyce!

Poznámka: Princip vytváření projektů je stejný jako ve verzi 6.0, jen místo workspace používáme solution.

Já se zde budu věnovat pouze projektům pro C++. Klasickou konzolovou aplikaci vytvoříme pomocí Win32 Console Project. Ale v následujícím dialogu (wizardu pro tvorbu projektu) lze chování projektu zcela změnit:

Takže z konzolové aplikace můžete udělat okenní jako kdybyste vybrali Win32 Project a naopak. Můžete rovněž vytvořit dynamickou resp. statickou knihovnu volbami DLL resp. Static Library. Volba Empty project nevytvoří žádnou kostru projektu. Podporu ATL nebo MFC můžete zapnout pouze u konzolové aplikace.

Pokud chceme klasickou MFC aplikaci, na kterou jsme byli zvyklí ze starého prostředí, použijeme projekt MFC Application případně MFC DLL pro knihovnu. Zde nám průvodce nabídne nastavení, na které jsme zvyklí ze starší verze. Průvodce je jen trochu lépe uspořádaný.

Poslední skupinou projektů, kterou se budeme zabývat je .NET projekty. Ty jsou zde nové. Konzolovou aplikaci pro .NET vytvoříme pomocí Console Application a okenní aplikaci Windows Forms Application. Windows Forms jsou nástupci MFC v prostředí .NET. Do větších podrobností zde nebudu zabíhat, protože tato problematika by vydala na mnoho kapitol. Důležité nyní je, že tyto projekty generují programy v tzv. řízeném kódu, který je odlišný od nativního kódu procesoru, tak jak ho známe z běžného projektu. V případě C++ lze tuto funkčnost vypnout, ale tím potlačíte podstatu technologie .NET. Ta spočívá v tom, kompilátor generuje procesorově nezávislý kód, který je kompilován do nativního kódu daného procesoru až v době spuštění nebo instalace aplikace. Princip je velmi podobný jako u jazyka Java. O kompilaci do nativního kódu se stará právě .NET Framework.

1.4. Editor kódu

Na závěr lekce si povíme něco krátce o editoru zdrojového kódu. Budeme se především zabývat novinkami, které editor přináší oproti verzi 6.0.

Jako první si jistě všimnete, jakým způsobem pracuje nové prostředí s více soubory najednou. Využívá tzv. Tabs a přepínat mezi otevřenými soubory můžete pouhým kliknutím na příslušnou kartu:

Jako hlavní změnu bych zde uvedl automatické vytváření stromové struktury v rámci otevřeného souboru. Můžete tak zabalit všechny funkce do přehledné seznamu a poté si zobrazit jen vybranou apod. Tato funkce se nazývá Outlining a najdete ji v menu Edit. Funkce Collapse to Definition způsobí maximální zabalení celé stromové struktury v otevřeném souboru. Naopak maximální rozbalení způsobí Toggle All Outlining. Vybrané části, můžete rozbalovat a zabalovat kliknutím na symbol + dané části. Po zabalení se místo kódu zobrazí okénko z třemi tečkami. Pokud nad toto okénko najedete myší, IDE vám po chvilce ukáže, co je zabaleno v podobě tooltipu. Kromě automatického dělení, které provádí prostředí (funkce, bloky), můžete vytvořit vlastní části, které se na požádání zabalí nebo naopak. Nevýhodou této funkce je to, že po zavření a opětovném otevření souboru, se rozbalení a zabalení bloků zapomene.

Ostatní funkce jako IntelliSense, Bookmarks a další zůstaly prakticky nezměněny a popsané je najdete v článku o Visual C++ 6.0.

Ještě bych zmínil jednu věc a tou je uložení okolních oken v rámci prostředí. Mám na mysli okna jako Output, Help, Toolbox atd. Zde Studio podstoupilo také hodně změn. Okna mohou být umístěna do prostoru nebo přichycena k libovolné hraně hlavního okna, ale krom toho ještě můžete nastavit volbu Auto hide, která zajistí, že pokud se dané okno nepoužívá, okno "zajede" do lišty vpravo, vlevo nebo dole (podle toho kde je okno přichyceno) a je vysunuto pouze pokud na něj poklepáte nebo pokud na něj samo prostředí zaměří svou pozornost (rozuměj fokus). Vezmeme si například okno Output, kde se zobrazují informace o kompilací a později o běhu aplikace. Toto okno může být normálně skryto, protože během psaní jej nepotřebujeme, ale ve chvíli kdy spustíme kompilaci, okno se vysune a vidíme průběh kompilace. Ve fázi spuštění je okno viditelné pořád, takže vidíme i ladící zprávy zasílané aplikací. Volbu Auto hide můžeme nastavit pro libovolné plovoucí okénko v prostředí. Zde byla jedna z chyb verze 7.0, kde se často stávalo, že se okna nechtěla vysouvat. Pokud chceme volbu zasouvaní dočasně vypnout, zmáčkneme na daném okně špendlík. S tímto vylepšením si můžete dlouho pohrát a ve výsledku se s prostředím pracuje mnohem lépe, protože vás neotravují okna, které vlastně vůbec nepotřebujete a přitom jsou stále po ruce.

1.5. Závěr

A je tu opět konec! Doufám, že se Vám malá procházka novým prostředím líbila a že se příště uvidíme u druhé části povídání o vývojovém prostředí pro .NET, kde zabrousíme do nastavení IDE.

Těším se příště nashledanou.

 

Ondřej Burišin a Jiří Formánek