C 7 i NET Core 2 0 Programowanie wielowatkowych i wspolbieznych aplikacji.pdf

(2154 KB) Pobierz
Tytuł oryginału: C# 7 and .NET Core 2.0 High Performance:
Build multi threaded and concurrent applications using C# 7 and .Net Core 2.0
Tłumaczenie: Łukasz Świder
ISBN: 978-83-283-5044-1
Copyright © Packt Publishing 2018. First published in the English language
under the title ‘C# 7 and .NET Core 2.0 High Performance – (9781788470049)’
Polish edition copyright © 2019 by Helion SA
All rights reserved.
All rights reserved. No part of this book may be reproduced or transmitted in any form or by any means,
electronic or mechanical, including photocopying, recording or by any information storage retrieval system,
without permission from the Publisher.
Wszelkie prawa zastrzeżone. Nieautoryzowane rozpowszechnianie całości lub fragmentu niniejszej
publikacji w jakiejkolwiek postaci jest zabronione. Wykonywanie kopii metodą kserograficzną,
fotograficzną, a także kopiowanie książki na nośniku filmowym, magnetycznym lub innym powoduje
naruszenie praw autorskich niniejszej publikacji.
Wszystkie znaki występujące w tekście są zastrzeżonymi znakami firmowymi bądź towarowymi ich
właścicieli.
Autor oraz Helion SA dołożyli wszelkich starań, by zawarte w tej książce informacje były kompletne
i rzetelne. Nie biorą jednak żadnej odpowiedzialności ani za ich wykorzystanie, ani za związane z tym
ewentualne naruszenie praw patentowych lub autorskich. Autor oraz Helion SA nie ponoszą również
żadnej odpowiedzialności za ewentualne szkody wynikłe z wykorzystania informacji zawartych w książce.
Helion SA
ul. Kościuszki 1c, 44-100 Gliwice
tel. 32 231 22 19, 32 230 98 63
e-mail:
helion@helion.pl
WWW:
http://helion.pl
(księgarnia internetowa, katalog książek)
Drogi Czytelniku!
Jeżeli chcesz ocenić tę książkę, zajrzyj pod adres
http://helion.pl/user/opinie/c7nc2p
Możesz tam wpisać swoje uwagi, spostrzeżenia, recenzję.
Printed in Poland.
Kup książkę
Poleć książkę
Oceń książkę
Księgarnia internetowa
Lubię to! » Nasza społeczność
Spis tre ci
O autorze
O recenzencie
Wst p
Rozdzia 1. Co nowego w .NET Core 2 i C# 7?
Rozwój frameworka .NET
Nowo ci w .NET Core 2.0
Poprawki wydajno ci
Uproszczony system pakietów
cie ka aktualizacji z .NET Core 1.x do 2.0
1. Instalacja .NET Core 2.0
2. Zaktualizowanie TargetFramework
3. Aktualizacja wersji .NET Core SDK
4. Aktualizacja .NET Core CLI
Zmiany w ASP.NET Core Identity
Odkrywanie .NET Core CLI i szablonów nowych projektów
.NET Standard
Wersjonowanie .NET Standard
Nowo ci w .NET Standard 2.0
Tworzenie biblioteki .NET Standard
Co nowego w ASP.NET Core 2.0?
ASP.NET Core Razor Pages
Uproszczona konfiguracja Application Insights
Pule po cze w Entity Framework Core 2.0
Nowe funkcje w C# 7.0
Krotki
Wzorce
Zwracanie referencji
Rozszerzone wyra enia typu expression bodied member
7
8
9
13
13
15
15
17
17
17
17
18
18
18
18
22
24
25
27
27
27
28
29
29
30
31
32
32
Kup książkę
Poleć książkę
Spis tre ci
Tworzenie lokalnych funkcji
Zmienne wyj ciowe
Asynchroniczna metoda Main
Pisanie kodu wysokiej jako ci
Podsumowanie
33
33
34
35
38
Rozdzia 2. Mechanizmy wewn trzne .NET Core i mierzenie wydajno ci
Mechanizmy wewn trzne .NET Core
CoreFX
CoreCLR
Dzia anie MSIL, CLI, CTS i CLS
Jak dzia a CLR?
Od kompilacji do wykonania — pod mask
Mechanizm odzyskiwania pami ci (ang. garbage collection)
.NET Native i kompilacja JIT
Wykorzystywanie wielu rdzeni CPU dla wi kszej wydajno ci
Jak kompilacje w trybie wydania zwi kszaj wydajno
Testy porównawcze aplikacji .NET Core 2.0
Poznawanie BenchmarkDotNet
Jak to dzia a
Ustawianie parametrów
Diagnostyka pami ci z u yciem BenchmarkDotNet
Dodawanie konfiguracji
Podsumowanie
39
40
40
40
41
42
42
43
46
46
48
49
49
51
51
53
53
55
Rozdzia 3. Wielow tkowo
i programowanie asynchroniczne w .NET Core
57
58
60
60
61
64
70
77
83
Wielow tkowo kontra programowanie asynchroniczne
Wielow tkowo w .NET Core
Zastrze enia w wielow tkowo ci
W tki w .NET Core
Synchronizacja w tków
Task parallel library (TPL)
Wzorce projektowe programowania równoleg ego
Podsumowanie
Rozdzia 4. Struktury danych i pisanie zoptymalizowanego kodu C#
Czym s struktury danych?
Notacja wielkiego O do mierzenia wydajno ci i z o ono ci algorytmu
Logarytmy
Wybieranie odpowiedniej struktury danych do optymalizacji wydajno ci
Tablice
Listy
Stosy
Kolejka
Listy czone
S owniki, tablice haszuj ce i zbiory haszuj ce
Listy generyczne
85
86
88
90
91
91
92
93
94
95
96
96
4
Kup książkę
Poleć książkę
Spis tre ci
Najlepsze praktyki pisania zoptymalizowanego kodu C#
Narzut pakowania i rozpakowywania
Konkatenacja a cuchów znaków
Obs uga wyj tków
For i foreach
Delegaty
Podsumowanie
97
98
100
101
102
103
104
Rozdzia 5. Wytyczne projektowania wydajnych aplikacji .NET Core
Zasady kodowania
Konwencje nazewnicze
Komentarze
Jedna klasa na plik
Jedna logika na metod
Zasady projektowania
KISS (Keep It Simple, Stupid)
YAGNI (You Aren’t Gonna Need It)
DRY (Don’t Repeat Yourself)
Podzia odpowiedzialno ci
Zasady SOLID
Buforowanie
Struktury danych
Komunikacja
Zarz dzanie zasobami
Wspó bie no
Podsumowanie
105
106
106
107
107
107
108
108
109
109
109
110
121
122
122
123
124
125
Rozdzia 6. Techniki zarz dzania pami ci w .NET Core
Przegl d zarz dzania alokacj pami ci
Analizowanie mechanizmów wewn trznych CLR przez debuger SOS w .NET Core
Fragmentacja pami ci
Unikanie destruktorów
Najlepsze praktyki zwalniania obiektów w .NET Core
Wst p do interfejsu IDisposable
Czym s niezarz dzane zasoby?
Wykorzystywanie IDisposable
Kiedy implementowa interfejs IDisposable?
Destruktor i Dispose
Podsumowanie
127
128
128
132
133
135
135
135
136
137
138
140
Rozdzia 7. Stosowanie zabezpiecze i implementowanie odporno ci na b dy
w aplikacjach .NET Core
Wprowadzenie do aplikacji odpornych na b dy
Polityki odporno ci
Przechowywanie danych wra liwych z wykorzystaniem Application Secrets
Zabezpieczanie API w ASP.NET Core
SSL (ang. Secure Socket Layer)
Zapobieganie atakom CSRF (ang. Cross-Site Request Forgery)
141
142
142
158
161
161
163
5
Kup książkę
Poleć książkę
Zgłoś jeśli naruszono regulamin