.net clr. księga eksperta full version.pdf

(9292 KB) Pobierz
710022006 UNPDF
IDZ DO
PRZYK£ADOW Y ROZDZIA£
.NET CLR.
SPIS TRECI
Ksiêga eksperta
Autor: Kevin Burton
T³umaczenie: Marcin Jêdrysiak
ISBN: 83-7197-780-8
Tytu³ orygina³ u: .NET Common
Language Runtime Unleashed
Format: B5, stron: 868
KATALOG KSI¥¯EK
KATALOG ONLINE
ZAMÓW DRUKOWANY KATALOG
TWÓJ KOSZYK
„.NET CLR. Ksiêga eksperta” to ca³ociowe opracowanie powiêcone g³ównemu
sk³adnikowi platformy .NET Microsoftu, jakim jest Common Language Runtime. CLR
pozwala na korzystanie z dowolnych jêzyków programowania zgodnych z .NET
udostêpniaj¹c im wspólne us³ugi. Niezale¿nie od tego, czy uruchamiasz kod napisany
w VB, C#, zarz¹dzanym C++, JScripcie czy te¿ w dowolnym innym obs³ugiwanym przez
platformê .NET jêzyku — wykorzystywane s¹ funkcje i us³ugi CLR.
Tematy poruszone w ksi¹¿ce obejmuj¹ m.in.:
• Typy .NET i Common Type System (CTS)
• Strukturê i uk³ad metadanych podzespo³u .NET
• Wspó³pracê COM i COM+ z komponentami .NET
• Integracjê z bibliotekami Win32 DLL poprzez P/Invoke
• Zarz¹dzanie pamiêci¹ i zasobami w CLR
• Zarz¹dzanie i u¿ycie w¹tków w rodowisku .NET
• Tworzenie wydajnych aplikacji do obs³ugi sieci równorzêdnych
• Tworzenie rozproszonych aplikacji
• Interakcje aplikacji poprzez zdarzenia i delegaty
• Obs³ugê b³êdów w .NET przy u¿yciu wyj¹tków
• Tworzenie i obs³ugê bezpiecznych aplikacji dziêki zabezpieczeniom .NET
• Dynamiczne uzyskiwanie informacji o typach poprzez refleksjê
• U¿ycie narzêdzi do globalizacji i lokalizacji
• Usuwanie b³êdów aplikacji .NET
• Profilowanie aplikacji .NET
• Omówienie sk³adni C# i najwa¿niejszych kwestii zwi¹zanych z tym jêzykiem
• Przegl¹d bibliotek struktury .NET
• Tworzenie w³asnego hosta CLR
• Porównanie CLR i JVM
Je¿eli chcesz zajmowaæ siê pisaniem aplikacji opartych na .NET, „.NET CLR. Ksiêga
eksperta” stanowiæ bêdzie cenne uzupe³nienie Twojej wiedzy i pozwoli na lepsze
zrozumienie zasad, na których oparta jest ta platforma.
DODAJ DO KOSZYKA
CENNIK I INFORMACJE
ZAMÓW INFORMACJE
O NOWOCIACH
ZAMÓW CENNIK
CZYTELNIA
FRAGMENTY KSI¥¯EK ONLINE
Wydawnictwo Helion
ul. Chopina 6
44-100 Gliwice
tel. (32)230-98-63
e-mail: helion@helion.pl
710022006.001.png 710022006.002.png 710022006.003.png 710022006.004.png
Krótka historia CLR ..............................................................................................................................30
Omówienie zarzdzanego rodowiska wykonawczego.........................................................................30
Bezpiecze stwo typów....................................................................................................................32
Pełne bezpiecze stwo......................................................................................................................34
Obsługa wielu j)zyków...................................................................................................................35
Wydajno, i skalowalno, ..............................................................................................................36
Wdra.anie........................................................................................................................................37
Metadane i samoopisujcy kod .......................................................................................................38
Oczyszczanie pami)ci i zarzdzanie zasobami ...............................................................................39
Ewolucja COM................................................................................................................................39
Obsługa wtków..............................................................................................................................40
Obsługa sieci ...................................................................................................................................40
Zdarzenia.........................................................................................................................................40
Konsekwentna obsługa bł)dów.......................................................................................................40
Uzyskiwanie informacji o typie w czasie pracy aplikacji...............................................................41
Globalizacja.....................................................................................................................................41
Usuwanie bł)dów i profilowanie.....................................................................................................41
Podsumowanie.......................................................................................................................................41
!"#$%%%& '(
Common Type System (CTS) ...............................................................................................................43
Typy wartoci..................................................................................................................................44
Typy odwoła ..................................................................................................................................48
Cechy Common Language Specification ..............................................................................................56
Nazewnictwo...................................................................................................................................56
Elementy składowe typu .................................................................................................................61
Właciwoci ....................................................................................................................................64
Zdarzenia.........................................................................................................................................67
Tablice.............................................................................................................................................68
Wyliczenia.......................................................................................................................................68
Wyjtki............................................................................................................................................69
Własne atrybuty...............................................................................................................................70
Podsumowanie.......................................................................................................................................72
 
