NET Framework 20 Zaawansowane programowanie.pdf

(637 KB) Pobierz
.NET Framework 2.0. Zaawansowane programowanie
Zaawansowane programowanie
Autor: Joe Duffy
T³umaczenie: Pawe³ Dudziak, Bogdan Kamiñski,
Grzegorz Werner
ISBN: 978-83-246-0654-2
Tytu³ orygina³u: Professional .NET Framework 2.0
Format: B5, stron: 672
oprawa twarda
Przyk³ady na ftp: 78 kB
Wydawnictwo Helion
ul. Koœciuszki 1c
44-100 Gliwice
tel. 032 230 98 63
e-mail: helion@helion.pl
Przegl¹d funkcji i mo¿liwoœci .NET Framework 2.0
oraz œrodowiska CLR 2.0 dla zaawansowanych
Jakie mo¿liwoœci oferuje platforma .NET Framework 2.0 i œrodowisko CLR 2.0?
Jak szybko i ³atwo pisaæ aplikacje dla systemu Windows?
Jak zwiêkszyæ sw¹ produktywnoœæ?
Wraz z coraz bardziej rozbudowan¹ funkcjonalnoœci¹ .NET Framework roœnie tak¿e jej
popularnoœæ. Mo¿liwoœæ b³yskawicznego tworzenia zaawansowanych aplikacji dla systemu
Windows na bazie tej platformy oraz wspólnego œrodowiska uruchomieniowego CLR sprawia,
¿e coraz wiêksza rzesza programistów pragnie poznaæ te technologie i wykorzystaæ je
do zwiêkszenia swej produktywnoœci. Wersja 2.0 .NET Framework udostêpnia wiêksz¹ liczbê
wbudowanych kontrolek, nowe funkcje obs³ugi baz danych za pomoc¹ ADO.NET, rozbudowane
narzêdzia do tworzenia witryn internetowych przy u¿yciu ASP.NET i wiele innych usprawnieñ
znacznie u³atwiaj¹cych programowanie.
.NET Framework 2.0. Zaawansowane programowanie to podrêcznik dla programistów, którzy
chc¹ szybko rozpocz¹æ pracê z t¹ platform¹. Dziêki tej ksi¹¿ce poznasz mechanizmy dzia³ania
.NET Framework i œrodowiska CLR, a tak¿e funkcje licznych bibliotek, zarówno tych
podstawowych, jak i bardziej wyspecjalizowanych. Dowiesz siê, jak przy u¿yciu tych technologii
³atwo zapewniaæ bezpieczeñstwo kodu, debugowaæ oprogramowanie, obs³ugiwaæ transakcje,
zapewniaæ wspó³dzia³anie aplikacji z kodem niezarz¹dzanym i wykonywaæ wiele innych
potrzebnych operacji.
Funkcjonowanie œrodowiska CLR
Struktura i mechanizmy wspólnego systemu typów (CTS)
Dzia³anie jêzyka poœredniego (IL) i kompilacji JIT
Obs³uga operacji wejœcia-wyjœcia
Tworzenie aplikacji miêdzynarodowych
Zapewnianie bezpieczeñstwa kodu
Programowanie wspó³bie¿ne przy u¿yciu w¹tków, domen i procesów
Umo¿liwianie wspó³dzia³ania z kodem niezarz¹dzanym
Debugowanie oprogramowania
Stosowanie wyra¿eñ regularnych
Programowanie dynamiczne z zastosowaniem metadanych i refleksji
Obs³uga transakcji
Zacznij korzystaæ z mo¿liwoœci .NET Framework 2.0
i ju¿ dziœ zwiêksz sw¹ produktywnoœæ
.NET Framework 2.0.
400256542.002.png 400256542.003.png 400256542.004.png 400256542.005.png
O autorze .................................................................................................................................................... 11
Przedmowa ............................................................................................................................................... 13
Część I Podstawowe informacje o CLR
21
Rozdział 1. Wprowadzenie .......................................................................................................................23
Historia platformy ........................................................................................................ 23
Nadejście platformy .NET Framework ....................................................................... 24
Przegląd technologii .NET Framework ............................................................................ 25
Kluczowe udoskonalenia w wersji 2.0 ...................................................................... 26
Rozdział 2. Wspólny system typów ........................................................................................................29
Wprowadzenie do systemów typów ............................................................................... 30
Znaczenie bezpieczeństwa typologicznego ................................................................ 31
Statyczna i dynamiczna kontrola typów .................................................................... 33
Typy i obiekty .............................................................................................................. 37
Unifikacja typów ..................................................................................................... 37
Typy referencyjne i wartościowe ............................................................................... 39
Dostępność i widoczność ........................................................................................ 47
Składowe typów ..................................................................................................... 48
Podklasy i polimorfizm ............................................................................................ 73
Przestrzenie nazw: organizowanie typów ................................................................... 82
Typy specjalne ....................................................................................................... 84
Generyki ..................................................................................................................... 94
Podstawy i terminologia .......................................................................................... 94
Ograniczenia ........................................................................................................ 102
Lektura uzupełniająca ................................................................................................ 104
Książki poświęcone .NET Framework i CLR ............................................................. 104
Systemy typów i języki .......................................................................................... 104
Generyki i pokrewne technologie ........................................................................... 105
Konkretne języki ................................................................................................... 105
400256542.001.png
6
.NET Framework 2.0. Zaawansowane programowanie
Rozdział 3. Wewnątrz CLR .................................................................................................................... 107
Intermediate Language (IL) ......................................................................................... 108
Przykład kodu IL: „Witaj, świecie!” ......................................................................... 108
Asemblacja i dezasemblacja IL .............................................................................. 110
Abstrakcyjna maszyna stosowa ............................................................................. 110
Zestaw instrukcji .................................................................................................. 113
Wyjątki ..................................................................................................................... 127
Podstawy wyjątków ............................................................................................... 128
Szybkie zamknięcie .............................................................................................. 140
Wyjątki dwuprzebiegowe ....................................................................................... 140
Wydajność ........................................................................................................... 142
Automatyczne zarządzanie pamięcią ........................................................................... 144
Alokacja .............................................................................................................. 144
Odśmiecanie ....................................................................................................... 150
Finalizacja ........................................................................................................... 153
Kompilacja just-in-time (JIT) ........................................................................................ 155
Przegląd procesu kompilacji .................................................................................. 155
Wywoływanie metod ............................................................................................. 156
Obsługa architektury 64-bitowej ............................................................................ 162
Lektura uzupełniająca ................................................................................................ 162
Rozdział 4. Podzespoły, wczytywanie i wdrażanie ............................................................................. 165
Jednostki wdrażania, wykonywania i wielokrotnego użytku ............................................. 166
Metadane podzespołu .......................................................................................... 168
Podzespoły współdzielone (Global Assembly Cache) ............................................... 177
Podzespoły zaprzyjaźnione .................................................................................... 178
Wczytywanie podzespołów .......................................................................................... 179
Proces wiązania, mapowania i wczytywania ............................................................ 179
Wczytywanie CLR ................................................................................................. 188
Statyczne wczytywanie podzespołów ...................................................................... 189
Dynamiczne wczytywanie podzespołów ................................................................... 191
Przekazywanie typów ............................................................................................ 195
Generowanie obrazów natywnych (NGen) ..................................................................... 197
Zarządzanie buforem (ngen.exe) ............................................................................ 198
Adresy bazowe i poprawki ..................................................................................... 198
Wady i zalety ....................................................................................................... 201
Lektura uzupełniająca ................................................................................................ 202
Część II Podstawowe biblioteki .NET Framework
203
Rozdział 5. Najważniejsze typy .NET .................................................................................................... 205
Typy podstawowe ...................................................................................................... 205
Object ................................................................................................................. 207
Liczby ................................................................................................................. 214
Wartości logiczne ................................................................................................. 219
Łańcuchy ............................................................................................................. 219
IntPtr .................................................................................................................. 227
Daty i czas .......................................................................................................... 227
Pomocnicze klasy BCL ............................................................................................... 231
Formatowanie ...................................................................................................... 231
Analiza składniowa ............................................................................................... 235
 
