You are on page 1of 112

Id do

Spis treci
Przykadowy rozdzia
Skorowidz
Katalog ksiek
Katalog online
Zamw drukowany
katalog
Twj koszyk
Dodaj do koszyka
Cennik i informacje
Zamw informacje
o nowociach
Zamw cennik
Czytelnia
Fragmenty ksiek
online

Kontakt
Helion SA
ul. Kociuszki 1c
44-100 Gliwice
tel. 32 230 98 63
e-mail: helion@helion.pl
Helion 19912011

Microsoft Visual Studio


2010. Ksiga eksperta
Autorzy: Mike Snell, Lars Powers
Tumaczenie: Tomasz Walczak
ISBN: 978-83-246-3029-5
Tytu oryginau: Microsoft Visual Studio 2010 Unleashed
Format: 172245, stron: 1264

Poznaj rodowisko Visual Studio 2010 Professional i naucz si tworzy mistrzowskie aplikacje
Jak wykorzysta technologi ASP.NET do tworzenia profesjonalnych witryn internetowych?
Jak tworzy aplikacje biznesowe oparte na pakiecie Office?
Jak kompleksowo testowa swj kod, zaprzgajc do pracy Visual Studio?
Visual Studio 2010 to najnowsza wersja rodowiska programistycznego firmy Microsoft. Kady
programista, ktry zdecyduje si wykorzysta bogaty zestaw zgromadzonych tu narzdzi, osignie
maksymaln produktywno w pracy i bdzie mg tworzy kod dziaajcy w systemie Windows
oraz w sieci. Dodatkowo bdzie mie do dyspozycji technologi Silverlight i moliwo budowania
aplikacji w chmurze, z uyciem platformy Microsoftu Azure. Nie koniec na tym. W Visual Studio
2010 pojawiy si kolejne innowacje. Znajdziesz tu nowy edytor kodu, oparty na platformie WPF,
rozszerzenia rodowiska IDE zwizane z platform MEF oraz moliwo pisania skryptw za pomoc
technologii Silverlight. Ponadto jzyki platformy .NET wzbogacono o obsug programowania
dynamicznego. Pojawi si nowy jzyk F#, sucy do programowania funkcyjnego, oraz
mechanizmy usprawniajce szybkie pisanie kodu wyszej jakoci.
Microsoft Visual Studio 2010. Ksiga eksperta zawiera kompletne omwienie rodowiska Visual
Studio 2010, a skoncentrowanie si na wersji Professional pozwolio autorom na stworzenie opisu
bardziej szczegowego ni kiedykolwiek wczeniej. Dziki temu podrcznikowi nauczysz si
w peni wykorzystywa moliwoci platformy .NET, w tym technologii WPF (pozwalajcej na
tworzenie bogatych klientw), technologii WCF (stworzonej do budowania dynamicznych rozwiza
opartych na usugach) czy te technologii WF (umoliwiajcej rozwijanie ustrukturyzowanych
programw na podstawie procesw biznesowych). Znajdziesz tu take omwienie nowych
narzdzi Microsoftu, przeznaczonych do testowania, instrumentacji aplikacji i analizowania kodu.
Jzyki platformy .NET
Przegldarki i eksploratory
Tworzenie projektw WPF
Szablony XML
Testowanie, refaktoryzacja i diagnozowanie kodu
Platforma MEF
Tworzenie aplikacji ASP.NET
Bogate i inteligentne interfejsy uytkownika
Zoone aplikacje internetowe
Silverlight 4.0
Aplikacje biznesowe oparte na pakiecie Office
Technologia Windows Azure i aplikacje dziaajce w chmurze
Wykorzystaj zdobyt wiedz i zosta mistrzem programowania!

Spis treci

Spis treci
O autorach ................................................................................................. 21
Wprowadzenie .......................................................................................... 23
Dla kogo przeznaczona jest ta ksika? ................................................................................ 23
Koncentracja na wersji Visual Studio Professional ............................................................ 24
Materiay do pobrania ............................................................................................................. 25
Jak zorganizowana jest ksika? ............................................................................................. 25
Cz I: Wprowadzenie do Visual Studio 2010 ............................................................... 25
Cz II: Szczegowe omwienie rodowiska IDE ......................................................... 25
Cz III: Tworzenie kodu i zarzdzanie nim .................................................................. 25
Cz IV: Wzbogacanie rodowiska Visual Studio ......................................................... 26
Cz V: Tworzenie aplikacji dla przedsibiorstw ........................................................... 26
Konwencje uywane w ksice ............................................................................................... 26

Cz I
Rozdzia 1.

Wprowadzenie do Visual Studio 2010 .......................... 27


Krtki przegld rodowiska Visual Studio 2010 .................................... 29
Produkty z rodziny Visual Studio ......................................................................................... 31
Wersje Express ...................................................................................................................... 32
Wersja Professional .............................................................................................................. 33
Wersja Premium ................................................................................................................... 34
Wersja Ultimate .................................................................................................................... 34
MSDN .................................................................................................................................... 35
Powizane narzdzia ............................................................................................................ 36
Jzyki, platformy i szablony aplikacji .................................................................................... 40
Wybieranie jzykw programowania ................................................................................ 40
Platformy .NET ..................................................................................................................... 42
Wiele aspektw aplikacji dla platformy .NET .................................................................. 43
Tworzenie bogat(sz)ych interfejsw sieciowych ............................................................... 46
Formularze Windows .......................................................................................................... 46
Platforma WPF ..................................................................................................................... 47
Rozwizania oparte na pakiecie Office .............................................................................. 50
Tworzenie klientw sieciowych ............................................................................................. 53
Budowanie witryn za pomoc technologii ASP.NET ..................................................... 54
Wzbogacanie aplikacji za pomoc AJAX-a ...................................................................... 58
Programowanie za pomoc technologii Silverlight ......................................................... 59
Programowanie pod ktem chmury ..................................................................................... 63
Tworzenie aplikacji dziaajcych w chmurze ................................................................... 64
Uruchamianie aplikacji w chmurze ................................................................................... 64
Publikowanie aplikacji w chmurze .................................................................................... 66

Spis treci

Praca z danymi ......................................................................................................................... 67


Projektowanie danych ......................................................................................................... 67
Oddzielanie projektu danych od modelu rda danych ............................................... 68
Tworzenie aplikacji okresowo nawizujcych poczenie .............................................. 71
Tworzenie powizanych rozwiza opartych na usugach ................................................ 71
Tworzenie aplikacji i procesw biznesowych ................................................................... 72
Tworzenie i konsumowanie usug ..................................................................................... 74
Podsumowanie ......................................................................................................................... 76

Rozdzia 2.

rodowisko IDE Visual Studio ................................................................. 77


Instalowanie rodowiska Visual Studio ................................................................................ 78
Wybr jzyka ......................................................................................................................... 78
Konfigurowanie rodowiska programistycznego ............................................................ 79
Strona startowa ......................................................................................................................... 83
Opcje uruchomieniowe ....................................................................................................... 84
Pierwszy projekt ....................................................................................................................... 85
Wybieranie docelowego rodowiska ................................................................................. 86
Poruszanie si po rodowisku IDE ........................................................................................ 88
Menu ...................................................................................................................................... 89
Liczne paski narzdzi ........................................................................................................... 94
Dostosowywanie paskw narzdzi .................................................................................... 95
Solution Explorer .................................................................................................................. 97
Edytory tekstu ....................................................................................................................... 98
Graficzne okna projektowe ............................................................................................... 102
Okno narzdzi ........................................................................................................................ 103
Okno Properties .................................................................................................................. 104
Zarzdzanie wieloma oknami rodowiska IDE ................................................................. 105
Przyczepianie ...................................................................................................................... 105
Dokowanie ........................................................................................................................... 106
Poruszanie si midzy oknami rodowiska .................................................................... 108
Dostosowywanie czcionki ................................................................................................. 110
Podsumowanie ....................................................................................................................... 111

Rozdzia 3.

Jzyki platformy .NET ............................................................................. 113


Wprowadzenie do jzykw ................................................................................................... 114
Programowanie obiektw ................................................................................................. 115
Typy, zmienne i stae ......................................................................................................... 129
Operatory ............................................................................................................................. 133
Podejmowanie decyzji i rozgazianie kodu ................................................................... 135
Ptle ...................................................................................................................................... 138
Praca z grupami elementw .............................................................................................. 141
Programowanie z wykorzystaniem atrybutw ............................................................... 145
Tworzenie i zgaszanie zdarze ........................................................................................ 147
Mechanizmy jzyka ............................................................................................................... 150
Wykrywanie typu zmiennej na podstawie przypisania ................................................ 151
Tworzenie obiektw i ustawianie ich waciwoci w jednym wierszu kodu .............. 153

Spis treci

Definiowanie kolekcji i inicjowanie ich wartoci (nowo) ......................................... 155


Tworzenie egzemplarzy nieistniejcych klas .................................................................. 156
Dodawanie metod do istniejcych klas ........................................................................... 157
Dodawanie logiki biznesowej do wygenerowanego kodu ............................................ 158
Dostp do danych i pobieranie ich za pomoc jzykw .NET .................................... 160
Pisanie prostych funkcji anonimowych w kodzie ......................................................... 162
Dzielenie podzespow na wiele plikw .......................................................................... 164
Bezporednie korzystanie z elementw XML (tylko w jzyku Visual Basic) ............ 164
Usuwanie nieuywanych argumentw z metod obsugi zdarze
(tylko w Visual Basic) ...................................................................................................... 166
Automatyczne generowanie kodu do obsugi waciwoci
(nowo w Visual Basic) ................................................................................................. 166
Rezygnacja z podkrelenia przy kontynuowaniu wiersza w jzyku Visual Basic
(nowo) ............................................................................................................................ 167
Korzystanie z dynamicznych obiektw i jzykw (nowo) ........................................ 167
Kowariancja i kontrawariancja (nowo) ....................................................................... 173
Platforma .NET ...................................................................................................................... 175
Podsumowanie ....................................................................................................................... 177

Cz II
Rozdzia 4.

Szczegowe omwienie rodowiska IDE .................. 179


Rozwizania i projekty ........................................................................... 181
Wprowadzenie do rozwiza ............................................................................................... 182
Tworzenie rozwizania ...................................................................................................... 183
Korzystanie z rozwiza .................................................................................................... 188
Zapoznawanie si z projektami ............................................................................................ 194
Tworzenie projektu ............................................................................................................ 194
Uywanie plikw definicji projektu ................................................................................. 198
Praca z projektami .............................................................................................................. 203
Podsumowanie ....................................................................................................................... 209

Rozdzia 5.

Przegldarki i eksploratory ................................................................... 211


Okno Solution Explorer ........................................................................................................ 212
Ikony i wskazwki graficzne ............................................................................................. 213
Zarzdzanie rozwizaniami .............................................................................................. 217
Zarzdzanie projektami ..................................................................................................... 218
Okno Class View .................................................................................................................... 219
Pasek narzdzi ..................................................................................................................... 220
Pasek wyszukiwania ........................................................................................................... 220
Panel obiektw .................................................................................................................... 221
Panel skadowych ............................................................................................................... 222
Okno Server Explorer ............................................................................................................ 223
Poczenia z danymi ........................................................................................................... 224
Komponenty serwera ......................................................................................................... 225
Okno Object Browser ............................................................................................................ 229
Zmiana zasigu ................................................................................................................... 229
Przegldanie obiektw ....................................................................................................... 230

Spis treci

Okno Document Outline ...................................................................................................... 232


Modyfikowanie elementw ............................................................................................... 233
Podsumowanie ....................................................................................................................... 234

Rozdzia 6.

Wprowadzenie do edytorw i okien projektowych ............................ 235


Podstawy ................................................................................................................................. 236
Edytor tekstu ....................................................................................................................... 237
Okna projektowe rodowiska Visual Studio .................................................................. 240
Pisanie kodu w edytorze ....................................................................................................... 240
Otwieranie edytora ............................................................................................................. 241
Pisanie kodu ........................................................................................................................ 241
Budowa okna edytora kodu .............................................................................................. 243
Narzdzia do nawigowania po kodzie ............................................................................. 246
Przeszukiwanie dokumentw ........................................................................................... 249
Diagnozowanie w edytorze kodu ..................................................................................... 258
Drukowanie kodu ............................................................................................................... 262
Uywanie okna Code Definition ...................................................................................... 262
Tworzenie i modyfikowanie dokumentw oraz szablonw XML .................................. 264
Generowanie szablonw .................................................................................................... 265
Projektowanie szablonw XML ....................................................................................... 265
Edycja arkuszy stylw XSLT ............................................................................................. 269
Uywanie kaskadowych arkuszy stylw ............................................................................. 270
Dodawanie zasad stylw .................................................................................................... 271
Definiowanie atrybutw arkuszy stylw ......................................................................... 271
Tworzenie aplikacji klienckich dla systemu Windows ..................................................... 271
Tworzenie projektw aplikacji dla systemu Windows ................................................. 272
Tworzenie projektw WPF ............................................................................................... 280
Tworzenie formularzy sieciowych ....................................................................................... 282
Projektowanie aplikacji opartych na formularzach sieciowych .................................. 283
Tworzenie komponentw i kontrolek ................................................................................ 289
Tworzenie nowego komponentu lub kontrolki ............................................................. 290
Uwagi na temat pisania kodu komponentw ................................................................ 291
Tworzenie klas za pomoc okna Class Designer ............................................................... 293
Tworzenie diagramu klasy ................................................................................................ 293
Dodawanie elementw do diagramu ............................................................................... 294
Definiowanie relacji midzy klasami ............................................................................... 296
Definiowanie metod, waciwoci, pl i zdarze ........................................................... 298
Podsumowanie ....................................................................................................................... 299

Rozdzia 7.

Spoeczno .NET interakcje w internecie ....................................... 301


Moliwoci Visual Studio zwizane ze spoecznoci ...................................................... 302
Strona startowa Visual Studio .......................................................................................... 303
Dostp do systemu pomocy ................................................................................................. 312
Zarzdzanie ustawieniami systemu pomocy .................................................................. 312
Zgaszanie bdw i przesyanie innych informacji zwrotnych ................................... 323
Przykady ............................................................................................................................. 326

10

Spis treci

Wykrywanie i wykorzystanie wspuytkowanych zasobw .......................................... 328


Rodzaje wspuytkowanych zasobw ............................................................................ 328
Wyszukiwanie odpowiednich zasobw ........................................................................... 328
Instalowanie i przechowywanie udostpnianych zasobw .......................................... 330
Wasny wkad w spoeczno ............................................................................................... 332
Pakiety startowe a szablony .............................................................................................. 333
Tworzenie szablonw projektw ..................................................................................... 333
Tworzenie szablonw elementw .................................................................................... 340
Tworzenie pakietw w celu ich rozpowszechniania ..................................................... 341
Podsumowanie ....................................................................................................................... 356

Cz III Tworzenie kodu i zarzdzanie nim .............................. 359


Rozdzia 8.

Korzystanie z narzdzi zwikszajcych produktywno .................... 361


Podstawowe narzdzia pomocnicze edytorw tekstu ...................................................... 364
ledzenie zmian .................................................................................................................. 364
Wskazwki dotyczce problemw ................................................................................... 364
Aktywne odnoniki ............................................................................................................ 365
Kolorowanie skadni .......................................................................................................... 365
Schematy i nawigacja ............................................................................................................. 367
Schematy kodu .................................................................................................................... 367
Nawigowanie po znacznikach .......................................................................................... 370
Inteligentne znaczniki i operacje ......................................................................................... 372
Okno projektowe HTML-a ............................................................................................... 372
Okno projektowe formularzy Windows ......................................................................... 373
Edytor kodu ......................................................................................................................... 373
Mechanizm IntelliSense ........................................................................................................ 375
Uzupenianie sw (Complete Word) ............................................................................. 375
Okno z informacjami podrcznymi (Quick Info) ......................................................... 377
Okno z list skadowych (List Members) ........................................................................ 378
Okno z informacjami o parametrach (Parameter Info) ............................................... 379
Porzdkowanie instrukcji Using ...................................................................................... 380
Fragmenty kodu i kod szablonowy .................................................................................. 380
Dopasowywanie nawiasw ............................................................................................... 391
Dostosowywanie mechanizmu IntelliSense do wasnych potrzeb .............................. 392
Okno Task List ....................................................................................................................... 393
Zadania zwizane z komentarzami .................................................................................. 394
Zadania zwizane ze skrtami .......................................................................................... 395
Zadania uytkownika ......................................................................................................... 396
Podsumowanie ....................................................................................................................... 396

Rozdzia 9.

Testowanie kodu .................................................................................... 397


Podstawy testw jednostek ................................................................................................... 399
Tworzenie projektu testw ................................................................................................ 399
Generowanie testw na podstawie istniejcego kodu ................................................... 402
Pisanie testw jednostek .................................................................................................... 405

11

Spis treci

Uruchamianie testw jednostek ....................................................................................... 407


Konfigurowanie opcji i ustawie testw ......................................................................... 409
Platforma testw jednostek .................................................................................................. 413
Klasa TestContext ............................................................................................................... 413
Klasy atrybutw testw ...................................................................................................... 415
Operacje wykonywane przed testami jednostek i po nich ........................................... 418
Klasy asercji ......................................................................................................................... 420
Testowanie wyjtkw ......................................................................................................... 422
Tworzenie testw jednostek zalenych od danych ........................................................ 423
Pisanie testw jednostek dziaajcych w ASP.NET ........................................................... 428
Definiowanie atrybutw rodowiska ASP.NET ............................................................. 428
Generowanie testw jednostek ASP.NET ....................................................................... 429
Konfigurowanie hosta projektu testw ........................................................................... 430
Konfigurowanie atrybutw testw jednostek .................................................................... 431
Definiowanie poczenia za pomoc okna dialogowego Properties ........................... 431
Tworzenie testw uporzdkowanych ................................................................................. 433
Organizowanie testw ........................................................................................................... 434
Okno Test View .................................................................................................................. 434
Okno Test List Editor ........................................................................................................ 435
Podsumowanie ....................................................................................................................... 438

Rozdzia 10.

Refaktoryzacja kodu ............................................................................... 439


Podstawy refaktoryzacji w Visual Studio ........................................................................... 441
Uruchamianie narzdzi do refaktoryzacji ....................................................................... 441
Podgld zmian .................................................................................................................... 445
Zmienianie nazw .................................................................................................................... 446
Uruchamianie operacji Rename ....................................................................................... 447
Uywanie okna dialogowego Rename ............................................................................. 449
Wyodrbnianie metod .......................................................................................................... 450
Uruchamianie refaktoryzacji Extract Method ............................................................... 451
Wyodrbnianie metod ....................................................................................................... 451
Generowanie szkieletu metody ........................................................................................ 457
Wyodrbnianie interfejsw .................................................................................................. 459
Uruchamianie refaktoryzacji Extract Interface .............................................................. 459
Wyodrbnianie interfejsw ............................................................................................... 459
Refaktoryzacja parametrw .................................................................................................. 462
Usuwanie parametrw ....................................................................................................... 462
Zmiana kolejnoci parametrw ........................................................................................ 463
Hermetyzacja pl ................................................................................................................... 465
Uruchamianie refaktoryzacji Encapsulate Field ............................................................ 465
Okno dialogowe Encapsulate Field .................................................................................. 465
Podsumowanie ....................................................................................................................... 466

Rozdzia 11.

Diagnozowanie kodu ............................................................................. 467


Podstawy diagnozowania ...................................................................................................... 468
Scenariusz ............................................................................................................................ 469
Wiele etapw diagnozowania ........................................................................................... 469

12

Spis treci

Diagnozowanie aplikacji (samodzielne sprawdzanie) .................................................. 470


Podsumowanie podstaw diagnozowania ........................................................................ 481
Debuger rodowiska Visual Studio ..................................................................................... 481
Menu i pasek narzdzi Debug .......................................................................................... 482
Opcje diagnozowania ......................................................................................................... 487
Wkraczanie w kod, wychodzenie z niego i przeskakiwanie ......................................... 488
Okrelanie warunkw wstrzymania wykonywania kodu ............................................. 494
Korzystanie z punktw ledzenia (opcja When Hit) ..................................................... 503
Podgldanie danych w debugerze .................................................................................... 505
Korzystanie z funkcji zmie i kontynuuj .................................................................... 511
Diagnozowanie zaawansowane ............................................................................................ 513
Zdalne diagnozowanie ....................................................................................................... 513
Diagnozowanie usug WCF .............................................................................................. 514
Diagnozowanie aplikacji wielowtkowych ..................................................................... 515
Diagnozowanie aplikacji rwnolegych .......................................................................... 520
Diagnozowanie skryptw dziaajcych po stronie klienta ........................................... 526
Diagnozowanie informacji o awarii (plikw zrzutw) ................................................. 527
Podsumowanie ....................................................................................................................... 530

Rozdzia 12.

Wdraanie kodu ...................................................................................... 533


Przegld sposobw wdraania rozwiza po stronie klienta .......................................... 534
Wprowadzenie do wdraania metod ClickOnce ......................................................... 534
Wprowadzenie do wdraania za pomoc instalatora systemu Windows .................. 535
Publikowanie projektw za pomoc technologii ClickOnce ........................................... 536
Publikowanie projektw za pomoc instalatora systemu Windows .............................. 539
Edytor File System .............................................................................................................. 542
Edytor Registry ................................................................................................................... 543
Edytor File Types ................................................................................................................ 544
Edytor User Interface ......................................................................................................... 545
Edytor Custom Actions ..................................................................................................... 546
Edytor Launch Conditions ................................................................................................ 546
Publikowanie witryn i aplikacji ASP.NET ......................................................................... 549
Korzystanie z narzdzia Web Deployment Tool ........................................................... 550
Korzystanie z narzdzia Copy Web Site Tool ................................................................ 554
Podsumowanie ....................................................................................................................... 556

Cz IV Wzbogacanie rodowiska Visual Studio ..................... 557


Rozdzia 13.

Wprowadzenie do obiektowego modelu automatyzacji .................... 559


Przegld obiektowego modelu automatyzacji .......................................................................... 561
Wersje modelu obiektowego ............................................................................................ 561
Kategorie automatyzacji .................................................................................................... 563
Obiekt gwny DTE (DTE2) ............................................................................................. 564
Obiekty Solution i Project ..................................................................................................... 565
Kontrolowanie projektw wchodzcych w skad rozwizania .................................... 568
Dostp do kodu projektu ................................................................................................... 569

13

Spis treci

Okna ......................................................................................................................................... 572


Dostp do okien .................................................................................................................. 572
Interakcja z oknami ............................................................................................................ 573
Okna tekstowe i panele ...................................................................................................... 576
Rodzaje okien narzdzi ...................................................................................................... 578
Okna poczone .................................................................................................................. 586
Paski polece .......................................................................................................................... 588
Dokumenty ............................................................................................................................. 592
Dokumenty tekstowe ......................................................................................................... 593
Obiekty polecenia .................................................................................................................. 604
Wykonywanie polece ....................................................................................................... 606
Dodawanie klawiszy skrtu .............................................................................................. 607
Obiekty debugera ................................................................................................................... 608
Zdarzenia automatyzacji ....................................................................................................... 608
Podsumowanie ....................................................................................................................... 609

Rozdzia 14.

Tworzenie makr ...................................................................................... 611


Rejestrowanie makr ............................................................................................................... 613
Korzystanie z okna Macro Explorer .................................................................................... 614
Pisanie makr za pomoc rodowiska IDE Macros .......................................................... 616
Projekty makr ...................................................................................................................... 617
Pisanie makr ........................................................................................................................ 620
Diagnozowanie ................................................................................................................... 623
Obsuga zdarze ................................................................................................................. 623
Wywoywanie makr ........................................................................................................... 629
Podsumowanie ....................................................................................................................... 633

Rozdzia 15.

Tworzenie dodatkw i kreatorw ......................................................... 635


Tworzenie pierwszego projektu dodatku ........................................................................... 637
Ustawianie parametrw dodatku ..................................................................................... 637
Struktura dodatkw ............................................................................................................... 645
Cykl ycia dodatkw .......................................................................................................... 645
Reagowanie na polecenia .................................................................................................. 651
Zarzdzanie dodatkami ..................................................................................................... 653
Przykadowy dodatek paleta do wybierania kolorw .................................................. 654
Pocztkowe operacje .......................................................................................................... 655
Tworzenie klasy kontrolki uytkownika ......................................................................... 655
Dopracowywanie klasy Connect ...................................................................................... 659
Udostpnianie ustawie dodatku ..................................................................................... 662
Tworzenie kreatorw dla rodowiska Visual Studio ........................................................ 677
Analiza struktury kreatorw ............................................................................................. 677
Tworzenie kreatorw typu Add New Item ..................................................................... 680
Podsumowanie ....................................................................................................................... 686

Rozdzia 16.

Rozbudowywanie edytora kodu przy uyciu platformy MEF ............. 687


Problem z rozszerzaniem ...................................................................................................... 688
Tworzenie dynamicznych aplikacji ................................................................................. 688

14

Spis treci

Architektura platformy MEF ............................................................................................... 689


Reguy dziaania platformy MEF ..................................................................................... 689
Korzystanie z platformy MEF ........................................................................................... 690
Edytor rodowiska Visual Studio i platforma MEF .......................................................... 691
Punkty doczania rozszerze do edytora ...................................................................... 692
Korzystanie z pakietu Visual Studio SDK ....................................................................... 693
Korzystanie z menedera rozszerze ............................................................................... 699
Tworzenie rozszerzenia edytora za pomoc platformy MEF .......................................... 701
Podsumowanie ....................................................................................................................... 709

Cz V
Rozdzia 17.

Tworzenie aplikacji dla przedsibiorstw .................... 711


Tworzenie aplikacji ASP.NET ................................................................. 713
Podstawy tworzenia witryn w ASP.NET ............................................................................ 715
Tworzenie nowego projektu witryny lub aplikacji sieciowej ....................................... 715
Kontrolowanie waciwoci i opcji projektu ................................................................... 728
Tworzenie stron internetowych ....................................................................................... 736
Projektowanie interfejsu uytkownika ............................................................................... 745
Okrelanie ukadu strony i pooenia kontrolek ........................................................... 746
Tworzenie jednolitego wygldu i zachowania ................................................................ 753
Tworzenie UI konfigurowanego przez uytkownika .................................................... 775
Praca z kontrolkami ASP.NET ............................................................................................. 787
Przegld kontrolek ASP.NET ........................................................................................... 787
Standardowe kontrolki ASP.NET .................................................................................... 790
Kontrolki do sprawdzania poprawnoci ......................................................................... 792
Kontrolki logowania .......................................................................................................... 794
Kontrolki nawigacyjne witryny ........................................................................................ 797
Kontrolki danych ................................................................................................................ 798
Kontrolki uytkownika ...................................................................................................... 800
Tworzenie aplikacji ASP.NET MVC ................................................................................... 804
Wprowadzenie do aplikacji ASP.NET MVC ................................................................. 804
Tworzenie projektw MVC .............................................................................................. 808
Dodawanie mechanizmw za pomoc ASP.NET MVC ............................................... 811
Podsumowanie ....................................................................................................................... 820

Rozdzia 18.

Tworzenie aplikacji opartych na formularzach Windows ................... 821


Podstawy projektowania formularzy .................................................................................. 822
Uwzgldnianie uytkownika kocowego ........................................................................ 823
Rola standardw UI ........................................................................................................... 824
Planowanie interfejsu uytkownika ................................................................................. 825
Tworzenie formularza ........................................................................................................... 826
Typ projektu Windows Application ................................................................................ 826
Waciwoci i zdarzenia formularza ................................................................................ 827
Dodawanie kontrolek i komponentw ............................................................................... 830
Ukad i pozycjonowanie kontrolek .................................................................................. 831
Uywanie kontenerw ....................................................................................................... 836

15

Spis treci

Wygld i zachowanie kontrolek ....................................................................................... 840


Praca z kontrolkami ToolStrip ......................................................................................... 841
Wywietlanie danych ......................................................................................................... 849
Tworzenie wasnych kontrolek ............................................................................................ 853
Dziedziczenie po istniejcej kontrolce ............................................................................ 853
Projektowanie kontrolki uytkownika ............................................................................ 854
Tworzenie kontrolki niestandardowej ............................................................................ 857
Podsumowanie ....................................................................................................................... 857

Rozdzia 19.

Tworzenie bogatszych i bardziej inteligentnych


interfejsw uytkownika ....................................................................... 859
Platforma Windows Presentation Foundation ...................................................................... 860
Model programowania ...................................................................................................... 863
Wprowadzenie do okna projektowego WPF ........................................................................ 865
XAML i panele projektowe ............................................................................................... 866
Programowanie z wykorzystaniem WPF ........................................................................... 871
Ukad .................................................................................................................................... 871
Style i szablony .................................................................................................................... 878
Wizanie danych ................................................................................................................ 881
Zdarzenia przekazywane ................................................................................................... 883
Tworzenie prostej przegldarki obrazw ........................................................................... 884
Rozpoczynanie tworzenia ukadu .................................................................................... 885
Zapisywanie obrazw ......................................................................................................... 891
Wizanie rysunkw ............................................................................................................ 893
Metody do obsugi zdarze zwizanych
z przyciskami i efekty do modyfikowania obrazu ....................................................... 894
Wybr katalogu przy uyciu standardowego okna dialogowego ................................ 895
Podsumowanie ....................................................................................................................... 901

Rozdzia 20.

Tworzenie bogatych aplikacji internetowych ..................................... 903


Technologia ASP.NET Ajax i bogate interfejsy dziaajce
w rnych przegldarkach ................................................................................................. 904
Ajaksowe kontrolki w ASP.NET ...................................................................................... 905
Tworzenie stron obsugujcych czciow aktualizacj ............................................... 907
ASP.NET Ajax Library i Ajax Control Toolkit .............................................................. 915
Tworzenie wyjtkowych, bogatych interakcji opartych
na przegldarkach w systemie Windows ......................................................................... 921
Niezalene aplikacje WPF a programy XBAP WPF ...................................................... 922
Tworzenie aplikacji WPF uruchamianych w przegldarce .......................................... 922
Zagadnienia zwizane z zabezpieczeniami ..................................................................... 926
Instalowanie aplikacji XBAP ............................................................................................. 929
Udostpnianie interaktywnych aplikacji w rnych systemach ..................................... 933
Wprowadzenie do Silverlight ........................................................................................... 933
Tworzenie aplikacji Silverlight ......................................................................................... 934
Silverlight 4.0 ....................................................................................................................... 939
Podsumowanie ....................................................................................................................... 940

16

Spis treci

Rozdzia 21.

Praca z bazami danych ........................................................................... 941


Tworzenie tabel i zwizkw .................................................................................................. 942
Tworzenie nowej bazy danych SQL Server ..................................................................... 943
Definiowanie tabel .............................................................................................................. 945
Korzystanie z Database Diagram Designer .................................................................... 947
Praca z poleceniami w SQL-u .............................................................................................. 951
Pisanie zapyta ................................................................................................................... 951
Tworzenie widokw ........................................................................................................... 955
Tworzenie procedur skadowanych ................................................................................. 956
Tworzenie wyzwalaczy ...................................................................................................... 960
Tworzenie funkcji definiowanych przez uytkownika ................................................. 961
Uywanie projektw baz danych ......................................................................................... 961
Tworzenie projektu bazy danych ..................................................................................... 962
Okno Schema View ............................................................................................................ 967
Kompilowanie i wdraanie ............................................................................................... 968
Uwagi na temat mechanizmu DAC ................................................................................. 969
Tworzenie obiektw bazy danych w kodzie zarzdzanym .............................................. 970
Rozpoczynanie projektu SQL Server CLR ...................................................................... 970
Tworzenie procedury skadowanej w C# ........................................................................ 971
Wizanie kontrolek z danymi .............................................................................................. 974
Wprowadzenie do wizania danych ................................................................................ 974
Automatyczne generowanie zwizanych kontrolek Windows Forms ....................... 976
Modyfikowanie zbiorw danych o okrelonym typie ................................................... 981
Rczne wizanie kontrolek formularzy Windows ......................................................... 982
Wizanie danych w aplikacjach WPF ............................................................................. 986
Wizanie danych z kontrolkami sieciowymi .................................................................. 989
Odwzorowania obiektowo-relacyjne .................................................................................. 993
Przegld technologii LINQ ............................................................................................... 994
Odwzorowywanie przy uyciu narzdzia O/R Designer .............................................. 996
Kod LINQ ............................................................................................................................ 998
Korzystanie z platformy Entity ....................................................................................... 1001
Kierowanie zapyta do modelu EDM ........................................................................... 1006
Podsumowanie ..................................................................................................................... 1008

Rozdzia 22.

Aplikacje oparte na usugach .............................................................. 1011


Wprowadzenie do usug ..................................................................................................... 1012
Dlaczego usugi sieciowe ASP.NET i WCF? ................................................................. 1014
Aplikacje oparte na usugach sieciowych ASP.NET ....................................................... 1015
Szablon projektu ASP.NET Web Service ...................................................................... 1017
Tworzenie usugi sieciowej ASP.NET ........................................................................... 1020
Konsumowanie usugi sieciowej ASP.NET .................................................................. 1033
Wyjtki w usugach sieciowych ASP.NET .................................................................... 1039
Aplikacje oparte na usugach WCF ................................................................................... 1041
Szablon projektu WCF .................................................................................................... 1043
Tworzenie usug WCF ..................................................................................................... 1045
Konfigurowanie usug WCF ........................................................................................... 1050

17

Spis treci

Konsumowanie usugi WCF ........................................................................................... 1055


Hosting i instalowanie usug WCF ................................................................................ 1058
Podsumowanie ..................................................................................................................... 1060

Rozdzia 23.

Dodawanie procesw do aplikacji ...................................................... 1061


Podstawy technologii Windows Workflow ..................................................................... 1063
Skadniki procesu ............................................................................................................. 1063
Szablony projektw typu Workflow .............................................................................. 1065
Okno projektowe procesw ............................................................................................ 1067
Szablony elementw procesw ....................................................................................... 1068
Podstawy tworzenia procesw ........................................................................................ 1069
Korzystanie z wbudowanych czynnoci procesw ......................................................... 1082
Sterowanie przepywem ................................................................................................... 1083
Czynnoci Runtime i Primitives ..................................................................................... 1084
Czynnoci Error Handling .............................................................................................. 1086
Czynnoci Collection ....................................................................................................... 1086
Obsuga transakcji ............................................................................................................ 1087
Zarzdzanie komunikatami ............................................................................................ 1089
Tworzenie procesw typu Flowchart ............................................................................ 1094
Tworzenie aplikacji do zarzdzania procesem .............................................................. 1096
Scenariusz zgoszenia dotyczce podry ................................................................ 1096
Szablony projektw aplikacji .......................................................................................... 1097
Tworzenie bazy danych i biblioteki dostpu do danych ............................................. 1099
Tworzenie usugi do obsugi rezerwacji w biurze podry ........................................ 1104
Tworzenie niestandardowej biblioteki czynnoci ........................................................ 1105
Projektowanie procesu zgaszania podry .................................................................. 1107
Tworzenie aplikacji klienckiej (formularze do zgaszania i zatwierdzania
podry) .......................................................................................................................... 1119
Uruchamianie aplikacji do obsugi procesu zgaszania podry .............................. 1124
Podsumowanie ..................................................................................................................... 1127

