You are on page 1of 50

Microsoft

Visual Studio 2008.


Ksiga eksperta
Autor: Lars Powers, Mike Snell
Tumaczenie: Tomasz Walczak
ISBN: 978-83-246-2016-6
Tytu oryginau: MS Visual Studio 2008 Unleashed
Format: 172x245, stron: 1312
Odkryj wspaniae moliwoci rodowiska Visual Studio 2008
i twrz niezawodne aplikacje
Jak optymalnie wykorzysta rodowisko Visual Studio?
Jak tworzy wydajne aplikacje dla przedsibiorstw?
Jak wzbogaci rodowisko programistyczne przy uyciu wasnych dodatkw?
Microsoft Visual Studio 2008 to nowoczesne rodowisko programistyczne, ktre umoliwia
bardziej precyzyjne i szybsze tworzenie niezawodnych aplikacji. W najnowszej wersji
wprowadzono wiele poprawek w jzykach (takich jak zapytania w LINQ) oraz liczne
nowoci na platformie .NET. Usprawniono take dostpne narzdzia na przykad
w programie Visual Studio Team System, pozwalajcym na skuteczn prac zespoow.
Wprowadzono w nim moliwoci profilowania wydajnoci i udoskonalono system
kompilacji grupowej. Wrd nowych funkcji pojawiy si kreatory do wizania danych,
inteligentne znaczniki oraz narzdzia do zarzdzania projektami.
Microsoft Visual Studio 2008. Ksiga eksperta stanowi kompletne i szczegowe
omwienie tego wyjtkowego rodowiska programistycznego. Z podrcznika dowiesz si,
jak tworzy dodatki, makra i kreatory oraz jak zbudowa aplikacje oparte na formularzach
Windows i platformie WPF. Poznasz produkty z rodziny Visual Studio Team System, ktre
umoliwiaj wydajn prac w zespole. Nauczysz si korzysta z narzdzi
programistycznych platformy .NET, pracowa z bazami danych i zarzdza zmianami
w kodzie rdowym.
rodowisko Visual Studio 2008-12-07 rozwizania i projekty
Przegldarki i eksploratory
Tworzenie i wykorzystanie wspuytkowanego kodu
Korzystanie z narzdzi zwikszajcych produktywno
Obiektowy model automatyzacji
Tworzenie makr, kreatorw i dodatkw
Arkusze stylw
Tworzenie aplikacji opartych na formularzach Windows
Praca z bazami danych
Dodawanie procesw do aplikacji
Aplikacje biznesowe oparte na pakiecie Office
Praca zespoowa i Visual Studio Team System
Kontrolka kodu rdowego
Wykorzystaj wiedz eksperck
i zosta jeszcze bardziej profesjonalnym programist!

Spis treci
O autorach .................................................................................................... 19
Dedykacje ..................................................................................................... 20
Podzikowania ............................................................................................ 20
Wprowadzenie ............................................................................................. 21

Cz I

Wprowadzenie do Visual Studio 2008 .................................. 25

Rozdzia 1. Krtki przegld rodowiska Visual Studio 2008 ...................................... 27


Oczekiwane usprawnienia rodowiska ..................................................................................... 28
Jedno narzdzie wiele zada .......................................................................................... 29
Bardziej przejrzyste okna .................................................................................................... 31
Zapisywanie ustawie .......................................................................................................... 35
Wspuytkowanie (i konsumowanie) kodu w ramach spoecznoci .......................... 37
Wzbogacona obsuga okna Class Designer ...................................................................... 38
Rozwijanie aplikacji z interfejsem uytkownika ..................................................................... 38
Zwikszanie wydajnoci programistw aplikacji sieciowych ........................................ 40
Bardziej inteligentne klienty ............................................................................................... 51
Rozwizania oparte na pakiecie Office .............................................................................. 56
Rozwizania na urzdzenia przenone .............................................................................. 59
Tworzenie powizanych rozwiza opartych na usugach ................................................... 63
Tworzenie aplikacji i procesw biznesowych ................................................................... 63
Tworzenie i konsumowanie usug ..................................................................................... 66
Praca z danymi ............................................................................................................................. 68
Projektowanie danych ......................................................................................................... 68
Odwzorowywanie obiektw na dane relacyjne ................................................................ 70
Tworzenie aplikacji okresowo nawizujcych poczenie .............................................. 71
Produkty z rodziny Visual Studio ............................................................................................. 73
Wersje Express ...................................................................................................................... 73
Wersja Standard ................................................................................................................... 74
Wersja Professional .............................................................................................................. 75
Team Systems ........................................................................................................................ 76
Narzdzia Expression ........................................................................................................... 78
Podsumowanie ............................................................................................................................. 79

Rozdzia 2. Krtki przegld rodowiska IDE ................................................................. 81


Instalowanie rodowiska Visual Studio ................................................................................... 82
Wybr jzyka ......................................................................................................................... 83
Konfigurowanie rodowiska programistycznego ............................................................ 83
Strona startowa ............................................................................................................................ 86
Opcje uruchomieniowe ....................................................................................................... 87
Pierwszy projekt .......................................................................................................................... 88

Spis treci

Pasek menu ................................................................................................................................... 88


Liczne paski narzdzi .................................................................................................................. 93
Standardowy pasek narzdzi ............................................................................................... 94
Dostosowywanie paskw narzdzi .................................................................................... 95
Okno narzdzi .............................................................................................................................. 97
Graficzne okna projektowe ........................................................................................................ 98
Edytory tekstu ............................................................................................................................ 100
Edytory kodu ....................................................................................................................... 100
Dostosowywanie edytorw ............................................................................................... 102
Solution Explorer ....................................................................................................................... 104
Okno Properties ......................................................................................................................... 104
Zarzdzanie wieloma oknami rodowiska IDE .................................................................... 105
Przyczepianie ...................................................................................................................... 106
Dokowanie ........................................................................................................................... 107
Podsumowanie ........................................................................................................................... 109

Rozdzia 3. Rozszerzenia platformy i jzykw .NET w wersji 2008 .......................... 111