Spis treści
7
Konwersja typów podstawowych ............................................................................ 236
Budowanie łańcuchów .......................................................................................... 237
Odśmiecanie ....................................................................................................... 238
Słabe referencje .................................................................................................. 240
Wywołania matematyczne ..................................................................................... 241
Najważniejsze wyjątki ................................................................................................. 244
Wyjątki systemowe ............................................................................................... 245
Inne standardowe wyjątki ...................................................................................... 247
Wyjątki niestandardowe ........................................................................................ 249
Lektura uzupełniająca ................................................................................................ 249
Rozdział 6. Tablice i kolekcje ................................................................................................................ 251
Tablice ..................................................................................................................... 251
Tablice jednowymiarowe ....................................................................................... 252
Tablice wielowymiarowe ........................................................................................ 253
Obsługa tablic w BCL (System.Array) ..................................................................... 256
Tablice stałe ........................................................................................................ 261
Kolekcje ................................................................................................................... 261
Kolekcje generyczne ............................................................................................. 262
Słabo typizowane kolekcje .................................................................................... 283
Porównywalność ................................................................................................... 284
Funkcjonalne typy delegacyjne ............................................................................... 289
Lektura uzupełniająca ................................................................................................ 291
Rozdział 7. Wejście-wyjście, pliki i sieć ............................................................................................. 293
Strumienie ................................................................................................................ 294
Praca z klasą bazową ........................................................................................... 294
Klasy czytające i piszące ...................................................................................... 303
Pliki i katalogi ...................................................................................................... 310
Inne implementacje strumieni ............................................................................... 318
Urządzenia standardowe ............................................................................................ 320
Zapisywanie danych na standardowym wyjściu i standardowym wyjściu błędów ......... 320
Czytanie ze standardowego wejścia ....................................................................... 321
Sterowanie konsolą .............................................................................................. 321
Port szeregowy .................................................................................................... 322
Sieć ......................................................................................................................... 322
Gniazda ............................................................................................................... 323
Informacje o sieci ................................................................................................ 331
Klasy do obsługi protokołów .................................................................................. 332
Lektura uzupełniająca ................................................................................................ 340
Rozdział 8. Internacjonalizacja ............................................................................................................ 343
Definicja internacjonalizacji ........................................................................................ 344
Obsługa platformy ................................................................................................ 344
Proces ................................................................................................................ 346
Przykładowe scenariusze ........................................................................................... 348
Dostarczanie zlokalizowanej treści ......................................................................... 348
Formatowanie regionalne ...................................................................................... 350
Kultura ..................................................................................................................... 351
Reprezentowanie kultur (CultureInfo) ..................................................................... 352
Formatowanie ...................................................................................................... 357
8
.NET Framework 2.0. Zaawansowane programowanie
Zasoby ..................................................................................................................... 358
Tworzenie zasobów .............................................................................................. 358
Pakowanie i wdrażanie ......................................................................................... 360
Dostęp do zasobów .............................................................................................. 362
Kodowanie ................................................................................................................ 363
Obsługa BCL ........................................................................................................ 364
Problemy z domyślną kulturą ...................................................................................... 365
Manipulacja łańcuchami (ToString, Parse i TryParse) ............................................... 365
Lektura uzupełniająca ................................................................................................ 369
Część III Zaawansowane usługi CLR
371
Rozdział 9. Bezpieczeństwo ................................................................................................................. 373
Zabezpieczenia dostępu do kodu ................................................................................ 374
Definiowanie zaufania .......................................................................................... 376
Uprawnienia ........................................................................................................ 380
Zarządzanie polityką ............................................................................................. 385
Stosowanie zabezpieczeń ..................................................................................... 386
Zabezpieczenia oparte na tożsamości użytkowników ........................................................ 391
Tożsamość .......................................................................................................... 392
Kontrola dostępu ................................................................................................. 393
Lektura uzupełniająca ................................................................................................ 396
Rozdział 10. Wątki, domeny i procesy ................................................................................................. 397
Wątki ....................................................................................................................... 400
Przydzielanie pracy wątkom należącym do puli ........................................................ 400
Jawne zarządzanie wątkami .................................................................................. 402
Odizolowane dane wątku ...................................................................................... 411
Współdzielenie elementów pomiędzy wątkami ........................................................ 414
Częste problemy współbieżności ........................................................................... 428
Zdarzenia ............................................................................................................ 430
Model programowania asynchronicznego ............................................................... 433
Zaawansowane zagadnienia wątkowości ................................................................ 436
Domeny AppDomain .................................................................................................. 441
Tworzenie ............................................................................................................ 441
Zwalnianie ........................................................................................................... 442
Wczytywanie kodu do domeny AppDomain .............................................................. 442
Szeregowanie ...................................................................................................... 443
Wczytywanie, zwalnianie i wyjątki ........................................................................... 443
Izolacja domeny AppDomain ................................................................................. 444
Procesy .................................................................................................................... 447
Istniejące procesy ................................................................................................ 447
Tworzenie ............................................................................................................ 449
Kończenie procesów ............................................................................................. 450
Lektura uzupełniająca ................................................................................................ 451
Rozdział 11. Interoperacyjność z kodem niezarządzanym ................................................................ 453
Wskaźniki, uchwyty i zasoby ....................................................................................... 454
Definicja interoperacyjności .................................................................................. 454
Natywne wskaźniki w CTS (IntPtr) .......................................................................... 455
Zarządzanie pamięcią i zasobami .......................................................................... 458
Zgłoś jeśli naruszono regulamin