Rozdzia 24.

Tworzenie aplikacji biznesowych opartych na pakiecie Office ........ 1129


Przegld rozszerzalnych funkcji pakietu Office .............................................................. 1131
Funkcje pakietu Office ..................................................................................................... 1131
Typy projektw Office w Visual Studio ........................................................................ 1135
Tworzenie dodatkw dla pakietu Office ........................................................................... 1136
Modyfikowanie wstki ................................................................................................... 1137
Modyfikowanie panelu zada ......................................................................................... 1141
Tworzenie regionw formularzy aplikacji Outlook .................................................... 1144
Tworzenie rozszerze dokumentw Office ..................................................................... 1147
Kontrolki kontenerowe ................................................................................................... 1147
Tworzenie paneli operacji ............................................................................................... 1149
Przechowywanie danych w pamici podrcznej .......................................................... 1150
Implementowanie wasnych tagw inteligentnych ..................................................... 1153
Podsumowanie ..................................................................................................................... 1156

18

Spis treci

Rozdzia 25.

Aplikacje dziaajce w chmurze i technologia Windows Azure ....... 1157


Podstawy platformy Azure ................................................................................................. 1158
Korzyci, jakie daje platforma Azure ............................................................................. 1158
Konfigurowanie rodowiska programistycznego ........................................................ 1160
Role w platformie Azure .................................................................................................. 1164
Szablony projektw na platform Azure ...................................................................... 1165
Sposoby przechowywania danych w platformie Azure .............................................. 1167
Aplikacja Hello Cloud ...................................................................................................... 1170
Rozwijanie i wdraanie aplikacji na platform Azure .................................................... 1174
Scenariusz .......................................................................................................................... 1174
Rozwijanie aplikacji .......................................................................................................... 1175
Subskrypcja usug platformy Azure (zakadanie konta) ............................................. 1188
Tworzenie konta do przechowywania danych ............................................................. 1190
Tworzenie konta usug hosted service ........................................................................... 1194
Przygotowywanie aplikacji do publikacji ...................................................................... 1196
Publikowanie i wdraanie aplikacji w chmurze ........................................................... 1199
Przenoszenie do rodowiska produkcyjnego ............................................................... 1204
Nastpne kroki .................................................................................................................. 1205
Podsumowanie ..................................................................................................................... 1207

Skorowidz ............................................................................................. 1209

19

Rozdzia 9.
Testowanie kodu

Cz III Tworzenie kodu i zarzdzanie nim

W tym rozdziale:
x Podstawy testw jednostek
x Platforma testw jednostek
x Pisanie testw jednostek dziaajcych w ASP.NET
x Konfigurowanie atrybutw testw jednostek
x Tworzenie testw uporzdkowanych
x Organizowanie testw

Programici zawsze byli odpowiedzialni za testowanie kodu przed udostpnieniem go testerom


lub uytkownikom. W przeszoci oznaczao to przejcie przez kady wiersz kodu w debugerze
(wczajc w to wszystkie warunki i bdy). W tym celu czsto trzeba byo przygotowa aplikacje testowe z operacjami potrzebnymi do wykonania kodu. Przejcie przez cay kod pozwalao doj do celu, ale nie zawsze programistom chciao si to robi (i bardzo trudno byo to
sprawdzi). W praktyce ca t operacj czsto pomijano w czasie wprowadzania zmian w kodzie i jego aktualizacji. Opisany proces utrudnia ponadto ustalenie, czy zmiany w kodzie wpywaj na inne czci systemu, a take powodowa przesyanie testerom i uytkownikom wersji
o niszej jakoci, co zwikszao liczb usterek oraz wyduao czas potrzebny na przesyanie
kodu tam i z powrotem midzy programistami a testerami.
Ten mechanizm (i efekty jego stosowania) wskazywa na potrzeb automatyzacji testowania
jednostek. W efekcie powstay rne przeznaczone do tego platformy. Pierwsz tak platform dla
.NET bya NUnit (nunit.org) projekt o otwartym dostpie do kodu rdowego dziaajcy dla
wikszoci jzykw .NET, ktry umoliwia pisanie kodu sucego do testowania innego kodu.
Podobna platforma zostaa wbudowana w Visual Studio 2005 i jest dostpna take w obecnej wersji.
Platforma testw jednostek w Visual Studio umoliwia kompilowanie testw wraz z aplikacj.
Mona te zdecydowa si na zastosowanie programowania sterowanego testami i przygotowa
testy przed rozpoczciem pisania kodu. W kadym przypadku ustrukturyzowane podejcie do
testw jednostek moe doprowadzi do utworzenia penego zestawu testw wsppracujcego
z aplikacj.
Peny zestaw testw moe skada si na test regresji dla wikszoci komponentw, a nawet dla
caego systemu. Daje to wiksz pewno przy wykonywaniu operacji, ktre wczeniej byy bardzo
ryzykowne, na przykad przy wprowadzaniu poprawek w ostatniej chwili, dokonywaniu refaktoryzacji czy dodawaniu elementw tu przed zakoczeniem pracy. Przy wykonywaniu tych dziaa
mona wykorzysta peny zestaw testw jednostek do sprawdzenia, jakie elementy (i czy w ogle)
zostay zepsute w wyniku wprowadzenia zmian.
W tym rozdziale opisano wiele narzdzi, technologii i technik przeprowadzania testw przez
programistw. Dziki tym informacjom mona zacz czerpa liczne korzyci ze zautomatyzowanych testw dostpnych programistom. Prowadz one do zmniejszenia liczby bdw,
powstawania bardziej zrozumiaego kodu i wikszej pewnoci przy wprowadzaniu zmian w kodzie.

398

Rozdzia 9. Testowanie kodu

Podstawy testw jednostek


Testy jednostek w Visual Studio polegaj na tworzeniu testw sprawdzajcych kod warstw
aplikacji. Warstwy obejmuj liczne klasy z obszaru logiki biznesowej i obsugi danych. Do
sprawdzania interfejsu uytkownika su zwykle inne metody automatycznego testowania. S
one przeznaczone gwnie dla testerw. Potrzebne do tego funkcje i produkty znajduj si w wersji
Premium rodowiska Visual Studio, dlatego nie opisujemy ich w tym miejscu. W zamian
koncentrujemy si na tworzeniu kodu do testowania innego kodu. Oczywicie, zakadamy przy
tym, e programista w czasie rozwijania aplikacji stosuje prawidowe techniki budowania architektury warstwowej. W tym podrozdziale omawiamy podstawy pisania testw jednostek. W dalszych punktach szczegowo opisujemy przedstawione tu zagadnienia.

Tworzenie projektu testw


Testy programistw trzeba umieszcza w projektach testw. Projekt zawiera odpowiednie
referencje do platformy testw jednostek i trzeba skonfigurowa go tak, aby mona go byo
uruchomi za pomoc narzdzi testowych wbudowanych w Visual Studio. Istniej dwa gwne
sposoby tworzenia projektw testw jednostek. Mona przygotowa projekt testw w rodowisku IDE lub automatycznie wygenerowa testy jednostek dla istniejcego kodu w nowym projekcie testw. Zaczniemy od pierwszej z tych moliwoci.

Szablon projektu testw


Nowy projekt testw w Visual Studio mona utworzy w oknie dialogowym New Project (File/
New/Project). W oknie dialogowym naley przej do wza Test Projects w drzewie Installed
Templates. Wze pokazano na rysunku 9.1. Warto zauway, e projekt testw mona umieci w nowym lub istniejcym rozwizaniu. Zwykle testy projektw dodaje si do gotowych
rozwiza, poniewa w testach trzeba umieci referencje do projektw z rozwizania.

Rysunek 9.1. W oknie dialogowym New Project mona utworzy nowy projekt testw dla rozwizania

399

Cz III Tworzenie kodu i zarzdzanie nim

Dobre praktyki tworzenia projektw i klas testw


Naley ustali reguy okrelajce liczb projektw testw tworzonych dla rozwizania.
Zwykle programici tworz jeden projekt testw dla kadego sprawdzanego projektu.
Na przykad jeli w jednym projekcie znajduj si obiekty biznesowe, a w innym usugi
zwizane z danymi, mona utworzy dwa projekty testowe (po jednym dla kadego
projektu gwnego). Nie jest to jednak wymg, a jedynie sposb na atwe zrozumienie
organizacji kodu.
Podobne zasady dotycz klas testw. Naley utworzy jedn klas testw dla kadej
klasy ze sprawdzanego docelowego projektu. Jeli programista tworzy projekt testw
dla kodu logiki biznesowej obejmujcego obiekty Customer i Order, powinien przygotowa klasy CustomerTest i OrderTest. Nie jest to konieczne, ale prowadzi do dobrego, logicznego uporzdkowania kodu.

Projekt testw
W czasie tworzenia nowego projektu testw Visual Studio dodaje referencje do platformy testw
jednostek (Microsoft.VisualStudio.QualityTools.UnitTestFramework). Ponadto dodaje
do rozwizania dwa pliki (w katalogu Solution Items). S to pliki z konfiguracj (ustawieniami)
testw. Ich nazwy to Local.testsettings i TraceAndTestImpact.testsettings. W projekcie testw
tworzona jest te klasa testw uywana do pisania testw jednostek. Na rysunku 9.2 pokazano
kady z tych elementw w oknie Solution Explorer. Poszczeglne pliki omawiamy szczegowo
w dalszych punktach.
Rysunek 9.2.
Projekt testw
i powizane elementy
w oknie Solution
Explorer

400

Rozdzia 9. Testowanie kodu

Do projektu mona doda nowe pliki testw. W tym celu naley klikn prawym przyciskiem
myszy projekt testw i wybra opcj Add/New Test. Ponadto mona uy menu Project i otworzy okno dialogowe Add New Test widoczne na rysunku 9.3. W tym miejscu dostpne s
nastpujce opcje:
x Basic Unit Test. Ten szablon tworzy prost klas testw z pust metod testow. Uywa

si go zwykle przy tworzeniu testw od podstaw (bez korzystania z funkcji automatycznego generowania testw).
x Database Unit Test. Ten szablon suy do tworzenia testw jednostek wykonywa-

nych na procedurach skadowanych z bazy danych (do stosowania tej funkcji potrzebna jest wersja Premium rodowiska Visual Studio).
x Ordered Test. Ten szablon umoliwia utworzenie sekwencyjnej listy wsplnie wyko-

nywanych testw (zobacz podrozdzia Tworzenie testw uporzdkowanych w dalszej czci rozdziau).
x Unit Test. Ten szablon tworzy pust klas testw jednostek korzystajc z obiektu do

ledzenia kontekstu testw. Tego typu klasy testw jednostek s generowane automatycznie (zobacz punkt Generowanie testw na podstawie istniejcego kodu).
x Unit Test Wizard. Ten szablon uruchamia kreator Unit Test Wizard sucy do au-

tomatycznego generowania testw na podstawie istniejcego kodu rozwizania (zobacz punkt Generowanie testw na podstawie istniejcego kodu).
Rysunek 9.3.
Za pomoc okna
dialogowego Add New Test
mona dodawa nowe testy
do projektu testw

Menu Test
Menu Test mona wykorzysta do uzyskania dostpu do wszystkich funkcji rodowiska Visual
Studio zwizanych z testami przeprowadzanymi przez programistw. Menu pozwala midzy innymi dodawa klasy testw jednostek do projektu testw (Test/New Test). Mona go ponadto
401

Cz III Tworzenie kodu i zarzdzanie nim

uywa do wczytywania informacji o wczeniejszych testach (Load Metadata File), uruchamiania testw (z diagnozowaniem lub bez), wybierania ustawie stosowanych w nastpnym
przebiegu testw, a take edytowania takich ustawie. Mona te uzyska dostp do wielu
okien sucych do wywietlania i organizowania testw w aplikacji. Na rysunku 9.4 pokazano
przykad ilustrujcy wiele funkcji omawianego menu.

Rysunek 9.4. Menu Test rodowiska Visual Studio pozwala uzyska dostp do funkcji rodowiska zwizanych
z testami przeprowadzanymi przez programistw

Generowanie testw na podstawie istniejcego kodu


Visual Studio umoliwia te automatyzacj procesu tworzenia testw jednostek. Mona klikn prawym przyciskiem myszy istniejc klas i wybra z menu podrcznego opcj Create
Unit Tests. Inna moliwo to wybranie szablonu elementu Unit Test Wizard. Oba rozwizania
powoduj utworzenie przez Visual Studio zestawu testw jednostek na podstawie kodu klasy.

402

Rozdzia 9. Testowanie kodu