Przegld usprawnie w Visual Studio 2008 z podziaem na jzyki .NET ......................... 112
Usprawnienia IDE zwizane z jzykiem Visual Basic ................................................... 113
Usprawnienia IDE zwizane z jzykiem C# ................................................................... 114
Dodatki do jzykw .NET w wersji 2008 ............................................................................... 115
Wykrywanie typu zmiennej na podstawie przypisania ................................................ 116
Tworzenie obiektw i ustawianie ich waciwoci w jednym wierszu kodu .............. 118
Dodawanie metod do istniejcych klas ........................................................................... 120
Tworzenie egzemplarzy nieistniejcych klas .................................................................. 121
Pisanie prostych funkcji anonimowych w kodzie ......................................................... 122
Dodawanie logiki biznesowej do wygenerowanego kodu ............................................ 124
Dostp do danych i pobieranie ich za pomoc jzykw .NET .................................... 126
Dzielenie podzespow na wiele plikw .......................................................................... 128
Bezporednie korzystanie z elementw XML ................................................................ 129
Usuwanie nieuywanych argumentw z metod obsugi zdarze
(tylko w Visual Basic) ...................................................................................................... 130
Automatyczne generowanie kodu do obsugi waciwoci (tylko w C#) ................... 130
Usprawnienia platformy .NET Framework 3.5 .................................................................... 131
Podsumowanie ........................................................................................................................... 134

Cz II

Szczegowe omwienie rodowiska IDE .......................... 135

Rozdzia 4. Rozwizania i projekty .............................................................................. 137


Wprowadzenie do rozwiza .................................................................................................. 138
Tworzenie rozwizania ...................................................................................................... 138
Korzystanie z rozwiza .................................................................................................... 144
Zapoznawanie si z projektami ............................................................................................... 149
Tworzenie projektu ............................................................................................................ 150
Uywanie plikw definicji projektu ................................................................................. 154
Praca z projektami .............................................................................................................. 159
Podsumowanie ........................................................................................................................... 164

Spis treci

Rozdzia 5. Przegldarki i eksploratory ...................................................................... 167


Okno Solution Explorer ........................................................................................................... 168
Ikony i wskazwki graficzne ............................................................................................. 169
Zarzdzanie rozwizaniami .............................................................................................. 172
Zarzdzanie projektami ..................................................................................................... 174
Okno Class View ....................................................................................................................... 175
Pasek narzdzi ..................................................................................................................... 175
Pasek wyszukiwania ........................................................................................................... 176
Panel obiektw .................................................................................................................... 176
Panel skadowych ............................................................................................................... 178
Okno Server Explorer ............................................................................................................... 179
Poczenia z danymi ........................................................................................................... 180
Komponenty serwera ......................................................................................................... 181
Okno Object Browser ............................................................................................................... 185
Zmiana zasigu ................................................................................................................... 185
Przegldanie obiektw ....................................................................................................... 186
Okno Document Outline ......................................................................................................... 188
Modyfikowanie elementw ............................................................................................... 188
Podsumowanie ........................................................................................................................... 189

Rozdzia 6. Wprowadzenie do edytorw i okien projektowych ............................... 191


Podstawy ..................................................................................................................................... 192
Edytor tekstu ....................................................................................................................... 192
Okna projektowe rodowiska Visual Studio .................................................................. 195
Pisanie kodu w edytorze ........................................................................................................... 195
Otwieranie edytora ............................................................................................................. 196
Pisanie kodu ........................................................................................................................ 196
Budowa okna edytora kodu .............................................................................................. 198
Narzdzia do nawigowania po kodzie ............................................................................. 201
Przeszukiwanie dokumentw ........................................................................................... 204
Diagnozowanie w edytorze kodu ..................................................................................... 213
Drukowanie kodu ............................................................................................................... 216
Uywanie okna Code Definition ...................................................................................... 218
Tworzenie i modyfikowanie dokumentw oraz szablonw XML ..................................... 219
Generowanie szablonw .................................................................................................... 220
Edycja arkuszy stylw XSLT ............................................................................................. 221
Uywanie kaskadowych arkuszy stylw ................................................................................. 222
Dodawanie zasad stylw .................................................................................................... 222
Definiowanie atrybutw arkuszy stylw ......................................................................... 222
Tworzenie aplikacji klienckich dla systemu Windows ........................................................ 223
Tworzenie projektw aplikacji dla systemu Windows ................................................. 223
Tworzenie projektw WPF ............................................................................................... 232
Tworzenie formularzy sieciowych .......................................................................................... 235
Projektowanie aplikacji opartych na formularzach sieciowych .................................. 236
Tworzenie komponentw i kontrolek .................................................................................... 242
Tworzenie nowego komponentu lub kontrolki ............................................................. 242
Uwagi na temat pisania kodu komponentw ................................................................ 243
Podsumowanie ........................................................................................................................... 245

Spis treci

Rozdzia 7. Spoeczno .NET: wykorzystanie


i tworzenie wspuytkowanego kodu ................................................... 247
Moliwoci Visual Studio zwizane ze spoecznoci .......................................................... 248
Strona startowa Visual Studio .......................................................................................... 248
Menu Help ........................................................................................................................... 253
Wykrywanie i wykorzystanie wspuytkowanych zasobw .............................................. 265
Rodzaje wspuytkowanych zasobw ............................................................................ 265
Wyszukiwanie odpowiednich zasobw ........................................................................... 267
Instalowanie i przechowywanie udostpnianych zasobw .......................................... 267
Wasny wkad w spoeczno ................................................................................................... 270
Tworzenie udostpnianych elementw (szablonw projektw i elementw) .......... 270
Tworzenie szablonw projektw ..................................................................................... 271
Tworzenie szablonw elementw .................................................................................... 277
Tworzenie pakietw ........................................................................................................... 278
Udostpnianie wasnych rozwiza ................................................................................ 286
Podsumowanie ........................................................................................................................... 286

Cz III

Tworzenie kodu i zarzdzanie nim ..................................... 289

Rozdzia 8. Korzystanie z narzdzi zwikszajcych produktywno ....................... 291


Podstawowe narzdzia pomocnicze edytorw kodu ........................................................... 293
ledzenie zmian .................................................................................................................. 294
Wskazwki dotyczce problemw ................................................................................... 294
Aktywne odnoniki ............................................................................................................ 296
Kolorowanie skadni .......................................................................................................... 296
Schematy i nawigacja ................................................................................................................ 297
Schematy kodu .................................................................................................................... 297
Nawigowanie po kodzie HTML ....................................................................................... 300
Inteligentne znaczniki i operacje ............................................................................................. 301
Okno projektowe HTML .................................................................................................. 302
Okno projektowe formularzy Windows ......................................................................... 302
Edytor kodu ......................................................................................................................... 303
Mechanizm IntelliSense ........................................................................................................... 303
Uzupenianie sw (Complete Word) ............................................................................. 305
Okno z informacjami podrcznymi (Quick Info) ......................................................... 306
Okno z list skadowych (List Members) ........................................................................ 307
Okno z informacjami o parametrach (Parameter Info) ............................................... 308
Porzdkowanie instrukcji Using ...................................................................................... 308
Fragmenty kodu i kod szablonowy .................................................................................. 309
Dopasowywanie nawiasw ............................................................................................... 319
Dostosowywanie mechanizmu IntelliSense do wasnych potrzeb .............................. 321
Okno Task List ........................................................................................................................... 321
Zadania zwizane z komentarzami .................................................................................. 323
Zadania zwizane ze skrtami .......................................................................................... 324
Zadania uytkownika ......................................................................................................... 324
Podsumowanie ........................................................................................................................... 325

Spis treci

Rozdzia 9. Refaktoryzacja kodu ................................................................................. 327


Podstawy refaktoryzacji w Visual Studio ............................................................................... 329
Uruchamianie narzdzi do refaktoryzacji ....................................................................... 330
Podgld zmian .................................................................................................................... 334
Zmienianie nazw ....................................................................................................................... 335
Uruchamianie operacji Rename ....................................................................................... 336
Uywanie okna dialogowego Rename ............................................................................. 337
Wyodrbnianie metod .............................................................................................................. 339
Uruchamianie refaktoryzacji Extract Method ............................................................... 339
Wyodrbnianie metod ....................................................................................................... 340
Generowanie szkieletu metody ........................................................................................ 347
Wyodrbnianie interfejsw ...................................................................................................... 347
Uruchamianie refaktoryzacji Extract Interface .............................................................. 348
Wyodrbnianie interfejsw ............................................................................................... 348
Refaktoryzacja parametrw ..................................................................................................... 351
Usuwanie parametrw ....................................................................................................... 351
Przeksztacanie zmiennych lokalnych na parametry .................................................... 353
Zmiana kolejnoci parametrw ........................................................................................ 355
Hermetyzacja pl ....................................................................................................................... 356
Uruchamianie refaktoryzacji Encapsulate Field ............................................................ 357
Okno dialogowe Encapsulate Field .................................................................................. 357
Podsumowanie ........................................................................................................................... 358

Rozdzia 10. Diagnozowanie w Visual Studio 2008 ..................................................... 359


Podstawy diagnozowania ......................................................................................................... 360
Scenariusz ............................................................................................................................ 361
Wiele etapw diagnozowania ........................................................................................... 361
Diagnozowanie aplikacji (samodzielne sprawdzanie) .................................................. 362
Podsumowanie podstaw diagnozowania ........................................................................ 372
Debuger rodowiska Visual Studio ......................................................................................... 372
Menu i pasek narzdzi Debug .......................................................................................... 373
Opcje diagnozowania ......................................................................................................... 378
Wkraczanie w kod, wychodzenie z niego i przeskakiwanie ......................................... 379
Okrelanie warunkw wstrzymania wykonywania kodu ............................................. 384
Korzystanie z punktw ledzenia (When Hit) ........................................................... 394
Podgldanie danych w debugerze .................................................................................... 396
Korzystanie z funkcji zmie i kontynuuj .................................................................... 401
Diagnozowanie zaawansowane ............................................................................................... 402
Zdalne diagnozowanie ....................................................................................................... 402
Diagnozowanie usug WCF .............................................................................................. 404
Diagnozowanie aplikacji wielowtkowych ..................................................................... 404
Diagnozowanie skryptw dziaajcych po stronie klienta ........................................... 408
Podsumowanie ........................................................................................................................... 408

Spis treci

Cz IV

Wzbogacanie rodowiska Visual Studio ............................. 411

Rozdzia 11. Wprowadzenie do obiektowego modelu automatyzacji ...................... 413


Przegld obiektowego modelu automatyzacji ....................................................................... 414
Wersje modelu obiektowego ............................................................................................ 415
Kategorie automatyzacji .................................................................................................... 417
Obiekt gwny DTE (DTE2) ............................................................................................. 417
Obiekty Solution i Project ........................................................................................................ 418
Kontrolowanie projektw wchodzcych w skad rozwizania .................................... 421
Dostp do kodu projektu ................................................................................................... 422
Okna ............................................................................................................................................ 426
Dostp do okien .................................................................................................................. 426
Interakcja z oknami ............................................................................................................ 427
Okna tekstowe i panele ...................................................................................................... 430
Rodzaje okien narzdzi ...................................................................................................... 432
Okna poczone .................................................................................................................. 440
Paski polece .............................................................................................................................. 441
Dokumenty ................................................................................................................................. 445
Dokumenty tekstowe ......................................................................................................... 446
Obiekty polecenia ...................................................................................................................... 458
Wykonywanie polece ....................................................................................................... 459
Dodawanie klawiszy skrtu .............................................................................................. 460
Obiekty debugera ...................................................................................................................... 461
Zdarzenia automatyzacji .......................................................................................................... 462
Podsumowanie ........................................................................................................................... 463

Rozdzia 12. Tworzenie makr ......................................................................................... 465


Rejestrowanie makr ................................................................................................................... 467
Korzystanie z okna Macro Explorer ....................................................................................... 468
Uywanie rodowiska IDE Macros ......................................................................................... 470
Projekty makr ...................................................................................................................... 470
Pisanie makr ........................................................................................................................ 473
Diagnozowanie ................................................................................................................... 477
Obsuga zdarze ................................................................................................................. 478
Wywoywanie makr ........................................................................................................... 483
Podsumowanie ........................................................................................................................... 487

Rozdzia 13. Tworzenie kreatorw i dodatkw ............................................................ 489


Tworzenie pierwszego projektu dodatku ............................................................................... 491
Ustawianie parametrw dodatku ..................................................................................... 491
Struktura dodatkw .................................................................................................................. 500
Cykl ycia dodatkw .......................................................................................................... 500
Reagowanie na polecenia .................................................................................................. 506
Zarzdzanie dodatkami ..................................................................................................... 507
Przykadowy dodatek paleta do wybierania kolorw ..................................................... 509
Pocztkowe operacje .......................................................................................................... 509
Tworzenie klasy kontrolki uytkownika ......................................................................... 510

10

Spis treci

Zmiany w klasie Connect .................................................................................................. 514


Udostpnianie ustawie dodatku ..................................................................................... 517
Tworzenie kreatorw dla rodowiska Visual Studio ............................................................ 532
Analiza struktury kreatorw ............................................................................................. 532
Tworzenie kreatorw typu Add New Item ..................................................................... 536
Podsumowanie ........................................................................................................................... 541

Cz V

Tworzenie aplikacji dla przedsibiorstw ............................ 543

Rozdzia 14. Tworzenie aplikacji ASP.NET .................................................................... 545


Podstawy witryn w ASP.NET .................................................................................................. 547
Tworzenie nowego projektu aplikacji sieciowej ............................................................ 547
Kontrolowanie waciwoci i opcji projektu ................................................................... 559
Tworzenie stron internetowych ....................................................................................... 565
Projektowanie interfejsu uytkownika ................................................................................... 574
Okrelanie ukadu strony i pooenia kontrolek ........................................................... 576
Tworzenie jednolitego wygldu i zachowania ................................................................ 581
Tworzenie UI konfigurowanego przez uytkownika .................................................... 600
Praca z kontrolkami ASP.NET ................................................................................................ 612
Przegld kontrolek ASP.NET ........................................................................................... 612
Standardowe kontrolki ASP.NET .................................................................................... 614
Kontrolki do walidacji ....................................................................................................... 614
Kontrolki logowania .......................................................................................................... 616
Kontrolki nawigacyjne witryny ........................................................................................ 621
Kontrolki danych ................................................................................................................ 622
Kontrolki uytkownika ...................................................................................................... 624
Podsumowanie ........................................................................................................................... 625

Rozdzia 15. Tworzenie aplikacji opartych na formularzach Windows ..................... 627


Podstawy projektowania formularzy ...................................................................................... 628
Uwzgldnianie uytkownika kocowego ........................................................................ 628
Rola standardw UI ........................................................................................................... 629
Planowanie interfejsu uytkownika ................................................................................. 630
Tworzenie formularza .............................................................................................................. 631
Typ projektu Windows Application ................................................................................ 632
Waciwoci i zdarzenia formularza ................................................................................ 633
Dodawanie kontrolek i komponentw .................................................................................. 635
Ukad i pozycjonowanie kontrolek .................................................................................. 637
Uywanie kontenerw ....................................................................................................... 641
Wygld i zachowanie kontrolek ....................................................................................... 646
Praca z kontrolkami ToolStrip ......................................................................................... 647
Wywietlanie danych ......................................................................................................... 654
Tworzenie wasnych kontrolek ............................................................................................... 659
Dziedziczenie z istniejcej kontrolki ............................................................................... 659
Definiowanie kontrolki uytkownika .............................................................................. 660
Tworzenie wasnej kontrolki ............................................................................................ 663
Podsumowanie ........................................................................................................................... 664

11

Spis treci

Rozdzia 16. Tworzenie bogatszych i bardziej inteligentnych


interfejsw uytkownika .......................................................................... 665
Platforma Windows Presentation Foundation ..................................................................... 666
Model programowania ...................................................................................................... 669
Wprowadzenie do okna projektowego WPF ............................................................................ 672
XAML i panele projektowe ............................................................................................... 673
Programowanie z wykorzystaniem WPF ............................................................................... 677
Ukad .................................................................................................................................... 678
Style i szablony .................................................................................................................... 684
Wizanie danych ................................................................................................................ 688
Zdarzenia przekazywane ................................................................................................... 689
Tworzenie prostej przegldarki obrazw ............................................................................... 691
Rozpoczynanie tworzenia ukadu .................................................................................... 692
Zapisywanie obrazw ......................................................................................................... 694
Wizanie rysunkw ............................................................................................................ 697
Metody do obsugi zdarze zwizanych z przyciskami i efekty
do modyfikowania obrazu .............................................................................................. 698
Wybr katalogu przy uyciu standardowego okna dialogowego ................................ 699
Podsumowanie ........................................................................................................................... 704

Rozdzia 17. Tworzenie bogatych aplikacji internetowych ........................................ 707


Tworzenie aktywnych aplikacji klienckich dziaajcych w standardowych
przegldarkach ........................................................................................................................ 708
AJAX-owe kontrolki w ASP.NET .................................................................................... 709
Tworzenie stron AJAX-owych ......................................................................................... 710
AJAX/ASP.NET Control Toolkit biblioteka o otwartym dostpie
do kodu rdowego ........................................................................................................ 715
Tworzenie wyjtkowych bogatych interakcji opartych na przegldarkach
w systemie Windows .............................................................................................................. 722
Niezalene aplikacje WPF a programy XBAP WPF ...................................................... 723
Tworzenie aplikacji WPF uruchamianych w przegldarce .......................................... 723
Zagadnienia zwizane z zabezpieczeniami ..................................................................... 726
Instalowanie aplikacji XBAP ............................................................................................. 730
Udostpnianie interaktywnych aplikacji w rnych systemach ......................................... 735
Wprowadzenie do Silverlight ........................................................................................... 735
Tworzenie aplikacji Silverlight ......................................................................................... 736
Uywanie technologii Silverlight na stronach internetowych ..................................... 745
Podsumowanie ........................................................................................................................... 749

Rozdzia 18. Praca z bazami danych .............................................................................. 751


Tworzenie tabel i zwizkw ..................................................................................................... 752
Tworzenie nowej bazy danych SQL Server ..................................................................... 752
Definiowanie tabel .............................................................................................................. 754
Korzystanie z Database Diagram Designer .................................................................... 757
Praca z poleceniami SQL .......................................................................................................... 761
Pisanie zapyta ................................................................................................................... 761
Tworzenie widokw ........................................................................................................... 765

12

Spis treci

Programowanie procedur skadowanych ....................................................................... 766


Tworzenie wyzwalaczy ...................................................................................................... 770
Tworzenie funkcji definiowanych przez uytkownika ................................................. 771
Korzystanie z projektw bazy danych .................................................................................... 771
Tworzenie projektu bazy danych ..................................................................................... 772
Automatyczne generowanie skryptw ............................................................................ 773
Wykonywanie skryptu ....................................................................................................... 774
Tworzenie obiektw bazy danych w kodzie zarzdzanym .................................................. 775
Rozpoczynanie projektu SQL Server ............................................................................... 775
Tworzenie procedury skadowanej w C# ........................................................................ 776
Wizanie kontrolek z danymi .................................................................................................. 779
Wprowadzenie do wizania danych ................................................................................ 779
Automatyczne generowanie zwizanych kontrolek Windows Forms ....................... 780
Modyfikowanie zbiorw danych o okrelonym typie ................................................... 786
Rczne wizanie kontrolek formularzy Windows ......................................................... 788
Wizanie danych z kontrolkami sieciowymi .................................................................. 791
Odwzorowania obiektowo-relacyjne ...................................................................................... 796
Przegld technologii LINQ ............................................................................................... 797
Odwzorowywanie przy uyciu narzdzia O/R Designer .............................................. 798
Kod LINQ ............................................................................................................................ 801
Podsumowanie ........................................................................................................................... 804

Rozdzia 19. Aplikacje oparte na usugach ................................................................... 805


Wprowadzenie do usug ........................................................................................................... 806
Dlaczego usugi sieciowe ASP.NET i WCF? ................................................................... 808
Usugi sieciowe ASP.NET ........................................................................................................ 809
Projekt ASP.NET Web Service ......................................................................................... 810
Tworzenie usugi sieciowej ASP.NET ............................................................................. 813
Konsumowanie usugi sieciowej ...................................................................................... 829
Zarzdzanie wyjtkami usug sieciowych ....................................................................... 835
Usugi WCF ................................................................................................................................ 836
Szablon projektu WCF ...................................................................................................... 837
Tworzenie usug WCF ....................................................................................................... 839
Konfigurowanie usug WCF ............................................................................................. 844
Konsumowanie usugi WCF ............................................................................................. 852
Hosting i instalowanie usug WCF .................................................................................. 854
Podsumowanie ........................................................................................................................... 855

Rozdzia 20. Dodawanie procesw do aplikacji ........................................................... 857


Podstawy technologii Windows Workflow ........................................................................... 858
Skadniki procesu ............................................................................................................... 859
Szablony projektw typu Workflow ................................................................................ 860
Okno projektowe procesw .............................................................................................. 861
Szablony elementw procesw ......................................................................................... 863
Czynnoci procesw ........................................................................................................... 866
Tworzenie procesw sekwencyjnych ...................................................................................... 866
Projektowanie procesu ...................................................................................................... 868

13

Spis treci

Tworzenie hosta i klienta procesu ................................................................................... 881


Uruchamianie procesu ...................................................................................................... 889
Tworzenie procesw stanowych ............................................................................................. 890
Projektowanie procesu stanowego ................................................................................... 891
Inicjowanie stanw i przechodzenie midzy nimi ........................................................ 892
Definiowanie klienta i hosta ............................................................................................. 901
Uruchamianie procesu stanowego ................................................................................... 906
Podsumowanie ........................................................................................................................... 907

Rozdzia 21. Tworzenie aplikacji biznesowych opartych na pakiecie Office ............ 909
Przegld rozszerzalnych funkcji pakietu Office .................................................................... 911
Funkcje pakietu Office ....................................................................................................... 911
Typy projektw Office w Visual Studio .......................................................................... 914
Tworzenie dodatkw dla pakietu Office ................................................................................ 916
Modyfikowanie wstki ..................................................................................................... 916
Modyfikowanie panelu zada ........................................................................................... 921
Tworzenie regionw formularzy aplikacji Outlook ...................................................... 923
Tworzenie rozszerze dokumentw Office ........................................................................... 925
Kontrolki kontenerowe ..................................................................................................... 926
Tworzenie paneli operacji ................................................................................................. 927
Przechowywanie danych w pamici podrcznej ............................................................ 929
Implementowanie wasnych tagw inteligentnych ....................................................... 932
Podsumowanie ........................................................................................................................... 935

Cz VI

Visual Studio Team System ................................................. 937

Rozdzia 22. Praca zespoowa i Visual Studio Team System ....................................... 939
Przegld projektw tworzenia oprogramowania .................................................................. 940
MSF Agile ............................................................................................................................ 941
MSF dla CMMI ................................................................................................................... 942
Wprowadzenie do Visual Studio Team System .................................................................... 944
Visual Studio Team Architect .......................................................................................... 945
Visual Studio Team System Development Edition ....................................................... 946
Visual Studio Team System Test Edition ........................................................................ 948
Visual Studio Team System Database Edition ............................................................... 950
Team Foundation Server ................................................................................................... 950
Podsumowanie ........................................................................................................................... 953

Rozdzia 23. Zarzdzanie i praca z projektami zespoowymi ..................................... 955


Anatomia Team Foundation Server ....................................................................................... 956
Warstwa aplikacji ............................................................................................................... 956
Warstwa danych ................................................................................................................. 959
Bezpieczestwo ................................................................................................................... 960
Zarzdzanie projektem zespoowym ...................................................................................... 963
Tworzenie nowego projektu zespoowego ...................................................................... 963
Dodawanie uytkownikw do zespou projektowego .................................................. 966
Kontrolowanie struktury projektu i iteracji ................................................................... 972

14

Spis treci

Przyczanie si do zespou projektowego ............................................................................. 973


czenie si z Team Foundation Server .......................................................................... 973
Korzystanie z Team Explorer ........................................................................................... 975
Korzystanie z portalu projektu ......................................................................................... 975
Korzystanie z Microsoft Office ......................................................................................... 976
Korzystanie z alarmw projektu ...................................................................................... 978
Praca z raportami projektu ............................................................................................... 979
Podsumowanie ........................................................................................................................... 981

Rozdzia 24. Kontrola kodu rdowego ...................................................................... 983


Podstawy systemu kontroli kodu rdowego serwera Team Foundation ....................... 985
Podstawowa architektura .................................................................................................. 985
Uprawnienia w systemie zabezpiecze ........................................................................... 986
Rozpoczynanie korzystania z kontroli kodu rdowego serwera Team Foundation .... 987
Konfigurowanie rodowiska Visual Studio .................................................................... 987
Uywanie okna Source Control Explorer ....................................................................... 989
Zarzdzanie obszarami roboczymi .................................................................................. 991
Dodawanie plikw do systemu kontroli kodu rdowego ......................................... 995
Modyfikowanie plikw objtych kontrol kodu rdowego ............................................. 996
Pobieranie plikw z repozytorium kodu rdowego ................................................... 996
Przesyanie zmian ............................................................................................................... 997
Wprowadzenie do zbiorw zmian ................................................................................. 1003
Odkadanie kodu .............................................................................................................. 1005
Scalanie zmian ................................................................................................................... 1006
Rozgazianie i scalanie .......................................................................................................... 1009
Rozgazianie ..................................................................................................................... 1011
Scalanie ............................................................................................................................... 1011
Podsumowanie ......................................................................................................................... 1012

Rozdzia 25. ledzenie elementw roboczych ........................................................... 1015


Wprowadzenie do elementw roboczych ........................................................................... 1017
Funkcje elementw roboczych i SDLC ......................................................................... 1017
Wybieranie zestawu elementw roboczych dla wasnego projektu .......................... 1018
Identyfikowanie wsplnych cech elementw roboczych ........................................... 1023
Zarzdzanie elementami roboczymi za pomoc narzdzi Team Explorer ..................... 1031
Tworzenie nowych elementw roboczych ................................................................... 1033
Wyszukiwanie i filtrowanie elementw roboczych ..................................................... 1034
Wprowadzenie do rl zespoowych ...................................................................................... 1038
Wizja projektu .................................................................................................................. 1040
Meneder projektu ........................................................................................................... 1041
Analityk biznesowy .......................................................................................................... 1049
Programista ....................................................................................................................... 1051
Tester .................................................................................................................................. 1054
Dostosowywanie elementw roboczych do wasnych potrzeb ......................................... 1055
Umieszczanie w procesie elementw roboczych ......................................................... 1056
Dostosowywanie istniejcych elementw roboczych ................................................. 1063
Podsumowanie ......................................................................................................................... 1065

15

Spis treci

Rozdzia 26. Wersja Development Edition ................................................................. 1067


Graficzne rozwijanie kodu ..................................................................................................... 1068
Narzdzie Class Designer ................................................................................................ 1069
Dodawanie elementw do diagramu ............................................................................. 1070
Definiowanie relacji midzy klasami ............................................................................. 1071
Definiowanie metod, waciwoci, pl i zdarze ......................................................... 1075
Testy jednostek dla programistw ........................................................................................ 1078
Przykadowy test jednostki .............................................................................................. 1078
Pisanie efektywnych testw jednostek ........................................................................... 1079
Uywanie klas i metod testw jednostek ...................................................................... 1080
Tworzenie testw jednostek ............................................................................................ 1081
Uruchamianie testw jednostek ..................................................................................... 1083
Analiza pokrycia kodu ..................................................................................................... 1086
Profilowanie wydajnoci ......................................................................................................... 1089
Tworzenie sesji wydajnoci ............................................................................................. 1090
Konfigurowanie sesji ........................................................................................................ 1091
Jednostki docelowe sesji .................................................................................................. 1096
Raporty ............................................................................................................................... 1098
Czytanie raportw dotyczcych wydajnoci ................................................................. 1098
Analiza kodu ............................................................................................................................ 1106
Konfigurowanie zasad ..................................................................................................... 1107
Reguy globalne ................................................................................................................. 1108
Traktowanie przypadkw naruszenia regu jak bdw w kodzie ............................ 1109
Zawieszanie obowizywania regu ................................................................................. 1109
Przeprowadzanie analizy ................................................................................................. 1111
Wywietlanie wynikw .................................................................................................... 1112
Zalecane rozwizanie problemu ..................................................................................... 1112
Miary kodu ............................................................................................................................... 1113
Miary .................................................................................................................................. 1114
Uruchamianie pomiarw kodu ...................................................................................... 1115
Przegldanie wynikw ..................................................................................................... 1116
Podsumowanie ......................................................................................................................... 1117

Rozdzia 27. Wersja Architecture Edition ................................................................... 1119


Elementy wersji Team Architect ........................................................................................... 1121
Szablony projektw .......................................................................................................... 1121
Szablony elementw ......................................................................................................... 1122
Projektowanie aplikacji ........................................................................................................... 1123
Korzystanie ze schematw aplikacji .............................................................................. 1124
Definiowanie systemw .......................................................................................................... 1133
Schemat systemu .............................................................................................................. 1133
Definiowanie infrastruktury .................................................................................................. 1136
Schemat logicznego centrum danych ............................................................................ 1137
Wdraanie aplikacji ................................................................................................................. 1146
Schemat wdraania ........................................................................................................... 1147
Sprawdzanie poprawnoci wdroenia ........................................................................... 1148
Raport dotyczcy wdroenia ........................................................................................... 1148

16

Spis treci

Implementowanie aplikacji .................................................................................................... 1149


Ustawianie waciwoci implementacji ......................................................................... 1150
Generowanie projektw .................................................................................................. 1150
Podsumowanie ......................................................................................................................... 1151

Rozdzia 28. Wersja Test Edition .................................................................................. 1153


Tworzenie i konfigurowanie testw oraz zarzdzanie nimi .............................................. 1154
Projekty testw .................................................................................................................. 1155
Elementy testw ................................................................................................................ 1157
Zarzdzanie testami ......................................................................................................... 1158
Konfigurowanie testw .................................................................................................... 1160
Testy sieciowe .......................................................................................................................... 1161
Rejestrowanie testw sieciowych ................................................................................... 1161
Zarzdzanie daniami w testach aplikacji sieciowych ............................................... 1164
Uruchamianie testw sieciowych i przegldanie wynikw ........................................ 1164
Dodawanie danych do testw sieciowych ..................................................................... 1164
Pobieranie wartoci z testw sieciowych ...................................................................... 1171
Zasady sprawdzania poprawnoci w daniach ........................................................... 1174
Testy obcienia ....................................................................................................................... 1175
Tworzenie testw obcienia .......................................................................................... 1176
Przegldanie i modyfikowanie testw obcienia ....................................................... 1183
Uruchamianie testw obcienia i wywietlanie wynikw ........................................ 1183
Testy rczne .............................................................................................................................. 1185
Tworzenie testw rcznych ............................................................................................. 1185
Wykonywanie testw rcznych ...................................................................................... 1186
Testy oglne ............................................................................................................................. 1187
Testy uporzdkowane ............................................................................................................. 1188
Tworzenie testw uporzdkowanych ............................................................................ 1188
Podsumowanie ......................................................................................................................... 1189

Rozdzia 29. Wersja Database Edition ......................................................................... 1191


System projektowania baz danych ........................................................................................ 1192
Tworzenie projektw baz danych .................................................................................. 1194
Okno Schema View .......................................................................................................... 1199
Porwnywanie schematw ..................................................................................................... 1202
Przegldanie definicji obiektw ..................................................................................... 1205
Skrypty do aktualizacji schematw ................................................................................ 1205
Opcje porwnywania ....................................................................................................... 1207
Porwnywanie danych ............................................................................................................ 1208
Przegldanie szczegw z poziomu rekordw ............................................................ 1209
Przegldanie i uruchamianie skryptu aktualizacji ....................................................... 1210
Refaktoryzacja Rename .......................................................................................................... 1211
Opcje zmiany nazwy ........................................................................................................ 1213
Podgld zmian w schemacie ........................................................................................... 1213
Testy jednostek ........................................................................................................................ 1213
Tworzenie testw jednostek ............................................................................................ 1214
Narzdzie do projektowania testw jednostek baz danych ........................................ 1216

17

Spis treci

Generowanie danych .............................................................................................................. 1218


Tworzenie planu generowania danych ......................................................................... 1219
Podgld wygenerowanych danych ................................................................................. 1222
Generowanie danych ....................................................................................................... 1226
Kompilacja i wdraanie .......................................................................................................... 1227
Podsumowanie ......................................................................................................................... 1229

Rozdzia 30. Team Foundation Build .......................................................................... 1231


Przegld Team Foundation Build ......................................................................................... 1232
Architektura Team Foundation Build ........................................................................... 1233
Tworzenie nowej wersji .......................................................................................................... 1236
Definiowanie pliku projektu wersji ............................................................................... 1238
Okrelanie regu zachowywania wersji ......................................................................... 1241
Okrelanie konfiguracji agentw procesu budowania ................................................ 1241
Planowanie procesu budowania i ustawianie wyzwalaczy budowania .................... 1243
Modyfikowanie definicji wersji ............................................................................................. 1245
Plik projektu TFSBuild.proj ............................................................................................ 1245
Funkcje MSBuild .............................................................................................................. 1246
Uruchamianie budowania ...................................................................................................... 1246
Monitorowanie i analizowanie wersji .................................................................................. 1247
Wprowadzenie do przegldarki Team Build Explorer ............................................... 1248
Raporty dotyczce wersji ................................................................................................. 1251
Podsumowanie ......................................................................................................................... 1251

Skorowidz ................................................................................................ 1253

18

Rozdzia 8.
Korzystanie z narzdzi
zwikszajcych
produktywno

Cz III Tworzenie kodu i zarzdzanie nim

W rozdziale 6., Wprowadzenie do edytorw i okien projektowych, opisalimy podstawowe funkcje


okien projektowych i edytorw rodowiska Visual Studio 2008. W tym rozdziale przedstawimy ich
nieco bardziej zaawansowane moliwoci, analizujc liczne narzdzia zwikszajce produktywno
dostpne w IDE. Wiele z tych narzdzi jest zagniedonych w edytorach tekstu. Inne s bardziej
uniwersalne. Wszystkie su jednemu celowi maj pomaga programistom pisa kod szybko
i poprawnie.
W rozdziale 6., Wprowadzenie do edytorw i okien projektowych, przy opisie edytorw uylimy
bardzo prostego programu aplikacji konsolowej wywietlajcej w oknie konsoli napis "Witaj,
wiecie". Na rysunku 8.1 wida, jak ostateczna wersja kodu wyglda w oknie edytora.
Rysunek 8.1.
Program HelloWorld
w edytorze kodu

Jeli Czytelnik utworzy ten projekt i wpisa jego kod w Visual Studio, mg zauway, e ju w tym
prostym programie narzdzia zwikszajce produktywno znajduj zastosowanie. Po pierwsze, po
rozpoczciu wpisywania kodu w szablonowym pliku edytor dodaje tabulacj i umieszcza kursor
w nowej pozycji, dziki czemu kod ma eleganckie wcicia.
Po drugie, w czasie wpisywania wiersza kodu Visual Studio reaguje na kady nowy znak, zgadujc,
jak instrukcj programista chce napisa i udostpniajc pomoc w rnej postaci (rysunek 8.2).
rodowisko wywietla wskazwki dotyczce uzupeniania pisanego kodu, informacje o wybieranych skadowych i o parametrach potrzebnych do uzupenienia danej metody. Te waciwoci s
wsplnie nazywane mechanizmem IntelliSense, a jego postaci i funkcje opisujemy szczegowo
w dalszej czci rozdziau.
W czasie wpisywania kodu IDE nieustannie sprawdza za pomoc kompilatora, jaki tekst zosta ju
wpisany. Jeli kompilator wykryje bd, dynamicznie wywietla informacje o tym w oknie Output.

292

Rozdzia 8. Korzystanie z narzdzi zwikszajcych produktywno

Rysunek 8.2.
Dziaanie mechanizmu
IntelliSense

Dlatego ju w przypadku jednego prostego wiersza kodu Visual Studio wykonuje wiele operacji
zwikszajcych produktywno programisty:
Inteligentnie formatuje kod.
Sugeruje skadni kodu.
Wywietla opisy skadowych, co pomaga uy poprawnej skadni.
Graficznie wyrnia odpowiadajce sobie ograniczniki.
Wskazuje bdy, nieustannie kompilujc w tle biec wersj kodu rdowego.

Te waciwoci dyskretnie pomagaj programicie i prowadz go przez proces pisania kodu, zwikszajc szybko wykonywania tego zadania.

Podstawowe narzdzia pomocnicze


edytorw kodu
Ju sam interfejs uytkownika edytora kodu udostpnia graficzne elementy, ktre pomagaj radzi
sobie z problemami czsto wystpujcymi w czasie pisania kodu. Te mechanizmy pozwalaj wykry,
co zmienio si w dokumencie, a take jakie problemy dotyczce kompilacji w nim wystpuj.
Ponadto rne elementy skadni poszczeglnych jzykw s graficznie wyrnione przy uyciu
kolorowego tekstu.

293

Cz III Tworzenie kodu i zarzdzanie nim

ledzenie zmian
W czasie modyfikowania pliku z kodem rdowym niezwykle przydatna jest wiedza o tym, ktre
wiersze zostay ju zatwierdzone (czyli zapisane na dysk), a ktre nie. ledzenie zmian pozwala to
wykry. Na marginesie wyboru edytora widoczna jest ta pionowa linia cignca si wzdu
wszystkich wierszy kodu, ktre zostay zmodyfikowane, ale nie s jeszcze zapisane. Jeli zawarto pliku zmienia si, a nastpnie programista j zapisa, rodowisko oznacza j zielon pionow
lini na marginesie wyboru.
Dziki tym tym i zielonym liniom mona szybko wyrni:
Kod, ktry nie zmieni si od czasu wczytania pliku (brak linii).
Kod, ktry zosta zmieniony i zapisany po wczytaniu pliku (zielona linia).
Kod, ktry zosta zmodyfikowany, ale nie jest jeszcze zapisany (ta linia).

ledzenie zmian funkcjonuje do czasu zamknicia okna edytora. Inaczej mwic, ledzenie zmian
obejmuje jedynie dan sesj modyfikowania biecego dokumentu. Po zamkniciu i ponownym
otwarciu okna linie znikn, poniewa dany dokument dziaa wtedy w nowej sesji.
Rysunek 8.3 przedstawia fragment pliku kodu zawierajcy rne linie zwizane ze ledzeniem zmian.
Rysunek 8.3.
ledzenie zmian

Wskazwki dotyczce problemw


Kompilator Visual Studio wsppracuje z edytorem kodu w celu wyrnienia wszelkich problemw wykrytych w kodzie rdowym. Kompilator potrafi dziaa w tle, co umoliwia edytorowi
wskazywanie problemw w czasie wpisywania kodu przez programist, dziki czemu nie trzeba
czeka na etap kompilacji projektu.

294

Rozdzia 8. Korzystanie z narzdzi zwikszajcych produktywno

Problemy dotyczce kodu s oznaczane wykami, czyli falistymi, kolorowymi liniami umieszczanymi pod niepoprawnymi fragmentami. S to te same wyki, ktre w programie Microsoft
Word su do oznaczania bdw zwizanych z pisowni i gramatyk. Kolor wyka oznacza klas
problemu. Tabela 8.1 opisuje, jakie typy problemw odpowiadaj poszczeglnym kolorom.
Tabela 8.1. Kolory informujce o problemach

Kolor

Problem

Czerwony

Bd skadni. Kod nie skompiluje si z powodu naruszenia skadniowych wymaga


i zasad jzyka.

Niebieski

Bd semantyczny. Informuje on o tym, e kompilator nie potrafi w biecym kontekcie


znale uytego typu lub rozpozna konstrukcji programowej. Niebieskim wykiem
zostanie oznaczona na przykad nazwa typu, ktry nie jest dostpny w kontekcie kompilacji.
Najczciej wskazuje to na literwk (na przykad niepoprawnie napisan nazw klasy).

Purpurowy

Ostrzeenie. Purpurowy wyk oznacza, e dany fragment kodu wywoa ostrzeenie.

Umieszczenie kursora myszy nad wskazwk dotyczc problemu pozwala wywietli komunikat
o bdzie lub o ostrzeeniu, co wida na rysunku 8.4.

Rysunek 8.4. Wskazwki dotyczce problemw w kodzie

295

Cz III Tworzenie kodu i zarzdzanie nim

Aktywne odnoniki
Edytory tekstu obsuguj w dokumentach aktywne odnoniki. Kliknicie odnonika powoduje
otwarcie danego adresu URL w przegldarce. Jednym z zastosowa tej waciwoci jest zagniedanie w komentarzach adresw URL prowadzcych do dokumentacji lub innych pomocnych
informacji.

Kolorowanie skadni
Edytor tekstu potrafi wykrywa rne konstrukcje kodu i oznacza je, dziki czemu mona je atwiej
zidentyfikowa. Na przykad okno edytora kodu domylnie wywietla komentarze na zielono.
Identyfikatory w kodzie s czarne, sowa kluczowe niebieskie, acuchy znakw czerwone i tak dalej.
Liczba rnych elementw, jakie edytor tekstu potrafi wykry i nada im odmienny kolor, jest
bardzo dua. Edytor rozpoznaje ponad 100 rnych elementw. Programista moe dostosowa
sposb kolorowania kadego z tych typw do wasnych preferencji za pomoc wza Environments
w oknie dialogowym Options. Moe lubi uywa wikszej czcionki? Moe wyszy kontrast bardziej odpowiada wykonywanym przez programist zadaniom? A co z umieszczaniem wikszej
iloci kodu na widocznym obszarze ekranu? Jest to tylko kilka przyczyn, ktre mog skania
programist do modyfikacji ustawie domylnych za pomoc wspomnianego okna dialogowego.
Rysunek 8.5 przedstawia okno dialogowe z czcionkami i kolorami. Umoliwia ono okrelenie
koloru tekstu oraz koloru ta zwykego kodu, kodu HTML, kodu CSS i innych elementw. Mona
wybra element z ich listy, a nastpnie zmieni sposb jego kolorowania przy uyciu list rozwijanych z kolorami tekstu i ta.

Rysunek 8.5. Ustawianie czcionki i koloru

296

Rozdzia 8. Korzystanie z narzdzi zwikszajcych produktywno

Uwaga
Moliwo kontroli sposobu kolorowania elementw edytora kodu
to nie wszystko, co oferuje okno dialogowe widoczne na rysunku 8.5.
Za jego pomoc mona zmieni schematy kolorw wszystkich okien
rodowiska Visual Studio. Obiekt wybrany z listy rozwijanej Show
Settings For pozwala okreli modyfikowany fragment rodowiska
IDE, co pociga za sob zmian elementw widocznych na licie
Display Items.
Zawsze mona uy przycisku Use Defaults (w prawym grnym rogu
okna dialogowego) i przywrci domylne ustawienia kolorw.

Schematy i nawigacja
Niektre dokumenty, takie jak pliki z kodem rdowym i znacznikami, zawieraj naturalne
relacje nadrzdny-podrzdny midzy elementami w zakresie organizacji i skadni kodu. Na przykad wzy danych XML mog zawiera inne wzy. Take funkcje i inne konstrukcje jzykw
programowania, takie jak ptle czy bloki try-catch, dziaaj jako kontenery dla innych wierszy
kodu. Generowanie schematw (ang. outlining) umoliwia utworzenie graficznej reprezentacji
relacji nadrzdny-podrzdny.

Schematy kodu
Schematy kodu s tworzone w edytorach kodu. Umoliwiaj zwijanie lub rozwijanie obszarw
kodu w granicach okna edytora. Na marginesie wyboru widoczne s linie grupujce oraz pola
suce do rozwijania i zwijania tekstu. Te pola mona klikn w celu ukrycia lub wywietlenia
wierszy kodu pogrupowanych w logiczny sposb.
Tworzenie schematw kodu najatwiej jest zrozumie na prostym przykadzie. Wrmy do rysunku
8.1. Wida na nim wyjciowy kod aplikacji konsolowej. Zawiera ona procedur Main, deklaracj
klasy, deklaracj przestrzeni nazw i kilka instrukcji using. Grupy schematu kodu widoczne na
marginesie wyboru reprezentuj graficznie obszary kodu, ktre mog zosta zwinite (ukryte).
Poniewa deklaracja klasy to logiczny kontener, na marginesie wyboru przy tym wierszu kodu
znajduje si pole umoliwiajce zwinicie kodu (pole ze znakiem minus). Midzy tym polem
a kocem kontenera cignie si linia (w tym przypadku, poniewa jest to kod w jzyku C#, deklaracja klasy koczy si nawiasem klamrowym). Kliknicie pola zwijania przy deklaracji klasy spowoduje, e Visual Studio ukryje cay jej kod.

297

Cz III Tworzenie kodu i zarzdzanie nim

Wskazwka
Jzyki Visual Basic i C# umoliwiaj samodzielne tworzenie nazwanych obszarw kodu. Suy do tego specjalne sowo kluczowe. Naley
uy pary #region i #endregion (#Region i #End Region w Visual
Basic), aby utworzy wasny kontener na kod, ktry bdzie odpowiednio wywietlany przez mechanizm obsugi schematw kodu.
Poniewa kady obszar ma nazw, jest to wygodna technika organizowania i segregowania logicznych fragmentw kodu. Na przykad kod wygenerowany przez okno projektowe formularzy Windows jest automatycznie umieszczany w obszarze o nazwie Windows
Forms Designer generated code.
Szybki sposb na utworzenie regionu polega na uyciu opcji Surround With. W edytorze naley zaznaczy kod, ktry ma znale si
w nowym obszarze, klikn ten fragment prawym przyciskiem myszy,
wybra opcj Surround With z menu kontekstowego, a nastpnie uy
polecenia #region (#Region w Visual Basic).

Rysunek 8.6 przedstawia okno edytora, w ktrym kod deklaracji klasy jest ukryty. Warto zauway,
e w polu zwijania widoczny jest teraz znak plus, co informuje, e kliknicie go spowoduje ponowne
wywietlenie ukrytego obecnie kodu. Ponadto pierwszy wiersz kodu deklaracji klasy zosta zmodyfikowany i koczy si polem z trzema kropkami.
Rysunek 8.6.
Zwinity obszar
schematu

Edytor HTML take obsuguje tworzenie podobnych schematw. Elementy HTML mona rozwija
i zwija, aby wywietli lub ukry zawarte w nich obiekty.

298

Rozdzia 8. Korzystanie z narzdzi zwikszajcych produktywno

Menu Outlining
W menu Edit/Outlining dostpnych jest kilka polece zwizanych ze schematami kodu (rysunek 8.7).
Toggle Outlining Expansion ukrywa lub wywietla obszar schematu na podstawie

biecej pozycji kursora w oknie edytora.


Toggle All Outlining ukrywa lub wywietla wszystkie obszary schematu w edytorze.
Stop Outlining wycza automatyczne ukrywanie schematw kodu (wszystkie ukryte

obszary zostan rozwinite). To polecenie jest dostpne tylko po wczeniejszym wczeniu automatycznego generowania schematu.
Stop Hiding Current usuwa schemat biecego obszaru. To polecenie jest dostpne

tylko po wczeniejszym wyczeniu automatycznego generowania schematu.


Collapse to Definitions ukrywa wszystkie obszary procedur. To polecenie jest przy-

datne do wywietlania pojedynczych wierszy kodu dla wszystkich skadowych danego


typu.
Start Automatic Outlining wcza generowanie schematu kodu. To polecenie jest

dostpne tylko po wczeniejszym wyczeniu generowania schematu.

Rysunek 8.7. Menu Edit/Outlining

299

Cz III Tworzenie kodu i zarzdzanie nim

Generowanie schematu kodu to udogodnienie, ktre umoliwia zmniejszenie widocznej iloci kodu
i zwikszenie jego czytelnoci poprzez ukrycie nieistotnych fragmentw. Dziki temu mona
wywietla jedynie specyficzne obszary dotyczce wykonywanego zadania.

Wskazwka
Umieszczenie wskanika myszy nad polem z trzema kropkami
w ukrytym obszarze kodu pozwala wywietli zawarto danego
obszaru w polu przypominajcym okno podpowiedzi. Dziki temu
nie trzeba rozwija danego obszaru, aby go ponownie wywietli.

Nawigowanie po kodzie HTML


Jednym z problemw zwizanych z duymi lub zoonymi stronami internetowymi jest nawigowanie po nich. Analiza kodu HTML moe by skomplikowana z powodu wielu poziomw i warstw
zagniedonych znacznikw. Programista moe utworzy stron zawierajc tabel w tabeli, ktra
znajduje si w nastpnej tabeli. Jak jednak ma okreli w czasie modyfikowania kodu HTML
(w oknie projektowym lub edytorze kodu), nad ktrym fragmentem tabeli pracuje? Mwic inaczej,
skd wiadomo, ktra cz hierarchii znacznikw jest aktywna?

Mechanizm nawigowania po znacznikach


Powyszy problem mona rozwiza za pomoc mechanizmu nawigowania po znacznikach dostpnego w Visual Studio. Do jego obsugi suy szereg przyciskw widocznych na dole okna edytora
stron internetowych. Te przyciski znajduj si na prawo od zakadek okna projektowego i edytora. rodowisko wywietla znaczniki (jako przyciski) reprezentujce znaczniki od biecego do
zewntrznego. Jeli cieka jest zbyt duga, aby mona j wywietli w oknie edytora w caoci, jest
skracana po stronie znacznika zewntrznego. Dostpny jest wtedy przycisk, ktry pozwala przej
w kierunku tego znacznika.
Rysunek 8.8 przedstawia program z rozdziau 6. stron HTML suc do logowania. W czasie
modyfikowania przez programist przycisku OK tej przykadowej strony mechanizm nawigowania wywietla ciek prowadzc do zewntrznego znacznika <html>.
Dowolnego przycisku widocznego na pasku nawigacji mona uy do bezporedniego zaznaczenia
zawartoci danego znacznika z uwzgldnieniem jego samego lub bez niego. Lista rozwijana, wywietlana w wyniku kliknicia przycisku znacznika, zawiera opcje umoliwiajce wybranie caego znacznika lub tylko jego zawartoci. Ta pierwsza opcja powoduje zaznaczenie znacznika wraz z ca jego
zawartoci. Druga moliwo wie si z pominiciem pocztku i koca znacznika, przez co wybierana jest jedynie jego zawarto.
Jest to doskonay mechanizm do szybkiego poruszania si w gr i w d duych drzew znacznikw dokumentw HTML.

300

Rozdzia 8. Korzystanie z narzdzi zwikszajcych produktywno

Rysunek 8.8. Mechanizm nawigowania po znacznikach

Okno Document Outline


Okno Document Outline wywietla drzewo reprezentujce elementy HTML strony. Ten hierarchiczny widok to take doskonae narzdzie do nawigowania, poniewa umoliwia szybkie objcie
wzrokiem caej struktury strony internetowej i natychmiastowe przejcie do dowolnego elementu.
Aby otworzy okno Document Outline, naley wybra opcj Document Outline z menu View.
Rysunek 8.9 przedstawia przykadowe okno schematu kodu. Wida w nim elementy nagwka,
strony i ciaa oraz jednostki ze skryptw i kodu.
Kliknicie dowolnego elementu powoduje przejcie do niego (i zaznaczenie go) w oknie projektowym oraz oczywicie rozwinicie lub zwinicie odpowiednich wzw drzewa, jeli to konieczne.

Inteligentne znaczniki i operacje


Inteligentne znaczniki i inteligentne operacje (tych poj mona w zasadzie uywa zamiennie)
to waciwoci zwizane z menu lub mechanizmem IntelliSense suce do automatycznego
konfigurowania czsto uywanych kontrolek oraz operacji czsto wykonywanych w IDE. Okna

301

Cz III Tworzenie kodu i zarzdzanie nim

Rysunek 8.9.
Okno Document
Outline

projektowe i edytory obsuguj inteligentne znaczniki w wielu rnych sytuacjach. W poniszych punktach opisujemy kilka sposobw uatwiania sobie pracy za pomoc inteligentnych znacznikw. Zacznijmy od okna projektowego HTML.

Okno projektowe HTML


Po umieszczeniu kontrolki w oknie projektowym HTML pojawia si wyskakujca lista czsto wykonywanych operacji. Te operacje, nazywane wsplnie inteligentnymi operacjami, umoliwiaj
ustawienie danej kontrolki w celu szybkiego skonfigurowania jej do wykonywania odpowiednich
zada.
Po przecigniciu nowej kontrolki na powierzchni okna projektowego automatycznie pojawia
si wyskakujca lista czsto wykonywanych operacji. Mona uy jej do szybkiego skonfigurowania waciwoci kontrolki, a take operacji czsto wykonywanych za jej pomoc. Na przykad
po dodaniu do strony kontrolki GridView pojawia si lista operacji umoliwiajca szybkie wczenie sortowania, stronicowania i moliwoci modyfikowania danych tej kontrolki. W przypadku
kontrolki TextBox widoczna jest lista, ktra pozwala szybko powiza z ni kontrolk suc do
sprawdzania poprawnoci danych.
Take w oknie projektowym formularzy Windows wywietlane s inteligentne znaczniki.

Okno projektowe formularzy Windows


W oknie projektowym formularzy Windows funkcjonalno inteligentnych znacznikw jest taka
sama, jednak wygldaj one nieco inaczej. Na krawdzi kontrolek formularza udostpniajcych
takie znaczniki wywietlane s odpowiednie ikony (zwykle po prawej stronie grnej krawdzi).
Kliknicie takiej ikony powoduje wywietlenie maej listy rozwijanej z dostpnymi operacjami.
Rysunek 8.10 przedstawia dziaanie inteligentnego znacznika kontrolki TabControl.

302

Rozdzia 8. Korzystanie z narzdzi zwikszajcych produktywno

Rysunek 8.10.
Inteligentny znacznik
kontrolki TabControl

Edytor kodu
Inteligentne znaczniki pojawiaj si take w kodzie, na przykad przy pisaniu interfejsw. Zwykle
implementacja interfejsu wymaga napisania duej iloci kodu, poniewa trzeba utworzy skadowe odpowiadajce wszystkim skadowym zdefiniowanym w interfejsie. Inteligentny znacznik
pozwala wygenerowa je automatycznie w jednym z dwch trybw nazywania elementw:
Explicit naming skadowym nadawane s nazwy utworzone na podstawie uywa-

nego interfejsu.
Implicit naming nazwy skadowych nie s zwizane z nazwami uywanego interfejsu.

Dziaanie tego inteligentnego znacznika przedstawione jest na rysunku 7.11.

Mechanizm IntelliSense
IntelliSense to nazwa nadana grupie rnych narzdzi pomagajcych w pisaniu kodu i dziaajcych w oknie edytora tekstu. Jedynym zadaniem tego mechanizmu jest pomoc programicie w szybkim pisaniu poprawnego skadniowo kodu. Ponadto IntelliSense ma udostpnia wystarczajco
wiele wskazwek, aby programista mg pisa kod poprawny w danym kontekcie, czyli taki, ktry
ma sens przy uwzgldnieniu otaczajcych go wierszy.

303

Cz III Tworzenie kodu i zarzdzanie nim

Rysunek 8.11. Inteligentny znacznik do implementacji interfejsu

W czasie wpisywania tekstu w edytorze przez programist IntelliSense dziaa na zapleczu jako agent
odpowiedzialny za: udostpnianie fragmentw kodu pasujcych do ju wpisanych znakw, wyrnianie lub wybieranie tych, ktre s najbardziej prawdopodobne w danym kontekcie, a take, jeli
programista wybierze tak opcj, za automatyczne wstawianie fragmentw kodu. Pozwala to zaoszczdzi czas, poniewa nie trzeba wyszukiwa typw i skadowych w dokumentacji. Dalsze oszczdnoci wynikaj z automatycznego wstawiania tekstu, poniewa programista nie musi samodzielnie
wpisywa znakw.
W tym punkcie powicamy wiele miejsca na analiz dziaania IntelliSense w kontekcie pisania
zwykego kodu, jednak warto pamita, e mechanizm ten obsuguje take dokumenty innych
typw, na przykad pliki XML, HTML czy XSLT.

Wskazwka
Doczanie szablonw do dokumentu XML jest przydatne, poniewa IntelliSense potrafi wykorzysta takie szablony i udostpni
wicej moliwoci poprzez funkcj List Members (wicej na ten temat
w dalszej czci rozdziau).

304

Rozdzia 8. Korzystanie z narzdzi zwikszajcych produktywno

Na dziaanie IntelliSense skada si wiele odrbnych funkcji, ktre bezkonfliktowo wsppracuj


ze sob w czasie pisania kodu przez programist. Mona je uruchomi take bezporednio
z menu Edit/IntelliSense lub przy uyciu kombinacji Ctrl+spacja. Wiele funkcji mona znale
take w menu kontekstowym edytorw kodu lub po klikniciu prawym przyciskiem myszy dowolnego miejsca w oknie edytora. Przyjrzyjmy si tym funkcjom.

Uzupenianie sw (Complete Word)


Uzupenianie sw to podstawowa funkcja IntelliSense zapewniajca oszczdno czasu. Kiedy
programista wpisze wystarczajc liczb znakw, aby mechanizm mg rozpozna wpisywane
sowo, proponowane jest uzupenienie wpisywanego tekstu. Ta propozycja jest widoczna na licie
alternatyw (nazywanej list uzupeniania) i mona j wstawi do kodu za pomoc wcinicia pojedynczego klawisza. Stanowi to kontrast z koniecznoci samodzielnego uzupeniania sw poprzez
wpisywanie wszystkich znakw.
Rysunek 8.12 ilustruje ten proces. Na podstawie kontekstu oraz znakw wpisanych w edytorze
IntelliSense wywietla list moliwych sw. Najbardziej prawdopodobne uzupenienie jest wyrnione, a programista moe wybra dowoln pozycj z listy, posugujc si klawiszami strzaek lub
mysz. Wcinicie klawisza Tab powoduje automatyczne wstawienie sowa w edytorze.

Rysunek 8.12. IntelliSense uzupenianie sw

305

Cz III Tworzenie kodu i zarzdzanie nim

Uwaga
Mechanizm uzupeniania sw uwzgldnia kontekst kodu w wielu
specyficznych sytuacjach. Na przykad w czasie wpisywania przez
programist typu wyjtku w bloku try-catch IntelliSense wywietla na licie jedynie typy wyjtkw. Podobnie w czasie wpisywania
atrybutw dostpne s wycznie atrybuty, a przy implementacji
interfejsu widoczne s tylko typy interfejsw. Ta waciwo mechanizmu IntelliSense obsuguje rne rodzaje dokumentw. Oprcz
kodu jzykw C# i Visual Basic uzupenianie dziaa take dla innych
elementw, takich jak znaczniki HTML, atrybuty stylw CSS, pliki
.config czy bloki skryptw HTML. Uzupenianie sw w Visual Basic
obejmuje funkcje niedostpne w jzyku C#. Dostpna jest lista uzupeniania z zakadkami, w ktrej jednak zakadka zawiera najczciej uywane konstrukcje skadniowe, a druga wszystkie moliwe
sowa.

W kadym momencie mona samodzielnie wywoa mechanizm uzupeniania sw, uywajc


kombinacji klawiszy Ctrl+spacja lub Alt+strzaka w prawo.

Wskazwka
Przytrzymanie klawisza Ctrl w czasie wywietlania listy uzupeniania sprawia, e staje si ona czciowo przezroczysta. Jest to przydatne, jeli w czasie wybierania elementw z listy programista chce
zobaczy zakryte przez ni wiersze kodu.

Okno z informacjami podrcznymi (Quick Info)


Okno z informacjami podrcznymi wywietla kompletn deklaracj danego fragmentu kodu
oraz informacje pomocnicze z nim zwizane . Aby wywietli to okno, naley umieci wskanik
myszy nad danym identyfikatorem. Pojawi si wtedy okno wyskakujce z informacjami dostpnymi na jego temat.
Rysunek 8.13 przedstawia okno z informacjami podrcznymi z danymi dotyczcymi funkcji
Console.ReadLine. Dostpna jest skadnia deklaracji tej skadowej, jej krtki opis oraz lista klas
uywanych w niej wyjtkw. Opis widoczny w oknie z informacjami podrcznymi rodowisko
wywietla take dla kodu napisanego przez programist. Jeli ze skadow powizane s komentarze, mechanizm IntelliSense przetworzy je i wywietli na ich podstawie opisowe informacje.

306

Rozdzia 8. Korzystanie z narzdzi zwikszajcych produktywno

Rysunek 8.13. IntelliSense okno Quick Info

Okno z list skadowych (List Members)


Funkcja List Members dziaa identycznie jak uzupenianie sw. W przypadku dowolnego typu
lub przestrzeni nazw wywietla ona przewijan list zawierajc wszystkie zmienne i funkcje skadowe danego typu. Aby zobaczy dziaanie tej funkcji, naley wykona kilka operacji w otwartym
oknie edytora kodu:
1. Wpisa nazw klasy (wcinicie kombinacji Ctrl+spacja pozwala wywietli okno IntelliSense z dostpnymi nazwami klas).
2. Wpisa kropk. Jest to informacja dla mechanizmu IntelliSense, e programista zakoczy wpisywanie nazwy typu i chce przej do zasigu jego skadowych.
3. Wywietlona zostanie lista poprawnych skadowych. W tym momencie mona j samodzielnie przewin i wybra szukan skadow. Jeli jednak programista wie, jakiej skadowej potrzebuje, moe wpisywa jej nazw dopty, dopki IntelliSense nie wywietli jej
na podstawie wpisanych znakw.
4. Uy uzupeniania sw, wciskajc klawisz Tab, co powoduje automatyczne wstawienie
skadowej w odpowiednim wierszu kodu (co pozwala zaoszczdzi programicie pisania).
Ta funkcja dziaa take we wsppracy z oknem z informacjami podrcznymi. Po wybraniu danej
skadowej z ich listy wywietlane jest okno wyskakujce ze skrtowymi informacjami na temat
wybranej skadowej.

307

Cz III Tworzenie kodu i zarzdzanie nim

Uwaga
IntelliSense przechowuje informacje na temat skadowych najczciej wybieranych w oknie z list skadowych i oknie do uzupeniania sw. Dziki tym informacjom mechanizm nie wywietla ani nie
zaznacza rzadko (jeli w ogle) uywanych skadowych danego typu.

Okno z informacjami o parametrach (Parameter Info)


Okno z informacjami o parametrach, jak sama nazwa wskazuje, suy do interaktywnego wywietlania wskazwek dotyczcych parametrw potrzebnych w wywoaniu danej funkcji. Ta waciwo jest szczeglnie przydatna do pisania wywoa funkcji z dugimi listami parametrw lub
majcych wiele przecionych wersji.
Okno z informacjami o parametrach jest wywietlane zawsze, kiedy programista otworzy nawias
po nazwie funkcji. Aby zobaczy dziaanie tego mechanizmu, naley wykona nastpujce operacje:
Wpisa nazw funkcji.
Otworzy nawias.
Pojawi si okno wyskakujce z sygnatur funkcji. Jeli funkcja ma kilka poprawnych

sygnatur (na przykad wiele przecionych wersji), mona wywietla je po kolei, uywajc maych strzaek skierowanych w gr i w d. Pozwala to wybra waciw sygnatur.
Po wybraniu odpowiedniej sygnatury mona zacz wpisywanie parametrw, ktre maj

zosta przekazane do funkcji.


W czasie wpisywania parametrw widoczne jest okno wyskakujce z informacjami na ich temat.
Prowadzi ono programist przez list parametrw, pogrubiajc aktualnie wpisywany parametr.
Wraz z wyrnianiem poszczeglnych parametrw mechanizm wywietla ich definicje.
Na rysunku 8.14 programista wpisuje drugi parametr funkcji SetWindowPosition obiektu
Console.

Porzdkowanie instrukcji Using


Porzdkowanie instrukcji Using to funkcja mechanizmu IntelliSense specyficzna dla jzyka C#.
Obejmuje ona dwie odrbne opcje: Remove Unused Usings (usuwanie nieuywanych instrukcji
Using) i Sort Usings (sortowanie instrukcji Using). Dostpne jest te trzecie polecenie, Remove
and Sort (usu i posortuj), ktre czy obie wymienione funkcje. Wszystkie trzy instrukcje mona
wywoa przy uyciu opcji menu Organize Usings w menu kontekstowym edytora lub menu
Edit/IntelliSense.

308

Rozdzia 8. Korzystanie z narzdzi zwikszajcych produktywno

Rysunek 8.14. IntelliSense okno z informacjami o parametrach

Funkcja Remove Unused Usings do doskonae narzdzie do porzdkowania kodu. Analizuje


ono obecn wersj kodu i okrela, ktre instrukcje Using s potrzebne do kompilacji projektu,
a nastpnie usuwa wszystkie zbdne instrukcje tego rodzaju. Polecenie Sort dziaa w rwnie prosty sposb ustawia instrukcje Using w porzdku alfabetycznym wedug przestrzeni nazw.

Fragmenty kodu i kod szablonowy


Fragmenty kodu (ang. snippets) to wbudowane wiersze kodu, ktre mona wybra i wstawi
w edytorze kodu. Dostp do kadego fragmentu kodu mona uzyska poprzez jego nazw, tak
zwany alias. Fragmenty kodu su do automatyzacji operacji, ktre polegaj na wpisywaniu
powtarzajcego si kodu. Mona utworzy wasne fragmenty kodu lub uywa domylnej biblioteki standardowych elementw kodu udostpnianej przez Visual Studio.

Mechanizm wstawiania fragmentw kodu


Fragment kodu mona wstawi klikajc prawym przyciskiem myszy miejsce przeznaczone na ten
kod, a nastpnie wybierajc opcj Insert Snippet z menu podrcznego. W wyniku tej operacji rodowisko otworzy okno do wstawiania fragmentw kodu, bdce list rozwijan (lub grup takich
list) dziaajc podobnie do okna sucego do uzupeniania sw udostpnianego przez IntelliSense. Kady element tej listy odpowiada fragmentowi kodu reprezentowanemu przez alias.
Wybranie aliasu pozwala doda fragment kodu do aktywnego dokumentu.

309

Cz III Tworzenie kodu i zarzdzanie nim

Fragmenty kodu s pogrupowane, co uatwia wyszukiwanie potrzebnych jednostek. Na przykad


aby wstawi konstruktor w klasie jzyka C#, naley klikn prawym przyciskiem myszy definicj
klasy, wybra opcj Visual C# z listy kategorii, a nastpnie uy opcji ctor. Rysunek 8.15 przedstawia jeden z etapw tego procesu. Warto zauway, e kiedy programista wybierze kategori
fragmentw kodu, rodowisko wywietla w edytorze kodu miejsce na instrukcj, co pomaga tworzy acuchy polece.

Rysunek 8.15. Fragment kodu ctor w jzyku C#

Wci trzeba napisa sensowny kod ciaa konstruktora. Jednak dziki tym fragmentom mona
wyeliminowa konieczno mudnego pisania kodu, ktrego wymylenie nie wymaga zbyt wielu
intelektualnych koni mechanicznych.
Rysunek 8.16 przedstawia ten sam proces w oknie z kodem Visual Basic. Operacja ta przebiega
w niemal identyczny sposb jak w jzyku C#, a jedyna rnica polega na tym, e w Visual Basic
podzia fragmentw kodu na kategorie jest bogatszy.

Wskazwka
Szybki, alternatywny sposb wywietlania okna do wstawiania fragmentw kodu polega na wpisaniu znaku zapytania i wciniciu
klawisza Tab. Ta technika dziaa jedynie w plikach z kodem Visual
Basic.

310

Rozdzia 8. Korzystanie z narzdzi zwikszajcych produktywno

Rysunek 8.16. Fragmenty kodu w jzyku Visual Basic

Edytor jzyka Visual Basic dziaa nieco inaczej od edytora jzyka C# po rozwiniciu fragmentu
kodu w oknie. Rysunek 8.17 przedstawia efekt przejcia przez kilka kategorii i wybrania fragmentu Create Transparent Windows Form. Warto zauway, e mechanizm wstawiania umieci
szablonowy fragment w kodzie Visual Basic, jednak nie by wystarczajco inteligentny (przynajmniej w tym przypadku), aby domyli si nazwy przezroczystego formularza.
Jako nazwa formularza we fragmencie kodu podawany jest domylny, fikcyjny tekst, ktry zostaje
automatycznie wyrniony. Wystarczy zacz wpisywa odpowiedni nazw, a domylna zostanie
zastpiona. Take warto waciwoci okrelajcej przezroczysto jest fikcyjna i mona j szybko
zastpi poprawn liczb.

Wskazwka
Fragmenty kodu mog mie kilka miejsc na wpisanie danych, ktre
programista moe chcie zmieni (i prawdopodobnie powinien to
zrobi). Mona przechodzi midzy tymi miejscami za pomoc klawisza Tab. Kiedy miejsce na dane jest wyrnione (na niebiesko),
mona zacz wpisywanie danych, aby zastpi domyln skadni
wartociami majcymi sens w danym kontekcie.

311

Cz III Tworzenie kodu i zarzdzanie nim

Rysunek 8.17. Fragment kodu do obsugi przezroczystoci formularza

Otaczanie kodu fragmentami


Dokumenty jzykw C# i XML obsuguj dodatkowy styl fragmentw kodu, o ktrym warto
wspomnie. S to otaczajce fragmenty kodu (opcja Surround With). Te fragmenty dziaaj
podobnie jak pozostae (s to po prostu wbudowane wiersze kodu), jednak rni si sposobem
wstawiania.
Uywajc otaczajcych fragmentw, mona otoczy kod zaznaczony w edytorze tekstu wybranym
fragmentem. Na przykad programista moe chcie umieci kilka deklaracji klas w jednej przestrzeni nazw. Dziki otaczajcym fragmentom wymaga to tylko dwch operacji: wyrnienia definicji klas i uruchomienia mechanizmu wstawiania. Tym razem zamiast wybiera opcj Insert
Snippet z menu podrcznego, naley wybra opcj Surround With. Wstawianie dziaa tak samo,
jednak tym razem fragment kodu (tu jest to przestrze nazw) jest dodawany w odmienny sposb.
Warto porwna kod przed i po wstawieniu tekstu (rysunki 8.18 i 8.19). Programista moe umieci definicje klas w nowej przestrzeni nazw zagniedonej w innej przestrzeni za pomoc kilku
klikni mysz.

Tworzenie wasnych fragmentw kodu


Poniewa fragmenty kodu s przechowywane w plikach XML, mona atwo utworzy wasne wersje.
Kluczem do tego jest zrozumienie szablonu XML definiujcego fragment kodu, a najlepiej zrobi
to, analizujc rdowe dane XML kilku wbudowanych fragmentw dostpnych w IDE.

312

Rozdzia 8. Korzystanie z narzdzi zwikszajcych produktywno

Rysunek 8.18. Przed wstawieniem otaczajcego fragmentu kodu

Rysunek 8.19. Po wstawieniu otaczajcego fragmentu kodu

313

Cz III Tworzenie kodu i zarzdzanie nim

Fragmenty kodu s przechowywane w plikach w specyficznych dla jzyka podkatalogach katalogu,


w ktrym zainstalowane jest rodowisko Visual Studio. Na przykad fragmenty kodu jzyka Visual
Studio znajduj si domylnie w podkatalogach katalogu C:\Program Files\Microsoft Visual Studio
9.0\Vb\Snippets. Cho pliki z fragmentami kodu maj format XML, ich rozszerzenie to .Snippet.

Format XML fragmentw kodu


Listing 8.1 przedstawia kod XML fragmentu kodu konstruktora jzyka C#.
Listing 8.1. Fragment kodu generujcy konstruktor jzyka C#
<?xml version="1.0" encoding="utf-8" ?>
<CodeSnippets
xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
<CodeSnippet Format="1.0.0">
<Header>
<Title>ctor</Title>
<Shortcut>ctor</Shortcut>
<Description>Code snippet for constructor</Description>
<Author>Microsoft Corporation</Author>
<SnippetTypes>
<SnippetType>Expansion</SnippetType>
</SnippetTypes>
</Header>
<Snippet>
<Declarations>
<Literal Editable="false">
<ID>classname</ID>
<ToolTip>Class name</ToolTip>
<Function>ClassName()</Function>
<Default>ClassNamePlaceholder</Default>
</Literal>
</Declarations>
<Code Language="csharp"><![CDATA[public $classname$ ()
{
$end$
}]]>
</Code>
</Snippet>
</CodeSnippet>
</CodeSnippets>

Podstawowa struktura deklaracji powyszego fragmentu kodu jest opisana w tabeli 8.2. Bardziej
wyczerpujcy opis szablonw mona znale w systemie pomocy MSDN Visual Studio, w wle
Integrated Development Environment for Visual Studio/Reference/XML Schema References/Code
Snippets Schema Reference.
Najwaniejsze w pisaniu fragmentw kodu jest to, aby zrozumie, jak dziaa zastpowanie literaw i zmiennych. Zamy, e programista chce utworzy fragment kodu jzyka C# wywietlajcy

314

Rozdzia 8. Korzystanie z narzdzi zwikszajcych produktywno

Tabela 8.2. Opisy wzw XML uywanych w plikach z fragmentami kodu

Wze XML

Opis

<CodeSnippets>

Element nadrzdny dla wszystkich informacji o fragmentach kodu. Okrelona jest w nim przestrze
nazw jzyka XML suca do definiowania fragmentw kodu w Visual Studio 2008.

<CodeSnippet>

Gwny element danego fragmentu kodu. Ten znacznik okrela informacje o formacie fragmentu
(w przypadku pierwszego wydania Visual Studio 2008 powinna to by wersja 1.0.0). Cho w jednym
elemencie <CodeSnippets> mona umieci wiele elementw CodeSnippet, zwykle w kadym
pliku znajduje si tylko jeden fragment kodu.

<Header>

Kontener na metadane opisujce dany fragment kodu.

<Title>

Tytu fragmentu kodu.

<Shortcut>

Zwykle ta sama warto, co w tytule. Tekst tego elementu pojawia si na licie rozwijanej z fragmentami
kodu.

<Description>

Opis fragmentu kodu.

<Author>

Autor fragmentu kodu.

<SnippetTypes>

Element nadrzdny przechowujcy elementy opisujce typ fragmentu kodu.

<SnippetType>

Typ fragmentu kodu: Expansion, Refactoring lub Surrounds With. Nie mona tworzy
niestandardowych fragmentw. Ta waciwo informuje Visual Studio o tym, w ktrym miejscu okna
edytora naley wstawi dany fragment kodu. Fragmenty typu Expansion s wstawiane tam, gdzie
znajduje si kursor. Fragmenty Surrounds With rodowisko wstawia przed i po kodzie okrelonym
przez biec pozycj kursora lub zaznaczenia.

<Snippet>

Gwny element zawierajcy kod fragmentu.

<Declarations>

Gwny element literaw i obiektw uywanych przez fragment kodu.

<Literal>

acuch znakw, ktrego warto mona okreli w procesie dodawania fragmentu kodu. Atrybut
Editable tego znacznika okrela, czy litera jest statyczny, czy te mona go modyfikowa.
Fragment kodu ctor nie zawiera literaw, ktre mona zmienia. Warto porwna go z fragmentem
sucym do ustawiania przezroczystoci, ktry w czasie wstawiania umoliwia ustawienie nazwy
formularza.

<ID>

Niepowtarzalny identyfikator literau.

<ToolTip>

Podpowied wywietlana w momencie umieszczenia kursora nad literaem.

<Function>

Nazwa funkcji (opis w tabeli 8.3) wywoywanej w momencie, kiedy litera stanie si aktywny.
Funkcji mona uywa tylko we fragmentach kodu jzyka C#.

<Default>

Domylny litera wstawiany w edytorze.

<Code>

Element zawierajcy wstawiany kod.

prosty komentarz. Ten komentarz ma informowa, e klasa zostaa oceniona i zaakceptowana


w procesie analizy kodu. Inaczej mwic, fragment ma umoliwia dodawanie komentarzy podobnych do poniszego:

315

Cz III Tworzenie kodu i zarzdzanie nim

// Analiza kodu ContextToken.


//
Recenzent: Lars Powers
//
//

Data: 1/1/2006
Stan: Zatwierdzono

W tym fragmencie kodu cztery literay naley traktowa jako zmienne. Mog si one zmienia za
kadym razem, kiedy programista uyje tego fragmentu kodu. S to: nazwa klasy, imi i nazwisko
recenzenta, data oraz informacje o stanie. Mona zadeklarowa te elementy w sekcji Declarations:
<Declarations>
<Literal Editable="False">
<ID>classname</ID>
<ToolTip>Nazwa sprawdzanej klasy/typu</ToolTip>
<Function>ClassName()</Function>
<Default>TuNazwaKlasy</Default>
</Literal>
<Literal Editable="True">
<ID>reviewer</ID>
<ToolTip>Imie i nazwisko recenzenta</ToolTip>
<Default>ImieINazwiskoRecenzenta</Default>
</Literal>
<Literal Editable="True">
<ID>currdate</ID>
<ToolTip>Data sprawdzania</ToolTip>
<Default>DataSprawadzania</Default>
</Literal>
<Literal Editable="True">
<ID>approval</ID>
<ToolTip>Zamien na "Zatwierdzono" lub "Odrzucono"</ToolTip>
<Default>Zatwierdzono</Default>
</Literal>
</Declarations>

Warto zwrci uwag, e powyszy kod wywouje funkcj, ktra okrela nazw klasy we fragmencie kodu. Takie funkcje s dostpne jedynie w jzyku C# (a ich podzbir take w J#). Ich
dokumentacja znajduje si w tabeli 8.3. W przypadku pozostaych literaw to programista musi
poda w odpowiednich miejscach poprawne wartoci.
Naley take udostpni pewne podstawowe informacje nagwkowe:
<Header>
<Title>recenzja</Title>
<Shortcut>recenzja</Shortcut>
<Description>Komentarze dotyczace recenzji kodu</Description>
<Author>L. Powers</Author>
<SnippetTypes>
<SnippetType>Expansion</SnippetType>
</SnippetTypes>
</Header>
<Snippet>

316

Rozdzia 8. Korzystanie z narzdzi zwikszajcych produktywno

Tabela 8.3. Funkcje dostpne we fragmentach kodu

Funkcja

Opis

GenerateSwitchCases(literalwyliczenia)

Tworzy skadni instrukcji switch obejmujc instrukcje


case dla wszystkich wartoci zdefiniowanych w wyliczeniu
literalwyliczenia (C# i J#).

ClassName()

Wstawia nazw klasy zawierajcej dany fragment kodu


(C# i J#).

SimpleTypeName(nazwatypu)

Pobiera nazw typu okrelonego za pomoc literau


nazwatypu i zwraca najkrtsz moliw nazw, uwzgldniajc
instrukcje using obowizujce w biecym bloku kodu.
Na przykad wywoanie SimpleTypeName
(System.Exception) zwrci Exception,
jeli w pliku znajduje si instrukcja using System (C#).

CallBase(parametr)

Przydatna przy tworzeniu szkieletw skadowych, ktre uywaj


typu bazowego lub zwracaj go. Jeli jako parametr podana
jest warto get, set lub method, wywoany zostanie dany
akcesor lub metoda klasy bazowej (C#).

Teraz fragment kodu jest skadniowo kompletny. Cho powyszy fragment dodaje komentarze,
taki sam proces prowadzi do tworzenia fragmentw generujcych kod, ktre maj tak sam struktur. Jeli programista chciaby napisa otaczajcy fragment kodu, powinien zmieni warto elementu <SnippetType> na Surrounds With.
Teraz trzeba poinformowa o nowym fragmencie rodowisko Visual Studio.

Dodawanie fragmentw kodu do rodowiska Visual Studio


Mona uy edytora XML rodowiska Visual Studio w celu utworzenia dokumentu XML i zapisania go w katalogu. Du zalet takiego podejcia jest moliwo wykorzystania mechanizmu
IntelliSense wraz z szablonem XML fragmentw kodu. Pomaga to wpisywa nazwy elementw
i okrela relacje midzy nimi. Instalator rodowiska Visual Studio tworzy domylny katalog
przeznaczony na niestandardowe fragmenty kodu. Znajduje si on w katalogu Moje dokumenty:
\Moje dokumenty\Visual Studio 2008\Code Snippets\VC#\My Code Snippets. Visual Studio automatycznie udostpnia fragmenty kodu opisane w szablonach XML umieszczonych w tym katalogu.
Okno dialogowe Code Snippets Manager to gwne narzdzie do przegldania dostpnych fragmentw kodu, dodawania nowych i usuwania istniejcych (rysunek 8.20). Jak wida na rysunku,
fragment kodu dodajcy informacje o recenzjach jest widoczny w katalogu My Code Snippets.
Mona take doda inne okna oprcz tych standardowych. W tym celu naley klikn przycisk
Add, co pozwala doda nowe katalogi, w ktrych Visual Studio bdzie szuka wywietlanych
fragmentw kodu.

317

Cz III Tworzenie kodu i zarzdzanie nim

Rysunek 8.20.
Okno Code Snippets
Manager

Rysunek 8.21 przedstawia wynik dodania nowego fragmentu kodu.

Rysunek 8.21. Wynik dodania nowego fragmentu kodu

318

Rozdzia 8. Korzystanie z narzdzi zwikszajcych produktywno

Wskazwka
Fragmenty kodu mona przeglda i udostpnia take przez sie
(informacje o spoecznoci internetowej znajduj si w rozdziale 7.,
Spoeczno .NET: wykorzystanie i tworzenie wspdzielonego
kodu). Doskonaym sposobem na lepsze zrozumienie struktury
i dziaania fragmentw kodu jest zapoznanie si z plikami fragmentw dostpnych w Visual Studio, a take plikami utworzonymi przez
spoeczno programistw.

Fragmenty kodu w oknie narzdzi


Cho ta moliwo technicznie nie jest czci oficjalnej technologii obsugi fragmentw kodu
rodowiska Visual Studio, mona dodawa takie fragmenty take do okna narzdzi. Najpierw
naley zaznaczy tekst w edytorze, a potem upuci go w oknie narzdzi. Nastpnie mona wykorzysta dany fragment w dowolnym momencie, przecigajc go z okna narzdzi na otwarte okno
edytora.

Dopasowywanie nawiasw
W jzykach programowania stosowane s nawiasy, nawiasy klamrowe, nawiasy ostre i inne ograniczniki, ktre obejmuj argumenty funkcji, wyznaczaj kolejno wykonywania funkcji matematycznych czy zawieraj kod ciaa funkcji. Wykrycie braku pasujcego ogranicznika (czyli sytuacja, w ktrej w kodzie jest wicej otwierajcych nawiasw ni zamykajcych) moe by trudne,
zwaszcza w przypadku kodu z wieloma poziomami zagniedenia.
Dopasowywanie nawiasw dotyczy graficznych wskazwek, za pomoc ktrych edytor kodu
informuje programist o pasujcych ogranicznikach. Gdy programista pisze kod w edytorze, za
kadym razem, kiedy doda zamykajcy ogranicznik, rodowisko na krtko wyrnia oba nawiasy.
Na rysunku 8.22 mechanizm dopasowywania nawiasw pomaga okreli pasujce do siebie ograniczniki wewntrznej ptli for.

Wskazwka
Mona take uruchomi dopasowywanie nawiasw, umieszczajc
kursor bezporednio po lewej stronie otwierajcego ogranicznika lub
po prawej stronie zamykajcego. Jeli programista przeglda procedur pen nawiasw i nawiasw klamrowych, moe szybko wykry
pasujce pary, umieszczajc kursor obok rnych ogranicznikw.

319

Cz III Tworzenie kodu i zarzdzanie nim

Rysunek 8.22. Dopasowywanie nawiasw

Cho ta waciwo nazywana jest dopasowywaniem nawiasw, obsuguje rne rodzaje ogranicznikw:
Nawiasy ().
Nawiasy kwadratowe i ostre [], <>.
Cudzysowy "".
Nawiasy klamrowe {}.

W jzyku C# dopasowywanie nawiasw obsuguje take nastpujce pary sw kluczowych (su


one do ograniczania blokw kodu za pomoc sw kluczowych):
#region, #endregion.
#if, #else, #endif.
case, break.
default, break.
for, break, continue.
if, else.
while, break, continue.

320

Rozdzia 8. Korzystanie z narzdzi zwikszajcych produktywno

Dostosowywanie mechanizmu IntelliSense


do wasnych potrzeb
Niektre waciwoci IntelliSense mona dostosowa do wasnych potrzeb za pomoc okna dialogowego Options rodowiska Visual Studio. Te modyfikacje dotycz poszczeglnych jzykw.
Po otwarciu okna dialogowego Options (z menu Tools) i przejciu do wza Text Editor widoczne
s opcje mechanizmu IntelliSense w mylcy sposb rozproszone midzy strony General i IntelliSense.
Rysunek 8.23 przedstawia stron IntelliSense okna dialogowego Options z opcjami dla jzyka C#.

Rysunek 8.23. Opcje mechanizmu IntelliSense

Sekcja Completion Lists w tym oknie dotyczy wszelkich waciwoci mechanizmu IntelliSense,
ktre obsuguj automatyczne uzupenianie kodu (na przykad wybierania skadowych i listy do
uzupeniania sw). W tabeli 8.4 opisane s opcje dostpne w tym oknie dialogowym.

Okno Task List


Lista w oknie Task List to zintegrowana lista zada do wykonania. Obejmuje ona wszystkie elementy, ktre z jakiego powodu wymagaj uwagi lub kontroli. Okno Task List wywietla t list
i pozwala wchodzi z ni w interakcje. Aby wywietli to okno, naley otworzy menu View i wybra
opcj Task List. Rysunek 8.24 przedstawia okno Task List wywietlajce kilka zada. Te zadania
mog nalee do jednej z trzech kategorii: zadania zwizane z komentarzami, zadania zwizane
ze skrtami i zadania uytkownika. Jednoczenie mona wywietla zadania z tylko jednej kategorii.

321

Cz III Tworzenie kodu i zarzdzanie nim

Tabela 8.4. Opcje mechanizmu IntelliSense

Opcja

Dziaanie

Show Completion List After a Character Is


Typed

Zaznaczenie tego pola powoduje, e funkcja uzupeniania sw jest automatycznie


uruchamiana po wpisaniu znaku w oknie edytora.

Place Keywords in Completion Lists

Jeli to pole jest zaznaczone, na licie uzupeniania widoczne bd sowa


kluczowe danego jzyka. Na przykad w jzyku C# na tej licie znajd si sowa
kluczowe class czy string.

Place Code Snippets in Completion Lists

Zaznaczenie tego pola powoduje dodanie aliasw fragmentw kodu


do wywietlanych list uzupeniania.

Committed by Typing the Following


Characters

To pole zawiera znaki, ktre powoduj uzupenienie tekstu przez mechanizm


IntelliSense. Inaczej mwic, wpisanie dowolnego ze znakw z tego pola
tekstowego w czasie, kiedy widoczna jest lista uzupeniania, powoduje
wstawienie biecego wyboru w oknie edytora.

Committed by Pressing the Space Bar

Jeli to pole jest zaznaczone, wcinicie spacji powoduje wstawienie biecego


wyboru.

Add New Line on Commit with Enter at End Zaznaczenie tego pola powoduje przesunicie kursora do nastpnego wiersza
of Fully Typed Word
po wpisaniu caego sowa w polu listy IntelliSense. Jest to przydatne wtedy, jeli
po danych sowach kluczowych zwykle nie wystpuje w wierszu dalszy kod.
IntelliSense Pre-selects Most Recently Used Jeli to pole jest zaznaczone, IntelliSense bdzie przechowywa list najczciej
Members
uywanych skadowych poszczeglnych typw i korzysta z niej. Ta lista suy
do wybierania domylnych skadowych na licie uzupeniania.

Rysunek 8.24. Okno Task List

Lista rozwijana widoczna u gry okna Task List pozwala okreli kategori wywietlanych zada.
Kada kategoria wie si z nieco innymi kolumnami, cho kolumny Priority i Description s
widoczne w kadym przypadku. Na przykad zadania uytkownika i zwizane ze skrtami udostpniaj pole wyboru, ktre suy do zaznaczania zakoczonych zada, a zadaniom zwizanym
ze skrtami i komentarzami towarzysz nazwa pliku i numer wiersza.
Mona posortowa zadania wedug dowolnej kolumny listy. Kliknicie prawym przyciskiem myszy
nagwka kolumny powoduje wywietlenie menu podrcznego umoliwiajcego zmian sposobu
sortowania, a take wybr wywietlanych kolumn z listy wszystkich obsugiwanych.

322

Rozdzia 8. Korzystanie z narzdzi zwikszajcych produktywno

Zadania zwizane z komentarzami


Zadania zwizane z komentarzami s tworzone w kodzie rdowym. Umieszczenie komentarza
ze specjalnym literaem (znacznikiem) powoduje dodanie go przez Visual Studio do listy zada
zwizanych z komentarzami. W Visual Studio dostpne s trzy takie znaczniki: HACK, TODO i UNDONE.
Aby wywietli je w oknie zada, naley zaznaczy opcj Comments na licie rozwijanej w grnej
czci listy zada.
Na przykad poniszy kod jzyka C# powoduje dodanie do listy czterech rnych zada zwizanych z komentarzami:
namespace Contoso.Fx.Integration.Specialized
{
//TODO: Zaimplementowa drugi konstruktor
public class MessageMapper : IMessageSink
{
public MessageMapper()
{
}
}
//TODO: Sprawdzi implementacj interfejsu IMap
public class MessageBus : MessageMapper
{
public MessageBus()
{
//UNDONE: Konstruktor MessageBus
}
}
//HACK: Napisa od nowa TokenStruct
public class ContextToken
{
public ContextToken()
{
}
public ContextToken(string guid)
{
}
}
}

Dwukrotne kliknicie zadania zwizanego z komentarzem pozwala przej bezporednio do wiersza


danego komentarza w oknie edytora.

Niestandardowe znaczniki w komentarzach


W razie potrzeby mona doda wasny zestaw znacznikw rozpoznawanych jako zadania zwizane z komentarzami. W oknie dialogowym Tools/Options naley otworzy stron Task List znajdujc si w wle Environment. W tym miejscu mona dodawa, modyfikowa i usuwa znaczniki komentarzy obsugiwane na licie zada.

323

Cz III Tworzenie kodu i zarzdzanie nim

Na rysunku 8.25 widoczny jest znacznik REVIEW dodany do standardowej listy. Warto zauway,
e mona take ustawi priorytety dla tych znacznikw lub doprecyzowa sposb ich wywietlania,
uywajc pl wyboru na stronie Task List okna Options. Te pola pozwalaj okreli, czy usuwanie
zada wymaga potwierdzenia, czy nie, a take czy na licie wywietlane s same nazwy plikw, czy
pene cieki.

Rysunek 8.25. Dodawanie niestandardowego znacznika zada zwizanych z komentarzami

Zadania zwizane ze skrtami


Zadania zwizane ze skrtami to odnoniki do wierszy kodu. Te odnoniki mona doda za
pomoc menu Bookmarks. W tym celu naley umieci kursor w odpowiednim wierszu i wybra
opcj Edit/Bookmarks/Add Task List Shortcut. Zawarto tego wiersza kodu bdzie widoczna jako
opis zadania.
Dwukrotne kliknicie zadania powoduje bezporednie przejcie do odpowiedniego wiersza edytora kodu.

Zadania uytkownika
Zadania uytkownika s wpisywane bezporednio w oknie zada. Obok listy rozwijanej z kategoriami zada okna Task List widoczny jest przycisk Create User Task (rysunek 8.24). Ten przycisk pozwala doda nowy wpis do listy. Nastpnie mona bezporednio wpisa tekst w kolumnie
opisu w celu okrelenia tytuu zadania.
W przeciwiestwie do zada zwizanych ze skrtami i komentarzami zadania uytkownika nie
prowadz do specyficznych wierszy kodu.

324

Rozdzia 8. Korzystanie z narzdzi zwikszajcych produktywno

Uwaga
Model automatyzacji rodowiska Visual Studio umoliwia pen
kontrol nad list zada. Uywajc dostpnych obiektw automatyzacji, takich jak TaskList czy TaskListEvents, mona na przykad programowo dodawa i usuwa zadania z listy, reagowa na
dodanie, modyfikacj, a nawet wybr zadania, czy kontrolowa
powizania midzy zadaniem a edytorem.

Podsumowanie
Visual Studio 2008 udostpnia niezwyk liczb funkcji zwikszajcych produktywno programistw. Ten rozdzia opisuje wiele aspektw technologii IntelliSense: od uzupeniania instrukcji,
po now technologi wstawiania fragmentw kodu. Pokazalimy take, jak korzysta z rnych elementw IntelliSense w celu szybszego pisania kodu oraz poprawy jego jakoci.
Opisalimy tu techniki nawigowania po skomplikowanych i zagmatwanych plikach z kodem oraz
przegldania ich.
Przedstawilimy take fragmenty kodu oraz opisalimy rne ich typy oraz zastosowania.
Na zakoczenie pokazalimy, jak uywa okna Task List, aby wykorzysta wszystkie jego moliwoci, a take jak organizowa i ledzi rne zadania do wykonania obecne w kadym projekcie
programistycznym.
Z punktu widzenia produktywnoci Visual Studio 2008 to co wicej ni suma jego czci.
Dziki synergii midzy poszczeglnymi elementami rodowiska kada z waciwoci znosi bariery
i agodzi bolczki programistw niezalenie od ich wczeniejszych dowiadcze, poziomu biegoci
czy preferowanego jzyka.

325

You might also like