Spis treści
Transkrypt
Spis treści
Spis treści Wstęp 1 Tworzenie aplikacji ix 1 1.1 Tworzenie aplikacji trybu tekstowego 2 1.2 Utworzenie aplikacji Windows 4 1.3 Utworzenie i wykorzystanie modułu kodu 7 1.4 Utworzenie biblioteki kodów i korzystanie z niej 9 1.5 Dostęp do argumentów linii poleceń 10 1.6 Selektywne włączanie kodu podczas jego budowy 12 1.7 Dostęp do elementu programu o tej samej nazwie, co słowo kluczowe 15 1.8 Tworzenie i zarządzanie parami kluczy silnej nazwy 16 1.9 Nadawanie asemblacji silnej nazwy 18 1.10 Sprawdzenie, czy asemblacja o silnej nazwie nie została zmodyfikowana 19 1.11 Opóźnienie podpisu asemblacji 20 1.12 Podpisywanie asemblacji podpisem cyfrowym Authenticode 22 1.13 Utworzenie testowego certyfikatu wydawcy oprogramowania i obdarzenie go zaufaniem 25 1.14 Zarządzanie globalnym buforem asemblacji (GAC) 26 1.15 Ochrona przed dekompilacją kodu przez osoby postronne 27 2 Praca z danymi 2.1 Efektywne manipulowanie zawartością łańcuchów 2.2 Przekodowanie łańcucha za pomocą innego schematu kodowania znaków 2.3 Konwersja podstawowych typów wartości na tablicę bajtową 2.4 Kodowanie danych binarnych jako tekstu 2.5 Testowanie poprawności danych wejściowych przy uŜyciu wyraŜeń regularnych 2.6 Wykorzystywanie skompilowanych wyraŜeń regularnych 2.7 Tworzenie daty i czasu z łańcucha 2.8 Dodawanie, odejmowanie i porównywanie dat i czasów 2.9 Sortowanie tablicy lub wykazu tablic ArrayList 2.10 Kopiowanie kolekcji do tablicy 2.11 Tworzenie kolekcji elementów jednolitego typu 2.12 Zapamiętywanie serializowanego obiektu w pliku 3 Domeny aplikacji, odbicie i metadane 3.1 Tworzenie domeny aplikacji 3.2 Przekazanie obiektów poza granice domeny aplikacji 3.3 Unikanie ładowania zbędnych asemblacji do domen aplikacji 3.4 Utworzenie typu, który nie moŜe przekroczyć granic domeny aplikacji 3.5 Ładowanie asemblacji do aktualnej domeny aplikacji 29 29 31 34 36 38 41 43 44 46 47 48 50 53 53 55 56 57 58 3.6 Wykonanie asemblacji w innej domenie aplikacji 3.7 Utworzenie instancji typu w innej domenie aplikacji 3.8 Przekazywanie danych między domenami aplikacji 3.9 Zwalnianie asemblacji i domen aplikacji 3.10 Uzyskiwanie informacji o typie 3.11 Testowanie typu obiektu 3.12 Tworzenie instancji obiektu przy uŜyciu odbicia 3.13 Tworzenie niestandardowego atrybutu 3.14 Sprawdzenie atrybutów elementu programu przy uŜyciu odbicia 4 Wątki, procesy i synchronizacja 4.1 Wykonanie metody przy uŜyciu puli wątków 4.2 Asynchroniczne wykonywanie metody 4.3 Wykonanie metody przy uŜyciu timera 4.4 Wykonanie metody poprzez sygnalizację obiektu WaitHandle 4.5 Wykonanie metody przy uŜyciu nowego wątku 4.6 Nadzór nad wykonaniem wątku 4.7 Rozpoznanie momentu zakończenia wątku 4.8 Synchronizacja działalności wielu wątków 4.9 Tworzenie instancji kolekcji przystosowanej do działania w trybie wielowątkowym 4.10 Zapoczątkowanie nowego procesu 4.11 Zakończenie procesu 4.12 Ograniczenie równoczesności działania do jednej tylko instancji aplikacji 5 Przetwarzanie XML 5.1 Przedstawienie struktury dokumentu XML w postaci drzewa 5.2 Wstawianie węzłów do dokumentu XML 5.3 Szybkie dołączanie węzłów do dokumentu XML 5.4 Odnajdywanie określonych elementów przy pomocy nazwy 5.5 Odczytywanie węzłów XML w określonej przestrzeni nazw XML 5.6 Odnajdywanie elementów poprzez przeszukiwanie XPath 5.7 Odczyt i zapis XML bez ładowania do pamięci całego dokumentu 5.8 Sprawdzenie zgodności dokumentu XML ze schematem 5.9 Serializacja XML przy pomocy obiektów niestandardowych 5.10 Tworzenie schematu dla klasy .NET 5.11 Generowanie klasy ze schematu 5.12 Wykonywanie transformacji XSL 6 Formularze Windows 6.1 Programowe dodawanie kontrolki 6.2 Przypisanie danych do kontrolki 6.3 Przetwarzanie wszystkich kontrolek formularza 6.4 Śledzenie widocznych formularzy w aplikacji 6.5 Znajdowanie wszystkich formularzy podrzędnych MDI 6.6 Zapamiętywanie rozmiaru i połoŜenia formularza 6.7 Wymuszenie przewijania okna listy 60 62 65 67 68 70 71 74 76 79 79 82 89 91 93 95 99 100 104 106 108 111 113 114 117 119 121 123 124 127 130 135 138 139 139 143 144 145 147 148 150 151 153 6.8 Ograniczenie zawartości okna tekstowego do wejściowych danych numerycznych 6.9 Wykorzystanie okna autouzupełniania typu combo 6.10 Sortowanie zawartości listy według dowolnej kolumny 6.11 Przypisanie menu kontekstowego do kontrolki 6.12 Wykorzystywanie części głównego menu do menu kontekstowego 6.13 Tworzenie formularza wielojęzycznego 6.14 Tworzenie formularzy nieruchomych 6.15 Przekształcenie formularza bez ramki w obiekt ruchomy 6.16 Tworzenie animowanej ikony paska systemowego 6.17 Test kontrolki wejściowej 6.18 Wykonanie operacji przeciągania i upuszczania 6.19 UŜywanie pomocy kontekstowej 6.20 Zastosowanie stylu Windows XP do kontrolek 7 ASP.NET i formularze Web 7.1 Przekierowanie uŜytkownika na inną stronę 7.2 Zapamiętywanie informacji między zgłoszeniami 7.3 Tworzenie zmiennych członkowskich strony z informacją o stanie 7.4 Odpowiedź na zdarzenia po stronie klienta w języku JavaScript 7.5 Pokazanie wyskakującego okna przy uŜyciu JavaScript 7.6 Programowe ustawianie fokusu kontrolki 7.7 UmoŜliwienie załadowania pliku przez uŜytkownika 7.8 Wykorzystanie uwierzytelnienia IIS 7.9 UŜycie uwierzytelniania opartego o formularze 7.10 Wykonanie selektywnych testów poprawności danych wejściowych 7.11 Dynamiczne dołączanie kontrolek do formularza Web 7.12 Dynamiczne renderowanie obrazu 7.13 Programowe ładowanie kontrolek uŜytkownika 7.14 Wykorzystywanie buforowania stron i fragmentów 7.15 Powtórne uŜycie danych z bufora ASP.NET 7.16 Włączanie wykrywania i usuwania błędów (debugging) strony Web 7.17 Zmiana zezwoleń dla kodu ASP.NET 8 Grafika, multimedia i drukowanie 154 155 158 160 161 163 165 166 168 169 171 173 174 177 178 179 183 185 187 188 189 192 196 199 201 203 207 211 212 215 218 221 8.1 Odnajdywanie wszystkich zainstalowanych czcionek 222 8.2 Wykonanie testu trafienia dla konturów 224 8.3 Utworzenie kontrolki o nieprostokątnym kształcie 227 8.4 Utwórz ruchomego „duszka” 229 8.5 Utworzenie obrazu dającego się przewijać 232 8.6 Wykonanie zrzutu ekranu 233 8.7 Zastosownie podwójnego buforowania w celu przyspieszenia przerysowywania235 8.8 Pokazanie miniatur obrazów 238 8.9 Wygenerowanie prostego dźwięku ‘beep’ 239 8.10 Odtworzenie pliku WAV lub MP3 240 8.11 Przedstawienie animacji z DirectShow 242 8.12 Wyszukiwanie informacji o zainstalowanych drukarkach 245 8.13 Drukowanie prostego dokumentu 8.14 Drukowanie dokumentu wielostronicowego 8.15 Drukowanie sformatowanego tekstu 8.16 Wyświetlenie dynamicznego podglądu wydruku 8.17 Zarządzanie zadaniami drukowania 9 Pliki, katalogi i operacje wejścia/wyjścia (I/O) 10 11 247 249 252 254 257 261 9.1 Odczytywanie informacji o pliku lub katalogu 9.2 Ustawienie atrybutów pliku i katalogu 9.3 Kopiowanie, przenoszenie i usuwanie pliku lub katalogu 9.4 Obliczanie rozmiaru katalogu 9.5 Wyszukiwanie informacji o wersji pliku 9.6 Wyświetlenie drzewa katalogów na bieŜąco w kontrolce TreeView 9.7 Odczytywanie i zapisywanie pliku tekstowego 9.8 Odczytywanie i zapisywanie pliku binarnego 9.9 Asynchroniczny odczyt pliku 9.10 Wyszukanie plików odpowiadających wyraŜeniu zawierającemu znaki zastępcze 9.11 Testowanie identyczności dwóch plików 9.12 Posługiwanie się łańcuchami reprezentującymi nazwy plików 9.13 Określenie, czy ścieŜka dotyczy katalogu, czy pliku 9.14 Praca ze ścieŜkami względnymi 9.15 Utworzenie pliku tymczasowego 9.16 Odczytanie wielkości całkowitej wolnej przestrzeni dyskowej 9.17 Wyświetlenie wspólnych plikowych okien dialogowych 9.18 UŜywanie izolowanego magazynu 9.19 Monitorowanie zmian w systemie plików 9.20 Dostęp do portu COM 262 265 266 269 270 271 274 276 277 280 281 283 284 285 286 287 288 291 293 295 Dostęp do baz danych 297 10.1 Połączenia z bazą danych 10.2 Tworzenie pul połączeń 10.3 Wykonanie polecenia SQL lub procedury składowanej 10.4 Wykorzystanie parametrów w poleceniu SQL lub procedurze składowanej 10.5 Przetwarzanie wyników zapytania SQL przy uŜyciu czytnika danych 10.6 Uzyskanie dokumentu XML w zapytaniu SQL 10.7 Wyszukiwanie wszystkich instancji SQL Server 2000 w sieci 298 300 303 306 309 312 315 Programowanie sieciowe i międzysieciowe 317 11.1 Pobranie pliku poprzez HTTP 11.2 Pobranie pliku i przetwarzanie go przy uŜyciu strumienia 11.3 Uzyskanie strony HTML z witryny wymagającej uwierzytelnienia 11.4 Wyświetlenie strony Web w aplikacji Windows 11.5 Uzyskanie adresu IP aktualnego komputera 11.6 Uzyskanie nazwy hosta dla adresu IP 11.7 Pingowanie adresu IP 11.8 Komunikacja przy uŜyciu TCP 318 319 321 322 325 326 327 330 12 13 14 11.9 Uzyskanie adresu IP klienta z gniazda połączenia 11.10 Ustawienie opcji gniazda 11.11 Utworzenie wielowątkowego serwera TCP 11.12 Asynchroniczne uŜywanie TCP 11.13 Komunikacja przy uŜyciu UDP 11.14 Wysyłanie wiadomości e-mail poprzez SMTP 11.15 Przesyłanie i odbieranie wiadomości e-mail za pomocą MAPI 334 336 337 339 342 345 346 Usługi Web XML i zdalny dostęp 349 12.1 Unikanie kodowania na stałe adresu URL usług XML Web 12.2 Wykorzystanie buforowania odpowiedzi usługi XML Web 12.3 Buforowanie danych usługi XML Web 12.4 Utworzenie transakcyjnej metody Web 12.5 Definiowanie poświadczeń dla usługi XML Web 12.6 Asynchroniczne wywołanie metody Web 12.7 Przekształcenie obiektu na zdalny 12.8 Rejestracja wszystkich zdalnych klas zdefiniowanych w asemblacji 12.9 Utrzymywanie zdalnego obiektu w IIS 12.10 Wyzwolenie zdarzenia przez zdalny kanał 12.11 Kontrolowanie czasu Ŝycia zdalnego obiektu 12.12 Zarządzanie wersjami zdalnych obiektów 12.13 Utworzenie metody jednokierunkowej korzystającej z usług XML Web lub zdalnego dostępu 350 352 353 355 357 359 361 365 367 369 373 374 Bezpieczeństwo w czasie wykonania 379 13.1 Dopuszczenie częściowo zaufanego kodu do asemblacji o silnych nazwach 13.2 Wyłączenie zabezpieczeń dostępu do kodu 13.3 Wyłączenie sprawdzania uprawnień do wykonania 13.4 Zagwarantowanie, Ŝe moduł runtime przyzna asemblacji specjalne uprawnienia 13.5 Ogranicznie uprawnień przyznawanych asemblacji 13.6 Przeglądanie Ŝądań uprawnień wykonywanych przez asemblację 13.7 Określenie posiadania uprawnień podczas wykonywania programu 13.8 Ograniczenie prawa do rozszerzenia klasy i nadpisywania jej pól 13.9 Przeglądanie ewidencji asemblacji 13.10 Posługiwanie się ewidencją podczas ładowania asemblacji 13.11 Modyfikowanie zabezpieczeń czasu wykonania przy uŜyciu ewidencji domeny aplikacji 13.12 Posługiwanie się zabezpieczeniami czasu wykonania przy uŜyciu zasad zabezpieczeń domeny aplikacji 13.13 Określenie, czy aktualny uŜytkownik jest członkiem danej grupy Windows 13.14 Ograniczanie uŜytkowników mających prawo do wykonania kodu 13.15 Personifikacja uŜytkownika systemu Windows 380 382 384 400 403 406 411 Kryptografia 415 14.1 Utworzenie kryptograficznie losowego numeru 14.2 Wyliczanie kodu hash dla hasła 416 417 376 385 387 389 391 392 394 395 397 15 16 17 14.3 Wyliczanie kodu hash dla pliku 14.4 Weryfikacja kodu hash 14.5 Zapewnienie integralności danych przy uŜyciu kodu hash z kluczem 14.6 Zabezpieczenie pliku przy uŜyciu symetrycznego szyfrowania 14.7 Wyprowadzenie klucza szyfrowania symetrycznego z hasła 14.8 Bezpieczne wysyłanie utajnionych danych przy uŜyciu szyfrowania asymetrycznego 14.9 Bezpieczne zapamiętywanie klucza szyfrowania asymetrycznego 14.10 Bezpieczna wymiana symetrycznego klucza sesji 420 421 423 426 431 Współdziałanie z niezarządzanym kodem 445 15.1 Wywołanie funkcji z niezarządzanej biblioteki DLL 15.2 Przejęcie uchwytu kontrolki, okna lub pliku 15.3 Wywołanie niezarządzanej funkcji wykorzystującej strukturę 15.4 Wywołanie niezarządzanej funkcji posługującej się wywołaniem zwrotnym 15.5 Odczytywanie niezarządzanej informacji o błędach 15.6 UŜycie komponentu COM w kliencie .NET 15.7 Szybkie zwolnienie komponentu COM 15.8 UŜycie parametrów opcjonalnych 15.9 UŜycie kontrolki ActiveX w kliencie .NET 15.10 Wykorzystanie komponentu .NET przez COM 446 448 450 453 454 456 458 458 460 461 Powszechnie uŜywane interfejsy i wzorce 463 16.1 Implementacja serializowalnego typu 16.2 Implementacja typu klonowalnego 16.3 Implementacja typów porównywalnych 16.4 Implementacja typu wyliczalnego 16.5 Implementacja klasy jednorazowego uŜycia 16.6 Implementowanie typu formatowalnego 16.7 Implementacja niestandardowej klasy wyjątku 16.8 Implementacja niestandardowego argumentu zdarzenia 16.9 Implementacja wzorca pojedynczej instancji 16.10 Implementacja wzorca obserwatora 464 468 471 475 480 484 487 491 492 493 Integracja z systemem Windows 499 17.1 Dostęp do informacji o środowisku wykonywczym 17.2 Wyszukiwanie wartości zmiennej środowiska 17.3 Zapisanie zdarzenia do dziennika zdarzeń Windows 17.4 Dostęp do rejestru Windows 17.5 Utworzenie usługi Windows 17.6 Utworzenie instalatora usługi Windows 17.7 Utworzenie skrótu na pulpicie lub w menu Start 500 503 504 506 510 514 516 Indeks 519 433 438 441