Wygenerowany kod to dobry punkt wyjcia do rozwijania testw jednostek. Visual Studio
analizuje metody i waciwoci klasy, na podstawie ktrej programista chce wygenerowa testy,
oraz tworzy prawdziwe, moliwe do uruchomienia testy. Oczywicie, trzeba dokoczy kady
test przez dodanie odpowiednich wartoci zmiennych i asercji, jednak kod wygenerowany
przez narzdzia to dobry punkt wyjcia.
Przyjrzyjmy si przykadowi. Zamy, e programista uywa obiektu Customer zawierajcego
standardowe waciwoci, takie jak Name, Address, Phone i Email. Moe take zawiera inne
metody, takie jak Save, Update czy Delete. rodowiska Visual Studio mona uy do wygenerowania nowych testw jednostek dla klasy. W tym celu naley albo wybra opcj Unit Test
Wizard w oknie dialogowym Add New Test, albo klikn prawym przyciskiem myszy plik
klasy i wybra opcj Create Unit Tests.
W obu scenariuszach Visual Studio wywietli okno dialogowe Create Unit Tests przedstawione na rysunku 9.5. Widoczne s w nim typy dostpne w rozwizaniu. W powyszym oknie
dialogowym mona wybra skadowe, dla ktrych trzeba wygenerowa testy. Mona te uy
ustawienia Output project do okrelenia projektu testw, w ktrym maj znale si wygenerowane testy. Polega to na utworzeniu nowego projektu testw (w jzyku C# lub Visual Basic)
albo na umieszczeniu kodu w istniejcym projekcie testw.
Rysunek 9.5.
Mona zezwoli rodowisku
Visual Studio na
wygenerowanie testw
jednostek na podstawie
istniejcego kodu

Przycisk Add Assembly w dolnej czci okna dialogowego umoliwia wybranie podzespou
(pliku .dll) spoza projektu. Testy mona wygenerowa dla dowolnego podzespou .NET.
403

Cz III Tworzenie kodu i zarzdzanie nim

Zarzdzanie ustawieniami procesu generowania testw


Przycisk Settings pozwala otworzy okno dialogowe, ktre suy do okrelania rnych ustawie
zwizanych z generowaniem testw jednostek. Rysunek 9.6 przedstawia przykadowe informacje w tym oknie. Warto zauway, e mona uy tekstu makr ([File], [Class] i [Method])
do poinformowania Visual Studio o tym, jak ma tworzy nazwy generowanych plikw, klas i metod
testw.
Rysunek 9.6.
Mona kontrolowa
sposb generowania
testw jednostek
przez Visual Studio

Warto zwrci uwag na dodatkowe ustawienia w grupie General. Umoliwiaj one ustawienie
kadego generowanego testu jako niejednoznacznego, umieszczenie komentarzy w wygenerowanym kodzie i tak dalej.

Uwaga
Kreator Create Unit Tests umoliwia wygenerowanie testw jednostek dla wszystkich projektw w rozwizaniu. Zaznaczenie klasy i wygenerowanie testw powoduje dodanie w projekcie testw
referencji do projektu z testowanym kodem.

Wygenerowany kod testw


Visual Studio generuje testy dla wszystkich metod i waciwoci obiektu zaznaczonych w oknie
dialogowym Create Unit Tests. Zastanwmy si na przykad nad waciwoci Name. Listing
9.1 przedstawia kod wygenerowany jako test jednostek tej waciwoci (kod w jzyku Visual
Basic wyglda podobnie). Test tworzy nowy obiekt typu Customer, a nastpnie prbuje ustawi warto waciwoci Name docelowej zmiennej. Potem okrelany jest oczekiwany efekt. Tu
waciwo Name jest typu string, dlatego kod testu tworzy zmienn o nazwie expected tego
typu. Definiuje te zmienn typu string o nazwie actual. Nastpnie przypisuje do waciwoci Customer.Name warto zmiennej exptected i po ustawieniu waciwoci wczytuje
warto zmiennej actual. Na zakoczenie za pomoc asercji Assert.AreEqual sprawdza,

404

Rozdzia 9. Testowanie kodu

czy waciwo zostaa poprawnie ustawiona. Jest to prawidowy test waciwoci. Programista musi jedynie poda poprawn warto dla zmiennej exptected (punkt TODO) i usun
wywoanie Assert.Inconclusive.
Listing 9.1. Przykadowy automatycznie wygenerowany test jednostek
[TestMethod()]
public void NameTest() {
Customer target = new Customer(); // TODO: Initialize to an appropriate value
string expected = string.Empty; // TODO: Initialize to an appropriate value
string actual;
target.Name = expected;
actual = target.Name;
Assert.AreEqual(expected, actual);
Assert.Inconclusive("Verify the correctness of this test method.");
}

Testowanie metod jest troch bardziej pracochonne. Jeli metoda zwraca warto, trzeba j
sprawdzi, aby si upewni, e jest zgodna z oczekiwaniami. Jeeli metoda nie zwraca wartoci,
trzeba napisa dodatkowy kod do sprawdzenia, czy dziaa prawidowo. Na listingu 9.2 pokazano automatycznie wygenerowany test metody, ktra nie zwraca wartoci. Oczywicie, jeli
wywoanie metody spowoduje bd, test zakoczy si niepowodzeniem. Mona jednak napisa
dodatkowe testy i asercje.
Listing 9.2. Przykadowy automatycznie wygenerowany test jednostki
[TestMethod()]
public void SaveTest() {
Customer target = new Customer(); // TODO: Initialize to an appropriate value
target.Save();
Assert.Inconclusive("A method that does not return a value cannot be
verified.");
}

Uwaga
W czasie generowania kodu do testowania konstruktorw Visual
Studio dodaje tekst ConstructorTest do nazwy klasy. Jeli istnieje kilka konstruktorw, Visual Studio doda do nazw liczby, na
przykad CustomerConstructorTest1.

Pisanie testw jednostek


Moliwe, e Czytelnicy zaczynaj si domyla, jak wykorzysta automatycznie wygenerowane
testy jednostek. Przyjrzyjmy si pisaniu testw jednostek, aby lepiej je zrozumie. Warto pamita, e test jednostek to po prostu kod testu, ktry ma wywoywa kod aplikacji. W takim
kodzie testu znajduj si zaoenia dotyczce tego, czy okrelone warunki s spenione, czy
405

Cz III Tworzenie kodu i zarzdzanie nim

nie po wykonaniu kodu aplikacji. Test moe powie si lub nie w zalenoci od wynikw tych
zaoe. Jeli programista oczekuje, e warunek bdzie speniony, a tak si nie stanie, wtedy test
koczy si niepowodzeniem.
Kiedy projekt i klasa testu s ju gotowe, trzeba wykona trzy operacje, aby utworzy typowy
test jednostki:
1. Doda atrybut TestMethod do kodu testu.
2. Uruchomi badany kod, przekazujc znane wartoci w taki sposb, jak parametry.
3. Zastosowa asercje do oceny wynikw testw.
Przyjrzyjmy si bliej praktycznemu przykadowi. Zamy, e programista korzysta z usugi
sieciowej zwracajcej profil uytkownika z bazy danych. Ta usuga sieciowa przyjmuje jako
parametr identyfikator klienta. Sygnatura funkcji moe wyglda tak:
public Customer GetCustomerProfile(int customerId)

Mona napisa prosty test wywoujcy t usug i przekazujcy znany identyfikator z bazy danych.
Dobrym sposobem na testy jednostek baz danych jest sprawdzanie znanego stanu bazy. W tecie
mona nastpnie sprawdzi nie tylko to, czy zwracane dane dziaaj, ale take czy s poprawne.
Na listingu 9.3 znajduje si przykadowy test.
Listing 9.3. Przykadowy test jednostek
[TestMethod()]
public void GetCustomerProfileTest() {
CustomerProfile cutProfileService = new CustomerProfile();
int customerId = 1234;
Customer customer = cutProfileService.GetCustomerProfile(customerId);
Assert.AreEqual(customer.Id, 1234);
}

Warto zauway, e powyszy kod jest podobny do dowolnego kodu w jzyku C# (i Visual
Basic). Aby oznaczy metod jako test, naley doda atrybut TestMethod. W kodzie trzeba
utworzy egzemplarz testowanego obiektu i wywoa sprawdzan metod. Jeli wywoanie si
nie powiedzie (lub zostanie zgoszony wyjtek), test zakoczy si niepowodzeniem. Nastpnie
w tecie znajduje si asercja, ktra pozwala sprawdzi, czy zwrcony obiekt odpowiada oczekiwanemu. Jeli ta asercja okae si faszywa (przekazane do niej wartoci nie s sobie rwne), test
zakoczy si niepowodzeniem. Jeli asercja bdzie prawdziwa, test si powiedzie. Mona doda
kilka innych asercji, aby uzupeni powyszy test (przez sprawdzenie innych znanych danych na
temat klienta). Ponadto mona utworzy pewne dodatkowe testy sprawdzanej metody, na
przykad okrelajce, co si stanie przy prbie pobrania danych nieistniejcego klienta.
Powyszy kod powinien pozwoli zrozumie podstawy dziaania testw jednostek. W dalszej
czci rozdziau zajmiemy si nimi nieco bardziej szczegowo.

406

Rozdzia 9. Testowanie kodu

Uruchamianie testw jednostek


Testy jednostek mona uruchamia w kilku miejscach rodowiska Visual Studio. Dwa z nich to
pasek narzdzi Test Tools i menu Test. Obie moliwoci zwizane s z podobnym zestawem
opcji pokazanych na rysunku 9.7. W grnej czci rysunku znajduje si pasek narzdzi Test
Tools. W dolnej czci pokazano zestaw przyciskw opcji, ktre mona doda do paska lub
usun z niego. Lista ta pomaga zrozumie znaczenie ikon paska narzdzi i pozna klawisze
skrtu suce do uruchamiania testw.
Rysunek 9.7.
Menu Test umoliwia
uruchamianie testw
z debugerem lub bez
niego

Testy mona uruchamia z debugerem lub bez. Pierwsza z tych opcji umoliwia wczenie
debugera, jeli test zakoczy si niepowodzeniem. Ta waciwo jest przydatna do uywania
testw do rozwizywania problemw z kodem. Czciej stosuje si jednak drugie rozwizanie, ktre pozwala po prostu uruchomi zestaw testw jednostek i sprawdzi wyniki. Testy
mona uruchamia wtedy w biecym kontekcie lub w kontekcie caego rozwizania. Biecy
kontekst pozwala uruchomi dowolne wybrane teksty, przeprowadzi testy od lokalizacji kursora lub wczy wszystkie testy danej klasy (jeeli wywietlany jest kod klasy, a nie testu).
Czasem trudno okreli, co jest biecym kontekstem dla rodowiska Visual Studio. Wtedy
mona albo uruchomi wszystkie testy z rozwizania, albo przeprowadzi testy z poziomu
okna Test View (zobacz podrozdzia Organizowanie testw).

Uwaga
Przy uruchamianiu projektu testw wszystkie projekty, do ktrych
dodano referencje, s rekompilowane razem z projektem testw.

Przegldanie wynikw testw


Po uruchomieniu testw wyniki mona zobaczy w oknie Test Results (zwykle zadokowane jest
w dolnej czci rodowiska IDE). Okno umoliwia sprawdzenie, ktre testy zakoczyy si
powodzeniem, a ktre nie. Rysunek 9.8 przedstawia liczne funkcje dostpne w tym oknie. Warto

407

Cz III Tworzenie kodu i zarzdzanie nim

Rysunek 9.8. Okno Test Results umoliwia wywietlenie wynikw przebiegw testw i ponowne uruchomienie
wybranych testw

zwrci uwag na to, e dany przebieg testu koczy si niepowodzeniem, jeli nie powiedzie si
przynajmniej jeden test. W tym przypadku powiodo si 16 z 18 testw. Jednak niepowodzenie
dwch testw spowodowao, e cay test zakoczy si porak.
Okno Test Results udostpnia pasek narzdzi z wieloma opcjami i kontrolkami. Jedna z opcji
umoliwia wywietlenie wynikw wszystkich testw przeprowadzonych w czasie sesji rodowiska Visual Studio. Pozwala to na wywietlenie jednoczenie wynikw wszystkich testw. Inna
opcja umoliwia atwe ponowne uruchomienie testw z danego przebiegu. Jeszcze inna suy
do eksportowania wynikw do pliku i udostpniania danych innym osobom (ktre mog
zaimportowa je za pomoc tego samego paska narzdzi). Mona te doda nowe kolumny do
wynikw testu, aby wywietli wicej danych i lepiej je uporzdkowa (dostpnych jest ponad
20 kolumn).
Dwukrotne kliknicie testu zakoczonego powodzeniem powoduje wywietlenie szczegowych
informacji na jego temat. Strona ze szczegami obejmuje nazw testu, wyniki, czas trwania
testu, a take godzin jego rozpoczcia i zakoczenia. Po dwukrotnym klikniciu testu zakoczonego niepowodzeniem programista zobaczy wiersz kodu sprawdzanej klasy, w ktrym
wystpi bd. Aby zobaczy szczegowe informacje o takim tecie, naley klikn go na licie
wynikw prawym przyciskiem myszy i wybra opcj View Test Results Details. Na rysunku 9.9
przedstawiono stron ze szczegowymi danymi na temat nieudanego testu. Warto zauway,
e obejmuj one komunikat o bdzie, lad stosu i odnonik do kodu, ktry spowodowa bd.

408

Rozdzia 9. Testowanie kodu

Rysunek 9.9. Mona wywietli szczegowe informacje o wynikach dowolnego testu (udanego lub nieudanego)

Wywietlanie przebiegw testw


Visual Studio udostpnia te okno dialogowe Test Runs, suce do przegldania przebiegw
testw z biecej sesji (i zaimportowanych). Okno mona otworzy za pomoc paska narzdzi
Test Tools lub z menu Test/Windows/Test Runs. Na rysunku 9.10 pokazano przykadow zawarto omawianego okna dialogowego. Mona dwukrotnie klikn dany przebieg, aby wczyta szczegowe informacje o wynikach do okna Test Results.

Konfigurowanie opcji i ustawie testw


Visual Studio umoliwia kontrolowanie i dostosowywanie rodowiska testowego. Suy do
tego okno dialogowe Options. Ponadto w plikach konfiguracyjnych mona kontrolowa ustawienia testw specyficznych dla rozwizania. W tym punkcie opisujemy, jak stosowa obie
techniki konfigurowania do lepszego zarzdzania rodowiskiem testowym.

409

Cz III Tworzenie kodu i zarzdzanie nim

Rysunek 9.10. Okno dialogowe Test Runs umoliwia wywietlenie wynikw wszystkich przebiegw testw
z biecej sesji rodowiska Visual Studio

Opcje projektw testw


Mona kontrolowa sposb generowania projektw testw przez Visual Studio. Naley to
zrobi w wle Test Tools/Test Project w oknie dialogowym Options (Tools/Options). Na rysunku
9.11 pokazano przykadow zawarto tego okna. Mona tu okreli jzyk domylny (Visual
Basic lub C#) dla projektu testw stosowany przez Visual Studio przy tworzeniu lub generowaniu nowego projektu tego typu. Warto zauway, e mona zmieni domylny jzyk ustawiony w rodowisku IDE dla projektw testw.
Rysunek 9.11.
Okno dialogowe
Options umoliwia
dostosowanie
domylnych ustawie
szablonw projektw
testw w Visual Studio

410

Rozdzia 9. Testowanie kodu

Opcje w wle Test Project pozwalaj te okreli, ktre pliki naley domylnie umieci w projekcie
testw w czasie jego tworzenia. To, jakie opcje s dostpne, zaley od jzyka. Mona okreli
pliki podstawowych testw jednostek, testw jednostek baz danych, testw uporzdkowanych
lub testw jednostek (uruchamiany jest wtedy kreator Unit Test Wizard).

Zarzdzanie wynikami testw


Visual Studio domylnie przechowuje wyniki ostatnich 25 przebiegw testw. Po przekroczeniu tego limitu rodowisko przed zapisaniem wynikw nowego przebiegu usunie informacje
o najstarszym. W oknie dialogowym Options (Tools/Options) mona zwikszy (lub zmniejszy) t
warto. Naley wybra wze podrzdny Test Execution w wle Test Tools, aby wywietli
opcje widoczne na rysunku 9.12. Warto zwrci uwag na opcj Limit Number of Old Test
Runs To (czyli ogranicz liczb dawnych przebiegw testw do).
Rysunek 9.12.
W oknie
dialogowym
Options mona
okreli liczb
przechowywanych
przebiegw testw

Kontrolowanie ustawie testw


Visual Studio udostpnia plik ustawie umoliwiajcy kontrolowanie wykonywania testw.
W wikszoci sytuacji mona pozostawi domyln zawarto pliku ustawie. Jednak nieraz
warto zmodyfikowa niektre opcje, dotyczce na przykad uruchamiania skryptw instalacyjnych w ramach testw, limitu czasu i tak dalej.
Pliki z ustawieniami testw mona znale na poziomie rozwizania w oknie Solution Explorer
(zobacz rysunek 9.2). Kady plik ustawie testw ma rozszerzenie .testsettings. W dowolnym momencie za pomoc opcji Test/Select Active Test Settings mona okreli, ktry plik .testsettings
ma by aktywny. Na rysunku 9.13 pokazano, jak wybra aktywny plik ustawie.
Pliki .testsettings w Visual Studio to zwyke pliki XML z konfiguracj. Kod w jzyku XML
mona bezporednio edytowa. Visual Studio udostpnia jednak okno dialogowe do atwiejszego modyfikowania ustawie. Okno dialogowe Test Settings mona uruchomi przez dwukrotne kliknicie pliku .testsettings. Na rysunku 9.14 pokazano to okno z wybranym wzem
Test Timeouts.
411

Cz III Tworzenie kodu i zarzdzanie nim

Rysunek 9.13. Za pomoc menu Test mona wybra aktywny plik z ustawieniami testw

Rysunek 9.14. Okno dialogowe Test Settings umoliwia zarzdzanie ustawieniami zwizanymi z przeprowadzaniem
testw (w tym limitem czasu)

412

Rozdzia 9. Testowanie kodu

Zaznaczenie wza po lewej stronie okna dialogowego Test Settings pozwala skonfigurowa
rne ustawienia. Poniej znajduje si przegld opcji, ktrymi mona zarzdza w kadym
wle okna Test Settings:
x General. Zawiera opcje do okrelania nazwy pliku ustawie, udostpniania opisu, ge-

nerowania nazw dla poszczeglnych przebiegw testw (na rysunku 9.10 pokazano
nazwy takich przebiegw).
x Deployment. Umoliwia okrelenie dodatkowych plikw i katalogw instalowanych

w ramach przeprowadzania testw. Domylnie testowane podzespoy s automatycznie instalowane w katalogu bin testu. Pozwala to przed przeprowadzeniem testw
zainstalowa nowe elementy (na przykad bazy danych oparte na plikach).
x Setup and Cleanup Scripts. Umoliwia okrelenie skryptu uruchamianego przed

uruchomieniem testw lub po ich zakoczeniu (albo w obu sytuacjach). Rni si to


od uruchamiania kodu przed testami klas. Tu mona zdefiniowa kod wykonywany
przed dowoln grup testw (lub po niej).
x Hosts. Umoliwia okrelenie hosta, na ktrym mona przeprowadzi testy. Zwykle

jest to host domylny (rodowisko Visual Studio). Ponadto mona ustawi testy tak,
aby dziaay na serwerze rodowiska ASP.NET.
x Test Timeouts. Umoliwia okrelenie czasu oczekiwania rodowiska Visual Studio

(lub innego hosta) przed porzuceniem dugo dziaajcych testw. Ponadto mona
oznaczy zbyt dugo trwajce testy jako nieudane. Na rysunku 9.12 przedstawiono
przykadowe ustawienia w tym oknie dialogowym.
x Unit Test. Udostpnia zaawansowane opcje wczytywania dodatkowych podzespow

potrzebnych do przeprowadzenia testw.

Platforma testw jednostek


Platforma testw jednostek to cz rodowiska Visual Studio, a nie platformy .NET. System
testowania jednostek w Visual Studio obejmuje: zestaw klas platformy, narzdzia i host, gdzie
wykonywane s testy. Przestrze nazw zawierajca klasy platformy testw jednostek to Microsoft.
VisualStudio.TestTools.UnitTesting. Dla programistw najwaniejsze w tej przestrzeni nazw s klasy atrybutw i klasa Assert. W tym podrozdziale omawiamy podstawowe
scenariusze korzystania z klas atrybutw i asercji (a take innych klas).

Klasa TestContext
Platforma testw jednostek obejmuje klas suc do przechowywania informacji zwizanych
z wykonywaniem testw. Jest to klasa TestContext. Waciwoci tej klasy su do pobierania
danych o dziaajcych testach. Informacje obejmuj: ciek do katalogu z testem, adres URL
uruchamianego testu (jeli s to testy jednostek ASP.NET) i informacje o wizaniu danych (na
413

Cz III Tworzenie kodu i zarzdzanie nim

przykad poczenie z danymi lub obecny wiersz danych w wykonywanym tecie). Wiadomoci na temat kontekstu testu s przechowywane we waciwociach omawianej klasy. Kluczowe
waciwoci i ich zastosowania opisano w tabeli 9.1.
Tabela 9.1. Kluczowe waciwoci klasy TestContext

Waciwo

Opis

CurrentTestOutcome

Umoliwia okrelenie wyniku ostatniego przeprowadzonego testu. Jest to przydatne


w metodach oznaczonych jako TestCleanup (zobacz punkt Klasy atrybutw testw).

DataConnection

Umoliwia wywietlenie acucha poczenia uywanego w testach jednostek sterowanych


danymi (zobacz punkt Tworzenie testw jednostek zalenych od danych).

DataRow

Umoliwia dostp do kolumn w wierszu z danymi w czasie pracy z testami jednostek


zalenych od danych (zobacz punkt Tworzenie testw jednostek zalenych od danych).

RequestedPage

Zapewnia dostp do obiektu Page reprezentujcego dan stron w testach jednostek


ASP.NET (zobacz podrozdzia Pisanie testw jednostek dziaajcych w ASP.NET).

TestDeploymentDir

Umoliwia wywietlenie cieki do katalogu, w ktrym testy s instalowane i uruchamiane.


Jest to przydatne, jeli trzeba zapisywa lub wczytywa dane z pliku z tego katalogu.

TestLogsDir

Umoliwia wywietlenie cieki do katalogu, w ktrym zapisywane s wyniki testw.

TestName

Umoliwia okrelenie nazwy obecnie przeprowadzanego testu.

Klasa TestContext domylnie jest niedostpna w kodzie. Aby uzyska do niej dostp, najpierw trzeba zdefiniowa waciwo o tej samej nazwie i typie w klasie testu (potrzebna waciwo jest automatycznie tworzona w czasie generowania testw jednostek na podstawie
istniejcego kodu). Platforma testw jednostek w momencie uruchamiania testw automatycznie tworzy egzemplarz klasy TestContext, a nastpnie sprawdza, czy w kodzie rdowym znajduje si waciwo o tej nazwie. Jeli j znajdzie, przypisuje egzemplarz klasy TestContext do
waciwoci. Od tego momentu mona korzysta z waciwoci do pobierania informacji o kontekcie przeprowadzanego testu. Poniszy kod pokazuje, jak zdefiniowa waciwo TestContext
w tecie jednostek w jzyku C#:
public TestContext TestContext { get; set; }

rodowisko Visual Studio w czasie tworzenia obiektu typu TestContext generuje kompletn
waciwo. Poniej pokazano kod waciwoci wygenerowany przez Visual Studio:
private TestContext testContextInstance;
public TestContext TestContext {
get {
return testContextInstance;
}
set {
testContextInstance = value;
}
}

414

Rozdzia 9. Testowanie kodu

Uwaga
Niektre klasy atrybutw wymagaj zdefiniowania parametru typu
TestContext dla metod opatrzonych danym atrybutem. Dotyczy
to na przykad atrybutu ClassInitialize (zobacz dalej). W takim
scenariuszu platforma testw jednostek automatycznie przekazuje
egzemplarz klasy TestContext do metody w momencie jej uruchamiania.

Klasy atrybutw testw


Testy jednostek s uruchamiane przez Visual Studio za pomoc hosta do przeprowadzania
testw jednostek. Host musi zbada kod, znale w nim testy jednostek i uruchomi je w odpowiedni sposb. Wykorzystuje do tego atrybuty. Przypomnijmy, e atrybuty su do udostpniania metadanych na temat kodu. Inny kod (na przykad host testw jednostek) moe wykorzysta mechanizm refleksji do okrelenia rnych informacji na temat uruchamianego kodu.
W dotychczasowych krtkich przykadach pokazalimy, e testy jednostek oznaczane s za
pomoc klas atrybutw zdefiniowanych w przestrzeni nazw testw. Przykadowo, klasa testu
ma atrybut TestClass, a metod testow naley oznaczy atrybutem TestMethod. W tabeli
9.2 pokazano list najczciej stosowanych klas atrybutw z przestrzeni nazw testw jednostek.
Tabela 9.2. Klasy atrybutw testw dostpne w Visual Studio

Test

Opis

AssemblyCleanup

Suy do definiowania metod, ktre naley uruchomi po wykonaniu przez platform


wszystkich testw z danego podzespou. Jest to przydatne, jeli trzeba uporzdkowa
zasoby po wykonaniu wszystkich testw.
Warto zauway, e taki atrybut mona przypisa tylko do jednej metody w podzespole.

AssemblyInitialize

Suy do definiowania metod, ktre naley uruchomi przed uruchomieniem przez


platform testw z danego podzespou. Jest to przydatne, jeli trzeba zainicjowa
zasoby dla wszystkich testw z podzespou.
Warto zauway, e taki atrybut mona przypisa tylko do jednej metody w podzespole.

ClassCleanup

Suy do okrelania metody, ktr naley uruchomi jeden raz po wykonaniu wszystkich
testw z danej klasy testw. Jest to przydatne, jeli trzeba zresetowa stan systemu
(na przykad w bazie danych) po zakoczeniu testw.

ClassInitialize

Suy do okrelania metody, ktr host powinien uruchomi jeden raz przed uruchomieniem
testw z danej klasy testw. Jest to przydatne, jeli trzeba zresetowa baz danych lub
wykona kod przygotowujcy rodowisko testowe.
Metoda musi przyjmowa parametr typu TestContext.

DataSource

Suy do udostpniania informacji o poczeniu w testach jednostek zalenych od danych


(Tworzenie testw jednostek zalenych od danych).

415

Cz III Tworzenie kodu i zarzdzanie nim

Tabela 9.2. Klasy atrybutw testw dostpne w Visual Studio cig dalszy

Test

Opis

DeploymentItem

Suy do okrelania dodatkowych plikw (.dll, .txt i innych), ktre trzeba zainstalowa
w katalogu, gdzie przeprowadzane s testy.

ExpectedException

Suy do okrelania, e zgodnie z oczekiwaniami kod metody testowej powinien zgosi


wyjtek podanego typu. Dziaanie metod testowych tego rodzaju jest uwaane za
prawidowe, jeli w czasie wykonywania testu pojawi si wyjtek odpowiedniego typu
(w przeciwnym razie test koczy si niepowodzeniem). Mechanizm ten jest przydatny
do testowania oczekiwanych warunkw wystpienia bdw w kodzie (zobacz punkt
Testowanie wyjtkw).

HostType

Uywany do zastpowania domylnego hosta testw (rodowiska Visual Studio). Zwykle


nie trzeba stosowa tego atrybutu. Jeli jednak programista pisze testy uruchamiane
w procesie innego hosta (na przykad w rodowisku ASP.NET), moe wykorzysta ten
atrybut (wraz z atrybutami UrlToTest i AspNetDevelopmentServerHost).

Ignore

Dodawany do metody testowej w celu okrelenia, e dan metod naley pomin,


jeli stosowany jest host do przeprowadzania testw.

TestClass

Suy do okrelania, e dana klasa jest klas testw zawierajc jeden lub kilka testw
jednostek (metod testowych).

TestCleanup

Suy do wskazywania metody, ktr naley uruchomi jednokrotnie po wykonaniu


kadej metody testowej. Wskazan metod mona wykorzysta do uruchomienia
operacji porzdkujcych po wykonaniu kadej metody testowej w danej klasie testw.
Porzdkowanie na poziomie klasy mona przeprowadzi za pomoc atrybutu
ClassCleanup.

TestInitialize

Suy do okrelania, e dan metod naley uruchomi jednokrotnie przed wykonaniem


kadej metody testowej. Jest to przydatne, jeli trzeba zresetowa stan systemu przed
wykonaniem kadej metody testowej w danej klasie testw. Jeli programista chce tylko
zainicjowa stan dla wszystkich metod z danej klasy testw, powinien uy atrybutu
ClassInitialize.

TestProperty

Suy do definiowania waciwoci (pary nazwa warto) metody testowej. Informacje


zapisane we waciwoci mona wczyta w kodzie metody testowej.

TestMethod

Suy do oznaczania metod w klasie testw jako testw jednostek. Metody testowe nie
mog zwraca wartoci (zwracaj typ void). Powodzenie lub niepowodzenie zaley od
warunkw bdw oraz asercji. Metody testowe nie mog przyjmowa parametrw,
poniewa host nie potrafi przekazywa parametrw do metod. Istniej jednak sposoby
na zasymulowanie przekazywania parametrw. Wicej informacji na ten temat zawiera
punkt Tworzenie testw jednostek zalenych od danych.

Timeout

Suy do okrelania limitu czasu (w milisekundach) dla danej metody testowej. Jeli test
bdzie trwa duej, rodowisko zatrzyma go i uzna za zakoczony niepowodzeniem.

416

Rozdzia 9. Testowanie kodu

W tabeli 9.2 pokazano, e istnieje wiele klas atrybutw. Zapewniaj one kontrol nad testami
jednostek. Jeli programista pisze klas testw dla obiektu Customer, moe zdefiniowa klas
CustomerTest. Na listingu 9.4 pokazano szkielet kilku testw z tej klasy. Zademonstrowano
te liczne atrybuty stosowane w typowych klasach testw. Warto zwrci uwag na metody do
inicjowania klasy testw i porzdkowania zasobw po przeprowadzeniu testu.
Listing 9.4. Przykadowa klasa testw
using
using
using
using
using

System;
BusinessDomain;
Microsoft.VisualStudio.TestTools.UnitTesting;
System.Data;
System.Collections.Generic;

namespace BusinessDomainUnitTests {
[TestClass()]
public class CustomerTest {
public TestContext TestContext { get; set; }
[ClassInitialize()]
public static void InitTests(TestContext testContext) {
// Wywoanie kodu resetujcego testow baz danych (Utilities.ResetTestDb();).
}
[ClassCleanup()]
public static void CleanupPostTests() {
// Wywoanie kodu resetujcego testow baz danych (Utilities.ResetTestDb();).
}
[TestMethod()]
public void CustomerConstructorTest() {
// Testuje konstruktor domylny.
}
[TestMethod()]
public void CustomerConstructorTest1() {
// Testuje konstruktor przyjmujcy identyfikator klienta.
}
[TestMethod()]
[DeploymentItem("BusinessDomain.dll")]
public void DeleteTest() {
}
[TestMethod()]
[DeploymentItem("BusinessDomain.dll")]

417

Cz III Tworzenie kodu i zarzdzanie nim

public void GetListTest() {


}
[TestMethod()]
[DeploymentItem("BusinessDomain.dll")]
[Timeout(5000)]
public void SaveTest() {
}
}
}

Nastpny krok polega na napisaniu kodu w kadej metodzie testowej. Kod powinien kierowa
wywoania do obiektu Customer i sprawdza asercje zwizane z wynikami wywoa. Do tworzenia asercji suy opisana dalej klasa Assert.

Operacje wykonywane przed testami jednostek i po nich


Dobr praktyk przy tworzeniu testw jednostek jest pisanie ich dla znanego stanu systemu.
Dotyczy to bazy danych, plikw i innych elementw skadajcych si na system. W ten sposb
programista moe mie pewno, e potrzebne elementy bd dostpne przy przeprowadzaniu
testw. Oczywicie, same testy czsto naruszaj stan. Testy usuwaj dane, modyfikuj je, dodaj nowe rekordy i wykonuj podobne operacje. Wtedy potrzebna jest moliwo przywrcenia stanu systemu przed wykonaniem testw (i [lub] po ich zakoczeniu), aby zagwarantowa
stay stan na czas testw i umoliwi programistom uruchamianie ich za pomoc jednego
kliknicia (jest to nastpna dobra praktyka z obszaru testw jednostek).
Zwykle trzeba napisa kod utrzymujcy stay stan systemu. Kod moe kopiowa znan i poprawn testow baz danych do katalogu testw (mona wykorzysta do tego take atrybut
DeploymentItem), resetowa baz danych za pomoc instrukcji w SQL-u, realizowa plan
generowania danych w celu utworzenia bazy, kopiowa pliki lub sprawdza inne instalowane
elementy.
Kod resetujcy system jest specyficzny dla rodowiska. Jednak aby zagwarantowa wywoanie
potrzebnego kodu w czasie przeprowadzania testw, mona zastosowa kilka klas atrybutw:
ClassInitialize i ClassCleanup lub TestInitialize i TestCleanup. Pierwsza para
powoduje wykonanie kodu na pocztku (i na kocu) przebiegu testw dla caej klasy testw
jednostek. Druga para pozwala uruchomi kod przed wykonaniem kadego testu w danej
klasie testw i po ich przeprowadzeniu.
Zwykle operacje inicjujce i porzdkujce wywoywane s na poziomie klasy. Jeli programista
uywa klasy Utilities z metod resetujc baz danych, moe zagwarantowa wywoanie
metody, oznaczajc j atrybutem ClassInitialize. Warto zauway, e metoda przyjmuje
418

Rozdzia 9. Testowanie kodu

obiekt TestContext przekazywany przez platform testw jednostek. Dobr praktyk jest
ponowne resetowanie systemu po wykonaniu testw jednostek. W poniszym kodzie pokazano
dwie metody testw. Metody przygotowuj testy i porzdkuj po nich.
[ClassInitialize()]
public static void InitTests(TestContext testContext) {
Utilities.ResetTestDb();
}
[ClassCleanup()]
public static void CleanupPostTests() {
Utilities.ResetTestDb();
}

Kontrolowanie operacji inicjujcych


i porzdkujcych na poziomie wykonywania testw
Zdarza si, e operacje inicjujce i porzdkujce trzeba uruchomi na poziomie wyszym ni
klasa testw. Czasem przed uruchomieniem klas testw trzeba wywoa skrypty. Wtedy mona
wykorzysta plik .testsettings (zobacz wczeniejszy punkt Kontrolowanie ustawie testw) do
zdefiniowania skryptu wywoywanego przed uruchomieniem testw i po ich zakoczeniu.
Na rysunku 9.15 pokazano wze Setup and Cleanup Scripts w oknie dialogowym Test Settings.
W tym miejscu mona zdefiniowa skrypty inicjujce i porzdkujce wywoywane przy uruchamianiu dowolnych testw z rozwizania.
Rysunek 9.15.
Definiowanie
skryptw
inicjujcych
i porzdkujcych
wywoywanych
przy wykonywaniu
dowolnych testw
z rozwizania

419

Cz III Tworzenie kodu i zarzdzanie nim

Klasy asercji
Przestrze nazw UnitTesting zawiera take typ statyczny Assert. Ten typ udostpnia liczne
metody umoliwiajce sprawdzenie, czy wynik testw jest zgodny z oczekiwaniami. Naley
wywoa statyczne metody i sprawdzi warto warunku (true lub false). Jeli warunek
logiczny nie jest speniony, dziaanie asercji koczy si niepowodzeniem. Same asercje nie
zwracaj wynikw. Zamiast tego w czasie wykonywania programu automatycznie powiadamiaj platform testw jednostek o sukcesie lub niepowodzeniu.
Mona na przykad napisa test jednostki wczytujcy znany rekord z bazy danych. Nastpnie
mona doda asercj dotyczc tego rekordu, aby udowodni, e program potrafi pobra dane
z bazy, prawidowo wywoa odpowiednie zbiory danych i dotrze do konkretnego obiektu.
Poniej pokazano prost asercj do sprawdzania, czy dwie zmienne maj t sam warto. Jeli
wartoci s sobie rwne (AreEqual), dziaanie asercji koczy si powodzeniem. Jeeli wartoci s
rne, asercja zgasza niepowodzenie, a platforma testw jednostek oznacza test jako nieudany.
Assert.AreEqual(cust.Id, customerId);

AreEqual to tylko jedna z wielu metod asercji dostpnych w klasie Assert. Wikszo metod

asercji dotyczy jednego zagadnienia porwnywania dwch wartoci. W tabeli 9.3 przedstawiono bardziej kompletn list metod.
Tabela 9.3. Asercje testw

Test

Opis

AreEqual i AreNotEqual

Suy do sprawdzania, czy dwie wartoci s sobie rwne, czy nie.

AreSame i AreNotSame

Pozwala sprawdzi, czy dwa obiekty s tym samym obiektem, czy nie.

Fail

Metoda Assert.Fail oznacza warunek jako niespeniony bez jego sprawdzania.


Moe to by przydatne przy wartociowaniu warunku za pomoc operacji logicznych
i dojciu do miejsca w kodzie, gdzie operacje reprezentuj test zakoczony
niepowodzeniem.

Inconclusive

Suy do oznaczania, e test nie zakoczy si ani niepowodzeniem, ani powodzeniem


(wynik jest niejednoznaczny).

IsInstanceOfType
i IsNotInstanceOfType

Pozwala sprawdzi, czy obiekt jest okrelonego typu, czy nie.

IsNull i IsNotNull

Pozwala okreli, czy obiekt zawiera referencj null, czy nie.

IsTrue i IsFalse

Suy do sprawdzania, czy warunek jest speniony, czy nie.

Kada metoda asercji ma kilka przecionych wersji. Umoliwiaj one porwnywanie rnych
typw danych acuchw znakw, liczb, obiektw i kolekcji oglnych. Ponadto dostpne s
wersje, ktre pozwalaj po prostu zastosowa asercj lub dodatkowo wywietli komunikat w sytuacji, kiedy asercja nie jest speniona. Na przykad poniej zapisano t sam asercj, co wczeniej,
jednak ta wersja wywietla komunikat o bdzie, jeli warunek nie jest speniony.
Assert.AreEqual(cust.Id, customerId, "Identyfikatory klienta s rne.");

420

Rozdzia 9. Testowanie kodu

Przyjrzyjmy si kilku przykadowym metodom, ktrych szkielet pokazano na wczeniejszym


listingu (zobacz listing 9.4). Naley uzupeni te metody przez napisanie kodu korzystajcego
z klasy Customer, a nastpnie poczyni asercje na temat wynikw. Listing 9.5 zawiera przykadowy test konstruktora klasy Customer. Warto zauway, e testujemy znany rekord danych
przez wczytanie egzemplarza klasy Customer na podstawie identyfikatora rekordu. Nastpnie
sprawdzamy wyniki w klasie Assert.
Listing 9.5. Przykadowy test jednostek ilustrujcy korzystanie z klasy Assert
[TestMethod()]
public void CustomerConstructorTest1() {
// Testuje konstruktor przyjmujcy identyfikator klienta.
int customerId = 1; // Testowanie danych klienta.
Customer cust = new Customer(customerId);
// Sprawdzanie, czy dla testowego klienta zwrcono poprawne dane.
// Sprawdzanie operacji ustawiania i wczytywania wartoci waciwoci.
Assert.AreEqual(cust.Id, customerId,
"Identyfikatory klienta s rne.");
Assert.AreEqual(cust.Email, "jdevlop@contoso.com");
Assert.AreEqual(cust.Name, "Jan Programista");
Assert.AreEqual(cust.City, "Brzeg");
Assert.AreEqual(cust.PostalCode, "00000");
Assert.AreEqual(cust.RegionState, "DL");
Assert.AreEqual(cust.Address1, "ul. Microsoftu 100");
Assert.IsTrue(cust.Address2 == "");
Assert.IsTrue(cust.Phone == "");
}

Klasa Assert zawiera te wersje metod AreEqual i AreNotEqual dla oglnych typw danych.
Wersje te umoliwiaj sprawdzanie, czy dwa typy oglne s takie same. Programista musi
okreli typ oglny za pomoc standardowej skadni, <T> [lub (of T) w jzyku Visual Basic],
i przekaza dwie porwnywane zmienne. Poniej pokazano przykadowy kod:
Assert.AreEqual<Customer>(cust1, cust2);

Sprawdzanie kolekcji obiektw


Przestrze nazw UnitTesting obejmuje te klas asercji CollectionAssert. Przy jej uyciu
mona sprawdzi zawarto klas kolekcji. Mona na przykad wywoa metod Contains, aby
ustali, czy dana kolekcja zawiera konkretny element (lub go nie zawiera). Metoda AllItems
AreInstancesOfType suy do sprawdzania, czy kolekcja zawiera egzemplarze tego samego
typu. Mona te sprawdzi, czy dwie kolekcje s takie same (AreEqual i AreNotEqual) lub
czy zawieraj identyczne elementy, ale niekoniecznie w tej samej kolejnoci (AreEquivalent
i AreNotEquivalent).

421

Cz III Tworzenie kodu i zarzdzanie nim

Sprawdzanie acuchw znakw


Klasa StringAssert zawiera metody suce do sprawdzania acuchw znakw i ich fragmentw. Metoda Contains pozwala ustali, czy acuch obejmuje okrelony podacuch.
Metoda StartsWith umoliwia okrelenie, czy acuch rozpoczyna si od podanych znakw,
a metoda EndsWith sprawdza kocow cz acucha. Metody Matches i DoesNotMatch umoliwiaj ustalenie, czy acuch znakw pasuje do zdefiniowanego wyraenia.

Testowanie wyjtkw
Testy jednostek naley pisa w taki sposb, aby ustali, czy kod dziaa w oczekiwany sposb
zarwno w korzystnych, jak i niekorzystnych warunkach. Korzystne warunki mona sprawdzi w opisany wczeniej sposb za pomoc metod klasy Assert. Jednak czsto trzeba okreli, czy kod zgasza odpowiedni wyjtek w odpowiedzi na specyficzne wywoanie. Mona wtedy
zastosowa atrybut ExpectedException do przetestowania okrelonych warunkw wystpienia
bdw.
Atrybut ExpectedException naley doda do metody testowej. Atrybut przyjmuje jako parametr typ oczekiwanego wyjtku. Jeli wywoanie metody testowej spowoduje zgoszenie
wyjtku odpowiedniego typu, test zakoczy si powodzeniem. Jeeli wyjtek nie wystpi lub
bdzie mia niewaciwy typ, test zakoczy si niepowodzeniem.
Zamy, e programista chce sprawdzi, co stanie si przy prbie utworzenia nowego klienta
przy uyciu niepenych danych. Moe w tym celu napisa kod zgaszajcy niestandardowy
wyjtek typu InvalidCustomerException i doda do metody testowej nastpujcy atrybut:
[TestMethod()]
[ExpectedException(typeof(InvalidCustomerException),
"Nie zgoszono wyjtku InvalidCustomerException.")]
public void NewCustomerTest() {
// Tworzenie nieprawidowego nowego egzemplarza klasy Customer.
}

Warto zauway, e jeli powyszy kod nie zgosi wyjtku, jako wynik testu przekazany zostanie
komunikat o bdzie ("Nie zgoszono wyjtku InvalidCustomerException."). Komunikat to opcjonalny parametr atrybutu ExpectedException.
Mona czy asercje z atrybutem ExpectedException. Aby metoda testowa w takich warunkach przesza test, asercje musz by spenione, a metoda musi zgosi wyjtek.

Uwaga
Zgoszony wyjtek musi mie dokadnie taki sam typ, jak oczekiwany. Wyjtek nie moe na przykad dziedziczy po oczekiwanym. Wtedy test zakoczy si niepowodzeniem.

422

Rozdzia 9. Testowanie kodu

Tworzenie testw jednostek zalenych od danych


Czsto lepiej jest napisa jeden test jednostek i uruchomi go wielokrotnie dla rnych wartoci parametrw, ni przygotowywa wiele podobnych testw. Cech dobrych testw jednostek
jest pokrycie rnych warunkw. Oczywicie, testy jednostek nie przyjmuj parametrw.
Utrudnia to przekazywanie danych do testw. Dlatego trzeba powiza testy jednostek z danymi.
Nastpnie mona nakaza platformie testw jednostek uruchomienie testu dla kadego wiersza
danych. Mona te wykorzysta powizane dane testowe w samym tecie jednostek i wywoa
kod na wiele sposobw.

czenie si z danymi
Do wizania testw jednostek z danymi testowymi suy klasa atrybutu DataSource z platformy testw jednostek. Klasa umoliwia bezporednie podanie acucha poczenia z danymi
testowymi lub okrelenie nazwy acucha poczenia zapisanego w pliku konfiguracji projektu.
Obie techniki pozwalaj nawiza poczenie z baz danych (na przykad SQL Server lub Access),
plikiem .csv (zwykle tworzonym w Notatniku lub Excelu) lub plikiem .xml.
Klasa atrybutu DataSource ma trzy wersje. Pierwsza przyjmuje jeden parametr, dataSource
SettingName. Wymaga to przekazania nazwy ustawie rda danych zdefiniowanych
w pliku konfiguracji. Druga wersja przyjmuje parametry connectionString i tableName.
Naley wtedy przekaza poprawny acuch poczenia ze rdem danych i okreli nazw
tabeli, ktr system ma powiza z testem jednostek. Ostatnia wersja przyjmuje parametry
providerInvariantName, connectionString, tableName i dataAccessMethod. Pierwszy
suy do okrelania typu dostawcy, na przykad dostawcy plikw CSV, bazy SQL Server i tak
dalej. Drugi, acuch poczenia, zaley od wybranego dostawcy i okrela sposb dostpu do
danych. Trzeci parametr to nazwa tabeli (lub pliku) z danymi. Czwarty, metoda dostpu do
danych, okrela sposb powizania danych z testem jednostek sekwencyjny lub swobodny.
Zamy, e programista pisze test jednostek do sprawdzenia informacji o zamwieniach i koncie
klienta. Moe wczyta dane klienta, pobra zoone zamwienia, okreli przyznany kredyt
i sprawdzi obecny stan rachunku. Wszystkie te operacje dla danego klienta mona wykona
w jednym tecie jednostek. Test mona powiza z wierszami danych testowych klienta, aby
sprawdzi poprawno kodu w rnych scenariuszach. Przyjmijmy, e dane testowe znajduj si
w pliku .csv w aplikacji testowej. Wtedy atrybut DataSource mona doda do metody testowej
w nastpujcy sposb:
[TestMethod(),
DataSource("Microsoft.VisualStudio.TestTools.DataSource.CSV",
"|DataDirectory|\\OrderTestData.csv", "OrderTestData#csv",
DataAccessMethod.Sequential),
DeploymentItem("BusinessDomainUnitTests\\OrderTestData.csv")]
public void VerifyCustomerOrders() {
// Kod sprawdzajcy informacje o zamwieniach i koncie klienta.
}

423

Cz III Tworzenie kodu i zarzdzanie nim

Warto zauway, e w przykadowym kodzie pierwszy parametr atrybutu DataSource okrela


dostawc plikw .csv. Nastpny parametr to acuch poczenia z plikiem danych. Trzeci
parametr (OrderTestData#csv) informuje, e nazwa tabeli nie istnieje (uyto nazwy pliku).
Ostatni parametr, warto wyliczeniowa DataAccessMethod.Sequential, okrela, e kady
wiersz naley powiza z testem jednostek w sposb sekwencyjny. Zwrmy te uwag na to,
e dodano atrybut DeploymentItem, aby zagwarantowa, e plik z danymi testowymi zostanie
zainstalowany wraz z testem jednostek.
Nawizywanie poczenia przy uyciu pliku konfiguracyjnego
W innym scenariuszu mona przechowywa informacje o poczeniu w pliku konfiguracyjnym.
Jest to przydatne, jeli programista nie chce na trwae zapisywa informacji w kodzie testw
jednostek. Moliwe, e ta sama testowa baza danych jest wykorzystywana w wielu testach. W rodowisku programistycznym i testowym poczenie z baz moe wyglda inaczej. Wtedy umieszczenie informacji o poczeniu w pliku konfiguracyjnym uatwia zarzdzanie nimi.
Pierwszy krok w tym podejciu polega na utworzeniu pliku konfiguracyjnego. W tym celu
wystarczy doda plik app.config do projektu testw jednostek (naley klikn plik projektu
prawym przyciskiem myszy i wybra opcj Add/New Item). Jedyna trudno to prawidowe
okrelenie formatu pliku konfiguracyjnego. Trzeba doda sekcj konfiguracyjn specyficzn
dla narzdzi testowych rodowiska Visual Studio. Warto zauway, e w sekcji naley wskaza
wersj 10. platformy testw jednostek. Oto przykadowy kod:
<configSections>
<section name="microsoft.visualstudio.testtools"
type="Microsoft.VisualStudio.TestTools.UnitTesting.TestConfigurationSection,
Microsoft.VisualStudio.QualityTools.UnitTestFramework, Version=10.0.0.0,
Culture=
neutral, PublicKeyToken=b03f5f7f11d50a3a" />
</configSections>

Nastpnie naley doda sekcj z acuchem poczenia. Trzeba okreli nazw acucha i poda informacje o poczeniu oraz dostawcy danych. Tekst acucha zaley oczywicie od dostawcy i rodzaju danych. Dla danych przechowywanych w plikach .xlsx, .csv i .xml oraz bazach
Access, Oracle i SQL potrzebne s specyficzne elementy w acuchu poczenia. W poniszym
przykadzie wykorzystano dostawc OleDb do utworzenia acucha poczenia dla pliku .csv:
<connectionStrings>
<add name="OrderTestDataCnn"
connectionString="Provider=Microsoft.Jet.OLEDB.4.0; Data Source=
|DataDirectory|TestData\; Extended Properties='text;HDR=Yes;FMT=Delimited'"
providerName="System.Data.OleDb" />
</connectionStrings>

Ostatni krok polega na utworzeniu sekcji rda danych zagniedonej w sekcji narzdzi testowych.
Naley okreli nazw testowego rda danych i wskaza acuch poczenia. Ponadto mona
poda metod dostpu do danych (dostp sekwencyjny lub swobodny) i nazw tabeli (jeli jest
potrzebna). Ostatecznie plik konfiguracyjny powinien wyglda tak jak na listingu 9.6.
424

Rozdzia 9. Testowanie kodu

Listing 9.6. Przykadowy plik konfiguracyjny testu jednostek


<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="microsoft.visualstudio.testtools"
type="Microsoft.VisualStudio.TestTools.UnitTesting.TestConfigurationSection,
Microsoft.VisualStudio.QualityTools.UnitTestFramework, Version=10.0.0.0,
Culture=
neutral, PublicKeyToken=b03f5f7f11d50a3a" />
</configSections>
<connectionStrings>
<add name="OrderTestDataCnn"
connectionString="Provider=Microsoft.Jet.OLEDB.4.0; Data Source=
|DataDirectory|TestData\; Extended Properties='text;HDR=Yes;FMT=Delimited'"
providerName="System.Data.OleDb" />
</connectionStrings>
<microsoft.visualstudio.testtools>
<dataSources>
<add name="OrderTestDataSource"
connectionString="OrderTestDataCnn" dataTableName="OrderTestData#csv"
dataAccessMethod="Sequential"/>
</dataSources>
</microsoft.visualstudio.testtools>
</configuration>

Uwaga
Warto zauway, e w jednym pliku konfiguracyjnym mona
zdefiniowa wiele acuchw pocze (kady z nich musi mie
inn nazw).
Nastpnie mona wykorzysta skonfigurowane testowe rdo danych w metodzie testowej. W tym
celu wystarczy poda nazw rda danych w atrybucie DataSource metody testowej. Prowadzi to
do zwikszenia przejrzystoci kodu, uatwia wielokrotne wykorzystanie acuchw pocze
i umoliwia centralne zarzdzanie poczeniem, jeli jest ono inne na poszczeglnych komputerach.
Poniej pokazano, jak wykorzysta rdo danych:
[TestMethod(),
DataSource("OrderTestDataSource"]
public void VerifyCustomerOrders() {
// Kod sprawdzajcy informacje o zamwieniach i koncie klienta.
}

Warto zauway, e w tym przykadzie dane testowe znajduj si w pliku .csv o nazwie OrderTestData.csv. Plik dodano do katalogu TestData w projekcie testw. Katalog i plik s nastpnie
przenoszone do katalogu bin, w ktrym rodowisko uruchamia testy. Dzieje si tak, poniewa
425

Cz III Tworzenie kodu i zarzdzanie nim

acuch poczenia obejmuje fragment |DataDirectory|TestData\. Mona te bezporednio wymusi instalowanie plikw, dodajc atrybut DeploymentItem do metody testowej.

Wskazwka
acuchy pocze dla testw jednostek mona skonfigurowa za
pomoc okna dialogowego Properties. Zobacz na przykad punkt
Konfigurowanie atrybutw testw jednostek w dalszej czci
rozdziau.

Stosowanie danych testowych w asercjach


Dostp do danych testowych powizanych z metodami testowymi mona uzyska za pomoc
obiektu kontekstu testu. Przypomnijmy, e jeli programista ustawi waciwo typu TestContext
(zobacz punkt Klasa TestContext), obiekt kontekstu zostanie udostpniony przez platform.
Metoda DataRow klasy TestContext pozwala pobra wiersz powizany z wykonywanym
testem. Do metody mona przekaza nazw pola lub indeks, aby pobra dane z odpowiedniej
kolumny. Zwykle naley ustawi zmienne dla wszystkich pl danych testowych. Nastpnie
mona wykorzysta zmienne w asercjach w testach jednostek.
Na listingu 9.7 pokazano przykad zastosowania danych testowych (ukad danych testowych
przedstawiono na rysunku 9.18 w dalszej czci rozdziau). Warto zauway, e kad kolumn
trzeba zrzutowa lub przeksztaci na odpowiedni typ danych. Nastpnie mona napisa waciwe asercje.
Listing 9.7. Przykadowy test jednostek, w ktrym wykorzystano powizane dane
[TestMethod(),
DataSource("OrderTestDataSource")]
public void VerifyCustomerOrders() {
// Pobieranie wartoci z wierszy danych.
string email = (string)TestContext.DataRow["email"];
int numOrders = (int)TestContext.DataRow["num_orders_todate"];
double creditLimit = Convert.ToDouble(TestContext.DataRow["credit_limit"]);
double accountBalance =
Convert.ToDouble(TestContext.DataRow["account_balance"]);
// Tworzenie obiektu Customer na podstawie adresu e-mail.
Customer cust = new Customer(email);
// Sprawdzanie informacji o zamwieniach i koncie klienta.
Assert.IsTrue(cust.OrderHistory.Count == numOrders,
"Liczba zamwie jest nieprawidowa.");
Assert.IsTrue(cust.Account.Balance == accountBalance,
"Stan rachunku jest nieprawidowy.");
Assert.IsTrue(cust.Account.CreditLimit == creditLimit,
"Limit debetu jest nieprawidowy.");

426

Rozdzia 9. Testowanie kodu

Assert.IsTrue(cust.Account.CreditLimit > cust.Account.Balance,


"Limit debetu musi by mniejszy ni stan rachunku.");
}

Uruchamianie testw zalenych od danych i wywietlanie ich wynikw


Testy jednostek zalene od danych mona uruchamia w taki sam sposb jak inne testy jednostek. Gwna rnica polega na tym, e cay test jednostek koczy si niepowodzeniem, jeli
test zakoczy si w ten sposb dla choby jednego wiersza danych. Mona dwukrotnie klikn
wynik nieudanego testu, aby wywietli szczegowe informacje na jego temat. Wyniki testw
zalenych od danych pojawiaj si w odrbnym okienku pod standardowymi wynikami testu
jednostek. Przykadowe dane pokazano na rysunku 9.16.

Rysunek 9.16. Wyniki testw jednostek zalenych od danych wywietlane s pod standardowymi wynikami caego
testu jednostek

Warto zauway, e dla trzech z czterech wierszy testy jednostek zakoczyy si powodzeniem.
Mona zobaczy komunikat o bdzie (z asercji) dla wiersza, ktry spowodowa bd. Dwukrotnie kliknicie tego wiersza spowoduje wywietlenie szczegowych informacji o niepowodzeniu, w tym ladu stosu bdw i odnonika do wiersza kodu, gdzie wystpi problem.

427

Cz III Tworzenie kodu i zarzdzanie nim

Pisanie testw jednostek


dziaajcych w ASP.NET
Mona wybra, czy testy jednostek maj by przechowywane i uruchamiane w rodowisku
ASP.NET zamiast w domylnym procesie hosta VSTest. Jest to przydatne przy pisaniu testw
wspdziaajcych z obiektami ASP.NET, takimi jak Page i Session. Czasem programista
chce przetestowa usug sieciow lub inny kod aplikacji zwizany z interfejsem sieciowym.
Mona wtedy umieci testy jednostek dla aplikacji ASP.NET na serwerze IIS lub na serwerze
rodowiska Visual Studio. Takie rozwizanie gwarantuje, e testy bd miay peny dostp do
zmiennych rodowiskowych ASP.NET.

Definiowanie atrybutw rodowiska ASP.NET


Aby okreli, e test jednostek ma dziaa w rodowisku ASP.NET, naley doda odpowiednie
atrybuty do metody testowej. Liczne atrybuty znajduj si w przestrzeni nazw UnitTesting.Web.
Dlatego naley najpierw doda odpowiedni instrukcj using (imports w jzyku Visual Basic) w grnej czci pliku klasy testw, ktre maj dziaa w ASP.NET. Instrukcja powinna
wyglda tak:
using Microsoft.VisualStudio.TestTools.UnitTesting.Web;

Ponadto w aplikacji z testem jednostek naley doda referencj do witryny. Umoliwi to dostp do stron witryny i innych klas, ktre mog znajdowa si w katalogu App_Code oraz innych miejscach.
Przy tworzeniu testw jednostek w ASP.NET uywane s trzy gwne atrybuty: UrlToTest,
HostType i AspNetDevelopmentServerHost. Atrybut UrlToTest umoliwia okrelenie
strony, ktr naley wywoa w czasie uruchamiania danego testu jednostek. Strona jest wywoywana przez platform testw, a dla testu jednostek dostpny jest kontekst dania sieciowego
(poprzez obiekt Page). W kodzie testu jednostek mona korzysta ze rodowiska ASP.NET
w taki sam sposb, jak w pliku z kodem ukrytym strony internetowej.
Atrybut HostType umoliwia zmian typu hosta na ASP.NET. W tym celu naley przekaza
do atrybutu acuch znakw ASP.NET.
Przy korzystaniu z hosta w postaci serwera IIS wystarczy ustawi atrybuty UrlToTest i HostType.
Jeli jednak programista uywa serwera ASP.NET Development (wspdziaajcego z Visual
Studio), musi ponadto doda atrybut AspNetDevelopmentServerHost. Jako parametr atrybutu naley przekaza ciek do aplikacji sieciowej. Trzeba te poda nazw gwnego katalogu aplikacji sieciowej.
Na listingu 9.8 pokazano przykad zastosowania wszystkich trzech wymienionych atrybutw
do zdefiniowania testu jednostek ASP.NET dziaajcego na lokalnym serwerze rozwojowym.

428

Rozdzia 9. Testowanie kodu

Listing 9.8. Test jednostek ASP.NET


[TestMethod()]
[HostType("ASP.NET")]
[AspNetDevelopmentServerHost("C:\\CODE\\Unleashed\\Contoso\\ContosoWeb", "/")]
[UrlToTest("http://localhost:55136/ShoppingCart.aspx")]
public void AddShoppingCartItemTest() {
// Pobieranie danej strony.
Page reqPage = TestContext.RequestedPage;
Assert.IsTrue(reqPage.Title == "Koszyk zakupw", "Tytu strony jest
niewaciwy.");
// Rzutowanie na typ strony.
ShoppingCartPage actualPage = (ShoppingCartPage)reqPage;
Assert.IsNotNull(actualPage.Cart, "Na stronie nie ma koszyka.");
// Sprawdzanie poprawnoci kodu do obsugi koszyka zakupw.
actualPage.Cart.AddItem("Produkt 1", 1, 12.75);
actualPage.Cart.AddItem("Produkt 2", 2, 26.95);
Assert.IsTrue(actualPage.Cart.Items.Count == 2, "Liczba elementw jest
niewaciwa.");
Assert.AreEqual(actualPage.Cart.CalculateCartTotal(), 66.65);
}

Warto zauway, e referencje do obiektw ASP.NET pochodz z waciwoci RequestedPage


obiektu TestContext. Waciwoci tej mona uy do zrzutowania danych bezporednio na typ
danej strony (tu jest to typ ShoppingCartPage). Oczywicie, waciwo RequestedPage ma
typ System.Web.UI.Page, dlatego zapewnia dostp do obiektw Server, Session, Request,
Response i podobnych.

Generowanie testw jednostek ASP.NET


Za pomoc Visual Studio mona automatycznie wygenerowa testy jednostek ASP.NET. Czsto jest to zalecana metoda tworzenia testw, poniewa przygotowuje projekt testw do pracy
ze rodowiskiem ASP.NET i automatycznie konfiguruje atrybuty.
Testy jednostek ASP.NET generuje si w taki sam sposb, jak wszystkie inne testy jednostek.
Najpierw naley otworzy kod (plik z kodem ukrytym strony lub inny plik klasy). Nastpnie
trzeba klikn prawym przyciskiem myszy kod i wybra opcj Create Unit Tests. Spowoduje to
uruchomienie kreatora Create Unit Tests (zobacz rysunek 9.5). W tym miejscu mona wybra
metody, dla ktrych kreator ma wygenerowa testy. Obsugiwane s zdarzenia zwizane ze
stron, kliknicie przyciskw i inne zdarzenia kontrolek. Mona te napisa test jednostek
wyszukujcy kontrolki na stronie i sprawdzajcy ich zawarto.

429

Cz III Tworzenie kodu i zarzdzanie nim

Konfigurowanie hosta projektu testw


Programici czsto tworz dla witryny odrbny projekt testw jednostek. Projekt moe dotyczy testw powizanych z funkcjami witryny. Mona te utworzy dodatkowe projekty testw
do sprawdzania innych bibliotek kodu. Tego typu podzia uatwia pisanie i przeprowadzanie
testw jednostek.
Ponadto mona skonfigurowa ustawienia projektu testw specyficznie pod ktem hosta.
Dziki temu nie trzeba definiowa licznych atrybutw ASP.NET w kadym tecie jednostek.
Zamiast tego mona skonfigurowa plik .testsettings w taki sposb, aby wspdziaa ze specyficznym hostem. W tym celu naley klikn dwukrotnie plik .testsettings (Solution Items/
Local.testsettings), co spowoduje wywietlenie okna dialogowego Test Settings, widocznego na
rysunku 9.17.

Rysunek 9.17. Plik .testsettings mona wykorzysta do skonfigurowania caego projektu testw, tak aby dziaa
dla witryny ASP.NET

Wskazwka
Jeli rozwizanie zawiera wiele projektw testw jednostek, warto
utworzy kilka wersji pliku .testsettings. Nastpnie mona atwo
przecza si midzy konfiguracjami dla hostw ASP.NET i standardowego (VSTest).

430

Rozdzia 9. Testowanie kodu

W oknie dialogowym naley otworzy widoczny po lewej stronie wze Hosts, a nastpnie
ustawi warto ASP.NET dla opcji Host type. Spowoduje to udostpnienie kilku dodatkowych
opcji: URL to Test, Path to Web Site i Web Application Root. Kad z tych opcji mona ustawi
na wartoci domylne dla caego projektu testw jednostek.

Konfigurowanie atrybutw
testw jednostek
Pokazalimy, e istnieje wiele atrybutw, ktre mona zastosowa do testw jednostek. Oczywicie, moliwe jest skonfigurowanie kadego z nich w edytorze kodu. Jednak Visual Studio
udostpnia pewn pomoc w oknie dialogowym Properties. Mona wybra dany test jednostek,
wywietli okno Properties, a nastpnie skonfigurowa atrybuty stosowane do metody testowej.
Visual Studio wygeneruje kod atrybutw dla metody testowej. Przyjrzyjmy si przykadowi.

Definiowanie poczenia
za pomoc okna dialogowego Properties
Pierwszym krokiem przy stosowaniu okna Properties do konfigurowania testw jednostek jest
wybranie testu. Naley to zrobi w oknie Test View (Test/Windows/Test View). Nastpnie
mona klikn prawym przyciskiem myszy test na licie i wybra opcj Properties, aby wywietli okno Properties dla danego testu. Na rysunku 9.18 pokazano przykadowe dane.
Warto zauway, e w oknie Properties znajduj si waciwoci wielu atrybutw, ktre mona
zastosowa do metody testowej. Zmiana wartoci jednej z waciwoci spowoduje wygenerowanie
przez rodowisko Visual Studio atrybutu i kodu w pliku z kodem (midzy kodem i omawianym
oknem nastpuje dwustronna synchronizacja).
Przykadowo, waciwo Data Connection String uatwia zdefiniowanie atrybutu DataSource.
Kliknicie przycisku z wielokropkiem przy waciwoci powoduje uruchomienia kreatora,
dziki ktremu mona zdefiniowa acuch poczenia z baz danych SQL, plikiem CSV lub
plikiem XML (oczywicie, mona nawiza poczenie take z innymi rdami danych, ale
wymaga to napisania wasnego acucha poczenia). We wczeniejszym przykadzie uywalimy
pliku CSV. Po zaznaczeniu opcji zwizanej z tym formatem mona przej do pliku CSV, a nawet
podejrze zapisane w nim dane. Na rysunku 9.19 pokazano przykadowy ekran kreatora. Po ustawieniu wszystkich opcji kreator zaktualizuje kod, dodajc atrybuty DataSource i DeploymentItem.
Poniej znajduje si uzyskany kod konfiguracyjny:
[TestMethod(),
DeploymentItem("BusinessDomainUnitTests\\TestData\\OrderTestData.csv"),
DataSource("Microsoft.VisualStudio.TestTools.DataSource.CSV",
"|DataDirectory|\\OrderTestData.csv", "OrderTestData#csv",
DataAccessMethod.Sequential)]
public void VerifyCustomerOrders() { ...

431

Cz III Tworzenie kodu i zarzdzanie nim

Rysunek 9.18. Mona zaznaczy test w oknie Test View, a nastpnie skonfigurowa jego atrybuty w oknie Properties
Rysunek 9.19.
Testy jednostek mona
powiza z testowymi
danymi, w tym
z prostym plikiem .csv

432

Rozdzia 9. Testowanie kodu

Tworzenie testw uporzdkowanych


Visual Studio umoliwia czenie grup testw jednostek, okrelanie kolejnoci ich wykonywania
i traktowanie wynikw w taki sposb, jakby uzyskano je dla pojedynczego testu. Moe to by
przydatne, jeli programista chce napisa testy jednostek zalene od siebie. Mona na przykad
wstawi rekord w jednym tecie i oczekiwa, e ten sam rekord bdzie dostpny w dalszym
tecie. Oczywicie, jest to niezgodne z dobrymi praktykami testw jednostek moliwe powinno
by przeprowadzenie kadego testu niezalenie od pozostaych. Na szczcie mona utworzy
test uporzdkowany, ktry czy poszczeglne testy jednostek w nowy, niezaleny test.
Test uporzdkowany mona doda do projektu testw, klikajc projekt prawym przyciskiem
myszy i wybierajc opcj Add/Ordered Test. Mona te wybra szablon Ordered Test w oknie
dialogowym Add New Test (zobacz rysunek 9.3).
Test uporzdkowany to po prostu plik XML oparty na szablonie Ordered Test. Nie trzeba jednak rcznie edytowa kodu w jzyku XML. rodowisko Visual Studio udostpnia jako pomoc
okno projektowe dla testw uporzdkowanych. Przykadow zawarto takiego okna pokazano
na rysunku 9.20.

Rysunek 9.20. Do testu uporzdkowanego mona doda istniejcy test jednostek, aby utworzy nowy test, w ktrym
poszczeglne testy uruchamiane s w okrelonej kolejnoci

433

Cz III Tworzenie kodu i zarzdzanie nim

Po lewej stronie okna dialogowego znajduj si wszystkie testy z rozwizania. Mona wywietli testy z wybranej listy (zobacz podrozdzia Organizowanie testw). Po lewej stronie naley
zaznaczy poszczeglne testy i uy strzaki (>) w celu ich dodania do testu uporzdkowanego.
Skierowane w gr i w d strzaki widoczne po prawej stronie su do zmiany kolejnoci
przeprowadzania testw.
Przy wykonywaniu testw uporzdkowanych rodowisko Visual Studio uruchamia kady test
jednostek w podanej kolejnoci. Jeli ktrykolwiek test si nie powiedzie, cay test uporzdkowany
zakoczy si niepowodzeniem. Oczywicie, mona wywietli szczegowe informacje na temat
testu uporzdkowanego, aby zobaczy, ktre testy zakoczyy si sukcesem, a ktre porak.

Organizowanie testw
Wikszo projektw testw jednostek skada si z licznych testw nieraz s ich setki. Ponadto czsto w jednym rozwizaniu znajduje si wiele projektw testw jednostek. Zarzdzanie
wszystkimi testami i uruchamianie tylko tych potrzebnych w danym momencie bywa trudne.
Visual Studio udostpnia pewn pomoc w tym zakresie okna Test View i Test List Editor.

Okno Test View


Okno Test View umoliwia wywietlenie wszystkich testw w otwartym rozwizaniu, zaznaczenie tych, ktrymi programista jest zainteresowany, i albo uruchomienie ich, albo zarzdzanie
waciwociami ich atrybutw.
Dostp do okna Test View mona uzyska z menu Test (Test/Windows/Test View). Na rysunku
9.21 pokazano przykadow zawarto okna. Warto zauway, e mona zaznaczy jeden lub
kilka testw, klikn prawym przyciskiem myszy i uruchomi wybrane testy w jednym przebiegu. Dziki temu nie trzeba uruchamia wszystkich testw jednostek, jeli wana jest tylko
jedna metoda testowa (lub ich maa grupa).
W grnej czci okna Test View znajduje si pasek narzdzi. Umoliwia on wyszukiwanie
testw na podstawie sw kluczowych i modyfikowanie sposobw grupowania lub filtrowania
testw. Sprawia to, e znalezienie testw jest atwiejsze. Mona na przykad zmieni warto
opcji Group By na Class Name, aby wywietli wszystkie testy dla okrelonej klasy. Przykadowe
ustawienia pokazano na rysunku 9.22.

434

Rozdzia 9. Testowanie kodu

Rysunek 9.21. Okno Test View umoliwia atwe zaznaczenie zbioru testw do uruchomienia
Rysunek 9.22.
Mona uy opcji
Group By, aby uatwi
sobie znalezienie
testw jednostek

Okno Test List Editor


Visual Studio udostpnia te okno Test List Editor. Posiada ono podobne funkcje jak okno Test
View. Umoliwia wyszukiwanie testw, grupowanie ich i uruchamianie zbiorw testw. Jednak
w odrnieniu od okna Test View pozwala take zapisywa zdefiniowane listy testw. W ten
sposb mona utworzy i ponownie wykorzysta listy, kiedy zajdzie potrzeba uruchomienia
zbioru testw.
435

Cz III Tworzenie kodu i zarzdzanie nim

Dostp do okna Test List Editor mona uzyska z menu Test (Test/Windows/Test List Editor).
Pojawi si okno podobne do tego z rysunku 9.23. Po lewej stronie widniej listy testw. Domylnie dostpne s opcje Lists of Tests, Tests Not in a List i All Loaded Tests. Jeli programista
wybierze list z testami (na przykad All Loaded Tests), moe albo uruchomi ca list, albo uy
pl wyboru widocznych po prawej stronie okna do wybrania z listy testw do przeprowadzenia.

Rysunek 9.23. Mona zaznaczy testy w oknie Test List Editor i uruchomi je jako grup

Okna Test List Editor mona uywa do tworzenia nowych list testw w celu zapisania testw
regularnie wykonywanych w jednym zestawie. Aby utworzy list, naley klikn prawym
przyciskiem myszy pozycj Lists of Tests w oknie Test List Editor, a nastpnie wybra opcj
New Test List. Pojawi si okno dialogowe Create New Test List. W oknie mona poda nazw
listy testw i okreli jej pozycj wrd innych list (zobacz rysunek 9.24).
Aby doda test jednostek do nowej listy, mona zastosowa technik przecigania. Najpierw
naley wybra list All Loaded Tests w celu wywietlenia wszystkich wczytanych testw. Nastpnie trzeba zaznaczy wszystkie testy, ktre maj znale si na nowej licie. Wybrane testy
wystarczy przecign na nazw niestandardowej listy widoczn po lewej stronie okna Test List
Editor. W ten sposb testy zostan powizane z now list. Na rysunku 9.25 pokazano kilka
przykadowych niestandardowych list i testy z jednej z nich.

436

Rozdzia 9. Testowanie kodu

Rysunek 9.24.
Mona definiowa
nowe listy testw do
wielokrotnego uytku

Rysunek 9.25. Mona definiowa niestandardowe listy testw i dodawa do nich testy jednostek

Po utworzeniu listy testw do przeprowadzenia mona uruchomi je za pomoc paska narzdzia


okna Test List Editor. W tym celu naley wybra opcj Run Checked Tests (zobacz rysunek 9.23).

437

Cz III Tworzenie kodu i zarzdzanie nim

Podsumowanie
W tym rozdziale pokazalimy, jak uywa platformy testw jednostek do definiowania projektw testw i jak za pomoc atrybutu TestClass tworzy pliki klas testw. Kada metoda
testowa powinna mie atrybut TestMethod. Przy uyciu klasy atrybutu DataSource mona
tworzy testy jednostek powizane z danymi.
Visual Studio umoliwia generowanie testw jednostek na podstawie istniejcego kodu. Udostpnia te w narzdziu Test View okno dialogowe Properties, aby uatwi generowanie kodu
atrybutw testw.
Mona tworzy testy jednostek obsugiwane przez ASP.NET (na serwerze IIS lub serwerze
rozwojowym rodowiska Visual Studio). W testach jednostek ASP.NET wykorzystywany jest
obiekt TestContext do uzyskania dostpu do informacji o rodowisku ASP.NET, w tym o przetwarzanej stronie, sesji i zmiennych serwera.
Pisanie testw jednostek moe prowadzi do zmniejszenia liczby problemw w kodzie produkcyjnym. Przygotowanie zestawu testw kodu uatwia jego zrozumienie i zwiksza niezawodno. Ponadto programista moe z wiksz pewnoci wprowadza zmiany, poniewa
potrafi okreli, w jakim fragmencie kodu w wyniku modyfikacji pojawiy si usterki.

438

Skorowidz
!, 136
!=, 135
#End Region, 368
#endregion, 368
#region, 368
#Region, 368
$CALLER, 504
$FUNCTION, 504
&, 135, 136
&&, 136
.NET, 23, 175
.NET Framework 4, 74
.NET Framework Components, 831
//HACK, 394
//TODO, 394
@Page, 769
@Register, 804
@WebService, 1018, 1019
^, 136
|, 136
||, 136
+, 135
<%@ Page StylesheetTheme="" %>, 774
<%@ Page Theme="" %>, 773
<%@ Register %>, 804
<%= %>, 165
<>, 144
<asp:Label>, 782
<asp:WebPartZone>, 782
<Author>, 386
<Code>, 386, 388
<CodeSnippet>, 386
<CodeSnippets>, 386
<Declarations>, 386
<Default>, 386
<Description>, 386
<Function>, 386
<Header>, 386
<ID>, 386
<Literal>, 386
<Shortcut>, 386
<Snippet>, 386
<SnippetType>, 386

<SnippetTypes>, 386
<Title>, 386
<ToolTip>, 386
<ZoneTemplate>, 782
=, 135
==, 135

A
Abstract, 121
Access, 993
Access board section 508, 734
AccessDataSource, 800, 993
Accessibility Validation, 289
Accordion, 917
Action, 175, 745, 1154
ActionsPane.StackOrder, 1150
ActionsPaneControl1, 1150
Activate, 574
Active Template Library, 41
ActivePoint, 601
ActiveWindow.Object.GetItem, 620
Activity, 1068, 1077
Activity Designer, 1068, 1069
Activity Designer Library, 1066
Activity Library, 1065
ActivityXamlServices.Load(), 1080
Add ASP.NET Folder, 725, 771
Add Connection, 944
Add Controler, 814
Add Correlation Initializers, 1112
Add Database Reference, 970
Add New Data Source, 976
Add New Item, 56, 189, 340, 680, 728, 737, 738, 758,
765, 827, 1018
niestandardowe szablony, 341
Add New Project, 809, 1017, 1043
Add New Stored Procedure, 956
Add New Test, 403, 433
Add New Trigger, 960
Add New User Control, 290
Add Reference, 86, 730, 731
Add Related Tables, 948

Skorowidz

Add Service Reference, 730, 1033, 1034, 1036


Add Stored Procedure, 971
Add Style Rule, 271, 758, 759, 760
Add Task List Shortcut, 395
Add User Control, 655
Add View, 818
Add Web Reference, 730, 1035
Add-in, 51
AddIn, 562
Add-in Manager, 639, 653
Add-in Wizard, 677
AddNamedCommand2, 651
AddToCollection<T>, 1087
ADO.NET, 175
ADO.NET Data Service, 728
ADO.NET Entity Data Model, 69, 812, 1001
adres URL, 807, 1016
Advanced compile options, 207
AggregateCatalog, 691
AJAX, 53, 58, 904
kontrolki, 58
UpdatePanel, 58
UpdateProgress, 58
AJAX Client Behavior, 728
AJAX Client Library, 728
AJAX Control Library, 728
Ajax Control Toolkit, 915
kontrolki, 917
stosowanie kontrolek, 919
Ajax Extensions, 905, 907
AJAX Master Page, 727
AJAX-enabled WCF Service, 728
aktualizacja czciowa, 907
aktualizacja danych w modelu EDM, 1007
aktualizacja lokalnego systemu pomocy, 313
aktualizacja schematu bazy danych, 968
aktywne odnoniki, 365
AlwaysVisibleControlExtender, 917
analiza kodu, 470
Anchor, 834, 835
anchoring, 833
And, 136
AndAlso, 136
animacja, 862
aplikacje, 43
aplikacje .NET, 43
aplikacje AJAX, 58
aplikacje Azure, 1170
aplikacje biznesowe, 68, 71, 72
aplikacje ClickOnce, 535

1210

aplikacje klienckie, 1064


aplikacje konsolowe, 242
aplikacje LINQ to SQL, 996
aplikacje MEF, 690
aplikacje nadrzdne, 689
aplikacje okresowo nawizujce poczenie, 71
aplikacje oparte na usugach sieciowych
ASP.NET, 1015
aplikacje oparte na usugach WCF, 1041
aplikacje rozproszone, 63
aplikacje rwnolege, 520
aplikacje SharePoint, 45, 52
aplikacje Web 2.0, 904
aplikacje Web Form, 808, 809
aplikacje wielowtkowe, 176, 515
aplikacje WinForm, 44
aplikacje XAML dla przegldarek, 48, 922
aplikacje ASP.NET, 44, 54, 63, 714
definiowanie sposobu kompilacji, 731
diagnostyka, 736
docelowa wersja platformy .NET, 733
dodawanie referencji, 730
dodawanie stron internetowych, 737
dostpno, 733
interfejs uytkownika, 746
katalogi, 726
kompilacja, 731
kompozycje, 770
opcje konfiguracyjne, 729
pliki, 727
pooenie kontrolek, 747
prekompilacja, 736
projekt, 715
projektowanie interfejsu uytkownika, 746
referencje, 729
serwer, 735
Silverlight, 736
skrki, 770
strony wzorcowe, 765
ukad strony, 747
wdraanie, 549
web.config, 55
waciwoci, 729
zachowanie podczas adowania strony, 735
zgodno ze standardem dostpnoci stron
HTML, 735
aplikacje ASP.NET MVC, 805, 917
AcceptVerbs, 816
ActionResult, 815
adres URL, 807

Skorowidz

Application_Start, 819
Content, 812
Controllers, 811
Create, 815
dane, 805, 806
definiowanie przekierowa adresw URL
do kontrolera, 819
dodawanie mechanizmw, 812
dodawanie rekordw do modelu, 815
kodu interfejsu uytkownika, 806
kontroler, 806, 807
model, 805, 806
model przetwarzania da, 807
Models, 811
projekt, 809
przekierowanie adresw URL, 819
RegisterRoutes, 819
Scripts, 812
struktura katalogw, 810
szablon aplikacji, 805
testowanie, 809
tworzenie kontrolera, 814
tworzenie modelu, 812
tworzenie projektw, 809
tworzenie widoku, 817
UrlRoutingModule, 807
uruchamianie aplikacji, 820
View, 815
ViewResult, 815
Views, 811
widok, 805, 806, 807
zalety platformy ASP.NET MVC, 808
dania HTTP, 807
aplikacje do zarzdzania procesem, 1062, 1096
baza danych, 1099
biblioteka dostpu do danych, 1100
dodawanie usugi do utrwalania procesu, 1116
dostp do danych, 1108
komunikacja z pamici trwa, 1118
pami trwaa, 1117
projekt, 1097
projektowanie procesu, 1107, 1110
tworzenie, 1096
tworzenie aplikacji klienckiej, 1119
tworzenie biblioteki czynnoci, 1105
tworzenie niestandardowej czynnoci Code
Activity, 1106
tworzenie niestandardowej czynnoci zoonej, 1105
tworzenie pamici trwaej, 1117
tworzenie projektw, 1098

uruchamianie aplikacji do obsugi procesu, 1124


usuga, 1104
utrwalanie procesw, 1116
aplikacje dziaajce w chmurze, 64, 1158
instalacja usugi w chmurze, 66
konfiguracja aplikacji o roli Web, 1186
projekt, 64, 1175
przenoszenie do rodowiska produkcyjnego, 1204
przygotowanie aplikacji do publikacji, 1196
publikowanie aplikacji, 66, 1199
rozwijanie aplikacji, 1175
tworzenie, 1160, 1170
tworzenie interfejsu o roli Web, 1180
tworzenie modelu danych opartego na tabeli, 1175
uruchamianie aplikacji, 64
wdraanie, 1188, 1199
wdraanie w rodowisku testowym, 1200
aplikacje Office, 1135
projekt, 1135
aplikacje sieciowe, 44, 54, 282, 715
diagnozowanie, 470
projekt, 715
wizanie danych, 989
aplikacje Silverlight, 44, 59, 736, 934
interfejs uytkownika, 935
kontrolki, 936
MainPage.xaml, 935
pokaz slajdw, 936
projekt, 59, 934
strona XAML, 935
tworzenie, 60, 934, 935
wybr rodzaju klienta, 61
aplikacje Windows, 46, 271
dodawanie kontrolek do formularza, 273
dostosowywanie wygldu formularza, 273
formularze, 273
kontrolki, 273
pisanie kodu, 277
projekt, 46, 272, 826
rozmieszczanie kontrolek, 275
ukad formularza, 46
ukad tabelaryczny, 275
zdarzenia, 47
aplikacje WPF, 44, 865, 904, 922
aplikacje przeznaczone do uruchamiania
w przegldarkach, 922
DataTemplate, 893
dodawanie kontrolek, 282
formularze, 281
grne menu aplikacji, 887

1211

Skorowidz

aplikacje WPF
komponenty formularzy Windows, 861
lista obrazw, 886
ListBox, 886
manipulowanie obrazami, 895
metody do obsugi zdarze zwizanych, 894
nawigowanie po znacznikach, 371
pliki XAML, 280
projekt, 280, 866
przegldarka obrazw, 888
przyciski, 894
rozmiar tabeli, 889
tworzenie, 871, 884
tworzenie ukadu, 885
ukad, 871, 885
wizanie danych, 986
wizanie rysunkw, 893
zapisywanie obrazw, 891
aplikacje XBAP, 922
app.xaml, 924
bezpieczestwo, 926
ClickOnce, 929
diagnozowanie, 925
formularze, 924
instalacja, 929
nawigowanie po witrynie, 928
PageX.xaml, 924
projekt, 923
strony, 924
tworzenie, 922
typy MIME, 931
uruchamianie, 925
WindowX.xaml, 924
zarzdzanie zabezpieczeniami, 928
app.config, 1103
App_Browsers, 727
App_Code, 428, 717, 726, 1018
App_Data, 716, 717, 726
App_GlobalResources, 726
App_LocalResources, 726
App_Themes, 727, 771
App_WebReferences, 726
AppFabric, 1158, 1160, 1164
Application, 863, 1017
application fabric, 1158
Application Type, 206
Application.EnableVisualStyles, 840, 841
Application_Start, 819
Apply Style, 763
Apply Styles, 287, 763

1212

architektura ASP.NET MVC, 806


architektura MVC, 714
architektura platformy MEF, 689
architektura platformy WPF, 861
AreEqual, 420
AreNotEqual, 420
AreNotSame, 420
AreSame, 420
argumenty procesu, 1070, 1071
arkusze stylw, 756, 758
arkusze stylw XSLT, 264, 269
Array, 142
ArrayList, 143
asercje, 404, 420
AreEqual, 420
AreNotEqual, 420
AreNotSame, 420
AreSame, 420
CollectionAssert, 421
Fail, 420
Inconclusive, 420
IsFalse, 420
IsInstanceOfType, 420
IsNotInstanceOfType, 420
IsNotNull, 420
IsNull, 420
IsTrue, 420
sprawdzanie kolekcji obiektw, 421
sprawdzanie acuchw znakw, 422
stosowanie danych testowych, 426
StringAssert, 422
asocjacja, 297
ASP, 165
ASP.NET, 44, 52, 54, 177, 282, 714, 922
cykl ycia strony, 741
czonkostwo, 795
interfejs konfigurowany przez uytkownika, 776
interfejs uytkownika, 746
katalogi, 725, 726
kompozycje, 770
kontrolki, 788
kontrolki danych, 799
kontrolki logowania, 795
kontrolki nawigacyjne witryny, 798
kontrolki uytkownika, 801
kontrolki walidacyjne, 793, 794
kontrolki Web Part, 776
logowanie, 795
mapa witryny, 798
model zdarze, 741

Skorowidz

MVC, 56, 57
personalizacja interfejsw uytkownika, 776
pliki, 727
procedury obsugi zdarze, 744
skrki, 770
strony internetowe, 737
strony wzorcowe, 765
style, 754
testy jednostek, 428
uwierzytelnianie uytkownikw, 796
Web Part, 776
wykresy, 800, 801
zdarzenia, 741
ASP.NET Ajax, 904
aktualizacja czciowa, 907
ASP.NET MVC, 917
kontrolki, 905
odwieanie czciowe, 912
ScriptManager, 906
ScriptManagerProxy, 906
stronicowanie, 912
Timer, 906
UpdatePanel, 906, 908
UpdateProgress, 906, 913
wywietlanie informacji o postpie pracy
serwera, 913
wywietlanie powiadomie, 913
ASP.NET Ajax Control Toolkit, 916
ASP.NET Ajax Library, 915
kontrolki, 915
ASP.NET Development Server, 719
ASP.NET Empty Web Site, 1017
ASP.NET Membership, 795
ASP.NET MVC, 805
ASP.NET Ajax, 917
ASP.NET MVC 2 Web Application, 809
ASP.NET MVC 2 Web Role, 1167
ASP.NET MVC Web Application, 57
ASP.NET Non-Visual Controls, 779
ASP.NET Reports Web Site, 717
ASP.NET Web Application, 54
ASP.NET Web Role, 64, 1167, 1170, 1175
ASP.NET Web Service, 716
ASP.NET Web Site, 283, 716
ASPNETDB.MDF, 797
AspNetDevelopmentServerHost, 428
Assembly Name, 206
AssemblyCatalog, 691
AssemblyCleanup, 415
AssemblyInitialize, 415

Assert, 420, 421


AreEqual, 404, 420, 421
AreNotEqual, 421
Inconclusive, 405
Assign, 1085
AssociatedUpdatePanelID, 913
Asynchronous JavaScript and XML, 53, 904
ATL, 41
atrybuty, 145
atrybuty deklaratywne, 145
atrybuty testw jednostek, 431
Attach Style Sheet, 761, 762
Attach to Process, 483, 485, 514, 515
Authenticode, 349
AutoCompleteExtender, 917
AutoGenerateDeleteButton, 992
AutoGenerateEditButton, 992
automatyczne formatowanie kodu, 101
automatyczne generowanie kodu do obsugi
waciwoci, 166
automatyzacja, 560
kategorie automatyzacji, 563
automatyzacja procesu kompilacji, 37
automatyzacja procesu tworzenia testw jednostek, 402
automatyzacja testowania jednostek, 398
Autos, 485, 506
AutoScaleDimensions, 835
AutoScaleMode, 835, 836
Azure, 65, 66, 1158
ADO.NET, 1177
aplikacje, 1170
aplikacje o roli Web, 1164, 1168
aplikacje o roli Worker, 1164
AppFabric, 1158, 1160, 1164
ASP.NET, 1163
DevFabric, 1159, 1161, 1170
hosting, 1159
instalacja pakietu SDK, 1160
interfejs o roli Web, 1180
klasy, 1178
kolejki, 1168
konfiguracja aplikacji o roli Web, 1186
konfiguracja rodowiska programistycznego, 1160
obiekt rda danych, 1183
obiekty blob, 1168
platforma programowania, 1159
projekt, 1165, 1167
przechowywanie danych, 1159, 1167
przygotowanie aplikacji do publikacji, 1196
publikowanie aplikacji, 1199

1213

Skorowidz

Azure
relacyjna baza danych, 1169
role, 1164
rozwijanie aplikacji, 1174, 1175
serwer IIS, 1163
SQL Azure, 1169
subskrypcja usug, 1188
tabele, 1168
tworzenie interfejsu o roli Web, 1180
tworzenie konta do przechowywania danych, 1190
tworzenie konta usug hosted service, 1194
tworzenie modelu danych opartego na tabeli, 1175
tworzenie projektw, 1175
wdraanie aplikacji, 1174, 1188
zakadanie konta, 1188
zalety stosowania, 1158
Azure SDK, 1160

B
BackColor, 828, 840
base, 122
Basic Unit Test, 401
baza danych, 67, 942, 1099
aktualizowanie schematu, 968
budowanie zwizkw tabel, 948
definiowanie tabel, 945
diagram, 947
funkcje definiowane przez uytkownika, 961
indeksy, 946
klucze obce, 946
kompilowanie, 968
LINQ, 994
acuch poczenia, 973
obiekty bazy danych, 970
odwzorowanie obiektowo-relacyjne, 993
ograniczenia, 946
procedury skadowane, 956
projekt, 961
Schema View, 967
skrypty SQL, 962
SQL, 951
SQL Server, 942
tabele, 942
tworzenie, 943
tworzenie projektu, 962
wdraanie, 968
wizanie danych, 974
widoki, 955
wyzwalacze, 960

1214

zwizki jeden do jednego, 950


zwizki tabel, 948
zwizki wiele do wielu, 950
zwizki zwrotne, 950
bezpieczestwo aplikacji XBAP, 926
bezporednie korzystanie z elementw XML, 164
BI, 1169
biblioteka dostpu do danych, 1100
biblioteka MSDN, 314
BigInteger, 42
Bin, 726
Binding, 881
Bindings, 607
BitmapSource, 891, 893
Blank Solution, 184, 1098
bdy, 475
bogate aplikacje internetowe, 904
bogate interakcje oparte na przegldarkach
w systemie Windows, 921
bogaty interfejs uytkownika, 61
Bookmark, 1149
Bookmarks, 247
Bookmarks Window, 247
bool, 130
Boolean, 130
Bottom, 833
break, 137, 138, 140
Break All, 485, 491
Break at Function, 483
Breakpoint, 478, 495, 562
Breakpoint Condition, 500, 501
Breakpoint Hit Count, 503
Breakpoint2, 562
Breakpoints, 480, 482, 484, 496
dodawanie etykiet punktw przerwania, 499
dostp do punktu przerwania, 498
Go To Source Code, 498
pasek narzdzi, 496, 497
przerywanie dziaania na podstawie warunkw, 500
ustawianie warunkw punktu przerwania, 500
zarzdzanie etykietami punktw, 499
zarzdzanie punktami przerwania, 496, 498
Bring to Front, 752, 846
bubbling event, 883
budowanie luno powizanych aplikacji sieciowych, 56
budowanie stylu CSS, 759
budowanie zwizkw tabel, 948
Build, 91
Build Configuration, 193
Build events, 207

Skorowidz

BuildDependencies, 562
BuildDependency, 562
BuildEvents, 562, 609
BuildingBlockGalleryContentControl, 1149
Business Intelligence, 1169
BusinessEntities, 1025, 1045, 1047
Button, 274, 792, 863
byte, 130
Byte, 130

C
C Runtime Library, 41
C#, 115
CA, 349
CAB, 540
Cached, 1152
CachedAttribute, 1151
CachedDataHostItem, 1153
CachedDataItem, 1153
CAL, 38
Calendar, 792
CalendarExtender, 918, 919
Call Hierarchy, 248
Call Stack, 476, 485, 519
CallBase(), 388
CancellationScope, 1089
Canvas, 696, 871
CascadingDropDown, 918
case, 137, 138
Case, 137, 138
Case Else, 138
CatalogZone, 779
Catch, 146, 147
CDbl, 132
CE, 71
CenterParent, 828
CenterScreen, 828
Cert2spc.exe, 349
Certificate Creation Tool, 349
certyfikaty Authenticode, 349
CGI Web Role, 1167
ChangePassword, 796
CharLeft, 600
CharRight, 600
Chart, 800, 801
CheckBox, 792
chmurki, 841
chmury obliczeniowe, 63, 1158
Choose Data Source, 909

Choose Location, 719


CInt, 132
class, 115, 121, 122, 126
Class, 115, 123
Class Designer, 32, 94, 293
asocjacja, 297
definiowanie metod, 298
definiowanie pl, 298
definiowanie zdarze, 298
dziedziczenie, 296
Inheritance, 296, 297
interfejs, 296
refaktoryzacja, 444
tworzenie diagramu klasy, 293
tworzenie klas, 293
View Class Diagram, 294
wywietlanie skadowych, 294
Class Details, 298, 299
Class Name, 244
Class View, 219, 448
Class View New Folder, 220
Class View Settings, 220
filtrowanie, 220
panel obiektw, 221
panel skadowych, 222
pasek narzdzi, 220
pasek wyszukiwania, 220
przyciski paska narzdzi, 220
View Class Diagram, 220
ClassCleanup, 415, 418
ClassInitialize, 415, 418
ClassName(), 388
Clear All DataTips, 483, 486
Clear All DataTips Pinned to, 486
ClearBookmarks, 594
ClearCollection<T>, 1087
ClickOnce, 208, 534, 929
lokalizacja katalogu instalacji, 538
lokalizacja katalogu publikacji, 538
publikowanie projektw, 536
Publish Wizard, 536, 538
sposoby wdraania aplikacji, 535
tworzenie pakietu instalacyjnego, 536
wdraanie za pomoc pyty CD, 535
wdraanie za pomoc serwera WWW, 535
waciwoci publikacji pakietu, 537
wykonywanie za pomoc serwera WWW, 535
Client Access License, 38
Close, 574
cloud computing, 63

1215

Skorowidz

Cloud Service, 64
CLR, 40
clrversion, 335
CLS, 40
CMMI, 37
Code Activity, 1068, 1069, 1075
Code Definition, 262, 263
Code DOM, 682
Code Snippets Manager, 389
CodeActivity, 1063, 1075, 1077
CodeActivityContext, 1076
CodeClass, 569
CodeElement, 569
CodeElement.Kind, 569
CodeElements, 569, 570
CodeModel, 569
Collapse to Definitions, 369
CollapseAll, 621
CollapsiblePanelExtender, 917
Collection, 1086
CollectionAssert, 421
CollectionBase, 143, 144
Column.Width, 889
COM, 640
COM Components, 831
ComboBoxContentControl, 1149
Command, 562, 605
Bindings, 607
skadowe, 605
Command Window, 578, 583
uruchamianie makra, 632
CommandBar, 588, 589, 590, 591
skadowe, 590
CommandBarControl, 589
CommandBars, 591
Commands, 562, 605, 651
AddNamedCommand, 607
Raise, 606
Commands2, 562, 651
CommandWindow, 562, 578, 583
Common Language Runtime, 40
Common Language Specification, 40
Common Type System, 40
CompareValidator, 794
CompensableActivity, 1087, 1088, 1089
Compensate, 1089
CompensationHandler, 1088
Compile options, 207
Compiler conditions, 207
Complete Word, 375

1216

Component Class, 290


Component Designer, 744
component tray, 830
CompositionContainer, 691
Configuration, 562
Configure Data Synchronization, 71
Confirm, 1089
ConfirmButtonExtender, 918, 921
Connect, 640, 645, 659
Console.ReadLine, 378
Console.WriteLine, 242, 244
const, 133
Const, 133
consume first, 377
ContainerControl, 835
ContentPlaceHolder, 766, 767, 768
ContentResult, 808
Context, 1017
ContextParams, 678
ContextToken, 231
Continue, 485, 487, 493
ContosoCSR, 539
Control, 290, 830, 863
Control Flow, 1083
ControlTemplate, 879
ControlToValidate, 793
Convert, 133
Copy, 94
Copy to Output Directory, 352
Copy Web Project, 216
Copy Web Site Tool, 549, 554
poczenie z witryn, 555
Remote Site, 556
CorrelationScope, 1090
Create a New Binding, 1054
Create a New Service Endpoint, 1051
Create GUID, 661
Create New SQL Server Database, 943
Create New Test List, 436
Create Schema, 265
Create Transparent Windows Form, 382
Create Unit Test Project, 809
Create Unit Tests, 402, 403, 404, 429
Create User Task, 396
CreateEditPoint, 599
CreateToolWindow2, 659, 660, 661
CreateUserWizard, 796
CRM, 1013
CRT, 41

Skorowidz

CSS, 270, 757


Apply Styles, 763
arkusze stylw, 756
budowanie stylu, 759
definiowanie stylw, 757
dodawanie zasady stylu, 759
hierarchia stylw, 757
Manage Styles, 760
modyfikacja stylw, 764
narzdzia do tworzenia stylw, 756
stosowanie stylw, 763
style elementw, 755
style wewntrzwierszowe, 755
style z poziomu strony, 755
tworzenie arkusza stylw, 758
waciwoci stylu, 764
zarzdzanie stylami, 760
zasady stylw, 755
CSS Outline, 758
CSS Properties, 287, 764
CssClass, 755, 763
CTS, 40
Current Page, 761
CurrentSettings.vssettings, 82
Custom Actions, 546
custom control, 853
Customer Feedback Options, 324
Customize, 95
Customize the Start Page, 84
CustomValidator, 794
Cut, 94
Cut Line, 192
cykl ycia dodatkw, 645
cykl ycia formularza Windows, 829
cykl ycia strony ASP.NET, 741, 742
czcionki, 110
czci, 690, 695
czonkostwo ASP.NET, 795
czynnoci procesw, 72, 1082
AddToCollection<T>, 1087
Assign, 1085
CancellationScope, 1089
ClearCollection<T>, 1087
CompensableActivity, 1089
Compensate, 1089
Confirm, 1089
CorrelationScope, 1090
Delay, 1085
DoWhile, 1084
ExistsInCollection<T>, 1087

Flowchart, 1095, 1114


FlowDecision, 1095
FlowSwitch<T>, 1095
ForEach, 1084
If, 1084
InitializeCorrelation, 1090
InvokeMethod, 1085
Parallel, 1084
ParallelForEach, 1084
Persist, 1085
Pick, 1084
Receive, 1090, 1115
ReceiveAndSendReply, 1090
RemoveFromCollection<T>, 1087
Rethrow, 1086
Send, 1090
SendAndReceiveReply, 1090
Sequence, 1084
Switch, 1084
TerminateWorkflow, 1085
Throw, 1086
TransactedReceiveScope, 1090
TransactionScope, 1089
TryCatch, 1086
While, 1084
WriteLine, 1085

D
DAC, 969
dane, 67
dane hierarchiczne, 849
dane tabelaryczne, 852
dane XML, 164, 165
Data, 92
Data Source Configuration Wizard, 976, 977
Data Sources, 978
Data Tier Applications, 969
Data/New Query, 952
Database, 961
Database Diagram Designer, 947, 949
Database Unit Test, 401
DataContext, 882
DataGridView, 852, 978, 980, 990
dostosowanie edycji komrek, 983
edycja komrek, 983
modyfikacja zapytania dla rda danych, 985
typy komrek, 852
wizanie danych, 980, 983
zmiana typu kolumny, 984
rda danych, 852
1217

Skorowidz

DataGridViewButtonColumn, 983
DataGridViewColumn, 983
DataGridViewComboBoxColumn, 983, 984
DataList, 800, 808, 990
DataPager, 800
DataServiceContext, 1177
DataSet, 161, 1151
DataSet Designer, 981, 982, 984
DataSource, 415, 423, 431
DataTable, 161
DataTemplate, 893
DataTip, 508, 509
DatePickerContentControl, 1149
DateTimePicker, 980, 983
Debug, 91, 470, 482
tryb diagnostyczny, 483
tryb spoczynku, 482
DEBUG, 206
Debug Location, 517
Debug Source Files, 192
Debug with Mixed, 528
debuger, 207, 477, 481
aplikacje sieciowe, 489
Break All, 491
Breakpoints, 496
Continue, 493
Detach All, 493
doczanie do dziaajcego procesu, 477
kontynuowanie wykonywania kodu, 493
koczenie sesji diagnostycznej, 493
menu Debug w czasie sesji diagnostycznej, 484
menu Debug w stanie spoczynku, 482
obiektowy model automatyzacji, 608
opcje diagnozowania, 487
pasek narzdzi Debug, 486
podgldanie danych, 505
podgldanie zmiennych, 505
podpowiedzi DataTip, 508
przechodzenie przez kod, 491
punkt ledzenia, 503
rozpoczynanie sesji diagnostycznej, 489, 491
Run To Cursor, 490
sesja diagnostyczna, 483
Start Debugging, 491
Step Into, 489, 491
Step Out, 493
Step Over, 489, 491
Terminate All, 493
uruchamianie sesji diagnostycznych, 482
ustawianie punktw przerwania, 494

1218

ustawianie punktw przerwania funkcji, 495


wartoci zmiennych, 505
warunki wstrzymania wykonywania kodu, 494
wkraczanie w kod, 488, 489
zarzdzanie warunkami wstrzymania dziaania
programu, 496
zmie i kontynuuj, 511
Debugger, 260, 562, 608
Debugger.Break, 260
Debugger2, 562
Debugger3, 562
Debugger4, 562
Debugger5, 562
DebuggerEvents, 562
decimal, 130
Decimal, 130
default, 137
Default namespace, 206
Default.aspx, 716, 908, 931, 1170
default.htm, 931
default.html, 931
definiowanie
aplikacje WinForm, 47
atrybuty arkuszy stylw, 271
atrybuty rodowiska ASP.NET, 428
interfejsy, 124
klasy, 115
kolekcje, 155
metody, 117, 298
plik VSContent, 345, 346
pola, 298
procedury obsugi zdarzenia, 829
referencje sieciowe, 1033
relacje midzy klasami, 296
stae, 133
struktury, 126
tabele, 945
ukad strony Web Part, 780
waciwoci, 298
zdarzenia, 148, 298
deklaracja
przestrzenie nazw, 127
skrki, 772
typy anonimowe, 156
zmienne, 130
dekoracje, 693, 697
projekt, 702
Delay, 1085
Delay signing, 209
delegaty, 147

Skorowidz

DELETE, 955
Delete All Breakpoints, 483
DeleteQuery, 992
dependency injection, 689
Deploy SQL, 552
DeploymentItem, 416, 431
deserializacja, 1153
Design, 55
design schema, 68
Detach All, 485, 493
DetailsView, 800, 989
development fabric, 1159
Development Fabric, 64, 65, 1173
Development Storage Service, 1173
Development Tools Environment, 561
DevFabric, 1159, 1161, 1170
diagnozowanie, 258, 468, 481
analiza kodu, 470
aplikacje sieciowe, 470
aplikacje XBAP, 925
Breakpoints, 480
Call Stack, 476
diagnozowanie bdw, 475
diagnozowanie innych procesw, 476
etapy, 469
Exception Assistant, 476
Exceptions, 474
Immediate, 476
kodowanie, 469
kompilacja, 469
kontynuowanie diagnozowania, 478
kroczenie przez kod, 480
Locals, 476
makra, 623
podgldanie zmiennych, 505
procedury skadowane, 958
przegld kodu, 470
przerywanie w momencie wystpienia bdu, 474
rozwizywanie problemw, 470
Run To Cursor, 472
samodzielne sprawdzanie, 470
scenariusz, 469
Show Next Statement, 478
skrypty dziaajce po stronie klienta, 526
Start Without Debugging, 472
Step Into, 480
stos wywoa, 476
testy jednostek, 470
Thrown, 475
uruchamianie aplikacji w trybie diagnozowania, 472

ustawianie punktw przerwania, 478


wartoci zmiennych, 476
wczanie diagnozowania stron internetowych, 470
zarzdzanie zbiorem wyjtkw, 474
zdalne diagnozowanie, 513
diagnozowanie aplikacji rwnolegych, 520
Parallel Stacks, 521
Parallel Tasks, 525
diagnozowanie aplikacji wielowtkowych, 515
Call Stack, 519
Debug Location, 517
oznaczanie wtkw, 515
przerywanie dziaania kodu po wejciu
do konkretnego wtku, 519
Show Threads in Source, 516
sprawdzanie poszczeglnych wtkw, 518
Threads, 517
wizualizacja wtkw, 515
wykrywanie wtkw, 515
zarzdzanie diagnozowanymi procesami
i wtkami, 517
diagnozowanie informacji o awarii, 527
Cache Symbols in This Directory, 530
Debug with Mixed, 528, 530
diagnozowanie z wykorzystaniem pliku zrzutu, 528
pliki symboli, 529
pliki zrzutw, 527
Save Dump As, 527
Set Symbol Paths, 528
tworzenie zrzutw informacji diagnostycznych, 527
diagnozowanie usug WCF, 514
doczanie debugera do usug WCF, 515
wkraczanie w kod usugi WCF, 514
diagram bazy danych, 947
Diagram Designer, 950
diagram klasy, 293
dodawanie elementw, 294
wywietlanie skadowych, 294
DialogResult, 681
Dim, 131
direct event, 883
DirectoryCatalog, 691
DirectoryImageList, 896
Disable All Breakpoints, 483, 486
Disassembly, 485
DISCO, 1016
Disco.exe, 1030
Discovery Document, 1016
DispatcherObject, 863
DisplayAfter, 913

1219

Skorowidz

DivideByZeroException, 146
dowhile, 140
DoWhile, 140
Dock, 835
DockPanel, 871, 872
Document, 51, 562, 592, 594
skadowe, 592
Document Outline, 232, 371, 372
Collapse All, 234
Expand All, 234
modyfikacja elementw, 233
Move Down in Container, 234
Move into Next Container, 234
Move Out of Current Container, 234
Move Up in Container, 234
pasek narzdzi, 234
Type Name Display Style, 234
Document Type Definition, 264
DocumentReader, 862
Documents, 562, 592
dodatki, 51, 636
Add-in Manager, 653
aplikacja nadrzdna, 638
COM, 640
Connect, 640, 645, 659
CreateToolWindow2, 659
cykl ycia, 645
DTE.AddIns, 653
IDTCommandTarget, 645
IDTExtensibility2, 645, 646
IDTToolsOptionsPage, 662, 663
jzyk, 638
kod wygenerowany przez kreator dodatkw, 640
kreator dodatkw, 637
meneder dodatkw, 653
obiektowy model automatyzacji, 653
obsuga zdarze, 645
okno About, 639
OnAddInsUpdate, 647
OnBeginShutdown, 647
OnConnection, 648
OnDisconnection, 650
OnStartupComplete, 651
opcje, 639
opisywanie dodatkw, 639
paleta do wybierania kolorw, 654
parametry dodatku, 637
programowe zarzdzanie dodatkami, 653
projekt, 637
przechwytywanie zdarze kontrolki
uytkownika, 661

1220

reagowanie na polecenia, 651


rejestrowanie strony Options, 665
sekwencja zdarze w czasie usuwania, 646
sekwencja zdarze w czasie wczytywania, 646
strona Options, 662
struktura dodatkw, 645
tworzenie interfejsu uytkownika, 662
udostpnianie ustawie dodatku, 662
wywietlanie kontrolki uytkownika, 660
wywietlanie okna narzdzi, 660
zarzdzanie dodatkami, 653
dodatki dla pakietu Office, 1136
modyfikacja wstki, 1137
dodawanie
baza danych, 944
dane do pamici podrcznej, 1151
elementy do diagramu klasy, 294
elementy do wstki, 1139
fragmenty kodu do rodowiska Visual Studio, 388
klawisze skrtu, 607
kontrolki, 273, 282, 284
kontrolki do strony internetowej, 738
kontrolki uytkownika do strony, 803
logika biznesowa do wygenerowanego kodu, 158
materiay do lokalnego systemu pomocy, 313
metody do istniejcych klas, 157
projekt do rozwizania, 194
referencje, 730
strony internetowe do witryny, 737
tekst, 599
zakadki, 247
zalenoci, 689
dokowanie, 106, 108, 834
dokumentacja rodowiska Visual Studio, 314
dokumenty, 51, 592
CSS, 270
DTD, 264
HTML, 288
obiektowy model automatyzacji, 592
WSDL, 1029
XDR, 264
XSD, 265
XSLT, 269
dokumenty tekstowe, 593
dodawanie tekstu, 599
modyfikacja, 595, 600
punkt edycji, 599
wstawianie komentarzy, 601
zmiana pozycji obiektu EditPoint, 600

Skorowidz

dokumenty XML, 165, 264


edycja, 264
generowanie szablonw, 265
uruchamianie szablonu XSLT, 269
doczanie debugera do usug WCF, 515
dopasowywanie nawiasw, 391
dopasowywanie strukturalne, 690
dopracowywanie polece SQL, 953
dostawcy obrazw dla kontrolek, 850
dostawcy rozszerze, 837
dostp do danych, 67, 160, 909
dostp do kodu projektu, 569
dostp do okien, 572
dostp do pamici podrcznej danych, 1152
dostp do paneli okna tekstu, 577
dostpno, 733
dostpno skadowych, 118
dostosowywanie
czcionki, 110
edytory, 100
mechanizm IntelliSense, 392
odwzorowanie rda danych, 980
paski narzdzi, 95
wstka, 53
wygld kontrolek WPF, 878
double, 130, 132, 133
Double, 130
DoWhile, 1083, 1084
DropDownList, 792
DropDownListContentControl, 1149
drukowanie kodu, 262
czcionki, 262
kolory, 262
Print, 262
DTD, 265
DTE, 561, 562, 564
ActiveWindow, 573
AddIns, 653
Commands, 605
Debugger, 608
Documents, 592
Events, 608
ExecuteCommand, 606
MainWindow, 572
ToolWindows, 573, 660
Windows, 573
DTE2, 561, 564
ActiveDocument, 564
ActiveSolutionProjects, 564
ActiveWindow, 564

CommandBars, 564
Commands, 564
Debugger, 564
Documents, 564
Events, 564
ExecuteCommand, 565
LaunchWizard, 565
MainWindow, 565
Quit, 565
Solution, 564
StatusBar, 565
ToolWindows, 565
WindowConfigurations, 565
DTEEvents, 628
OnMacrosRuntimeReset, 628
OnStartupComplete, 628
duck typing, 690
dynamic, 167
Dynamic Data Entities Web Site, 717
Dynamic Data Field, 727
Dynamic Data Linq to SQL, 717
Dynamic Data Linq to SQL Web Site, 717
DynamicObject, 169
TryCreateInstance, 169
TryGetMember, 169
TryInvokeMember, 169
TrySetMember, 169
dynamiczne aplikacje, 688
dynamiczne obiekty, 167
dynamiczne typy danych, 167
dziedziczenie, 121, 296
przesanianie operacji, 122
skadowe wirtualne, 122
wywoanie metody z klasy bazowej, 122
dzielenie podzespow na wiele plikw, 164

E
ECMA, 41
ECMAScript, 905
Edit, 89
Edit and Continue, 511
Edit breakpoint labels, 499
Edit DataSet with Designer, 984
Editor Classifier, 695
Editor Margin, 696
Editor Text Adornment, 697
Editor Viewport Adornment, 698
EditorClassifier1, 695
EditorClassifier1Format, 695

1221

Skorowidz

EditorMargin1, 696
EditorZone, 779, 786
EditPoint, 562, 596, 597, 599, 600, 601
InsertFromFile, 600
EditPoint2, 597
skadowe, 597
EDM, 68, 69, 977, 1001
edycja
arkusze stylw XSLT, 269
dokumenty XML, 264
model EDM, 1003
edycje rodowiska Visual Studio 2010, 24, 31
edytor arkuszy CSS, 270
definiowanie atrybutw arkuszy stylw, 271
dodawanie zasad stylw, 271
edytor File System, 542
edytor formularzy, 830, 831
paleta komponentw, 831
edytor HTML Source Editor, 285
opcje formatowania kodu, 286
tabele HTML, 286
edytor manifestw, 352
edytor Registry, 543
edytor rodowiska Visual Studio, 692
dekoracje, 693
formatowanie, 692
IntelliSense, 693
marginesy, 692
mechanizmy obsugi myszy, 693
mechanizmy obsugi upuszczania, 693
opcje, 693
rodzaje zawartoci, 692
suwaki, 692
tagi, 693
typy klasyfikacyjne, 692
edytor XML, 264
edytory kodu, 98
Code Definition, 262
edytor jzyka C#, 98
edytor jzyka SQL, 956, 957
edytor jzyka Visual Basic, 99
inteligentne znaczniki, 373
edytory tekstu, 98, 236
aktywne odnoniki, 365
diagnozowanie, 258
dostosowywanie, 100
drukowanie kodu, 262
elementy okna, 243
IntelliSense, 363, 375

1222

kolorowanie skadni, 365


konfiguracja punktw przerwania, 259
kontrola wykonywania kodu, 260
margines wyboru, 245
margines ze wskazwkami, 244
narzdzia pomocnicze, 364
nawigowanie po kodzie, 246
numerowanie wierszy, 246
obszar wirtualny, 237
Options, 238
otwieranie edytora, 241
panel kodu, 244
pisanie kodu, 240, 241
przeszukiwanie dokumentw, 249
schematy kodu, 367
ledzenie zmian, 364
ustawianie punktw przerwania, 258
wirtualne odstpy, 239
wskazwki dotyczce problemw, 364
wyszukiwanie przyrostowe, 257
zakadki, 247
zawijanie wierszy, 237, 239
zaznaczanie tekstu, 237
EF, 1001
egzemplarz klasy, 131
eksplorator szablonw, 266
eksportowanie
modu makra, 618
szablony, 333
ustawienia, 82
ElementHost, 1143
ElementHost.Child, 1143
elementy projektw, 203
elementy rozwizania, 188
elementy XML, 164
Else, 136
Empty Web Site, 717
EmptyResult, 808
Enable Event Handling Code, 629
Enable Virtual Space, 238
Enable Windows Azure Tools, 1161
EnableClientScript, 793
Encapsulate Field, 441, 465
End If, 136
End Sub, 117
Enforce Foreign Key Constraint, 950
Entity, 68
Entity Data Model, 68, 69
Entity Data Model Designer, 1002

Skorowidz

Entity Framework, 1001


aktualizacja danych w modelu EDM, 1007
graficzny widok modelu pojciowego, 1003
kierowanie zapyta do modelu EDM, 1006
konfiguracja modelu EDM, 1002
Mapping Details, 1005
Model Browser, 1004
model EDM, 1001
model fizyczny, 1004
model pojciowy, 1003
modyfikacja modelu EDM, 1002
odwzorowanie midzy modelami, 1005
odwzorowanie obiektw na niestandardowe
funkcje, 1005
okno projektowe modelu EDM, 1003
projekt, 1001
tabele, 1001
zapytania, 1007
zapytania LINQ, 1006
EntityDataSource, 800
EntityServices, 1025, 1045
enum, 120
Enum, 121
EnvDTE, 561
EnvDTE.IDTWizard, 677
EnvDTE100, 561
EnvDTE80, 561
EnvDTE90, 561
EnvDTE90a, 561
EnvironmentEvents, 623, 625, 627
Error Handling, 1086
Error List, 623
etapy diagnozowania, 469
etykiety, 274
etykiety punktw przerwania, 499
event, 147
EventHandler, 147, 149
Events, 562, 608
Excel, 1147
Excel 2007 Workbook, 1136, 1147
Excel 2010, 51
Exception Assistant, 476
ExceptionGroups, 562
Exceptions, 474, 483, 486
Execute, 681, 1077
ExecuteCommand, 606
ExecuteOption, 652
Existing Style Sheet, 761
ExistsInCollection<T>, 1087
ExpandAll, 621

ExpandCollapseNodes, 621
ExpectedException, 416, 422
Explicit naming, 373
Export DataTips, 483, 486
Export File, 618
Expression Blend, 40, 48, 61, 62
Expression Design, 40
Expression Encoder, 40
Expression Media, 40
Expression Studio, 40
Expression Web, 40
ext_cm_AfterStartup, 648
ext_cm_CommandLine, 648
ext_cm_External, 648
ext_cm_Solution, 648
ext_cm_Startup, 648
ext_cm_UISetup, 648
ext_ConnectMode, 648
ext_DisconnectMode, 650
ext_dm_HostShutdown, 650
ext_dm_SolutionClosed, 650
ext_dm_UISetupComplete, 650
ext_dm_UserClosed, 650
extender providers, 837
Extender Wizard, 920
Extensible Application Markup Language, 53
Extensible Markup Language, 1016
Extension Manager, 341, 699
tryb dziaania, 700
extension method, 157
ExtensionAttribute, 157
Extract Interface, 441, 459
wyodrbnianie interfejsw, 459
Extract Method, 441, 451

F
F#, 114
Fail, 420
false, 138
FastCGI, 1167
File, 85, 89
File Breakpoint, 501, 502
File System, 542
File Transfer Protocol, 722
File Types, 544
FileResult, 808
FileUpload, 792
FilteredTextBoxExtender, 918
filtry ISAPI, 721

1223

Skorowidz

filtry punktw przerwania, 502


Finally, 146, 147
Find, 562
Find and Replace, 249, 253
Choose Search Folders, 253
Find In Files, 253
Find Results, 254
Find Symbol, 256
Find Symbol Results, 256
podmienianie tekstu w plikach, 253, 255
Replace in Files, 255
tworzenie grup przeszukiwanych katalogw, 253
wyniki wyszukiwania, 254
wyszukiwanie symboli, 256
wyszukiwanie tekstu w plikach, 253
Find Results, 254
Find Symbol, 249
FK, 950
float, 130, 132
Floating, 108
Flowchart, 73, 1095, 1113, 1114
FlowDecision, 1095
FlowDocumentReader, 862
FlowLayoutPanel, 836, 837
FlowSwitch<T>, 1095
FolderBrowserDialog, 895
Font, 840
for, 139
ForEach, 139
ForNext, 139
fora spoecznoci MSDN, 315
dyskusja, 319
ikony wtkw, 322
nawigowanie po forach i wtkach, 320
otwieranie nowego wtku, 318
powiadomienia dotyczce wasnych wtkw, 321
Windows Live, 318
wyszukiwanie odpowiedzi na pytania, 316
foreach, 139
ForEach, 1083, 1084
ForeColor, 828, 840
foreign key, 950
Foreign Key Relationship, 948, 950
Form, 823, 835
BackgroundImage, 828
formalny opis usugi sieciowej, 1029
Format, 92
formatowanie kodu, 101
Forms Designer, 830

1224

FormStartPositon, 827
formularz startowy, 826
formularze sieciowe, 282, 737, 808, 809
Apply Styles, 287
dodawanie kontrolek, 284
Manage Styles, 287
modyfikacja znacznikw, 285
projekt, 283
projektowanie aplikacji, 283
rozmieszczanie kontrolek, 284
sposb wywietlania, 741
sprawdzanie poprawnoci kodu, 288
tworzenie, 285
wygld strony w przegldarce, 288
zarzdzanie stylami, 287
zgodno ze standardami, 289
formularze Windows, 44, 46, 62, 271, 274, 822
BackColor, 828
cykl ycia, 829
dodawanie kontrolek, 273, 274, 830
dostosowywanie wygldu formularza, 273
dziedziczenie wygldu innego formularza, 827
ForeColor, 828
Forms Designer, 830
formularz startowy, 826
gboko kontrolek, 846
klasa formularza, 826
kolejno przechodzenia po kontrolkach, 840
kolory, 828
komponenty, 830
kontenery, 836
kontrola automatycznego skalowania, 835
kontrolki, 830
kontrolki kontenerowe, 835
kultura, 823
lokalizacja, 823
menu, 842
okno projektowe, 373
Opacity, 828
pasek narzdzi, 844
pasek statusu, 847
pisanie kodu, 277
pooenie pocztkowe, 827
pozycjonowanie kontrolek, 831
projekt, 826
projektowanie, 822
przezroczysto, 828
rozmieszczanie kontrolek, 275
standardy UI, 824
StartPosition, 827

Skorowidz

tworzenie, 826
tworzenie procedury obsugi zdarze, 829
ukad kontrolek, 831
uytkownik kocowy, 823
wizanie danych, 982
waciwoci, 827
wygld, 828
wywietlanie danych, 849
zdarzenia, 827, 828, 829
formularze WinForm, 44
formularze WPF, 48, 49, 102, 281, 310
dodawanie kontrolek, 282
projektowanie, 62
FormView, 800, 989
FPSE, 553
fragmenty kodu, 380
Code Snippets Manager, 389
dodawanie fragmentw kodu do rodowiska
Visual Studio, 388
format XML fragmentw kodu, 385
funkcje, 388
okno narzdzi, 390
otaczanie kodu, 383
Surround With, 383
tworzenie wasnych fragmentw kodu, 385
udostpnianie przez sie, 390
wzy XML, 386
wstawianie, 381
FrameworkElement, 882
FrontPage Server Extensions, 553
FTP, 722
Func, 175
Function, 117, 134, 162
funkcje anonimowe, 162
funkcje definiowane przez uytkownika, 961
funkcje pakietu Office, 1131
funkcje wewntrzwierszowe, 163

G
GAC, 729
galeria rodowiska Visual Studio, 331
GDI+, 176
Generate From Usage, 373, 374
GenerateSwitchCases(), 388
Generic Handler, 727
generowanie
kod, 158
schematy kodu, 367
szablony XML, 265

szkielety metod, 457


testy jednostek ASP.NET, 429
testy na podstawie istniejcego kodu, 402
zwizane kontrolki Windows Forms, 976
GetClassificationSpans, 695
GetElement, 169
Global.asax, 716, 744, 819
gboko kontrolek na formularzu, 846
gwn przestrze nazw, 127
graficzne okna projektowe, 102
graficzne wyrniki tekstu, 697
Grid, 702, 871, 874, 885, 888
okna dialogowe, 875
Grid.ColumnDefinitions, 874
GridSize, 275
GridView, 801, 808, 911, 989, 990
AutoGenerateDeleteButton, 992
AutoGenerateEditButton, 992
uaktualnianie danych, 992
rdo danych, 990
GUID, 188, 335, 661

H
HACK, 394
Hashtable, 143, 170
Help, 93, 312
Help Library Manager, 312
hermetyzacja pl, 465
Hit Count, 502
HorizontalAlignment, 886
host, 1042, 1049
host procesu, 1064
hosting, 1158
hosting usug WCF, 1058
hosting samodzielny, 1058
IIS, 1059
usugi systemu Windows, 1059
WAS, 1059
HostType, 416, 428
HoverMenuExtender, 918
HTML Designer, 751
HTML Page, 728
HTML Source Editor, 285
HTMLWindow, 562
HTMLWindow3, 562
HTTP, 74, 75, 1016, 1031
Hypertext Transfer Protocol, 1016

1225

Skorowidz

I
IClassifier, 695
IComponent, 289
Icon, 206
Icons Gallery Add-In, 1140
ICustomerProfile, 1045
IDE, 88, 969
IDE Macros, 616
identyfikator GUID, 661
identyfikator skrki, 775
IDictionary, 1074, 1081
IDTCommandTarget, 645
IDTCommandTarget.Exec, 651
IDTExtensibility2, 636, 645, 646
OnAddInsUpdate, 646, 647
OnBeginShutdown, 646, 647
OnConnection, 646, 648
OnDisconnection, 646, 650
OnStartupComplete, 646, 651
IDTToolsOptionsPage, 662, 683
skadowe, 663
IDTWizard, 677, 679, 680
IEnumerable, 161
IEnumerable<T>, 174
IEnumerator<T>, 174
if, 136
IfThenElse, 136
Ignore, 416
IIS, 718, 720, 1059
ikona podzespou, 206
ikony punktw przerwania, 496
Image, 705, 792, 888
ImageList, 47, 850
imageMso, 1140
Images Collection Editor, 851
Immediate, 476, 482, 485
implementacja interfejsu, 125, 297
inteligentne znaczniki, 374
Implements, 125
Implicit naming, 373
implicit typing, 151
Import and Export Settings, 80, 81, 82, 303
wybr ustawie, 81
Import DataTips, 483, 486
importowanie przestrzeni nazw, 128
importowanie ustawie, 82
imports, 128
in, 174
Inconclusive, 420
Incremental Search, 257

1226

indeksy, 946
Index Columns, 946
Indexes/Keys, 946
informacje o parametrach, 379
Inherited Form, 827
Inherits, 121
inicjator obiektw, 153
inicjowanie kolekcji, 155
inicjowanie obiektw zdarze, 628
Init, 743
InitComplete, 743
InitializeCorrelation, 1090
Inline Function, 961
INSERT, 954, 955
Insert Breakpoint, 478, 495
Insert Snippet, 381
Insert Tracepoint, 504
instalacja
aplikacje XBAP, 929
ClickOnce, 208
pakiet SDK, 349
szablony Visual Studio, 331, 339
udostpniane zasoby, 330
usugi w chmurze technologii Azure, 66
usugi WCF, 1058
instalacja rodowiska Visual Studio 2010, 78
wybr jzyka, 78
instalator systemu Windows, 535, 539
Custom Actions, 546
doczanie plikw do pakietu instalacyjnego, 541
dostosowanie wygldu kreatora instalacji, 545
File System, 542
File Types, 544
Launch Conditions, 546
powizania typw plikw, 544
projekt, 540
publikowanie projektw, 539
Registry, 543
Setup Wizard, 540
User Interface, 545
warunki wstpne, 546
wpisy w rejestrze, 543
wyjtkowe wymagania zwizane z instalacj, 546
instrukcje SLQ, 909
instrukcje Using, 380
int, 130
Integer, 130
inteligentne operacje, 372
inteligentne znaczniki, 372, 373
Generate From Usage, 373, 374
generowanie, 373

Skorowidz

implementacja interfejsu, 374


refaktoryzacja, 442
IntelliSense, 285, 299, 363, 372, 375, 693
Add New Line on Enter at End of Fully Typed
Word, 393
Committed by Pressing the Space Bar, 393
Committed by Typing the Following
Characters, 393
Complete Word, 375
dopasowywanie nawiasw, 391
dostosowywanie mechanizmu, 392
fragmenty kodu, 380
kod szablonowy, 380
List Members, 378
lista uzupeniania, 375
okno z informacjami o parametrach, 379
okno z informacjami podrcznymi, 377
okno z list skadowych, 378
otaczajce fragmenty kodu, 383
otaczanie kodu fragmentami, 383
Parameter Info, 379
Place Code Snippets in Completion Lists, 393
Place Keywords in Completion Lists, 393
porzdkowanie instrukcji Using, 380
Pre-select Most Recently Used Members, 393
Quick Info, 377
Remove and Sort, 380
Remove Unused Usings, 380
Show Completion List After a Character
Is Typed, 393
Sort Usings, 380
tryb pierwszestwa tekstu, 377
tryb standardowy, 377
uzupenianie sw, 375
interakcja z oknami, 573
interface, 125
Interface, 125
interfejs uytkownika, 746, 822
kultura, 823
lokalizacja, 823
niepisane standardy, 824
planowanie, 825
pocztkowy plan ukadu, 825
projektowanie, 822
standardy, 824
uytkownik kocowy, 823
wstpny projekt, 825
interfejsy, 124, 296
definiowanie, 125
implementacja, 125, 297
refaktoryzacja, 459

Internal, 119
InternalsVisibleToAttribute, 164
InvokeMethod, 1085
IronPython, 171
IronRuby, 171
Is, 135
ISAPI, 721
IsCached(), 1152
IService1.cs, 1044
IsFalse, 420
IsInstanceOfType, 420
IsNot, 135
IsNotInstanceOfType, 420
IsNotNull, 420
IsNull, 420
IsTrue, 420
Item Collection Editor, 848
itemname, 335
iteratory, 139

J
JavaScript, 59, 526, 793, 905
jednostki eksportowane, 690
jzyk programowania, 40, 114
ASP, 165
CSS, 757
F#, 114
JavaScript, 59
jzyk skryptowy, 41
T-SQL, 956
UML, 297
VBA, 1130
WSDL, 1012, 1029
XAML, 44, 48, 53, 61, 863
XHTML, 55
JOIN, 954
jQuery, 53, 716
JScript 8.0, 41
JScript File, 728
JsonResult, 808
Just-In-Time, 487

K
kanay RSS, 306, 308
kaskadowe arkusze stylw, 270
katalog, 691
katalog folderw, 691
katalog podzespow, 691
katalog typw, 691

1227

Skorowidz

katalogi ASP.NET, 726


katalogi projektu, 203
katalogi rozwizania, 190
katalogi zakadek, 248
Key, 156
kierowanie zapyta do modelu EDM, 1006
klasy, 115
Action, 1154
Activity, 1077
Application, 863
Array, 142
ArrayList, 143
asocjacja, 297
AssemblyCatalog, 691
Assert, 420
atrybuty, 145
Binding, 881
BitmapSource, 891
CachedDataHostItem, 1153
CachedDataItem, 1153
CodeActivity, 1063, 1075, 1077
CollectionAssert, 421
CollectionBase, 143, 144
Connect, 645, 659
ContainerControl, 835
Control, 290, 830, 863
ControlTemplate, 879
Convert, 133
DataContext, 882
DataGridViewColumn, 983
DataServiceContext, 1177
DataTemplate, 893
Debugger, 260
definiowanie, 115
definiowanie relacji midzy klasami, 296
diagram, 293
DirectoryCatalog, 691
DispatcherObject, 863
DocumentReader, 862
dostpno skadowych, 118
DTEEvents, 628
DynamicObject, 169
dziedziczenie, 121, 296
EventHandler, 149
FlowDocumentReader, 862
FlowLayoutPanel, 836, 837
FolderBrowserDialog, 895
Form, 823
implementacja interfejsu, 125
interfejsy, 296

1228

klasy anonimowe, 156


klasy bazowe, 121
klasy czciowe, 158, 738
klasy kolekcji, 143
klasy LINQ, 1000
klasy LINQ to SQL, 996
klasy oglne, 174
klasy statyczne, 120
konstruktory, 118, 154
kontrola dostpu do danych, 116
MessageMapper, 258
metody, 117
NativeActivity, 1063, 1077
ObjectQuery, 1007
Panel, 836
pola, 115
poziom dostpu do klasy, 118
przecianie skadowych, 123
przesanianie operacji, 122
ServerDocument, 1152, 1153
skadowe statyczne, 120
skadowe wirtualne, 122
SmartTag, 1153
SplitContainer, 837
StringAssert, 422
Style, 878
TableLayoutPanel, 836
TableServiceContext, 1177
TestContext, 413
ToolStrip, 844
ToolStripContainer, 838
ToolStripItem, 841, 844
ToolTip, 841
Tuple, 144
tworzenie, 293
TypeCatalog, 691
ukrywanie skadowych, 123
UrlRoutingModule, 807
Visual, 863, 879
WebService, 1027
WebServiceAttribute, 1027
WizardDialog, 681
waciwoci, 115
WorkflowApplication, 1074
WorkflowInvoker, 1074
WorkflowServiceHost, 1075
wywietlanie skadowych, 294
klasy atrybutw testw, 415
klasy testw, 400, 406
klawisze skrtu, 607

Skorowidz

klient sieciowy, 53
klient SOAP, 1037
klient WCF, 1042
klucz gwny, 945, 950
klucze obce, 946, 948, 950
kod HTML, 285
kod LINQ, 998
kod SQL, 953
kod szablonowy, 380
kod XAML, 48, 280
kod XML, 165
kodowanie, 469
kolejki, 1168
kolejkowanie komunikatw, 228
kolekcje, 141, 143
ArrayList, 143
CollectionBase, 143
definiowanie, 155
Hashtable, 143
inicjowanie, 155
Queue, 143
SortedList, 143
Stack, 143
kolekcje oglne, 144
wariancja, 174
kolorowanie skadni, 365
kompilacja, 469
aplikacje ASP.NET, 731
procedury skadowane, 974
kompilator, 364
komponenty, 289, 830
pisanie kodu, 291
tworzenie, 290
komponenty COM, 661
kompozycje, 770
App_Themes, 771
stosowanie, 773
tworzenie, 771
komunikacja P2P, 176
komunikacja z pamici trwa, 1118
komunikaty SOAP, 1031
komunikaty XML, 165
konfiguracja atrybutw testw jednostek, 431
DataSource, 431
definiowanie poczenia, 431
DeploymentItem, 431
konfiguracja chmury, 65
konfiguracja kompilacji, 193, 206
konfiguracja punktw przerwania, 259
konfiguracja rodowiska programistycznego, 79

konfiguracja usug WCF, 76, 1050


konfiguracja uwierzytelniania uytkownikw, 796
konflikty nazw, 128
konstruktory, 118, 154
konsumowanie usugi sieciowej ASP.NET, 1033
konsumowanie usugi WCF, 74, 76, 1055
kontekst danych, 882
kontener czcy, 690
kontenery, 836
FlowLayoutPanel, 836, 837
SplitContainer, 836, 837
StatusStrip, 847
TableLayoutPanel, 836
ToolStripContainer, 838
kontrakt usugi, 1042
kontrakty, 690
kontrawariancja, 173
kontrola dostpu do danych, 116
kontrola wersji, 37
kontrola wykonywania kodu, 260
kontroler, 806, 807
kontrolki, 273, 282, 289, 738, 823, 830
Canvas, 871
chmurki, 841
ContentPlaceHolder, 766
DataGridView, 852, 980
DataList, 990
DateTimePicker, 980, 983
DetailsView, 989
DockPanel, 872
dokowanie, 834
dziedziczenie po istniejcej kontrolce, 853
formularze Windows, 1147
FormView, 989
Grid, 874
GridView, 989, 990
Image, 888
ImageList, 850
kolejno przechodzenia, 840
kontenery, 836
kontrola automatycznego skalowania, 835
kontrolki ASP.NET Ajax Library, 915
kontrolki danych, 989
kontrolki kontenerowe, 835
kontrolki sieciowe, 989
kontrolki Silverlight, 936
kontrolki WPF, 705
kontrolki XAML, 49
kontrolki zoone, 290
kotwiczenie, 833

1229

Skorowidz

kontrolki
ListBox, 886
menu, 842
MenuStrip, 46, 841, 842, 843
modyfikacja atrybutw, 277
Panel, 46
pasek narzdzi, 844
pasek statusu, 847
pozycjonowanie, 749, 831
Repeater, 989
rozmieszczanie, 275
SplitContainer, 46, 849
Splitter, 837
StackPanel, 876
StatusBar, 847
StatusStrip, 46, 841
style wizualne, 840
Timer, 274
ToolStrip, 841, 844, 847
ToolStripItem, 841, 844
TreeView, 849
tworzenie, 290
tworzenie kontrolek, 853
ukad, 831
UpdatePanel, 58
UpdateProgress, 58
wizanie danych, 974
wskazwki, 841
wygld, 840
zachowanie, 840
zmiana rozmiaru, 277
kontrolki Ajax Control Toolkit, 917
Accordion, 917
AlwaysVisibleControlExtender, 917
AutoCompleteExtender, 917
CalendarExtender, 918, 919
CascadingDropDown, 918
CollapsiblePanelExtender, 917
ConfirmButtonExtender, 918, 921
FilteredTextBoxExtender, 918
HoverMenuExtender, 918
ListSearchExtender, 918
MaskedEditExtender, 918
ModalPopupExtender, 918
PasswordStrength, 918
PopupControlExtender, 918
ReorderList, 918
SliderExtender, 918
SlideShowExtender, 919
stosowanie kontrolek, 919

1230

TabContainer, 919
TextBoxWatermarkExtender, 919
kontrolki ASP.NET, 788
AccessDataSource, 800
adaptacyjne generowanie, 789
Button, 792
Calendar, 792
ChangePassword, 796
Chart, 800, 801
CheckBox, 792
CompareValidator, 794
CreateUserWizard, 796
CustomValidator, 794
DataList, 800
DataPager, 800
DetailsView, 800
DropDownList, 792
EntityDataSource, 800
FileUpload, 792
FormView, 800
GridView, 801
Image, 792
kontrolki danych, 799
kontrolki do sprawdzania poprawnoci, 793
kontrolki logowania, 795
kontrolki nawigacyjne witryny, 798
kontrolki standardowe, 792
kontrolki uytkownika, 801
kontrolki walidacyjne, 793, 794
Label, 792
LinqDataSource, 800
ListBox, 792
ListView, 801
Literal, 792
Login, 795
LoginName, 796
LoginStatus, 796
LoginView, 795
model obsugi zdarze, 789
MultiView, 792
ObjectDataSource, 800
Panel, 792
PasswordRecovery, 795
QueryExtender, 801
RadioButton, 792
RangeValidator, 794
RegularExpressionValidator, 793, 794
Repeater, 801
RequiredFieldValidator, 794
SiteMapDataSource, 800

Skorowidz

SiteMapPath, 798
skrki, 790
sprawdzanie poprawnoci danych, 790, 793
SqlDataSource, 800
style, 790
Table, 792
TextBox, 792
ukad oparty na szablonach, 790
ValidationSummary, 793, 794
wizanie danych, 790
Wizard, 793
wprowadzanie danych, 790
wykrywanie przegldarek, 789
XML, 793
XmlDataSource, 800
zachowywanie stanu, 789
zgodno ze standardem XHTML, 789
kontrolki ASP.NET Ajax, 905
ScriptManager, 905, 906
ScriptManagerProxy, 906
Timer, 906
UpdatePanel, 906
UpdateProgress, 906, 913
kontrolki niestandardowe, 290, 805, 853, 857
kontrolki rysowane przez programist, 857
tworzenie, 857
kontrolki uytkownika, 290, 853, 854
dodawanie kontrolek, 855
projekt, 854
projektowanie, 854
przechwytywanie zdarze, 661
tworzenie, 655
zagniedanie kontrolek uytkownika, 855
kontrolki uytkownika ASP.NET, 801
dodawanie kontrolki do strony, 803
projekt, 802
rejestrowanie kontrolki na stronie, 804
tworzenie, 802
Web User Control, 802
kontrolki Web Part, 776
CatalogZone, 779
EditorZone, 779, 786
LayoutEditorPart, 786
strefy strony, 777
style, 778
ustawienia kontrolek, 788
WebPartManager, 777, 779
WebPartZone, 777, 779
zarzdzanie ukadem strony, 777

kontrolki rda danych, 993


AccessDataSource, 993
ObjectDataSource, 993
SiteMapDataSource, 993
SqlDataSource, 993
XMLDataSource, 993
kontrolki-hosty, 1148
kontynuowanie wykonywania kodu, 493
konwersja typw, 131
koczenie sesji diagnostycznej, 493
kotwiczenie, 833
kowariancja, 173
kreator dodatkw, 637, 677
kreator eksportowania szablonw, 337
kreator modelu EDM, 69
kreatory, 677
Add New Item, 680
ContextParams, 678
Execute, 681
formularz, 682
identyfikator kreatora, 679
IDTToolsOptionsPage, 683
IDTWizard, 677, 679, 680
numer wersji, 679
plik szablonu, 682
pliki .vsdir, 679, 680
pliki .vsz, 679
struktura kreatorw, 677
tworzenie, 680
tworzenie okna dialogowego, 681
tworzenie plikw .vsz i .vsdir, 685
uruchamianie kreatora, 683
WizardDialog, 681
wizardResult, 679
kroczenie przez kod, 480
krotki, 144
dodawanie elementw, 144
tworzenie, 144
kultura, 823

L
Label, 274, 755, 792
LabelInstructions, 768
Language Integrated Query, 160
Launch Conditions, 546
Layout, 102
LayoutEditorPart, 786
LayoutMode, 275
Left, 833

1231

Skorowidz

liczba doj do punktu przerwania, 502


liczniki wydajnoci, 228
LIKE, 909
LineDown, 601
LineUp, 601
LinkedWindows, 587
LINQ, 156, 160, 161, 176, 816, 994, 998
atrybuty, 999
klasy, 1000
odwzorowanie O/R, 995
podsystemy, 995
stosowanie obiektw LINQ, 1000
wyraenia lambda, 162, 163
zapytania, 994
LINQ to Objects, 995
LINQ to SQL, 717, 728, 995, 996
LINQ to SQL Classes, 728, 996
LINQ to XML, 995
LinqDataSource, 800
List Members, 377, 378
lista skadowych, 378
lista zada do wykonania, 393
ListBox, 792, 885, 886
ListObject, 1149
ListSearchExtender, 918
ListView, 47, 801, 850
Literal, 792
Load, 743
Load Macro Project, 619, 629
Load Metadata File, 402
Load Test Virtual User Pack, 39
LoadComplete, 743
local type inference, 151
Local.testsettings, 400
Locals, 476, 485, 505, 506
logika biznesowa, 158
Login, 795
Login.aspx, 796
LoginName, 796
LoginStatus, 796
LoginView, 795
logowanie, 795
uwierzytelnianie uytkownikw, 796
lokalizacja, 823
lokalizacja kodu rdowego na potrzeby
diagnozowania, 192
lokalna pami podrczna dla bazy danych, 71
long, 130
Long, 130

1232

acuch poczenia, 973


acuchy znakw, 130
czenie acuchw znakw, 135
czenie okien narzdzi, 587

M
machinename, 335
Macro Explorer, 614, 617, 619
Macros, 616, 619
diagnozowanie makra, 623
dodawanie projektw, 619
obsuga zdarze, 623
pisanie makr, 620
wywoywanie makr, 629
Main, 242, 367
MakeCert.exe, 349
MakeZipExe.exe, 349
makra, 345, 612
diagnozowanie, 623
dodawanie deklaracji nowych zdarze, 627
dodawanie projektw, 619
dostp do okna, 620
dostp do zdarzenia, 627
DTEEvents, 628
DTEEvents.OnMacrosRuntimeReset, 628
DTEEvents.OnStartupComplete, 628
edytor kodu, 621
eksportowanie moduu, 618
EnvironmentEvents, 623, 625
format przechowywania, 618
inicjowanie obiektw zdarze, 628
kod makra, 615
Macro Explorer, 614
Macros, 616
makra tymczasowe, 614, 617
metody obsugi zdarze, 626
modyfikacja kodu, 621
obsuga zdarze, 623
parametry, 632
pisanie makr, 616, 620
pliki .vsmacros, 619
projekt, 617
rejestrowanie, 613
skrty klawiaturowe, 631
tworzenie, 613
uruchamianie, 613, 614, 629
WindowHiding, 627

Skorowidz

wspuytkowanie makr, 618


wstrzymanie rejestrowania, 613
wywietlanie komunikatw, 615
zarzdzanie makrami, 614
zmiana formatu przechowywania projektu
makr, 619
zmiana rozmiaru IDE, 632
Manage Styles, 287, 288, 758, 760, 761, 762
Managed Execution Framework, 23
Managed Extensibility Framework, 688
manifest VSIX, 352, 353
manipulowanie obrazami, 895
manipulowanie zakadkami w dokumencie, 594
Manual, 828
mapa witryny, 728, 798, 993
Mapping Details, 69, 1002
marginesy, 696
MaskedEditExtender, 918
Master, 768
Master Page, 56, 727
master pages, 765
mechanizm DAC, 969
mechanizm generowania kodu, 158
mechanizm IntelliSense, 363, 375
mechanizm nawigowania po znacznikach, 370
mechanizm obsugi korelowania, 1112
mechanizm szeregowania zada, 523
mechanizm wstawiania fragmentw kodu, 381
mechanizm wyszukiwania przyrostowego, 577
mechanizmy jzyka, 150
mechanizmy obsugi myszy, 693
mechanizmy obsugi upuszczania, 693
MEF, 23, 688
AggregateCatalog, 691
aktywowanie, 690
aplikacje, 690
aplikacje nadrzdne, 689
architektura platformy, 689
AssemblyCatalog, 691
CompositionContainer, 691
czci, 690, 695
dekoracje, 697, 698
DirectoryCatalog, 691
dodawanie zalenoci, 689
dopasowywanie strukturalne, 690
Editor Margin, 696
Editor Text Adornment, 697
Editor Viewport Adornment, 698
edytor rodowiska Visual Studio, 691, 692
Extension Manager, 699
jednostki eksportowane, 690, 692

jednostki importowane, 690


katalog, 691
katalog folderw, 691
katalog podzespow, 691
katalog typw, 691
kontener czcy, 690
kontrakty, 690
meneder rozszerze, 699
model programowania, 689
okrelanie nazw, 690
projekt dekoracji, 702
punkty doczania rozszerze do edytora, 692
reguy dziaania, 689
rozszerzalne platformy, 689
rozszerzenia, 689
stosowanie, 690
tworzenie rozszerzenia edytora, 701
TypeCatalog, 691
Memory, 485
meneder dodatkw, 653
menu, 89, 842
Build, 91
Data, 92
Debug, 91, 482
Edit, 89
elementy menu, 844
File, 85, 89
Format, 92
gwne, 842
Help, 93, 312
MenuStrip, 842, 843
Project, 89, 91
Refactor, 89, 90, 442
Table, 92
Test, 93, 401
Tools, 92
View, 90
Website, 90
Window, 93
MenuItem, 888
MenuStrip, 46, 841, 842, 843
MessageMapper, 258
Method Name, 244
metody, 117
definiowanie, 117, 298
dodawanie metod do istniejcych klas, 157
metody czciowe, 158
przecianie, 123
przesanianie, 122
refaktoryzacja, 450

1233

Skorowidz

metody dodatkowe, 157


uycie, 158
metody sieciowe, 1015
wywoywanie, 1032
metody usugi sieciowej, 1015
MFC, 41
Microsoft Excel, 1132
Microsoft Expression, 39
Microsoft Foundation Class, 41
Microsoft InfoPath, 1132
Microsoft Office, 63, 1130
Microsoft Outlook, 1132
Microsoft Patterns and Practices, 306
Microsoft PowerPoint, 1132
Microsoft Report Viewer, 717
Microsoft Silverlight, 59
Microsoft Solutions Framework (MSF)
for CMMI 5.0, 36
Microsoft Word, 1130, 1132
Microsoft.Office.Tools.Excel.SmartTag, 1153
Microsoft.Office.Tools.Excel.Worksheet, 1147
Microsoft.Office.Tools.SmartTagBase, 1153
Microsoft.Office.Tools.Word.Document, 1147
Microsoft.Office.Tools.Word.SmartTag, 1153
Microsoft.VisualStudio.CoreUtility, 351
Microsoft.VisualStudio.QualityTools.
UnitTestFramework, 400
Microsoft.VisualStudio.TestTools.UnitTesting, 413
Microsoft.VisualStudio.Tools.Applications, 1152
MIME, 931
ModalPopupExtender, 918
model, 806
Model Browser, 1002, 1004
model EDM, 68, 69, 977, 1001
zapytania, 1006
model formularzy sieciowych, 809
model MVC, 56
model procesu, 72
model projektowy, 68
model przetwarzania da w aplikacjach ASP.NET
MVC, 807
model rda danych, 68
Model-View-Controller, 56, 714
modelwidokkontroler, 56
Modify Style, 758, 759
Modules, 485
modyfikacja
dokumenty tekstowe, 595
kod makra, 621
manifest VSIX, 352

1234

model EDM, 1002


panel zada pakietu Office, 1141
plik .vstemplate, 338
strona startowa, 310
style CSS, 287, 764
tekst, 600
wstka, 1137
zapytania dla rda danych, 985
znaczniki HTML, 285
monitor zdalnego diagnozowania, 513
MOSS, 776
MSDN, 35, 314
MSDN Forums, 315
MSF for Agile 5.0, 36
MSI, 341
MSMQ, 1014
msvsmon.exe, 513
MultiView, 792
MustInherit, 121
MVC, 56, 714, 805

N
NamedRange, 1149
namespace, 127
Namespace, 127
narzdzia, 36
narzdzia pomocnicze edytorw tekstu, 364
nawigowanie po kodzie, 246
refaktoryzacja, 441
tworzenie stylw, 756
VSTO, 1130
NativeActivity, 1063, 1077
nawiasy, 391
nawigacja, 367
nawigacja po rodowisku IDE, 88
nawigowanie po kodzie, 246
Call Hierarchy, 248
numerowanie wierszy, 246
zakadki, 247
nawigowanie po znacznikach, 370
Document Outline, 371
nazwy, 127
nazywanie elementw, 373
NetCF, 45
new, 123, 141
New, 156
New Breakpoint, 483, 486, 495
New Cloud Service Project, 64, 1166, 1170, 1175
New Data Breakpoint, 483

Skorowidz

New File, 241


New Line, 192
New Macro Project, 619
New Project, 43, 50, 54, 79, 84, 86, 183, 184, 194, 272,
330, 334, 962, 1135
Online Templates, 328
New Query, 952
New Service Endpoint Element Wizard, 1051, 1052
New Style, 761
New Style Sheet, 761
New Test, 401
New Test List, 436
New Web Site, 197, 283, 715
niejawne okrelanie typu zmiennych, 151
zmienne lokalne, 153
niestandardowa strona startowa, 310
Not, 136
NotInheritable, 121
numerowanie wierszy, 246
NUnit, 398

O
O/R Designer, 996
dodawanie jednostek bazy danych, 996
klasy danych, 997
klasy LINQ to SQL, 996
kod LINQ, 998
nazwy jednostek, 999
obszar projektowy, 997
tabele, 997
obiektowy model automatyzacji, 560
BuildEvents, 609
CodeClass, 569
CodeElement, 569
CodeElements, 569, 570
Command, 605
Command Window, 583
CommandBar, 588, 589, 590
CommandBarControl, 589
Commands, 605
CommandWindow, 578, 583
debuger, 608
Debugger, 608
Document, 592
Documents, 592
dodatki, 653
dodawanie tekstu, 599
dokumenty, 592
dokumenty tekstowe, 593

dostp do kodu projektu, 569


dostp do okien, 572
dostp do paneli okna tekstu, 577
DTE, 561, 564
DTE2, 561, 564
EditPoint, 597, 599, 600
EditPoint2, 597
Events, 608
hierarchia modelu obiektowego kodu, 570
hierarchia rozwiza i projektw, 566
interakcja z oknami, 573
kategorie automatyzacji, 563
klasy, 570
kontrola projektw wchodzcych w skad
rozwizania, 568
manipulowanie tekstem, 599
modyfikacja dokumentw tekstowych, 595
modyfikacja tekstu, 600
obiekty debugera, 608
obiekty polecenia, 604
okna, 572
okna narzdzi, 578
okna poczone, 586
okna tekstowe, 576
okno polece, 583
okno Toolbox, 581
Output, 584
OutputWindow, 578, 584
OutputWindowPane, 584, 585
OutputWindowPanes, 584
panele, 576, 577
pasek polece, 588
podzespoy, 561
polecenia, 604
Project, 565, 568
projekty, 565
przeczanie stanu ukoczenia zada, 580
przestrzenie nazw, 570
rozwizania, 565
Solution, 565, 567
sprawdzanie kolekcji okien, 575
Task List, 579
TaskItem, 580
TaskList, 578, 579, 580
TextDocument, 593
TextPane, 577
TextSelection, 596
TextWindow, 576
ToolBox, 578, 581
ToolBoxItem, 581

1235

Skorowidz

obiektowy model automatyzacji


ToolBoxItems, 581
ToolBoxTabs, 581
typy modelu automatyzacji, 562
ustawianie aktywnego okna, 575
VirtualPoint, 597
vsCMElement, 571
wersje modelu obiektowego, 561
Window, 572, 573
Windows, 588
wykonywanie polece, 606
wykonywanie polece w oknie polece, 583
wyszukiwanie przyrostowe, 577
zadania, 579
zdarzenia automatyzacji, 608
obiekty, 115, 130, 131, 153
inicjator obiektw, 153
konstruktory, 154
tworzenie, 153
obiekty bazy danych, 970
acuch poczenia, 973
procedury skadowane, 971
obiekty blob, 1168
obiekty dynamiczne, 169
DynamicObject, 169
stosowanie, 171
tworzenie, 169
obiekty polecenia, 604
obiekty statyczne, 120
obiekty wspuytkowane, 120
object, 167
Object, 152
Object Browser, 229
Class View, 230
Edit Custom Component Set, 230
modyfikacja niestandardowego zbioru
komponentw, 229
opcje zasigu, 229
panel z opisem, 231
przegldanie obiektw, 230
Rename, 447
zmiana nazw, 447
zmiana zasigu, 229
object initializer, 153
ObjectDataSource, 800, 993
ObjectQuery, 1007
obrazy, 850
obsuga danych, 67
obsuga dodatkw, 175
obsuga korelowania, 1112

1236

obsuga okien rodowiska IDE, 109


obsuga ruchw kursora nad palet, 655
obsuga transakcji, 1087
obsuga wariancji, 174
obsuga waciwoci, 166
obsuga wyjtkw, 146
obsuga zapyta LINQ, 162
obsuga zbiorw danych, 67
obsuga zdarze, 149, 623
dodatki, 645
kontrolki wstki, 1141
usuwanie nieuywanych argumentw
z metod obsugi zdarze, 166
obszary kodu, 368
ODBC, 993
oddzielanie projektu danych od modelu rda
danych, 68
odpowied SOAP, 1032
odwieanie czciowe, 912
odwzorowanie O/R, 994
odwzorowanie obiektowo-relacyjne, 993
LINQ, 994
O/R Designer, 996
odwzorowywanie obiektw na modele bazy danych, 68
odwzorowywanie rde danych na kontrolki, 978
Office, 44, 50, 63, 1130
ograniczenia, 946
okna, 572
dostp do okien, 572
interakcja z oknami, 573
okna dialogowe, 681, 875, 895
okna narzdzi, 103, 578
okna poczone, 586
okna projektowe, 102, 240
okno projektowe aplikacji sieciowych, 283
okno projektowe formularzy Windows, 373
okno projektowe HTML, 283, 372
okno projektowe klas, 295
okna tekstowe, 576
okno edytora kodu, 243
okno projektowe procesw, 1067
powierzchnia projektowa procesu, 1067
okno projektowe szablonw XML, 267
Content Model View, 268
Graph View, 267, 268
Start View, 267
okno projektowe WPF, 280, 282, 865
kontrola rozmiaru, 868
kontrolka przybliania, 869
okno waciwoci, 868

Skorowidz

okrelanie pozycji, 868


panele projektowe, 866
Properties, 868
widok podzielony, 281
XAML, 866
zarzdzanie panelami, 867
okrelanie nazw, 690
OLE DB, 993
OnAddInsUpdate, 646, 647
OnAfterCreated, 683
OnBeginShutdown, 646, 647
OnConnection, 646, 648
OnDisconnection, 646, 650
One-Click Publishing, 554
Online Templates, 328
OnMacrosRuntimeReset, 629
OnPaint, 857
OnSizeChange, 705
OnStartupComplete, 629, 646, 651
Opacity, 828
opcje diagnozowania, 487
opcje uruchomieniowe, 84
Open Folder in Windows Explorer, 1082
Open Project, 84
operacje inteligentne, 372
OperationContract, 1045
operatory, 133
czenie, 135
operatory arytmetyczne, 134
operatory logiczne, 135, 136
operatory warunkowe, 135, 136
operatory zapyta, 161
porwnywanie, 134
przypisanie, 133
opis usugi sieciowej, 1029
opisywanie dodatkw, 639
opnione podpisywanie, 209
Option Infer Off, 153
Option Strict, 153
Options, 84, 100, 101
Options and Settings, 483, 486
Or, 136
Oracle, 993
Order by, 163
Ordered Test, 433
OrElse, 136
organizowanie testw, 434
lista testw, 436
Test List Editor, 435
Test View, 434

uruchamianie testw z listy testw, 437


wyszukiwanie testw, 434, 435
wywietlanie wszystkich testw, 434
otaczajce fragmenty kodu, 383
otaczanie kodu fragmentami, 383
otwarte aplikacje .NET, 688
otwarte dokumenty, 592
otwieranie edytora, 241
otwieranie starszej aplikacji, 88
out, 174
outlining, 367
Outlining, 369
Outlook, 1144
tworzenie regionw formularzy, 1144
wizanie regionu z klas komunikatu, 1146
Outlook Form Region, 1144
Output, 482, 484, 494, 578, 584
wywietlanie informacji, 586
Output project, 403
Output type, 206
OutputWindow, 562, 578, 584
OutputWindowPane, 584, 585
skadowe, 585
OutputWindowPanes, 584
Overridable, 122
override, 122, 123
Overrides, 122, 123

P
P2P, 176
Page, 428
Page_Event, 744
pakiet Office, 50
pakiet Visual Studio SDK, 693
pakiety, 341
plik VSContent, 342
VSI, 342
VSIX, 349
pakiety startowe, 333
pakowanie rozszerze do plikw VSIX, 349
paleta do wybierania kolorw, 654
paleta komponentw, 830
PaletteControl, 661
pami podrczna danych, 1133, 1150
CachedAttribute, 1151
dodawanie danych, 1151
dostp do pamici podrcznej danych, 1152
wyspy danych, 1150, 1151

1237

Skorowidz

pami trwaa, 1117


Panel, 46, 792, 836
panele, 576, 577, 838
panele operacji pakietu Office, 1132, 1149
ActionsPane.StackOrder, 1150
kontrola wywietlania, 1150
StackStyle, 1150
tworzenie, 1149
panele WPF, 871
panele zada pakietu Office, 1132
dodawanie kontrolek, 1142
modyfikacja, 1141
Parallel, 1084
Parallel LINQ, 995
Parallel Stacks, 484, 521, 523
pasek narzdzi, 522
wtki, 521
widok zada, 523
zadania, 523
Parallel Tasks, 484, 523, 525
Location, 525
lokalizacja zadania, 525
ParallelForEach, 1084
Parameter Info, 379
parametry, 379
refaktoryzacja, 462
usuwanie parametrw, 462
zmiana kolejnoci parametrw, 463
parametry dodatku, 637
parametry projektu, 334
parametry szablonw, 335
Parse, 132
Partial, 159
partial class, 738
pasek menu, 842, 843
pasek narzdzi, 94, 844
Breakpoints, 480
Debug, 482, 486
dostosowywanie, 95
ToolStrip, 844
ToolStripItem, 844
pasek polece, 588
kontrolki, 590
pasek statusu, 847
edycja elementw StatusStrip, 848
StatusBar, 847
StatusStrip, 847
PasswordRecovery, 795
PasswordStrength, 918
Paste, 94

1238

Persist, 1084, 1085


ptle, 138
dowhile, 140
DoWhile, 140
for, 139
ForEach, 139
ForNext, 139
foreach, 139
until, 140
Until, 140
while, 140
Pick, 1084
PictureBox, 47
PictureContentControl, 1149
pinning, 105
pisanie kodu, 240, 241, 242, 277
kod komponentw, 291
kod makr, 616, 620
pisanie testw jednostek, 405
PK, 950
PlainTextContentControl, 1149
planowanie interfejsu uytkownika, 825
platforma .NET, 23, 42, 175
platforma .NET Compact Framework 3.5, 45
platforma Azure, 1158
platforma Entity, 68, 1001
platforma MEF, 23, 688
platforma testw jednostek, 398, 413
platforma WCF, 23
platforma WF, 23
platforma Windows Presentation Foundation, 860
platforma WPF, 23, 47
Play, 94
plik definicji projektu, 198
projekt Visual C#, 198
projekt Visual C++, 200
plik definicji rozwizania, 185
pliki
addin, 654, 665
asax, 727
ascx, 727
ashx, 727
asmx, 75, 727, 1018
ASP.NET, 727
aspx, 727
cab, 540
config, 264, 728
cs, 727
cspkg, 66, 1199
csproj, 198

Skorowidz

css, 728
dacpac, 969
dbml, 728
DISCO, 1016
edmx, 69
htm, 728
js, 728
master, 727
MSI, 341
pdb, 529, 530
rdlc, 728
resx, 728
sitemap, 728, 798
skin, 728
svc, 728
sync, 71
testsettings, 411
vb, 727
vbproj, 198
VSContent, 342
vsdir, 679
VSI, 342
VSIX, 310, 341, 349
vsmacros, 619
vssettings, 82
vstemplate, 336, 338
vsz, 679
XAML, 280
xml, 264
xsd, 67, 265
xsl, 264
XSLT, 269
pliki zrzutw, 527
PLINQ, 176, 995
pobieranie danych, 160
pocztkowy formularz, 827
podejmowanie decyzji, 135
podgld zmian, 445
podgldanie danych w debugerze, 505
podpowiedzi DataTip, 508
wizualizacja danych, 510
podgldanie zmiennych, 505
Autos, 506
Locals, 505
QuickWatch, 508
Watch, 507
podmienianie tekstu w plikach, 253, 255
podpisywanie plikw, 349
podpisywanie podzespou, 209
podpowiedzi DataTip, 483, 508
przyczepianie, 509

podzespoy, 164
podzespoy zaprzyjanione, 164
stosowanie, 164
pola, 115
definiowanie, 298
pola prywatne, 116
pola publiczne, 116
pole tekstowe, 274
polecenia, 604
argumenty, 606
Command, 605
dodatki, 651
klawisze skrtu, 607
obiektowy model automatyzacji, 604
polecenia nazwane, 651
wykonywanie, 606
polecenia SQL, 951
poczenie kontrolki ze rdem danych, 881
poczenie z baz danych, 943
poczenie z danymi, 224
pomoc, 312
aktualizacja lokalnego systemu pomocy, 313
Customer Feedback Options, 324
dodawanie materiaw do lokalnego systemu
pomocy, 313
dokumentacja rodowiska Visual Studio, 314
Find Content Online, 313
fora spoecznoci MSDN, 315
Help Library Manager, 312
menu Help, 312
MSDN, 314
MSDN Forums, 315
przesyanie informacji zwrotnych, 323
przykady, 326
Report a Bug, 324
Samples, 326
zarzdzanie ustawieniami systemu pomocy, 312
zgaszanie bdw, 323, 324
pomoc internetowa, 312
pomoc w usprawnianiu rodowiska Visual Studio, 324
PopupControlExtender, 918
porwnywanie, 134
poruszanie si po rodowisku IDE, 88, 108
porzdkowanie instrukcji Using, 380
Position, 750
powizanie arkusza XSLT z dokumentem XML, 270
poziomy dostpu do skadowych, 118, 119
pozycjonowanie bezwzgldne, 748
pozycjonowanie kontrolek, 749, 831
pozycjonowanie wzgldne, 748
pozycjonowanie za pomoc stylw CSS, 748

1239

Skorowidz

PreInit, 743
PreLoad, 743
PreRender, 743
PreRenderComplete, 743
PresentationCore.dll, 860
PresentationFramwork.dll, 860
Preview Changes, 445, 446
primary key, 950
Primitives, 1084
Print, 262
Private, 116, 119
procedury obsugi zdarze, 829
kontrolki, 745
strony ASP.NET, 744
procedury skadowane, 956
C#, 971
diagnozowanie, 958
kompilacja, 974
polecenia SQL, 957
wdraanie, 974
proces, 1062, 1063, 1065
Activity, 1069, 1077
Activity Designer, 1069
Activity Library, 1065
argumenty, 1070
Code Activity, 1069, 1075
CodeActivity, 1075
CompensableActivity, 1087, 1088
Control Flow, 1084
czynnoci, 1082, 1083
czynnoci Collection, 1086
czynnoci Control Flow, 1083
czynnoci Error Handling, 1086
czynnoci Flowchart, 1094
czynnoci Messaging, 1089
czynnoci Primitives, 1084
czynnoci Runtime, 1084
czynnoci Transaction, 1087
DoWhile, 1083
elementy, 1068
Execute, 1077
ForEach, 1083
kolekcje, 1086
NativeActivity, 1077
obsuga kolekcji, 1086
obsuga transakcji, 1087
okno projektowe, 1067
Persist, 1084
projekt, 1065

1240

projektowanie, 1107, 1110


przechowywanie, 1074
Sequence, 1083
skadniki, 1063
sterowanie przepywem, 1083
szablony elementw, 1068
TransactionScope, 1087
tworzenie, 1069
tworzenie procesu opartego na komunikatach, 1090
tworzenie procesu opartego na XAML, 1069
tworzenie za pomoc szablonu Code Activity, 1075
utrwalanie, 1116
WCF Workflow Service, 1069
WCF Workflow Service Application, 1065
While, 1083
WorkflowApplication, 1074
WorkflowInvoker, 1074
WorkflowServiceHost, 1075
wywoywanie, 1074
XAML, 1069
zapisywanie procesu, 1077
zarzdzanie komunikatami, 1089
proces dynamiczny, 1080
konfiguracja, 1080
sposoby wywoywania, 1081
proces hosta, 1063
proces tworzenia oprogramowania, 182
proces wizania danych, 975
Processes, 485
procesy biznesowe, 72
Program, 562
programici, 61
programowanie obiektowe, 114, 115
programowanie pod ktem chmury, 63
programowanie z wykorzystaniem atrybutw, 145
programowanie z wykorzystaniem WPF, 871
programowanie za pomoc okna Server Explorer, 228
programowe zarzdzanie dodatkami, 653
Project, 89, 91, 562, 565, 568, 575
CodeModel, 569
skadowe, 568
Project Dependencies, 192
Project Designer, 204, 205
Project Explorer, 618
Project Properties, 827
Project.ProjectItems, 565
ProjectItem, 562, 575
ProjectItems, 562
projectname, 335

Skorowidz

projekt, 43, 85, 182, 194, 203


Activity, 1069
Activity Designer, 1069
Activity Designer Library, 1066
Activity Library, 1065
ADO.NET Entity Data Model, 812, 1001
aplikacje ASP.NET, 715
aplikacje ASP.NET MVC, 809
aplikacje do zarzdzania procesem, 1097
aplikacje dziaajce w chmurze, 64
aplikacje Office, 1135
aplikacje SharePoint, 52
aplikacje sieciowe, 283
aplikacje Silverlight, 59, 934
aplikacje Windows, 46, 272
aplikacje WPF, 48, 280, 866
aplikacje XBAP, 923
ASP.NET Empty Web Site, 1017
ASP.NET MVC 2 Web Application, 809
ASP.NET MVC 2 Web Role, 1167
ASP.NET MVC Web Application, 57
ASP.NET Web Application, 54
ASP.NET Web Role, 1167
ASP.NET Web Service, 1017
Azure, 1165
Blank Solution, 184
CGI Web Role, 1167
Cloud Service, 64
Code Activity, 1069, 1075
Database, 961
definiowanie niestandardowych parametrw, 336
dekoracje, 702
dodatki, 637
Editor Classifier, 695
Editor Margin, 696
Editor Text Adornment, 697
Editor Viewport Adornment, 698
eksportowanie do szablonu, 334, 336
elementy projektw, 203
Enable Windows Azure Tools, 1161
Excel 2007 Workbook, 1136
Inherited Form, 827
katalogi, 203
kontrolki uytkownika ASP.NET, 802
LINQ to SQL Classes, 996
makra, 617
parametry, 334
plik definicji projektu, 198
proces, 1065
rozwizania oparte na pakiecie Office, 50

Setup Wizard, 540


Shared Add-in, 637
Silverlight Application, 59, 934
Silverlight Class Library, 934
Silverlight Project, 934
SQL Server CLR, 970
SQL Server Project, 970
strona startowa, 303
struktura projektu, 204
tworzenie, 85, 194, 333
tworzenie szablonw, 333
typy projektw, 195
usugi WCF, 1043
Visual Studio Add-in, 637
Visual Studio SDK, 694
VSIX, 350
WCF, 75
WCF Service Application, 75, 1043, 1049
WCF Service Library, 1049
WCF Service Web Role, 1167
WCF Workflow Service, 1069
WCF Workflow Service Application, 1043, 1065
Windows Application, 203, 826
Windows Azure Cloud Service, 1165
Windows Control Library, 854
Windows Form Application, 46
WinForms, 290
waciwoci, 204
Word 2007 Document, 1136
Worker Role, 1167
Workflow Console Application, 1066
WPF Application, 48, 280, 866
WPF Browser Application, 48, 923
wybr docelowego rodowiska, 86
zalenoci, 191
zarzdzanie, 218
projekt bazy danych, 961
DAC, 969
Database Options, 964
Import Database Scheme, 966
importowanie schematu, 966
opcje wdraania, 969
Project Properties, 964
Schema View, 967
SQL Server 2008 Wizard, 963
struktura projektu, 964
tworzenie, 962
waciwoci, 964
zarzdzanie projektami, 969

1241

Skorowidz

projekt startowy, 191


projekt testw jednostek, 399, 400
opcje, 410
szablony, 399
tworzenie, 399
projekt witryny, 196, 715
tworzenie, 197, 715
projektanci, 61
projektowanie aplikacji opartych na formularzach
sieciowych, 283
projektowanie danych, 67
projektowanie formularzy, 822
projektowanie formularzy WPF, 49, 62
projektowanie interfejsu uytkownika, 746, 830
projektowanie klas do obsugi danych, 68
projektowanie kontrolki uytkownika, 854
projektowanie procesu, 73, 1107, 1110
projektowanie strony internetowej, 283
projektowanie szablonw XML, 265
Properties, 46, 47, 102, 104, 127, 431, 745, 868
Property, 563
Property Pages, 190, 729
Protected, 119
Protected Internal, 119
przechodzenie przez kod, 491
przechowywanie danych w platformie Azure, 1167
kolejki, 1168
obiekty blob, 1168
SQL Azure, 1169
tabele, 1167
przechowywanie procesw, 1074
przechowywanie udostpnianych zasobw, 330
przechwytywanie zdarze kontrolki uytkownika, 661
przecianie metody, 123
przecianie skadowych, 123
przegld kodu, 470
przegldanie obiektw, 230
przegldarka obrazw, 884
przeczanie stanu ukoczenia zada, 580
przeniesienie aplikacji na inn wersj platformy .NET, 87
przerywanie dziaania na podstawie warunkw, 500
przerywanie dziaania programu w danej lokalizacji, 501
przesanianie operacji, 122
przestrzenie nazw, 127
przesyanie informacji zwrotnych, 323
przeszukiwanie dokumentw, 249
Find and Replace, 249
Find Symbol, 249
Quick Find, 249, 250
Quick Replace, 250
Search In Files, 249

1242

przetwarzanie kolekcji, 139


przezroczysto, 828
przyciganie do linii, 276
przyciski, 274
przyczepianie okna, 105
przyczepianie podpowiedzi DataTip, 509
przykady, 326
przypadki uycia, 823
przypisanie, 133
public, 117, 119
Public, 119
publikowanie aplikacji ASP.NET, 549
Copy Web Site Tool, 549, 554
Web Deployment Tool, 549, 550
publikowanie aplikacji dziaajcej w chmurze, 66, 1199
publikowanie projektw, 536
instalator systemu Windows, 539
publikowanie witryn, 549
Publish, 929
Publish Cloud Service, 1199, 1202
Publish Web, 554
Publish Wizard, 536, 538, 929, 930
punkt edycji, 599
punkt kocowy usugi, 1042
punkt przerwania, 245, 476, 480, 494
Condition, 500
etykiety, 499
Filter, 500
filtry, 502
funkcje, 495
Has Changed, 500, 501
Hit Count, 500, 502
ikony, 496
Is True, 500
konfiguracja, 259
kontrola wykonywania programu, 261
liczba doj do punktu przerwania, 502
Location, 500
przerywanie dziaania programu w danej
lokalizacji, 501
punkt ledzenia, 503
ustawianie, 258, 478, 494
ustawianie warunkw, 500
ustawienia licznika, 503
When Hit, 500
zarzdzanie, 498
punkt ledzenia, 503
Continue execution, 504
ustawianie, 504
When Breakpoint Is Hit, 504
When Hit, 503
punkty doczania rozszerze do edytora, 692

Skorowidz

Q
Query Builder, 909
Query Designer, 94, 952
Query/View Designer, 951, 956, 957
QueryExtender, 801
Queue, 143
Quick Find, 249, 250
All Open Documents, 250
Current block, 250
Current Document, 250
doprecyzowanie wyszukiwania, 251
Entire Solution, 250
Find Next, 251
Look In, 250, 251
podmienianie tekstu, 252
przegldanie wynikw wyszukiwania, 251
Quick Replace, 252
Selection, 250
zasig wyszukiwania, 250
Quick Info, 377
Quick Replace, 250, 252
QuickWatch, 486, 508

R
RAD, 822
RadioButton, 792
RangeValidator, 794
Rapid Application Development, 822
raporty sieciowe, 717
rdbsetup.exe, 513
ReadOnly, 117
Receive, 1090, 1115
ReceiveAndSendReply, 1090, 1091
Record TemporaryMacro, 613
RedirectResult, 808
RedirectToRouteResult, 808
Refactor, 89, 90, 442
refaktoryzacja, 440
Class Designer, 444
Encapsulate Field, 441, 465
Extract Interface, 441, 459
Extract Method, 441, 451
generowanie szkieletu metody, 457
hermetyzacja pl, 465
inteligentne znaczniki, 442
narzdzia, 441
parametry, 462
podgld zmian, 445

Preview Changes, 445


Refactor, 442
Remove Parameters, 441, 462
Rename, 441, 446
Reorder Parameters, 441, 463
uruchamianie narzdzi, 441
usuwanie parametrw, 462
wyodrbnianie interfejsw, 459
wyodrbnianie metod, 450
wyodrbnianie pojedynczych wierszy kodu, 456
zmiana kolejnoci parametrw, 463
zmiana nazw, 446
referencje, 729
referencje sieciowe, 1033
wywietlanie, 1036
refleksja, 145
region, 368
regiony formularzy aplikacji Outlook, 1144
registeredorganization, 335
RegisterRoutes, 819
Registers, 485
RegularExpressionValidator, 793, 794
rejestrowanie kontrolki na stronie, 804
rejestrowanie makr, 613
relacje midzy klasami, 296
asocjacja, 297
dziedziczenie, 296
interfejs, 296
relacyjne bazy danych, 993
Remote Debugging Monitor, 513
Remoting, 1014
Remove and Sort, 380
Remove Parameters, 441, 462
Remove Unused Usings, 380
RemoveFromCollection<T>, 1087
Rename, 441, 446, 449
opcje, 449
Preview Reference Changes, 449
Search in Comments, 450
Search in Strings, 450
zmiana nazw, 449
Reorder Parameters, 441, 463
ReorderList, 918
Repeater, 801, 808, 989
Report a Bug, 324
Report Wizard, 728
Reporting Services, 1169
RequestedPage, 429
RequiredFieldValidator, 794
Resource File, 206, 728

1243

Skorowidz

Restart, 485
Rethrow, 1086
return, 118
Return, 117
REVIEW, 395
rczne wizanie kontrolek formularzy Windows, 982
RIA, 904, 940
Ribbon (Visual Designer), 1137
Ribbon (XML), 1137
RibbonControlSizeLarge, 1139
Rich Internet Applications, 940
RichTextContentControl, 1149
Right, 833
RightToLeft, 823
RightToLeftLayout, 823
role, 1164
Web, 1164
Worker, 1164
Root namespace, 206
rootnamespace, 335
routed events, 883
Row.Height, 889
rozbudowywanie edytora kodu, 688
rozgazianie kodu, 135
rozczanie okien narzdzi, 587
rozmieszczanie kontrolek, 275, 284
przyciganie do linii, 276
ukad tabelaryczny, 275
rozpoczynanie sesji diagnostycznej, 489
rozpowszechnianie pikw VSIX, 354
rozszerzalne funkcje pakietu Office, 1131
pami podrczna danych, 1133
panele operacji, 1132
panele zada, 1132
tagi inteligentne, 1134
wstka, 1133
rozszerzenia, 688, 689
rozszerzenia dokumentw Office, 1147
kontrolki formularzy Windows, 1147
kontrolki kontenerowe, 1147
kontrolki-hosty, 1148
pami podrczna danych, 1150
tagi inteligentne, 1153
tworzenie paneli operacji, 1149
wyspy danych, 1150
rozszerzenia edytora, 701
rozwizania, 182
dodawanie projektu, 194
elementy, 188
hierarchia plikw, 185

1244

katalogi, 190
kontrola projektw, 568
lokalizacja kodu rdowego na potrzeby
diagnozowania, 192
plik definicji rozwizania, 185
praca programistw, 182
projekt, 184
projekt startowy, 191
referencje do projektw, 188
stosowanie, 188
tworzenie, 183
waciwoci, 190
waciwoci konfiguracji kompilacji, 193
zalenoci projektu, 191
zarzdzanie, 217
RS, 1169
RSS, 306
Run, 94
Run TemporaryMacro, 613
Run To Cursor, 472, 490
Runtime, 1084
rzutowanie, 132
rzutowanie w d, 123

S
SafeArray, 607
safeitemname, 335
safeprojectname, 335
samodzielne sprawdzanie, 470
Save Dump As, 486, 527
SaveStateComplete, 743
sbyte, 130
scalanie acuchw znakw, 135
Scalar-valued Function, 961
ScaleTransform, 895
scenariusz diagnozowania, 469
Schema View, 967
schematy kodu, 367
menu Outlining, 369
polecenia, 369
tworzenie, 367
ScriptManager, 905, 906, 907
ScriptManagerProxy, 906
Scripts, 716
SDK, 349, 693
Sealed, 121
Search In Files, 249
Select, 163
SELECT, 953, 955

Skorowidz

Select Active Test Settings, 411


SELECT DISTINCT, 984
Select Master Page, 738
Select Style Sheet, 762
SelectCase, 137
SelectedItem, 563
Send, 1090
Send to Back, 752, 846
SendAndReceiveReply, 1090
Sequence, 1083, 1084
SequentialWorkflow, 73
SequentialWorkflowActivity, 1062
serializacja, 1151
Server Explorer, 67, 223, 942
Add Data Connection, 224
Add Server, 224
budowanie zwizkw tabel, 948
Data Connections, 224, 943
definiowanie kolumn, 945
definiowanie tabel, 945
Event Logs, 226
indeksy, 946
klucze obce, 946
komponenty serwera, 225
Management Classes, 226
Management Events, 227
Message Queues, 228
modyfikacja definicji tabel, 948
ograniczenia, 946
okrelanie klucza gwnego, 945
Performance Counters, 228
poczenia z danymi, 224
poczenie z baz danych, 943
programowanie, 228
przeciganie, 228
Services, 228
Step Into Stored Procedure, 958
tworzenie diagramu bazy danych, 947
wyzwalacze, 960
ServerDocument, 1152, 1153
Service Configuration Editor, 1051
Service Reference Settings, 1034, 1035
Service.asmx, 716
Service.svc, 717
Service1.svc, 1044
Service1.svc.cs, 1044
ServiceConfiguration.csfg, 1171
serwer IIS, 718, 720
serwer TFS, 36
Session, 428, 1017

Set as Recording Project, 617


Set as Startup Project, 1049
Set Next Statement, 260
Set Primary Key, 945
Set Symbol Paths, 528
SetFocus, 575
SetSelectionContainer, 574, 575
SetTabPicture, 574, 575
Setup Wizard, 540
Shadows, 123
Shared, 120
Shared Add-in, 637
SharePoint, 38, 45, 52
short, 130
Short, 130
Show Next Statement, 478
Show Threads in Source, 516
Sign Tool, 349
SignTool.exe, 349
silnik uruchomieniowy procesu, 1064
Silverlight, 44, 53, 59, 62, 736, 904, 922, 933
tworzenie aplikacji, 934
Silverlight 4.0, 939
Silverlight Application, 59, 934
Silverlight Class Library, 934
Silverlight Project, 934
Simple Object Access Protocol, 1016
SimpleTypeName(), 388
Single, 130
Site Map, 728
Site.css, 716
Site.master, 716, 765, 803
SiteMapDataSource, 800, 993
SiteMapPath, 798
SketchFlow, 40
Skin File, 728
SkinId, 772
skadniki procesu, 1063
skadowe, 118
skadowe statyczne, 120
skadowe wirtualne, 122
skoroszyt aplikacji Excel, 1147
skrki, 770
identyfikator, 775
SkinId, 772
skrki nazwane, 772
skrki nienazwane, 772
tworzenie pliku skrki, 772
typy definicji, 772

1245

Skorowidz

skrty klawiaturowe
makra, 631
polecenia, 607
skrypty dziaajce po stronie klienta, 526
skrypty SQL, 962
SliderExtender, 918
SlideShowExtender, 919
SLQ, 909
sowa kluczowe
class, 115
Class, 115
Function, 117
Private, 116
ReadOnly, 117
return, 118
Return, 117
Sub, 117
SmartTag, 1153
SmartTagBase, 1153
SnapLines, 275
SnapToGrid, 275
snippets, 380
SOAP, 75, 1012, 1016, 1031
wyjtki, 1041
SoapException, 1040, 1041
Software Publisher Certificate Test Tool, 349
solution, 182
Solution, 563, 565, 567
skadowe, 567
Solution Explorer, 88, 97, 205, 212, 241, 1049
Add New Solution Folder, 217
ASP.NET Configuration, 217
Copy Web Project, 216
Copy Web Site, 217
ikony, 213
ikony sygnalizacyjne, 216
Nest Related Files, 217
Properties, 217
przyciski paska narzdzi, 216
Refresh, 217
Unhide All, 217
View Class Diagram, 217
View Code, 217
View Designer, 217
wskazwki graficzne, 213
zarzdzanie projektami, 218
zarzdzanie rozwizaniami, 217
zmiana nazw, 447
Solution Property Pages, 190
Solution.Projects, 565, 566
Solution2, 563, 567

1246

Solution3, 563, 567


Solution4, 563
SolutionEvents, 626
Sort Usings, 380
SortedList, 143
sortowanie instrukcji Using, 380
Source, 55
SourceControl, 563
SourceControl2, 563
Split, 55, 56
SplitButton, 847
SplitContainer, 46, 836, 837, 849
Splitter, 837
spoeczno, 302
strona startowa Visual Studio, 303
wkad w spoeczno, 332
sprawdzanie kolekcji okien, 575
sprawdzanie poprawnoci danych, 793
sprawdzanie poprawnoci kodu HTML, 288
sprawdzanie usugi sieciowej, 1031
SQL, 951
funkcje definiowane przez uytkownika, 961
procedury skadowane, 956
SQL Azure, 1169
SQL Debugger, 959
parametry, 959
SQL Server, 942, 993
SQL Server 2008 Wizard, 963
SQL Server CLR, 970
SQL Server Compact Edition, 71
SQL Server Project, 970
SqlCommand, 971
SqlConnection, 971
SqlDataSource, 800, 993
SqlDataSource.UpdateQuery, 992
SquiggleTag, 693
SSL, 722, 797
Stack, 143
StackPanel, 871, 876, 885, 888
StackStyle, 1150
stae, 133
standardowe okna dialogowe, 895
standardowy pasek narzdzi, 94
standardy UI, 824
Start, 191
Start Automatic Outlining, 369
Start Debugging, 483, 487, 491
Start Page, 303
Start Page news channel, 84
Start Without Debugging, 191, 472, 483
StartCaching(), 1152

Skorowidz

Starter Kit, 717


StartPage.xaml, 310
StartPosition, 827
Startup object, 206
Startup Project, 191
StateMachineActivity, 1062
StateMachineWorkflow, 73
statement, 128
Static, 120
Static Code Analyzer, 470
StatusBar, 847
StatusStrip, 46, 841, 847
edycja elementw, 848
Step Into, 480, 483, 486, 489, 491
Step Into Stored Procedure, 958
Step Out, 486, 493
Step Over, 483, 486, 489, 491
sterowanie przepywem w procesie, 1083
Stop, 260
Stop Debugging, 485
Stop Hiding Current, 369
Stop Outlining, 369
Storage Connection String, 1186, 1197
stos wywoa, 476
stosowanie kompozycji, 773
stosowanie obiektw dynamicznych, 171
stosowanie stylw CSS, 763
strefy strony Web Part, 777
string, 151
String, 151
StringAssert, 422
strona startowa, 83, 303, 304
Get Started, 305
Getting Started, 303
Guidance and Resources, 303, 306
kanay RSS, 306, 307
Latest News, 303, 306
Microsoft Patterns and Practices, 306
modyfikacja, 310
obszar projektw, 303
operacje wykonywane przy uruchamianiu, 308
StartPage.xaml, 310
tworzenie niestandardowej strony startowej, 310
ustawianie niestandardowych kanaw
z wiadomociami, 307
wiadomoci zwizane ze rodowiskiem, 306
stronicowanie, 912
strony ASP.NET, 55, 737
arkusze stylw, 754, 756
cykl ycia, 741
dodawanie kontrolek, 738

dodawanie procedur obsugi zdarze, 744


dodawanie procedur obsugi zdarze kontrolki, 745
dodawanie zasady stylu, 759
generowanie strony, 742
inicjowanie strony, 742
Init, 743
InitComplete, 743
kod rdowy, 739
Load, 743
LoadComplete, 743
model zdarze, 741
obsuga zdarze zwizanych z odesaniem
strony, 742
odpowiedzi na zdarzenia, 741
odpowied dla uytkownika, 742
opcje pozycjonowania kontrolki, 749
pooenie kontrolek, 747
PreInit, 743
PreLoad, 743
PreRender, 743
PreRenderComplete, 743
programowanie, 55
projekt, 55
projektowanie, 55, 738
rozpoczcie przetwarzania, 741
SaveStateComplete, 743
sprawdzanie poprawnoci strony, 742
strony wzorcowe, 56, 765
style, 754
style elementw, 755
style z poziomu strony, 755
synchronizacja midzy kodem rdowym
a oknem projektowym, 55
tworzenie, 737
tworzenie jednolitego wygldu i zachowania, 754
ukad strony, 747
Unload, 744
ustawianie tego samego rozmiaru kontrolek, 752
ViewState, 742
wczytanie strony, 742
widok podzielony, 739
widok projektowy, 738
widok Split, 56
wyrwnywanie elementw, 752
zarzdzanie nawigacj i projektem, 56
zdarzenia, 743
danie uytkownika, 741
strony obsugujce czciow aktualizacj, 907
strony Web Part, 777
chromowanie elementw, 781
definiowanie stref, 779
dodawanie elementw Web Part do stref, 781

1247

Skorowidz

strony Web Part


edycja ukadu strony, 786
LayoutEditorPart, 786
strefy, 777, 780
tworzenie, 778
ukad strony, 780
umoliwianie uytkownikom konfiguracji
strony, 783
ustawienia kontrolek, 788
strony wzorcowe, 56, 727, 765
@Page, 769
ContentPlaceHolder, 766, 768
dodawanie treci do elementu <head/>, 768
Master, 768
obszary z treci, 768
plik kodu, 766
pozycjonowanie, 768
Site.master, 765
tworzenie, 765
tworzenie strony z treci, 767
tytu strony opartej na stronie wzorcowej, 769
ukad kontrolek, 768
zagniedanie stron wzorcowych, 769
struct, 126
structural matching, 690
structure, 126
Structure, 126
struktura kreatorw, 677
struktury, 125, 130
definiowanie, 126
studia ergonomii, 823
style, 754, 755
Style, 878
style elementw, 755
Style Sheet, 728, 758
style wewntrzwierszowe, 755
style z poziomu strony, 755
Styles, 758
Stylesheet, 270
StylesheetTheme, 774
Sub, 117
subskrypcja usug platformy Azure, 1188
subskrypcja zdarze, 149
SvcConfigEditor.exe, 1051
switch, 137
case, 137
Switch, 1084
synchronizacja danych, 71
system pomocy, 312
System.Activities, 177

1248

System.Activities.XamlIntegration, 1081
System.AddIn, 175
System.Array, 142
System.Boolean, 130
System.Byte, 130
System.CodeDom, 175
System.Collections, 143, 175
System.Collections.Generic, 144
System.ComponentModel, 175
System.ComponentModel.Composition, 690
System.ComponentModel.Composition.
ExportAttribute, 690
System.ComponentModel.Composition.Hosting, 690
System.ComponentModel.Composition.Import
Attribute, 690
System.ComponentModel.IComponent, 289
System.Configuration, 175
System.Data, 175
System.Decimal, 130
System.Diagnostics, 175, 260
System.Diagnostics.Contracts, 176
System.Diagnostics.EventLog, 228
System.Double, 130
System.Drawing, 176
System.Dynamic, 170, 176
System.EnterpriseServices, 176
System.Globalization, 176
System.Int16, 130
System.Int32, 130
System.Int64, 130
System.IO, 176
System.Linq, 176
System.Media, 176
System.Messaging, 176
System.Net, 176
System.Net.PeerToPeer, 176
System.NotImplementedException, 683
System.Object, 130
System.Runtime.CompilerServices, 157
System.Runtime.Serialization, 1047
System.Security, 176
System.ServiceModel, 176
System.Single, 130
System.String, 130, 152
System.Threading, 176
System.Threading.Tasks, 176, 523
System.Tuple, 144
System.Web, 177
System.Web.Mvc, 57, 807
System.Web.Services.Protocols, 1041

Skorowidz

System.Web.UI.WebControls, 989
System.Web.UI.WebControls.WebParts, 776
System.Windows, 177, 878
System.Windows.Controls.Page, 924
System.Windows.Data.Binding, 881
System.Windows.Forms, 203, 895
System.Windows.Forms.Control, 290
System.Windows.Forms.Integration, 1143
System.Windows.Forms.UserControl, 290
System.Windows.Media.Imaging, 891
System.Windows.Window, 924
System.Workflow.Activities, 177
System.Xml, 177
System.Xml.Linq.XDocument, 165
System.Xml.Linq.XElement, 165
szablony, 44, 51, 329, 333
instalacja, 339
modyfikacja pliku .vstemplate, 338
opcje eksportowania, 337
parametry, 335
tworzenie, 333
szablony elementw, 340
tworzenie, 340
szablony internetowe, 330
szablony procesu, 36
szablony projektu testw, 399
szablony witryny, 54, 716
szablony XML, 264
generowanie, 265
okno projektowe, 267
projektowanie, 265
widoki szablonu, 266
XML Schema Explorer, 266
szablony XSD, 264
szeregowanie zada, 523

ledzenie stanu projektu, 38


ledzenie zmian, 364
rodowisko IDE, 30, 88, 89
Build, 91
Class Designer, 94
Customize, 95
czcionki, 110
Data, 92
Debug, 91
dokowanie okna, 106
dostosowywanie edytorw, 100
dostosowywanie paskw narzdzi, 95

Edit, 89
edytor kodu jzyka C#, 98
edytor kodu jzyka Visual Basic, 99
edytory kodu, 98
edytory tekstu, 98
File, 89
Format, 92
graficzne okna projektowe, 102
Help, 93
konfiguracja, 79
menu, 89
nawigacja, 88, 94
okna projektowe, 102
okno narzdzi, 103
opcje uruchomieniowe, 84
otwieranie starszej aplikacji, 88
pasek menu, 89
paski narzdzi, 94
poruszanie si midzy oknami, 108
Project, 89, 91
projekt, 85
Properties, 104
Query Designer, 94
Refactor, 89, 90
Solution Explorer, 97
standardowy pasek narzdzi, 94
strona startowa, 83
Table, 92
Test, 93
Toolbox, 103
Tools, 92
View, 90
Website, 90
Window, 93
zarzdzanie ustawieniami, 80
zarzdzanie wieloma oknami, 105
rodowisko IDE Macros, 616

T
Tab Order, 841
TabContainer, 919
TabControl, 373, 855
tabele, 942
budowanie zwizkw tabel, 948
definiowanie kolumn, 945
definiowanie struktury, 942
edycja struktury, 942
klucz gwny, 945
modyfikacja definicji, 948

1249

Skorowidz

tabele
okrelanie klucza gwnego, 945
wartoci null, 945
wirtualne tabele, 955
zwizki tabel, 942
tabele HTML, 286
TabIndex, 753
Table, 92, 792, 1167
Table Designer, 946
TableLayoutPanel, 836, 837, 855
Tables and Columns, 949
TableServiceContext, 1177
Table-valued Function, 961
tablice, 141
Array, 142
dostp do elementw, 142
indeks, 141
inicjacja wartoci elementw, 142
liczba elementw, 142
rozmiar, 141
tablice wielowymiarowe, 142
tagi, 693
tagi inteligentne, 1134, 1153
implementacja, 1153
SmartTagBase, 1153
Target Framework, 87
Task, 523
Task List, 393, 578
obiektowy model automatyzacji, 579
zadania uytkownika, 396
zadania zwizane z komentarzami, 394
zadania zwizane ze skrtami, 395
TaskItem, 563, 580
Delete, 579
skadowe, 579
TaskItems, 563, 580
Add, 579
TaskItems2, 563
TaskList, 563, 578, 579, 580
technologia ASP.NET Ajax, 904
technologia ClickOnce, 534
technologia LINQ, 994
technologia PLINQ, 995
technologia Silverlight, 933
technologia Windows Workflow, 1063
Template, 51, 563
Terminate All, 485, 493
TerminateWorkflow, 1085
Test, 93, 401
Test List Editor, 435, 436

1250

Test Results, 407


Test Runs, 409
Test Settings, 413
Test View, 407, 431, 432, 434
TestClass, 415, 416
TestCleanup, 416, 418
TestContext, 413, 429
CurrentTestOutcome, 414
DataConnection, 414
DataRow, 414
RequestedPage, 414
TestDeploymentDir, 414
TestLogsDir, 414
TestName, 414
TestInitialize, 416, 418
TestMethod, 406, 416, 438
testowanie, 398
testowanie jednostek, 398
testowanie usug WCF, 1049
testowanie wyjtkw, 422
ExpectedException, 422
TestProperty, 416
testy jednostek, 398, 399, 470
asercje, 420
AssemblyCleanup, 415
AssemblyInitialize, 415
Assert, 420
automatyzacja procesu tworzenia testw
jednostek, 402
Basic Unit Test, 401
ClassCleanup, 415, 418
ClassInitialize, 415, 418
Create Unit Tests, 403
Database Unit Test, 401
DataSource, 415
DeploymentItem, 416
ExpectedException, 416, 422
generowanie testw na podstawie istniejcego
kodu, 402
HostType, 416
Ignore, 416
klasy asercji, 420
klasy atrybutw testw, 415
klasy testw, 400, 406
konfiguracja atrybutw, 431
konfiguracja opcji, 409
kontrola operacji inicjujcych i porzdkujcych
na poziomie wykonywania testw, 419
kontrola ustawie testw, 411
Local.testsettings, 400

Skorowidz

menu Test, 401


opcje projektw testw, 410
operacje wykonywane po testach, 418
operacje wykonywane przed testami, 418
Ordered Test, 401
organizowanie testw, 434
piki .testsettings, 411
pisanie testw jednostek, 405
platforma, 413
pliki z konfiguracj, 400
projekt, 399, 400
przegldanie wynikw testw, 407
szablony projektw, 399, 401
Test Results, 407
Test Runs, 409
Test Settings, 413
Test View, 407, 434
TestClass, 415, 416
TestCleanup, 416, 418
TestContext, 413
TestInitialize, 416, 418
TestMethod, 406, 416
TestProperty, 416
Timeout, 416
TraceAndTestImpact.testsettings, 400
tworzenie projektu, 399
Unit Test, 401
Unit Test Wizard, 401, 402, 411
uruchamianie testw, 402
uruchamianie testw jednostek, 407
wczytywanie informacji o wczeniejszych
testach, 402
wygenerowany kod testw, 404
wyniki testw, 407
wywietlanie przebiegw testw, 409
zarzdzanie ustawieniami procesu generowania
testw, 404
zarzdzanie wynikami testw, 411
testy jednostek ASP.NET, 428
AspNetDevelopmentServerHost, 428
atrybuty rodowiska ASP.NET, 428
generowanie testw, 429
HostType, 428
konfiguracja hosta projektu testw, 430
UrlToTest, 428
testy jednostek zalene od danych, 423
DataSource, 423, 425
acuch poczenia, 423
nawizywanie poczenia przy uyciu pliku
konfiguracyjnego, 424

poczenie z danymi, 423


stosowanie danych testowych w asercjach, 426
uruchamianie testw, 427
wyniki testw, 427
rdo danych, 425
testy obcienia, 39
testy sieciowe, 39
testy uporzdkowane, 433
Ordered Test, 433
testy wytrzymaoci, 39
TextBlock, 880
TextBox, 274, 751, 792
TextBoxWatermarkExtender, 919
TextDocument, 563, 593, 594
CreateEditPoint, 599
skadowe, 594
TextPane, 563, 577
TryToShow, 577
TextPane2, 563
TextPoint, 596, 599
CreateInstance, 599
TextSelection, 596
TextWindow, 563, 576
ActivePane, 577
Panes, 577
TFS, 36
automatyzacja procesu kompilacji, 37
dostp do sieci WWW, 38
kontrola wersji, 37
raporty, 38
raporty oglne, 38
szablon procesu, 36
Web Access, 38
zarzdzanie projektem, 37
zarzdzanie przypadkami testowymi, 37
zarzdzanie wymaganiami, 37
Then, 136
this, 157
ThisAddIn, 1142
ThisDocument, 1150
ThisWorkbook, 1150
ThisWorkbook_Startup, 1150
Threads, 485, 517
Throw, 1086
Thrown, 475
time, 335
Timeout, 416
Timer, 274, 906
TODO, 394
Toggle All Outlining, 369

1251

Skorowidz

Toggle Breakpoint, 483, 486


Toggle Outlining Expansion, 369
Toolbox, 67, 103, 578, 581, 830, 831
dodawanie elementw, 582
usuwanie elementw, 582
ToolBox, 563, 578, 581
ToolBoxItem, 563, 581
ToolBoxItem2, 563
ToolBoxItems, 581
Add, 581
ToolBoxTab, 563
ToolBoxTab2, 563
ToolBoxTab3, 563
ToolBoxTabs, 581
ToolkitScriptManager, 919
Tools, 92
ToolStrip, 841, 844, 847, 850
ToolStripContainer, 838, 847
ToolStripItem, 841, 844
ToolTip, 841
ToolWindows, 660
Top, 833
TRACE, 206
TraceAndTestImpact.testsettings, 400
TransactedReceiveScope, 1090
Transaction, 1087
TransactionScope, 1087, 1089
Transact-SQL, 956
transakcje, 1087
transformacje obrazw, 895
TravelDataLib, 1098
TravelManagerWeb, 1098
TravelRequestService, 1098
TreeNode Editor, 850
TreeView, 849, 850, 905
edytor wzw, 850
obrazy, 850
Triggers, 912
true, 138
TryCatchFinally, 146
tryb nazywania elementw, 373
try-catch, 376
TryCatch, 1086
TryCreateInstance, 169
TryGetMember, 169, 172
TryInvokeMember, 169
TrySetMember, 169
T-SQL, 956, 961
tunneling event, 883
Tuple, 42, 144
Create, 144

1252

tworzenie
aplikacje ASP.NET MVC, 805
aplikacje biznesowe, 72
aplikacje do zarzdzania procesem, 1096
aplikacje dziaajce w chmurze, 64, 1170
aplikacje LINQ to SQL, 996
aplikacje okresowo nawizujce poczenie, 71
aplikacje Silverlight, 59, 934
aplikacje Windows, 46
aplikacje WPF uruchamiane w przegldarce, 922
aplikacje XBAP, 922
arkusze stylw, 758
baza danych, 943, 1099
biblioteka dostpu do danych, 1100
czynnoci Code Activity, 1106
czynnoci zoone, 1105
diagram bazy danych, 947
diagram klasy, 293
dodatki dla pakietu Office, 1136
dokumenty XSD, 265
dynamiczne aplikacje, 688
egzemplarz klasy, 131
egzemplarz nieistniejcej klasy, 156
elementy Web Part, 782
formularze sieciowe, 282, 285
formularze Windows, 826
fragmenty kodu, 385
interfejs sieciowy, 46
interfejs uytkownika, 822
katalogi zakadek, 248
klasy, 293
klasy kontrolki uytkownika, 655
klient sieciowy, 53
klucze obce, 948
komponenty, 290
kompozycje, 771
kontroler, 814
kontrolki, 290, 853
kontrolki niestandardowe, 857
kontrolki uytkownika ASP.NET, 802
kreatory, 677
kreatory Add New Item, 680
lista testw, 436
makra, 345, 613
menu, 842
metody, 299
model, 812
model EDM, 69
model procesu, 72
niestandardowa wstka pakietu Office, 1140
niestandardowe strona startowa, 310

Skorowidz

obiekty, 119, 153


obiekty bazy danych w kodzie zarzdzanym, 970
obiekty dynamiczne, 169
okna dialogowe, 681
pakiet instalacyjny ClickOnce, 536
pakiety, 341
pakiety za pomoc narzdzia VSI, 342
panele operacji pakietu Office, 1149
pasek narzdzi, 844
pasek statusu, 847
poczenie z baz danych, 943
procedury obsugi zdarze, 829
procedury skadowane, 956
procedury skadowane w C#, 971
proces, 1069
proces dynamiczny, 1080
proces oparty na komunikatach, 1090
proces oparty na XAML, 1069
proces typu Flowchart, 1094
proces za pomoc szablonu Code Activity, 1075
projekt, 85, 194, 333
projekt aplikacji sieciowej, 715
projekt aplikacji Windows, 272
projekt bazy danych, 962
projekt dekoracji, 702
projekt dodatku, 637
projekt instalacyjny aplikacji dla systemu
Windows, 541
projekt testw, 399, 400
projekt VSIX, 350
projekt witryny internetowej, 197
projekt WPF, 280
punkt edycji, 599
regiony, 368
regiony formularzy aplikacji Outlook, 1144
rozszerzenia dokumentw Office, 1147
rozszerzenia edytora, 701
rozwizania, 183
rozwizania WPF, 48
schematy kodu, 367
skrki, 772
strony ASP.NET, 737
strony obsugujce czciow aktualizacj, 907
strony oparte na stronie wzorcowej, 57
strony Web Part, 778
strony wzorcowe, 56, 765
struktury, 125
style, 756
szablony elementw, 340
szablony projektw, 333

szablony XML, 265


tabele, 942
testy jednostek, 406
testy jednostek zalene od danych, 423
testy uporzdkowane, 433
usugi sieciowe ASP.NET, 1020
usugi WCF, 74, 75, 1045, 1104
widok, 817
widoki (baza danych), 955
witryny, 907
witryny ASP.NET, 715
wyjtki SOAP, 1041
wyjtki usugi sieciowej, 1040
wyliczenia, 120
wyzwalacze, 960
zapytania SQL, 951
zapytania typu Management Event, 227
zbiory danych, 67
zdarzenia, 147
zrzut informacji diagnostycznych, 527
TypeCatalog, 691
typed dataset, 67
typy danych, 130
dynamic, 167
dynamiczne typy danych, 167
konwersja, 131
acuchy znakw, 130
obiekty, 130
struktury, 130
typy anonimowe, 156
typy oglne, 143, 144, 161
typy proste, 130
typy MIME, 931
typy projektw, 195
typy zcze, 954

U
UDDI, 1016
udostpnianie interaktywnych aplikacji w rnych
systemach, 933
udostpnianie ustawie dodatku, 662
UIHierarchyItem, 620, 621
ukad kontrolek, 831
ukad strony ASP.NET, 747
opcje pozycjonowania kontrolki, 749
pozycjonowanie bezwzgldne, 748, 751
pozycjonowanie wzgldne, 748
pozycjonowanie za pomoc stylw CSS, 748
ukad pynny, 748, 753

1253

Skorowidz

ukad tabelaryczny, 275


ukrywanie skadowych, 123
UML, 297
Undo, 94
UNDONE, 394
Uniform Resource Identifier, 1016
uniform resource locator, 1016
Unit Test, 401
Unit Test Wizard, 401, 402, 411
UnitTesting.Web, 428
Universal Description, Discovery, and Integration, 1016
Unload, 744
Unload Macro Project, 629
until, 140
Until, 140
UPDATE, 955, 992
Update Service Reference, 1037
UpdatePanel, 58, 906, 908
UpdatePanelTrigger Collection Editor, 912
UpdateProgress, 58, 906, 913
UpdateQuery, 992
uproszczone deklarowanie waciwoci, 166
URI, 1016, 1031, 1042
UriSource.LocalPath, 893
URL, 1016
UrlRoutingModule, 807
UrlToTest, 428
uruchamianie
aplikacje MVC, 820
aplikacje w chmurze, 64
aplikacje w trybie diagnozowania, 470, 471, 472
aplikacje XBAP, 925
kod, 260
kreator, 683
narzdzie do refaktoryzacji, 441
sesje diagnostyczne, 482
szablon XSLT dla dokumentu XML, 269
testy jednostek, 407
testy zalene od danych, 427
usugi WCF, 1049
zdalne diagnozowanie, 513
uruchamianie makra, 613, 614, 629
makra z parametrami, 632
menu, 630
okno polece, 632
paski narzdzi, 630
skrty klawiaturowe, 631
urzdzenia mobilne, 45
user control, 853
UserControl, 835

1254

userdomain, 335
UserLookupActivityLib, 1098
username, 335
using, 128, 367
Using, 153, 380
usuga WAS, 1118
usugi, 71, 74
usugi sieciowe, 75, 514, 1012
format danych, 1012
odkrywanie, 1013
SOAP, 75, 1012
wywoywanie, 1037
XML, 1012
usugi sieciowe ASP.NET, 1012, 1014, 1015
atrybut WebMethod, 1027
atrybut WebService, 1027
definiowanie referencji sieciowej, 1033
DISCO, 1016
formalny opis usugi sieciowej, 1029
HTTP, 1016, 1031
interfejsy, 1026
kod metod sieciowych, 1025
konsumowanie, 1033
metody, 1015
odpowied SOAP, 1032
opis, 1029
pliki usugi sieciowej, 1018
porednik usugi, 1036
projekt, 1017
SOAP, 1016, 1031
SoapException, 1040
sprawdzanie usugi sieciowej, 1031
tworzenie, 1020
tworzenie wyjtku usugi sieciowej, 1040
UDDI, 1016
URI, 1016
web.config, 1018
WebMethod, 1027
WebService, 1027
WebServiceAttribute, 1027
WSDL, 1016, 1029
WSE, 1016
wyjtki, 1039
wywietlanie metody sieciowej, 1031
wywoywanie metody sieciowej, 1032
wywoywanie usugi sieciowej, 1037
XML, 1016
XSD, 1016
danie SOAP, 1031

Skorowidz

usugi uruchomieniowe procesu, 1064


usugi WAS, 76
usugi WCF, 74, 75, 717, 1012, 1014, 1041, 1104
adres, 1042
adres punktu kocowego, 1053
diagnozowanie, 514
dziaania, 1042
elementy wizania, 1042
host, 1042, 1049
hosting, 1058
kanay, 1042
klient, 1042
konfiguracja, 76, 1050
konsumowanie, 74, 76, 1055
kontrakt, 1042
pliki usug, 1044
projekt, 1043
punkt kocowy, 1042
testowanie, 1049
tworzenie, 74, 75, 1045
URI, 1042
uruchamianie, 1049
wizanie, 1042, 1054
ustawianie
aktywne okno, 575
filtry punktw przerwania, 502
punkty przerwania, 258, 478, 494
punkty ledzenia, 504
warunki punktu przerwania, 500
usuwanie
nieuywane argumenty z metod obsugi
zdarze, 166
nieuywane instrukcje Using, 380
zadania, 579
utrwalanie procesu, 1116
uwierzytelnianie uytkownikw, 796
uzupenianie sw, 375

V
Validate, 742
ValidationSummary, 793, 794
Variant, 152
VBA, 1130
VBScript, 526
VendorReservationService, 1098
VerticalAlignment, 886
View, 90
View Call Hierarchy, 248
View Class Diagram, 293

ViewportAdornment1, 698
ViewportAdornment1Factory, 698
ViewResult, 808
ViewState, 742, 809
virtual, 122
VirtualPoint, 596, 601
Visual, 863, 879
Visual Basic, 41
automatyczne generowanie kodu do obsugi
waciwoci, 166
kontynuowanie wiersza, 167
usuwanie nieuywanych argumentw z metod
obsugi zdarze, 166
Visual Basic for Applications, 1130
Visual C#, 41
Visual C++, 41
Visual Database Tools, 942
Visual F#, 41
Visual Studio 2010, 23, 30
edycje, 31
strona startowa, 83
subskrypcja pakietu MSDN, 35
Visual Studio 2010 Express, 32
Visual Studio 2010 Image Library, 1140
Visual Studio 2010 Premium, 31, 34
Visual Studio 2010 Professional, 24, 31, 33
Visual Studio 2010 SDK, 349
Visual Studio 2010 Ultimate, 31, 34
Visual Studio Add-in, 637
Visual Studio Agents 2010, 39
Visual Studio Code Gallery, 310
Visual Studio Content Installer, 347
Visual Studio Debugger, 472
Visual Studio Export Template Wizard, 333
Visual Studio Extensibility, 693
Visual Studio Extension, 341
Visual Studio Extension Manager, 341
Visual Studio Gallery, 342
Visual Studio Installer, 342, 540
Visual Studio SDK, 693
Editor Classifier, 695
szablony projektu, 694
Visual Studio Team Explorer 2010, 38
Visual Studio Test Professional 2010, 38
Visual Studio Tools for Office, 1130
Visual styles, 206
Visual Web Developer 2010 Express, 33
void, 117
VSCloudService.exe, 1161, 1164
vsCMElement, 571

1255

Skorowidz

vsCommandExecOption, 652
vsCommandExecOptionDoDefault, 652
vsCommandExecOptionDoPromptUser, 652
vsCommandExecOptionPromptUser, 652
vsCommandExecOptionShowHelp, 652
VSContent, 342
atrybuty, 344
Attribute, 344
Attributes, 344
ContentVersion, 344
definiowanie pliku, 345, 346
Description, 343
DisplayName, 343
FileContentType, 343
FileName, 343
wzy, 343
VSContentInstaller.exe, 347
VSI, 342
plik VSContent, 342
tworzenie pakietw, 342
VSIX, 341, 349
Copy to Output Directory, 351
dodawanie rozszerzenia, 351
edytor manifestw, 352
kompilacja projektu, 353
manifest, 352
projekt, 350
rozpowszechnianie, 354
szablon projektu, 351
testowanie procesu instalacji, 354
vsPaneShowHow, 577
vstemplate, 336, 338, 344
VSTest, 428
VSTO, 1130
dodatki dla pakietu Office, 1136
niestandardowe panele zada, 1143
obsuga zdarze kontrolek, 1141
pami podrczna danych, 1152
vsToolBoxItemFormat, 581
vsToolBoxItemFormatDotNETComponent, 582
VSTS Database Edition, 962

W
W3Cs Web Content Accessibility Guidelines, 734
wariancja, 174
wariancja delegatw, 174
warstwa prezentacji, 860
wartoci null, 945
wartoci zmiennych, 505
warunki punktu przerwania, 500

1256

WAS, 76, 1059, 1118


Watch, 484, 507
wtki, 515, 523
WCAG, 734
WCF, 23, 75, 176, 1012, 1014, 1041
projekt usugi, 75
WCF Service, 717, 728
WCF Service Application, 75, 1043, 1044, 1049, 1050
WCF Service Host, 1049
WCF Service Library, 1049, 1050, 1051, 1055
WCF Service Web Role, 1167
WCF Workflow Service, 1068, 1069
WCF Workflow Service Application, 1043, 1065
wczytywanie danych, 160
wdraanie aplikacji dziaajcych w chmurze, 1199
Publish Cloud Service, 1202
Visual Studio, 1202
wdraanie w rodowisku testowym, 1200
wdraanie aplikacji na platform Azure, 1174
wdraanie procedur skadowanych, 974
wdraanie rozwiza po stronie klienta, 534
ClickOnce, 534
instalator systemu Windows, 535
Web, 1164
Web 2.0, 904
Web Configuration File, 728
Web Deployment Tool, 549, 550
Deploy SQL, 551
Include All Databases Configured in Deploy SQL
Tab, 551
One-Click Publishing, 553, 554
opcje wdraania baz SQL Server, 551
opcje wdraania rozwiza sieciowych, 551
Package/Publish, 550
Publish Web, 554
skrypty SQL, 552
uruchamianie procesu publikowania, 553
Web Form, 727
web forms, 737
Web Part, 776
Web Platform Installer, 33
Web Reference Name, 1035
Web Role, 64
Web Service, 727
Web Service Description Language, 1016
Web Service Enhancements, 1016
Web Site, 907, 1017
Web Site Administration Tool, 796
Web User Control, 727, 802
web.config, 55, 716, 717, 1018, 1050
WebForm, 44

Skorowidz

WebMethod, 1027
webnamespace, 335
WebPartManager, 777, 779
WebPartManagerMain.Personalization.
ResetPersonalizationState(), 788
WebPartZone, 777, 779
WebRole.cs, 1170
WebService, 1020, 1027
WebServiceAttribute, 1027
Website, 90
wersje Visual Studio 2010, 31
WF, 23, 72, 177, 1062, 1063
When Breakpoint Is Hit, 504
When Hit, 503, 504
Where, 163
WHERE, 909
while, 140
While, 140, 1083, 1084
wiadomoci zwizane ze rodowiskiem, 306
wizanie danych, 861, 909, 974
aplikacje sieciowe, 989
aplikacje WPF, 986
automatyczne generowanie zwizanych
kontrolek Windows Forms, 976
DataGridView, 983
DataList, 990
DetailsView, 989
dostosowywanie odwzorowania rda danych, 980
FormView, 989
GridView, 989, 990
kontrolki sieciowe, 989
kontrolki rda danych, 993
modyfikacja zapytania dla rda danych, 985
modyfikacja zbiorw danych o okrelonym
typie, 981
odwzorowywanie rde danych na kontrolki, 978
proces wizania danych, 975
Repeater, 989
rczne wizanie kontrolek formularzy
Windows, 982
wizanie kontrolek, 986
wybr obiektw rda danych, 978
wybr rda danych, 976
XAML, 987
zoone wizanie danych, 975
zmiana odwzorowywania danych tabeli, 979
wizanie danych w WPF, 881
DataContext, 882
kontekst danych, 882
System.Windows.Data.Binding, 881

widok, 806, 807


widok Split, 56
widoki (baza danych), 955
wielozadaniowo, 523
Win32_ComputerSystem, 226
Win32_Desktop, 226
Win32_LogicalDisk, 226
Win32_NetworkAdapter, 226
Win32_NetworkConnection, 226
Win32_NTEventLogFile, 226
Win32_OperatingSystem, 226
Win32_Printer, 226
Win32_Process, 226
Win32_Processor, 226
Win32_Product, 226
Win32_Service, 226
Win32_Share, 226
Win32_SystemAccount, 226
Win32_Thread, 226
Window, 93, 563, 572, 573, 592
CommandBars, 590
LinkedWindows, 586
skadowe, 573
WindowFrame, 586
Window2, 563
WindowHiding, 627
Windows, 563, 588
Windows Application, 203, 826, 976
Windows Azure, 63, 1158
Windows Azure Activity Log, 1204
Windows Azure Cloud Service, 1165, 1166, 1170
Windows Communication Foundation, 23, 74
Windows Control Library, 854
Windows Form Application, 46
Windows Forms, 272, 822
Windows Forms Designer, 275
Windows Forms Designer Options, 275
Windows Forms User Control, 1141
Windows Live, 318
Windows Management Instrumentation, 226
Windows Presentation Foundation, 23, 44, 271, 860
Windows Process Activation Service, 76, 1059, 1118
Windows Workflow, 72, 1062, 1063
aplikacje klienckie, 1064
CodeActivity, 1063
czynnoci Collection, 1086
czynnoci Control Flow, 1083
czynnoci Error Handling, 1086
czynnoci Flowchart, 1094
czynnoci Messaging, 1089

1257

Skorowidz

Windows Workflow
czynnoci Primitives, 1084
czynnoci procesw, 1082
czynnoci Runtime, 1084
czynnoci zwizane z komunikatami, 1089
komunikaty, 73
NativeActivity, 1063
obsuga transakcji, 1087
okno projektowe procesw, 1067
pami trwaa, 1117
proces, 72, 1063
proces hosta, 1063
projektowanie procesu, 73
projekty, 1065
silnik uruchomieniowy procesu, 1064
skadniki procesu, 1063
sposoby komunikowania si z pamici trwa, 1118
stan, 73
sterowanie przepywem, 1083
szablony elementw procesw, 1068
szablony projektw, 1065
tworzenia procesw, 1069
usugi uruchomieniowe procesu, 1064
zarzdzanie komunikatami, 1089
zbiory dziaa, 72
Windows Workflow Foundation, 23, 1062, 1063
Windows2, 563, 659
CreateLinkedWindowFrame, 586
WindowsBase.dll, 860
WindowsDefaultBounds, 828
WindowsDefaultLocation, 828
WindowVisibilityEvents, 627, 628
WinForm, 44
WinForms, 271
With, 153
witryny ASP.NET, 54, 714, 715
ASP.NET Development Server, 719
ASP.NET Reports Web Site, 717
ASP.NET Web Service, 716
ASP.NET Web Site, 716
dodawanie plikw, 728
dodawanie stron internetowych, 737
Dynamic Data Entities Web Site, 717
Dynamic Data Linq to SQL Web Site, 717
Empty Web Site, 717
IIS, 718
jzyk programowania, 724
katalogi, 725
kompozycje, 770
komunikacja z serwerem sieciowym przy uyciu
protokou HTTP, 723

1258

lokalny egzemplarz IIS, 720


mapa witryny, 728
opcje projektu, 729
pliki, 727
pooenie witryny, 717
serwer roboczy, 719, 720
skrki, 728, 770
SSL, 722
Starter Kit, 717
struktura witryny, 725
szablony, 716
tworzenie, 715
tworzenie jednolitego wygldu i zachowania, 754
udostpnianie witryny przy uyciu protokou
FTP, 722
WCF Service, 717
waciwoci, 729
Wizard, 793
WizardDialog, 681
Category, 681
ClassName, 681
wizardResult, 679
wizardResultBackOut, 679
wizardResultCancel, 679
wizardResultFailure, 679
wizardResultSuccess, 679
wizualizacja danych, 510
wkad w spoeczno, 332
pakiety startowe, 333
szablony, 333
tworzenie szablonw projektw, 333
wkraczanie w kod, 488, 489
waciwoci, 115, 166
definiowanie, 298
waciwoci formularzy Windows, 827
waciwoci konfiguracji kompilacji, 193
waciwoci projektu, 204
Application, 205
Build, 206
Build Events, 206
Compile, 207
Debug, 207
Publish, 208
Reference Paths, 208
References, 208
Resources, 208
Security, 208
Settings, 208
Signing, 209

Skorowidz

waciwoci rozwizania, 190


wczanie diagnozowania stron internetowych, 470
WMI, 226, 227
Word 2007 Document, 1136
Word 2010, 51
Workbook, 51
Worker, 1164
Worker Role, 1167
workflow application, 1062
Workflow Console Application, 1065, 1066, 1069
WorkflowApplication, 1074
WorkflowInvoker, 1074
WorkflowInvoker.Invoke, 1074, 1080, 1081
WorkflowServiceHost, 1075
WPF, 23, 44, 47, 61, 62, 177, 271, 280, 860, 923
animacja, 862
Application, 863
architektura platformy, 861
biblioteka klas, 863
Button, 863
Canvas, 871
Control, 863
ControlTemplate, 879
DispatcherObject, 863
DockPanel, 872
DocumentReader, 862
dostosowywanie wygldu kontrolek, 878
FlowDocumentReader, 862
formularze, 49, 874
Grid, 874
Grid.ColumnDefinitions, 874
jzyk XAML, 863
kontrolki kontenerowe, 871
media, 861
model programowania, 863
obsuga czcionek, 862
obsuga dokumentw, 862
okna dialogowe, 874, 875
okno projektowe, 865
panele, 871
poczenie kontrolki ze rdem danych, 881
projekt, 48
przypisywanie stylu, 879
StackPanel, 876
style, 878
Style, 878
szablony, 878, 879
TextBlock, 880
tworzenie aplikacji, 871
tworzenie kodu, 48

tworzenie ukadu, 871


Visual, 863, 879
wizanie danych, 861, 881
WrapPanel, 877
wspdziaanie z formularzami Windows, 861
wygld kontrolek, 862
wypenienie gradientem, 879
XAML, 48
zdarzenia przekazywane, 883
zmiana szablonu przycisku, 880
znaczniki, 48
WPF Application, 48, 280, 866
WPF Browser Application, 48, 923
WPF Custom Control Library, 49
WPF User Controls, 49
wpisywanie kodu, 363
WrapPanel, 871, 877, 885
WriteLine, 1085
WS-*, 1016
WSAT, 796
WSDL, 1012, 1016, 1029
WSDL.exe, 1030
WSE, 1016
wskazwki, 841
wskazwki dotyczce problemw, 364
wsplna specyfikacja jzyka, 40
wsplne rodowisko uruchomieniowe, 40
wsplny system typw, 40
wspuytkowane zasoby, 328
instalacja udostpnianych zasobw, 330
przechowywanie udostpnianych zasobw, 330
rodzaje wspuytkowanych danych, 329
wyszukiwanie szablonw wedug technologii, 329
wyszukiwanie zasobw, 328
wspuytkowanie makr, 618
wstawianie fragmentw kodu, 381
wstawianie komentarzy do okna z tekstem, 601
wstka, 1133
dodawanie elementw, 1139
elementy, 1139
grupy, 1139
modyfikacja, 1137
obsuga zdarze kontrolek, 1141
powierzchnia projektowa, 1138
Ribbon (Visual Designer), 1137
Ribbon (XML), 1137
zakadki, 1139
wstrzymywanie kodu, 260
wybr docelowego rodowiska, 86
wybr katalogu, 895

1259

Skorowidz

wybr rda danych, 976, 977, 990


wygld kontrolek, 840
wygld strony w przegldarce, 288
wyjtki, 146, 422, 474
usugi sieciowe, 1039
wykonywanie polece, 606
obiektowy model automatyzacji, 583
wykresy, 800, 801
wykrywanie typu zmiennej na podstawie
przypisania, 151
wyliczenia, 120
wyniki testw jednostek, 407
testy jednostek zalene od danych, 427
wyniki zapytania SQL, 953
wyodrbnianie interfejsw, 459
Extract Interface, 459
wyodrbnianie metod, 450, 451
Extract Method, 451
generowanie szkieletu metody, 457
wyodrbnianie pojedynczych wierszy kodu, 456
wyraenia lambda, 162, 163
WYSIWYG, 55
wyspy danych, 1150, 1151
wyszukiwanie przyrostowe, 257, 577
wyszukiwanie symboli, 256
wyszukiwanie szablonw wedug technologii, 329
wyszukiwanie tekstu w plikach, 253
wyszukiwanie testw, 435
wywietlanie danych, 849
dane hierarchiczne, 849
dane tabelaryczne, 852
DataGridView, 852
ImageList, 850
TreeView, 849
wywietlanie
dokumenty tekstowe, 596
kontrolki uytkownika, 660
metody sieciowe, 1031
okna narzdzi, 660
podpowiedzi DataTip, 508
referencje sieciowe, 1036
wywoywanie
makra, 629
metody sieciowe, 1032
metody z klasy bazowej, 122
procesy, 1074
usugi sieciowe, 1037
wyzwalacze, 960
tworzenie, 960

1260

wzbogacanie pakietu Microsoft Office, 1149


wzbogacanie rodowiska, 688
wzorzec MVC, 805

X
XAML, 44, 48, 53, 61, 271, 280, 863, 866
procesy, 1069
skadnia, 864
wizanie danych, 987
wsppraca midzy czonkami zespou
projektowego, 865
XAML Browser Application, 48, 922
XBAP, 48, 904, 922, 923
Xbox, 45
XDocument, 165
XDR, 264, 265
XElement, 165
XHTML, 55, 288
XML, 164, 165, 993, 1016
XML (kontrolka ASP.NET), 793
XML Schema Document, 1016
XML Schema Explorer, 265, 266
XML Schemat Document, 265
XML-Data Reduced, 264
XmlDataSource, 800
XMLDataSource, 993
XmlSerializer, 1151
xml-stylesheet, 270
XNA, 45
Xor, 136
XSD, 264, 265, 343, 1016
XSLT, 269

Y
year, 335

Z
zachowanie kontrolek, 840
zadania, 523, 579
przeczanie stanu ukoczenia zada, 580
zadania uytkownika, 396
zadania zwizane z komentarzami, 394
HACK, 394
niestandardowe znaczniki w komentarzach, 395
TODO, 394
UNDONE, 394

Skorowidz

zadania zwizane ze skrtami, 395


zagniedanie kontrolek uytkownika, 855
zagniedanie stron wzorcowych, 769
zakadki, 247, 594
dodawanie, 247
katalogi, 248
zalenoci projektu, 191
zapisywanie
komunikat XML, 165
obrazy, 891
proces, 1077
zapytania LINQ, 156, 160, 994
Entity Framework, 1006
funkcje anonimowe, 162
operatory, 161
Order by, 163
Select, 163
Where, 163
wyraenia lambda, 162, 163
zapytania SQL, 951
DELETE, 955
diagram, 953
dopracowywanie zapyta, 953
INSERT, 954, 955
JOIN, 954
kod SQL, 953
kryteria, 953
SELECT, 953, 955
tworzenie, 951
tworzenie tabel, 955
UPDATE, 955
wyniki, 953
zczenia, 954
zarzdzanie aplikacj, 226
zarzdzanie arkuszami stylw, 287
zarzdzanie cyklem ycia aplikacji, 36
zarzdzanie dodatkami, 653
zarzdzanie etykietami punktw, 499
zarzdzanie grupami elementw, 141
zarzdzanie komunikatami, 1089
zarzdzanie makrami, 614
zarzdzanie projektami, 37, 218
zarzdzanie projektami baz danych, 969
zarzdzanie przypadkami testowymi, 37
zarzdzanie punktami przerwania, 496, 498
zarzdzanie rozwizaniami, 217
zarzdzanie stylami CSS, 287, 760
zarzdzanie ustawieniami systemu pomocy, 312
zarzdzanie ustawieniami rodowiska IDE, 80
zarzdzanie wieloma oknami rodowiska IDE, 105
zarzdzanie wymaganiami, 37

zarzdzanie wynikami testw, 411


zarzdzanie zabezpieczeniami, 226
zarzdzanie zdalnymi usugami, 225
zasady stylw, 755
zasoby wspuytkowane, 328
zatrzymywanie kodu, 260
zaznaczanie tekstu, 237
zbiory dziaa, 72
zbir danych, 67
dostp do danych, 67
tworzenie, 67
zbir danych o okrelonym typie, 981
zdalne diagnozowanie, 513
monitor zdalnego diagnozowania, 513
msvsmon.exe, 513
rdbsetup.exe, 513
Remote Debugging Monitor, 513
uprawnienia, 513
zdarzenia, 147, 227
aplikacje Windows, 47
ASP.NET, 741
definiowanie, 148, 298
DTEEvents, 628
EventArgs, 148
EventHandler, 147, 149
formularze Windows, 827, 828
makra, 623
obiektowy model automatyzacji, 608
obsuga, 149
OnPaint, 857
strony ASP.NET, 743
subskrybowanie, 149
tworzenie, 147
zgaszanie, 149
zdarzenia przekazywane, 883
zdarzenia bezporednie, 883
zdarzenia przesyane w d, 883
zdarzenia przesyane w gr, 883
zegar, 274
zestaw testw, 398
zgaszanie bdw, 323, 324
zgaszanie zdarze, 147, 149
Zip to Exe Conversion Tool, 349
zczenia, 954
zoone wizanie danych, 975
zmiana
format przechowywania projektu makr, 619
kolejno parametrw, 463
rozmiar kontrolek, 277
wersja platformy .NET, 87

1261

Skorowidz

zmiana nazw, 446


Object Browser, 447
Rename, 447, 449
Solution Explorer, 447
zmienne, 130
deklaracja, 131
niejawne okrelanie typu, 151
rzutowanie, 132
wykrywanie typu zmiennej na podstawie
przypisania, 151
zmie i kontynuuj, 511
znaczniki HTML, 285
zrzut informacji diagnostycznych, 527
Zune, 71
zwizki tabel, 948
jeden do jednego, 950
wiele do wielu, 950
zwizki zwrotne, 950

1262

rdo danych, 852, 909, 976


AccessDataSource, 993
Database, 977
dostosowywanie odwzorowania, 980
kontrolki, 993
ObjectDataSource, 993
SiteMapDataSource, 993
SqlDataSource, 993
wybr obiektw, 978
wybr rda danych, 976
XMLDataSource, 993

dania HTTP, 807


dania SOAP, 1031

You might also like