Professional Documents
Culture Documents
Spis treci
O autorach .................................................................................................... 19
Dedykacje ..................................................................................................... 20
Podzikowania ............................................................................................ 20
Wprowadzenie ............................................................................................. 21
Cz I
Spis treci
Cz II
Spis treci
Spis treci
Cz III
Spis treci
Spis treci
Cz IV
10
Spis treci
Cz V
11
Spis treci
12
Spis treci
13
Spis treci
Rozdzia 21. Tworzenie aplikacji biznesowych opartych na pakiecie Office ............ 909
Przegld rozszerzalnych funkcji pakietu Office .................................................................... 911
Funkcje pakietu Office ....................................................................................................... 911
Typy projektw Office w Visual Studio .......................................................................... 914
Tworzenie dodatkw dla pakietu Office ................................................................................ 916
Modyfikowanie wstki ..................................................................................................... 916
Modyfikowanie panelu zada ........................................................................................... 921
Tworzenie regionw formularzy aplikacji Outlook ...................................................... 923
Tworzenie rozszerze dokumentw Office ........................................................................... 925
Kontrolki kontenerowe ..................................................................................................... 926
Tworzenie paneli operacji ................................................................................................. 927
Przechowywanie danych w pamici podrcznej ............................................................ 929
Implementowanie wasnych tagw inteligentnych ....................................................... 932
Podsumowanie ........................................................................................................................... 935
Cz VI
Rozdzia 22. Praca zespoowa i Visual Studio Team System ....................................... 939
Przegld projektw tworzenia oprogramowania .................................................................. 940
MSF Agile ............................................................................................................................ 941
MSF dla CMMI ................................................................................................................... 942
Wprowadzenie do Visual Studio Team System .................................................................... 944
Visual Studio Team Architect .......................................................................................... 945
Visual Studio Team System Development Edition ....................................................... 946
Visual Studio Team System Test Edition ........................................................................ 948
Visual Studio Team System Database Edition ............................................................... 950
Team Foundation Server ................................................................................................... 950
Podsumowanie ........................................................................................................................... 953
14
Spis treci
15
Spis treci
16
Spis treci
17
Spis treci
18
Rozdzia 8.
Korzystanie z narzdzi
zwikszajcych
produktywno
Jeli Czytelnik utworzy ten projekt i wpisa jego kod w Visual Studio, mg zauway, e ju w tym
prostym programie narzdzia zwikszajce produktywno znajduj zastosowanie. Po pierwsze, po
rozpoczciu wpisywania kodu w szablonowym pliku edytor dodaje tabulacj i umieszcza kursor
w nowej pozycji, dziki czemu kod ma eleganckie wcicia.
Po drugie, w czasie wpisywania wiersza kodu Visual Studio reaguje na kady nowy znak, zgadujc,
jak instrukcj programista chce napisa i udostpniajc pomoc w rnej postaci (rysunek 8.2).
rodowisko wywietla wskazwki dotyczce uzupeniania pisanego kodu, informacje o wybieranych skadowych i o parametrach potrzebnych do uzupenienia danej metody. Te waciwoci s
wsplnie nazywane mechanizmem IntelliSense, a jego postaci i funkcje opisujemy szczegowo
w dalszej czci rozdziau.
W czasie wpisywania kodu IDE nieustannie sprawdza za pomoc kompilatora, jaki tekst zosta ju
wpisany. Jeli kompilator wykryje bd, dynamicznie wywietla informacje o tym w oknie Output.
292
Rysunek 8.2.
Dziaanie mechanizmu
IntelliSense
Dlatego ju w przypadku jednego prostego wiersza kodu Visual Studio wykonuje wiele operacji
zwikszajcych produktywno programisty:
Inteligentnie formatuje kod.
Sugeruje skadni kodu.
Wywietla opisy skadowych, co pomaga uy poprawnej skadni.
Graficznie wyrnia odpowiadajce sobie ograniczniki.
Wskazuje bdy, nieustannie kompilujc w tle biec wersj kodu rdowego.
Te waciwoci dyskretnie pomagaj programicie i prowadz go przez proces pisania kodu, zwikszajc szybko wykonywania tego zadania.
293
ledzenie zmian
W czasie modyfikowania pliku z kodem rdowym niezwykle przydatna jest wiedza o tym, ktre
wiersze zostay ju zatwierdzone (czyli zapisane na dysk), a ktre nie. ledzenie zmian pozwala to
wykry. Na marginesie wyboru edytora widoczna jest ta pionowa linia cignca si wzdu
wszystkich wierszy kodu, ktre zostay zmodyfikowane, ale nie s jeszcze zapisane. Jeli zawarto pliku zmienia si, a nastpnie programista j zapisa, rodowisko oznacza j zielon pionow
lini na marginesie wyboru.
Dziki tym tym i zielonym liniom mona szybko wyrni:
Kod, ktry nie zmieni si od czasu wczytania pliku (brak linii).
Kod, ktry zosta zmieniony i zapisany po wczytaniu pliku (zielona linia).
Kod, ktry zosta zmodyfikowany, ale nie jest jeszcze zapisany (ta linia).
ledzenie zmian funkcjonuje do czasu zamknicia okna edytora. Inaczej mwic, ledzenie zmian
obejmuje jedynie dan sesj modyfikowania biecego dokumentu. Po zamkniciu i ponownym
otwarciu okna linie znikn, poniewa dany dokument dziaa wtedy w nowej sesji.
Rysunek 8.3 przedstawia fragment pliku kodu zawierajcy rne linie zwizane ze ledzeniem zmian.
Rysunek 8.3.
ledzenie zmian
294
Problemy dotyczce kodu s oznaczane wykami, czyli falistymi, kolorowymi liniami umieszczanymi pod niepoprawnymi fragmentami. S to te same wyki, ktre w programie Microsoft
Word su do oznaczania bdw zwizanych z pisowni i gramatyk. Kolor wyka oznacza klas
problemu. Tabela 8.1 opisuje, jakie typy problemw odpowiadaj poszczeglnym kolorom.
Tabela 8.1. Kolory informujce o problemach
Kolor
Problem
Czerwony
Niebieski
Purpurowy
Umieszczenie kursora myszy nad wskazwk dotyczc problemu pozwala wywietli komunikat
o bdzie lub o ostrzeeniu, co wida na rysunku 8.4.
295
Aktywne odnoniki
Edytory tekstu obsuguj w dokumentach aktywne odnoniki. Kliknicie odnonika powoduje
otwarcie danego adresu URL w przegldarce. Jednym z zastosowa tej waciwoci jest zagniedanie w komentarzach adresw URL prowadzcych do dokumentacji lub innych pomocnych
informacji.
Kolorowanie skadni
Edytor tekstu potrafi wykrywa rne konstrukcje kodu i oznacza je, dziki czemu mona je atwiej
zidentyfikowa. Na przykad okno edytora kodu domylnie wywietla komentarze na zielono.
Identyfikatory w kodzie s czarne, sowa kluczowe niebieskie, acuchy znakw czerwone i tak dalej.
Liczba rnych elementw, jakie edytor tekstu potrafi wykry i nada im odmienny kolor, jest
bardzo dua. Edytor rozpoznaje ponad 100 rnych elementw. Programista moe dostosowa
sposb kolorowania kadego z tych typw do wasnych preferencji za pomoc wza Environments
w oknie dialogowym Options. Moe lubi uywa wikszej czcionki? Moe wyszy kontrast bardziej odpowiada wykonywanym przez programist zadaniom? A co z umieszczaniem wikszej
iloci kodu na widocznym obszarze ekranu? Jest to tylko kilka przyczyn, ktre mog skania
programist do modyfikacji ustawie domylnych za pomoc wspomnianego okna dialogowego.
Rysunek 8.5 przedstawia okno dialogowe z czcionkami i kolorami. Umoliwia ono okrelenie
koloru tekstu oraz koloru ta zwykego kodu, kodu HTML, kodu CSS i innych elementw. Mona
wybra element z ich listy, a nastpnie zmieni sposb jego kolorowania przy uyciu list rozwijanych z kolorami tekstu i ta.
296
Uwaga
Moliwo kontroli sposobu kolorowania elementw edytora kodu
to nie wszystko, co oferuje okno dialogowe widoczne na rysunku 8.5.
Za jego pomoc mona zmieni schematy kolorw wszystkich okien
rodowiska Visual Studio. Obiekt wybrany z listy rozwijanej Show
Settings For pozwala okreli modyfikowany fragment rodowiska
IDE, co pociga za sob zmian elementw widocznych na licie
Display Items.
Zawsze mona uy przycisku Use Defaults (w prawym grnym rogu
okna dialogowego) i przywrci domylne ustawienia kolorw.
Schematy i nawigacja
Niektre dokumenty, takie jak pliki z kodem rdowym i znacznikami, zawieraj naturalne
relacje nadrzdny-podrzdny midzy elementami w zakresie organizacji i skadni kodu. Na przykad wzy danych XML mog zawiera inne wzy. Take funkcje i inne konstrukcje jzykw
programowania, takie jak ptle czy bloki try-catch, dziaaj jako kontenery dla innych wierszy
kodu. Generowanie schematw (ang. outlining) umoliwia utworzenie graficznej reprezentacji
relacji nadrzdny-podrzdny.
Schematy kodu
Schematy kodu s tworzone w edytorach kodu. Umoliwiaj zwijanie lub rozwijanie obszarw
kodu w granicach okna edytora. Na marginesie wyboru widoczne s linie grupujce oraz pola
suce do rozwijania i zwijania tekstu. Te pola mona klikn w celu ukrycia lub wywietlenia
wierszy kodu pogrupowanych w logiczny sposb.
Tworzenie schematw kodu najatwiej jest zrozumie na prostym przykadzie. Wrmy do rysunku
8.1. Wida na nim wyjciowy kod aplikacji konsolowej. Zawiera ona procedur Main, deklaracj
klasy, deklaracj przestrzeni nazw i kilka instrukcji using. Grupy schematu kodu widoczne na
marginesie wyboru reprezentuj graficznie obszary kodu, ktre mog zosta zwinite (ukryte).
Poniewa deklaracja klasy to logiczny kontener, na marginesie wyboru przy tym wierszu kodu
znajduje si pole umoliwiajce zwinicie kodu (pole ze znakiem minus). Midzy tym polem
a kocem kontenera cignie si linia (w tym przypadku, poniewa jest to kod w jzyku C#, deklaracja klasy koczy si nawiasem klamrowym). Kliknicie pola zwijania przy deklaracji klasy spowoduje, e Visual Studio ukryje cay jej kod.
297
Wskazwka
Jzyki Visual Basic i C# umoliwiaj samodzielne tworzenie nazwanych obszarw kodu. Suy do tego specjalne sowo kluczowe. Naley
uy pary #region i #endregion (#Region i #End Region w Visual
Basic), aby utworzy wasny kontener na kod, ktry bdzie odpowiednio wywietlany przez mechanizm obsugi schematw kodu.
Poniewa kady obszar ma nazw, jest to wygodna technika organizowania i segregowania logicznych fragmentw kodu. Na przykad kod wygenerowany przez okno projektowe formularzy Windows jest automatycznie umieszczany w obszarze o nazwie Windows
Forms Designer generated code.
Szybki sposb na utworzenie regionu polega na uyciu opcji Surround With. W edytorze naley zaznaczy kod, ktry ma znale si
w nowym obszarze, klikn ten fragment prawym przyciskiem myszy,
wybra opcj Surround With z menu kontekstowego, a nastpnie uy
polecenia #region (#Region w Visual Basic).
Rysunek 8.6 przedstawia okno edytora, w ktrym kod deklaracji klasy jest ukryty. Warto zauway,
e w polu zwijania widoczny jest teraz znak plus, co informuje, e kliknicie go spowoduje ponowne
wywietlenie ukrytego obecnie kodu. Ponadto pierwszy wiersz kodu deklaracji klasy zosta zmodyfikowany i koczy si polem z trzema kropkami.
Rysunek 8.6.
Zwinity obszar
schematu
Edytor HTML take obsuguje tworzenie podobnych schematw. Elementy HTML mona rozwija
i zwija, aby wywietli lub ukry zawarte w nich obiekty.
298
Menu Outlining
W menu Edit/Outlining dostpnych jest kilka polece zwizanych ze schematami kodu (rysunek 8.7).
Toggle Outlining Expansion ukrywa lub wywietla obszar schematu na podstawie
obszary zostan rozwinite). To polecenie jest dostpne tylko po wczeniejszym wczeniu automatycznego generowania schematu.
Stop Hiding Current usuwa schemat biecego obszaru. To polecenie jest dostpne
299
Generowanie schematu kodu to udogodnienie, ktre umoliwia zmniejszenie widocznej iloci kodu
i zwikszenie jego czytelnoci poprzez ukrycie nieistotnych fragmentw. Dziki temu mona
wywietla jedynie specyficzne obszary dotyczce wykonywanego zadania.
Wskazwka
Umieszczenie wskanika myszy nad polem z trzema kropkami
w ukrytym obszarze kodu pozwala wywietli zawarto danego
obszaru w polu przypominajcym okno podpowiedzi. Dziki temu
nie trzeba rozwija danego obszaru, aby go ponownie wywietli.
300
301
Rysunek 8.9.
Okno Document
Outline
projektowe i edytory obsuguj inteligentne znaczniki w wielu rnych sytuacjach. W poniszych punktach opisujemy kilka sposobw uatwiania sobie pracy za pomoc inteligentnych znacznikw. Zacznijmy od okna projektowego HTML.
302
Rysunek 8.10.
Inteligentny znacznik
kontrolki TabControl
Edytor kodu
Inteligentne znaczniki pojawiaj si take w kodzie, na przykad przy pisaniu interfejsw. Zwykle
implementacja interfejsu wymaga napisania duej iloci kodu, poniewa trzeba utworzy skadowe odpowiadajce wszystkim skadowym zdefiniowanym w interfejsie. Inteligentny znacznik
pozwala wygenerowa je automatycznie w jednym z dwch trybw nazywania elementw:
Explicit naming skadowym nadawane s nazwy utworzone na podstawie uywa-
nego interfejsu.
Implicit naming nazwy skadowych nie s zwizane z nazwami uywanego interfejsu.
Mechanizm IntelliSense
IntelliSense to nazwa nadana grupie rnych narzdzi pomagajcych w pisaniu kodu i dziaajcych w oknie edytora tekstu. Jedynym zadaniem tego mechanizmu jest pomoc programicie w szybkim pisaniu poprawnego skadniowo kodu. Ponadto IntelliSense ma udostpnia wystarczajco
wiele wskazwek, aby programista mg pisa kod poprawny w danym kontekcie, czyli taki, ktry
ma sens przy uwzgldnieniu otaczajcych go wierszy.
303
W czasie wpisywania tekstu w edytorze przez programist IntelliSense dziaa na zapleczu jako agent
odpowiedzialny za: udostpnianie fragmentw kodu pasujcych do ju wpisanych znakw, wyrnianie lub wybieranie tych, ktre s najbardziej prawdopodobne w danym kontekcie, a take, jeli
programista wybierze tak opcj, za automatyczne wstawianie fragmentw kodu. Pozwala to zaoszczdzi czas, poniewa nie trzeba wyszukiwa typw i skadowych w dokumentacji. Dalsze oszczdnoci wynikaj z automatycznego wstawiania tekstu, poniewa programista nie musi samodzielnie
wpisywa znakw.
W tym punkcie powicamy wiele miejsca na analiz dziaania IntelliSense w kontekcie pisania
zwykego kodu, jednak warto pamita, e mechanizm ten obsuguje take dokumenty innych
typw, na przykad pliki XML, HTML czy XSLT.
Wskazwka
Doczanie szablonw do dokumentu XML jest przydatne, poniewa IntelliSense potrafi wykorzysta takie szablony i udostpni
wicej moliwoci poprzez funkcj List Members (wicej na ten temat
w dalszej czci rozdziau).
304
305
Uwaga
Mechanizm uzupeniania sw uwzgldnia kontekst kodu w wielu
specyficznych sytuacjach. Na przykad w czasie wpisywania przez
programist typu wyjtku w bloku try-catch IntelliSense wywietla na licie jedynie typy wyjtkw. Podobnie w czasie wpisywania
atrybutw dostpne s wycznie atrybuty, a przy implementacji
interfejsu widoczne s tylko typy interfejsw. Ta waciwo mechanizmu IntelliSense obsuguje rne rodzaje dokumentw. Oprcz
kodu jzykw C# i Visual Basic uzupenianie dziaa take dla innych
elementw, takich jak znaczniki HTML, atrybuty stylw CSS, pliki
.config czy bloki skryptw HTML. Uzupenianie sw w Visual Basic
obejmuje funkcje niedostpne w jzyku C#. Dostpna jest lista uzupeniania z zakadkami, w ktrej jednak zakadka zawiera najczciej uywane konstrukcje skadniowe, a druga wszystkie moliwe
sowa.
Wskazwka
Przytrzymanie klawisza Ctrl w czasie wywietlania listy uzupeniania sprawia, e staje si ona czciowo przezroczysta. Jest to przydatne, jeli w czasie wybierania elementw z listy programista chce
zobaczy zakryte przez ni wiersze kodu.
306
307
Uwaga
IntelliSense przechowuje informacje na temat skadowych najczciej wybieranych w oknie z list skadowych i oknie do uzupeniania sw. Dziki tym informacjom mechanizm nie wywietla ani nie
zaznacza rzadko (jeli w ogle) uywanych skadowych danego typu.
sygnatur (na przykad wiele przecionych wersji), mona wywietla je po kolei, uywajc maych strzaek skierowanych w gr i w d. Pozwala to wybra waciw sygnatur.
Po wybraniu odpowiedniej sygnatury mona zacz wpisywanie parametrw, ktre maj
308
309
Wci trzeba napisa sensowny kod ciaa konstruktora. Jednak dziki tym fragmentom mona
wyeliminowa konieczno mudnego pisania kodu, ktrego wymylenie nie wymaga zbyt wielu
intelektualnych koni mechanicznych.
Rysunek 8.16 przedstawia ten sam proces w oknie z kodem Visual Basic. Operacja ta przebiega
w niemal identyczny sposb jak w jzyku C#, a jedyna rnica polega na tym, e w Visual Basic
podzia fragmentw kodu na kategorie jest bogatszy.
Wskazwka
Szybki, alternatywny sposb wywietlania okna do wstawiania fragmentw kodu polega na wpisaniu znaku zapytania i wciniciu
klawisza Tab. Ta technika dziaa jedynie w plikach z kodem Visual
Basic.
310
Edytor jzyka Visual Basic dziaa nieco inaczej od edytora jzyka C# po rozwiniciu fragmentu
kodu w oknie. Rysunek 8.17 przedstawia efekt przejcia przez kilka kategorii i wybrania fragmentu Create Transparent Windows Form. Warto zauway, e mechanizm wstawiania umieci
szablonowy fragment w kodzie Visual Basic, jednak nie by wystarczajco inteligentny (przynajmniej w tym przypadku), aby domyli si nazwy przezroczystego formularza.
Jako nazwa formularza we fragmencie kodu podawany jest domylny, fikcyjny tekst, ktry zostaje
automatycznie wyrniony. Wystarczy zacz wpisywa odpowiedni nazw, a domylna zostanie
zastpiona. Take warto waciwoci okrelajcej przezroczysto jest fikcyjna i mona j szybko
zastpi poprawn liczb.
Wskazwka
Fragmenty kodu mog mie kilka miejsc na wpisanie danych, ktre
programista moe chcie zmieni (i prawdopodobnie powinien to
zrobi). Mona przechodzi midzy tymi miejscami za pomoc klawisza Tab. Kiedy miejsce na dane jest wyrnione (na niebiesko),
mona zacz wpisywanie danych, aby zastpi domyln skadni
wartociami majcymi sens w danym kontekcie.
311
312
313
Podstawowa struktura deklaracji powyszego fragmentu kodu jest opisana w tabeli 8.2. Bardziej
wyczerpujcy opis szablonw mona znale w systemie pomocy MSDN Visual Studio, w wle
Integrated Development Environment for Visual Studio/Reference/XML Schema References/Code
Snippets Schema Reference.
Najwaniejsze w pisaniu fragmentw kodu jest to, aby zrozumie, jak dziaa zastpowanie literaw i zmiennych. Zamy, e programista chce utworzy fragment kodu jzyka C# wywietlajcy
314
Wze XML
Opis
<CodeSnippets>
Element nadrzdny dla wszystkich informacji o fragmentach kodu. Okrelona jest w nim przestrze
nazw jzyka XML suca do definiowania fragmentw kodu w Visual Studio 2008.
<CodeSnippet>
Gwny element danego fragmentu kodu. Ten znacznik okrela informacje o formacie fragmentu
(w przypadku pierwszego wydania Visual Studio 2008 powinna to by wersja 1.0.0). Cho w jednym
elemencie <CodeSnippets> mona umieci wiele elementw CodeSnippet, zwykle w kadym
pliku znajduje si tylko jeden fragment kodu.
<Header>
<Title>
<Shortcut>
Zwykle ta sama warto, co w tytule. Tekst tego elementu pojawia si na licie rozwijanej z fragmentami
kodu.
<Description>
<Author>
<SnippetTypes>
<SnippetType>
Typ fragmentu kodu: Expansion, Refactoring lub Surrounds With. Nie mona tworzy
niestandardowych fragmentw. Ta waciwo informuje Visual Studio o tym, w ktrym miejscu okna
edytora naley wstawi dany fragment kodu. Fragmenty typu Expansion s wstawiane tam, gdzie
znajduje si kursor. Fragmenty Surrounds With rodowisko wstawia przed i po kodzie okrelonym
przez biec pozycj kursora lub zaznaczenia.
<Snippet>
<Declarations>
<Literal>
acuch znakw, ktrego warto mona okreli w procesie dodawania fragmentu kodu. Atrybut
Editable tego znacznika okrela, czy litera jest statyczny, czy te mona go modyfikowa.
Fragment kodu ctor nie zawiera literaw, ktre mona zmienia. Warto porwna go z fragmentem
sucym do ustawiania przezroczystoci, ktry w czasie wstawiania umoliwia ustawienie nazwy
formularza.
<ID>
<ToolTip>
<Function>
Nazwa funkcji (opis w tabeli 8.3) wywoywanej w momencie, kiedy litera stanie si aktywny.
Funkcji mona uywa tylko we fragmentach kodu jzyka C#.
<Default>
<Code>
315
Data: 1/1/2006
Stan: Zatwierdzono
W tym fragmencie kodu cztery literay naley traktowa jako zmienne. Mog si one zmienia za
kadym razem, kiedy programista uyje tego fragmentu kodu. S to: nazwa klasy, imi i nazwisko
recenzenta, data oraz informacje o stanie. Mona zadeklarowa te elementy w sekcji Declarations:
<Declarations>
<Literal Editable="False">
<ID>classname</ID>
<ToolTip>Nazwa sprawdzanej klasy/typu</ToolTip>
<Function>ClassName()</Function>
<Default>TuNazwaKlasy</Default>
</Literal>
<Literal Editable="True">
<ID>reviewer</ID>
<ToolTip>Imie i nazwisko recenzenta</ToolTip>
<Default>ImieINazwiskoRecenzenta</Default>
</Literal>
<Literal Editable="True">
<ID>currdate</ID>
<ToolTip>Data sprawdzania</ToolTip>
<Default>DataSprawadzania</Default>
</Literal>
<Literal Editable="True">
<ID>approval</ID>
<ToolTip>Zamien na "Zatwierdzono" lub "Odrzucono"</ToolTip>
<Default>Zatwierdzono</Default>
</Literal>
</Declarations>
Warto zwrci uwag, e powyszy kod wywouje funkcj, ktra okrela nazw klasy we fragmencie kodu. Takie funkcje s dostpne jedynie w jzyku C# (a ich podzbir take w J#). Ich
dokumentacja znajduje si w tabeli 8.3. W przypadku pozostaych literaw to programista musi
poda w odpowiednich miejscach poprawne wartoci.
Naley take udostpni pewne podstawowe informacje nagwkowe:
<Header>
<Title>recenzja</Title>
<Shortcut>recenzja</Shortcut>
<Description>Komentarze dotyczace recenzji kodu</Description>
<Author>L. Powers</Author>
<SnippetTypes>
<SnippetType>Expansion</SnippetType>
</SnippetTypes>
</Header>
<Snippet>
316
Funkcja
Opis
GenerateSwitchCases(literalwyliczenia)
ClassName()
SimpleTypeName(nazwatypu)
CallBase(parametr)
Teraz fragment kodu jest skadniowo kompletny. Cho powyszy fragment dodaje komentarze,
taki sam proces prowadzi do tworzenia fragmentw generujcych kod, ktre maj tak sam struktur. Jeli programista chciaby napisa otaczajcy fragment kodu, powinien zmieni warto elementu <SnippetType> na Surrounds With.
Teraz trzeba poinformowa o nowym fragmencie rodowisko Visual Studio.
317
Rysunek 8.20.
Okno Code Snippets
Manager
318
Wskazwka
Fragmenty kodu mona przeglda i udostpnia take przez sie
(informacje o spoecznoci internetowej znajduj si w rozdziale 7.,
Spoeczno .NET: wykorzystanie i tworzenie wspdzielonego
kodu). Doskonaym sposobem na lepsze zrozumienie struktury
i dziaania fragmentw kodu jest zapoznanie si z plikami fragmentw dostpnych w Visual Studio, a take plikami utworzonymi przez
spoeczno programistw.
Dopasowywanie nawiasw
W jzykach programowania stosowane s nawiasy, nawiasy klamrowe, nawiasy ostre i inne ograniczniki, ktre obejmuj argumenty funkcji, wyznaczaj kolejno wykonywania funkcji matematycznych czy zawieraj kod ciaa funkcji. Wykrycie braku pasujcego ogranicznika (czyli sytuacja, w ktrej w kodzie jest wicej otwierajcych nawiasw ni zamykajcych) moe by trudne,
zwaszcza w przypadku kodu z wieloma poziomami zagniedenia.
Dopasowywanie nawiasw dotyczy graficznych wskazwek, za pomoc ktrych edytor kodu
informuje programist o pasujcych ogranicznikach. Gdy programista pisze kod w edytorze, za
kadym razem, kiedy doda zamykajcy ogranicznik, rodowisko na krtko wyrnia oba nawiasy.
Na rysunku 8.22 mechanizm dopasowywania nawiasw pomaga okreli pasujce do siebie ograniczniki wewntrznej ptli for.
Wskazwka
Mona take uruchomi dopasowywanie nawiasw, umieszczajc
kursor bezporednio po lewej stronie otwierajcego ogranicznika lub
po prawej stronie zamykajcego. Jeli programista przeglda procedur pen nawiasw i nawiasw klamrowych, moe szybko wykry
pasujce pary, umieszczajc kursor obok rnych ogranicznikw.
319
Cho ta waciwo nazywana jest dopasowywaniem nawiasw, obsuguje rne rodzaje ogranicznikw:
Nawiasy ().
Nawiasy kwadratowe i ostre [], <>.
Cudzysowy "".
Nawiasy klamrowe {}.
320
Sekcja Completion Lists w tym oknie dotyczy wszelkich waciwoci mechanizmu IntelliSense,
ktre obsuguj automatyczne uzupenianie kodu (na przykad wybierania skadowych i listy do
uzupeniania sw). W tabeli 8.4 opisane s opcje dostpne w tym oknie dialogowym.
321
Opcja
Dziaanie
Add New Line on Commit with Enter at End Zaznaczenie tego pola powoduje przesunicie kursora do nastpnego wiersza
of Fully Typed Word
po wpisaniu caego sowa w polu listy IntelliSense. Jest to przydatne wtedy, jeli
po danych sowach kluczowych zwykle nie wystpuje w wierszu dalszy kod.
IntelliSense Pre-selects Most Recently Used Jeli to pole jest zaznaczone, IntelliSense bdzie przechowywa list najczciej
Members
uywanych skadowych poszczeglnych typw i korzysta z niej. Ta lista suy
do wybierania domylnych skadowych na licie uzupeniania.
Lista rozwijana widoczna u gry okna Task List pozwala okreli kategori wywietlanych zada.
Kada kategoria wie si z nieco innymi kolumnami, cho kolumny Priority i Description s
widoczne w kadym przypadku. Na przykad zadania uytkownika i zwizane ze skrtami udostpniaj pole wyboru, ktre suy do zaznaczania zakoczonych zada, a zadaniom zwizanym
ze skrtami i komentarzami towarzysz nazwa pliku i numer wiersza.
Mona posortowa zadania wedug dowolnej kolumny listy. Kliknicie prawym przyciskiem myszy
nagwka kolumny powoduje wywietlenie menu podrcznego umoliwiajcego zmian sposobu
sortowania, a take wybr wywietlanych kolumn z listy wszystkich obsugiwanych.
322
323
Na rysunku 8.25 widoczny jest znacznik REVIEW dodany do standardowej listy. Warto zauway,
e mona take ustawi priorytety dla tych znacznikw lub doprecyzowa sposb ich wywietlania,
uywajc pl wyboru na stronie Task List okna Options. Te pola pozwalaj okreli, czy usuwanie
zada wymaga potwierdzenia, czy nie, a take czy na licie wywietlane s same nazwy plikw, czy
pene cieki.
Zadania uytkownika
Zadania uytkownika s wpisywane bezporednio w oknie zada. Obok listy rozwijanej z kategoriami zada okna Task List widoczny jest przycisk Create User Task (rysunek 8.24). Ten przycisk pozwala doda nowy wpis do listy. Nastpnie mona bezporednio wpisa tekst w kolumnie
opisu w celu okrelenia tytuu zadania.
W przeciwiestwie do zada zwizanych ze skrtami i komentarzami zadania uytkownika nie
prowadz do specyficznych wierszy kodu.
324
Uwaga
Model automatyzacji rodowiska Visual Studio umoliwia pen
kontrol nad list zada. Uywajc dostpnych obiektw automatyzacji, takich jak TaskList czy TaskListEvents, mona na przykad programowo dodawa i usuwa zadania z listy, reagowa na
dodanie, modyfikacj, a nawet wybr zadania, czy kontrolowa
powizania midzy zadaniem a edytorem.
Podsumowanie
Visual Studio 2008 udostpnia niezwyk liczb funkcji zwikszajcych produktywno programistw. Ten rozdzia opisuje wiele aspektw technologii IntelliSense: od uzupeniania instrukcji,
po now technologi wstawiania fragmentw kodu. Pokazalimy take, jak korzysta z rnych elementw IntelliSense w celu szybszego pisania kodu oraz poprawy jego jakoci.
Opisalimy tu techniki nawigowania po skomplikowanych i zagmatwanych plikach z kodem oraz
przegldania ich.
Przedstawilimy take fragmenty kodu oraz opisalimy rne ich typy oraz zastosowania.
Na zakoczenie pokazalimy, jak uywa okna Task List, aby wykorzysta wszystkie jego moliwoci, a take jak organizowa i ledzi rne zadania do wykonania obecne w kadym projekcie
programistycznym.
Z punktu widzenia produktywnoci Visual Studio 2008 to co wicej ni suma jego czci.
Dziki synergii midzy poszczeglnymi elementami rodowiska kada z waciwoci znosi bariery
i agodzi bolczki programistw niezalenie od ich wczeniejszych dowiadcze, poziomu biegoci
czy preferowanego jzyka.
325