(!"
#&%) (
Wprowadzenie do rodowiska wykonawczego.....................................................................................74
Uruchamianie metody............................................................................................................................75
Typy obsługiwane przez IL.............................................................................................................76
Wykonawczy wtek kontroli...........................................................................................................79
Sterowanie działaniem metody .......................................................................................................80
Podsumowanie.......................................................................................................................................89
! "#
'& (
Przedstawienie podzespołu .NET..........................................................................................................94
Niezale.no, od j)zyka programowania.........................................................................................95
Metadane — podstawa dla równoległego wdra.ania i obsługi wielu wersji..................................96
Metadane a dokładniejsze zabezpieczenia ......................................................................................96
Wi)ksza produktywno, programisty.............................................................................................97
Bezproblemowa interakcja z niezarzdzanymi interfejsami API....................................................97
Praca zdalna.....................................................................................................................................97
Tworzenie mi)dzynarodowych wersji aplikacji..............................................................................97
Koszt metadanych ...........................................................................................................................98
Ogólna struktura podzespołu.................................................................................................................98
Szczegółowe omówienie struktury podzespołu...................................................................................103
Niezarzdzany interfejs API i dost)p do metadanych podzespołu......................................................111
Fizyczna struktura podzespołu ............................................................................................................115
Tablica Module (0x00)..................................................................................................................119
Tablica TypeRef (0x01) ................................................................................................................121
Tablica TypeDef (0x02)................................................................................................................123
Tablica MethodDef (0x06)............................................................................................................125
Tablica MemberRef (0x0A)..........................................................................................................130
Tablica CustomAttribute (0x0C)...................................................................................................130
Tablica Assembly (0x20) ..............................................................................................................131
Tablica AssemblyRef (0x23) ........................................................................................................131
Podsumowanie.....................................................................................................................................132
%$%*" ((
Miejsce IL w procesie programowania ...............................................................................................133
Podr)cznik ILDASM...........................................................................................................................134
Podstawy j)zyka IL .............................................................................................................................135
Najcz)ciej u.ywane polecenia IL ......................................................................................................139
Polecenia IL do ładowania wartoci..............................................................................................139
Polecenia IL do składowania.........................................................................................................142
Polecenia IL do sterowania działaniem kodu................................................................................143
Polecenia operacji IL.....................................................................................................................147
Polecenia modelu obiektów IL......................................................................................................148
Podsumowanie.....................................................................................................................................149
+,--)$
Problemy z instalacj klienta Windows...............................................................................................151
Wdra.anie i publikowanie aplikacji .NET ..........................................................................................153
Identyfikacja kodu poprzez siln nazw)..............................................................................................153
Wdra.anie prywatnego podzespołu.....................................................................................................157
Instalacja współdzielonego kodu.........................................................................................................159
Wyszukiwanie podzespołów ...............................................................................................................162
Badanie plików zasad....................................................................................................................163
Sprawdzenie wczeniejszych odwoła do podzespołu .................................................................165
Sprawdzenie GAC.........................................................................................................................165
Wyszukiwanie podzespołu............................................................................................................165
Administracja zasadami.......................................................................................................................166
Domylna zasada wizania............................................................................................................166
Zmiana zasady wizania poprzez plik zasad aplikacji..................................................................166
Zmiana zasady wizania poprzez plik zasad wydawcy.................................................................168
Zmiana zasady wizania poprzez plik zasad komputera...............................................................169
Podsumowanie.....................................................................................................................................170
$%& '!! !!##
%%%$).*/ (
Omówienie P/Invoke...........................................................................................................................173
Dlaczego współpraca z klasycznym kodem? ......................................................................................175
Niektóre inne metody współpracy z klasycznym kodem....................................................................176
U.ycie P/Invoke ..................................................................................................................................177
Deklaracja funkcji — atrybut DLLImport ....................................................................................177
Szeregowanie ................................................................................................................................180
U.ycie zarzdzanych rozszerze VC++........................................................................................190
Wpływ P/Invoke na wydajno, aplikacji ............................................................................................194
Podsumowanie.....................................................................................................................................194
012%)!3!34%
Runtime Callable Wrapper..................................................................................................................196
Przykładowa aplikacja demonstrujca u.ycie RCW.....................................................................198
Programowe generowanie podzespołu współpracy.............................................................................204
PóIne wizanie z komponentem COM ...............................................................................................206
Współpraca z elementami sterujcymi ActiveX .................................................................................207
Współpraca z SOAP............................................................................................................................211
Podsumowanie.....................................................................................................................................212
12%)
$!3!34
Dlaczego warto tworzy, komponent .NET zachowujcy si) jak składnik COM?..............................215
Podstawy współpracy niezarzdzanego i zarzdzanego kodu.............................................................216
Eksportowanie metadanych do biblioteki typów ..........................................................................217
Rejestracja informacji w bibliotece typów....................................................................................230
Demonstracja współpracy COM z klas Arithmetic.....................................................................232
Demonstracja współpracy COM z Excelem .................................................................................232
Zaawansowane funkcje współpracy COM....................................................................................235
Podsumowanie.....................................................................................................................................240
56), '(
Omówienie sposobu zarzdzania zasobami w strukturze .NET..........................................................243
Porównanie alokacji w strukturze .NET i C-Runtime...................................................................247
Optymalizacja oczyszczania pami)ci poprzez generacje..............................................................250
Finalizacja .....................................................................................................................................250
Zarzdzanie zasobami poprzez obiekt Disposable........................................................................256
Du.e obiekty........................................................................................................................................261
WeakReference lub wycig z mechanizmem oczyszczania pami)ci ..................................................262
Podsumowanie.....................................................................................................................................264
,& +
Prezentacja wtków.............................................................................................................................266
Tworzenie i uruchamianie wtków ...............................................................................................266
Witaj wiecie.................................................................................................................................268
Wielozakresowy delegat wtku.....................................................................................................268
Przekazywanie informacji do wtku .............................................................................................270
Inne operacje wykonywane na wtkach..............................................................................................273
AppDomain .........................................................................................................................................275
Synchronizacja.....................................................................................................................................278
Monitor i Lock ..............................................................................................................................280
Zsynchronizowane zbiory .............................................................................................................282
Klasy synchronizacji wtków........................................................................................................282
Oczekiwanie poprzez WaitHandle................................................................................................282
Klasa Interlocked...........................................................................................................................283
Słowo kluczowe volatile ...............................................................................................................283
Metoda Join...................................................................................................................................283
Invoke, BeginInvoke oraz EndInvoke...........................................................................................283
Pierwszy przykład synchronizacji — obiad filozofów .................................................................284
Drugi przykład synchronizacji — koszyk z kolorowymi piłkami ................................................285
Pula wtków ........................................................................................................................................286
QueueUserWorkItem ....................................................................................................................286
RegisterWaitForSingleObject .......................................................................................................289
Podsumowanie.....................................................................................................................................291
,) (
Krótka historia rozproszonych aplikacji..............................................................................................293
Tradycyjne gniazda..............................................................................................................................294
WinSock ..............................................................................................................................................295
Klasy sieciowe .NET...........................................................................................................................295
Produktywne tworzenie oprogramowania sieciowego..................................................................296
Warstwowy stos sieci....................................................................................................................296
Scenariusze dla aplikacji serwerowych i klienckich.....................................................................296
Elastyczno,..................................................................................................................................296
Zgodno, ze standardami..............................................................................................................296
Gniazdo w .NET..................................................................................................................................297
Gniazdo UDP ................................................................................................................................297
Gniazdo TCP.................................................................................................................................306
Opcje Socket .................................................................................................................................311
U.ycie IOControl..........................................................................................................................316
Asynchroniczne operacje na gniazdach ........................................................................................317
Zgłoś jeśli naruszono regulamin