C# 7 i .NET Core 2.0 Programowanie wielowątkowych i współbieżnych aplikacji Bydgoszcz

W świecie programistów aplikacji panuje kult wydajności: najważniejsze są szybkość i efektywność działania kodu. Dostrajanie elementów dużych aplikacji staje się wirtuozerią: wymaga eliminowania wąskich gardeł, optymalizacji kodu, pilnowania każdego bitu pamięci. Niewielkie braki w rozwiązaniach w …

od 32 Najbliżej: 0 km

Liczba ofert: 8

Oferta sklepu

Opis

W świecie programistów aplikacji panuje kult wydajności: najważniejsze są szybkość i efektywność działania kodu. Dostrajanie elementów dużych aplikacji staje się wirtuozerią: wymaga eliminowania wąskich gardeł, optymalizacji kodu, pilnowania każdego bitu pamięci. Niewielkie braki w rozwiązaniach w przypadku rozbudowanych systemów przeradzają się w wielkie problemy. Dla programisty oznacza to, że jeśli chce pracować na prawdziwie profesjonalnym poziomie, musi perfekcyjnie opanować zagadnienia związane ze skalarnością, z modularnością i efektywnością kodu. Ta książka jest przeznaczona dla programistów .NET, którzy chcą przyspieszyć pracę swoich aplikacji. Opisuje nowe funkcje C# 7 i .NET Core 2.0 oraz ich wpływ na wydajność kodu. Przedstawia takie mechanizmy .NET Core jak proces kompilacji, odzyskiwanie pamięci czy wykorzystywanie wielu rdzeni procesora. Prezentuje koncepcje wielowątkowości i programowania asynchronicznego oraz wyjaśnia znaczenie optymalizacji struktur danych. Omawia też wzorce i najlepsze praktyki projektowania aplikacji w .NET Core, a także zagadnienia bezpieczeństwa i elastyczności oraz architektury mikrousług. Wiedza zawarta w książce pozwoli na pisanie modularnych, skalowalnych, bezpiecznych i niezależnie wdrażanych aplikacji. W tej książce między innymi: nowości w C# 7 i .NET Core 2.0 struktury danych i optymalizacja kodu w C# zarządzanie pamięcią i zapobieganie wyciekom pamięci zapewnianie odporności na błędy aplikacji narzędzia do monitorowania wydajności aplikacji: App Metrics, InfluxDB i Grafana wytyczne projektowania i dobre praktyki programistyczne C# i .NET Core: wielowątkowość - współbieżność - wydajność! Spis treści: O autorze 7 O recenzencie 8 Wstęp 9 Rozdział 1. Co nowego w .NET Core 2 i C# 7? 13 Rozwój frameworka .NET 13 Nowości w .NET Core 2.0 15 Poprawki wydajności 15 Uproszczony system pakietów 17 Ścieżka aktualizacji z .NET Core 1.x do 2.0 17 1. Instalacja .NET Core 2.0 17 2. Zaktualizowanie TargetFramework 17 3. Aktualizacja wersji .NET Core SDK 18 4. Aktualizacja .NET Core CLI 18 Zmiany w ASP.NET Core Identity 18 Odkrywanie .NET Core CLI i szablonów nowych projektów 18 .NET Standard 22 Wersjonowanie .NET Standard 24 Nowości w .NET Standard 2.0 25 Tworzenie biblioteki .NET Standard 27 Co nowego w ASP.NET Core 2.0? 27 ASP.NET Core Razor Pages 27 Uproszczona konfiguracja Application Insights 28 Pule połączeń w Entity Framework Core 2.0 29 Nowe funkcje w C# 7.0 29 Krotki 30 Wzorce 31 Zwracanie referencji 32 Rozszerzone wyrażenia typu expression bodied member 32 Tworzenie lokalnych funkcji 33 Zmienne wyjściowe 33 Asynchroniczna metoda Main 34 Pisanie kodu wysokiej jakości 35 Podsumowanie 38 Rozdział 2. Mechanizmy wewnętrzne .NET Core i mierzenie wydajności 39 Mechanizmy wewnętrzne .NET Core 40 CoreFX 40 CoreCLR 40 Działanie MSIL, CLI, CTS i CLS 41 Jak działa CLR? 42 Od kompilacji do wykonania - pod maską 42 Mechanizm odzyskiwania pamięci (ang. garbage collection) 43 .NET Native i kompilacja JIT 46 Wykorzystywanie wielu rdzeni CPU dla większej wydajności 46 Jak kompilacje w trybie wydania zwiększają wydajność 48 Testy porównawcze aplikacji .NET Core 2.0 49 Poznawanie BenchmarkDotNet 49 Jak to działa 51 Ustawianie parametrów 51 Diagnostyka pamięci z użyciem BenchmarkDotNet 53 Dodawanie konfiguracji 53 Podsumowanie 55 Rozdział 3. Wielowątkowość i programowanie asynchroniczne w .NET Core 57 Wielowątkowość kontra programowanie asynchroniczne 58 Wielowątkowość w .NET Core 60 Zastrzeżenia w wielowątkowości 60 Wątki w .NET Core 61 Synchronizacja wątków 64 Task parallel library (TPL) 70 Wzorce projektowe programowania równoległego 77 Podsumowanie 83 Rozdział 4. Struktury danych i pisanie zoptymalizowanego kodu C# 85 Czym są struktury danych? 86 Notacja wielkiego O do mierzenia wydajności i złożoności algorytmu 88 Logarytmy 90 Wybieranie odpowiedniej struktury danych do optymalizacji wydajności 91 Tablice 91 Listy 92 Stosy 93 Kolejka 94 Listy łączone 95 Słowniki, tablice haszujące i zbiory haszujące 96 Listy generyczne 96 Najlepsze praktyki pisania zoptymalizowanego kodu C# 97 Narzut pakowania i rozpakowywania 98 Konkatenacja łańcuchów znaków 100 Obsługa wyjątków 101 For i foreach 102 Delegaty 103 Podsumowanie 104 Rozdział 5. Wytyczne projektowania wydajnych aplikacji .NET Core 105 Zasady kodowania 106 Konwencje nazewnicze 106 Komentarze 107 Jedna klasa na plik 107 Jedna logika na metodę 107 Zasady projektowania 108 KISS (Keep It Simple, Stupid) 108 YAGNI (You Aren't Gonna Need It) 109 DRY (Don't Repeat Yourself) 109 Podział odpowiedzialności 109 Zasady SOLID 110 Buforowanie 121 Struktury danych 122 Komunikacja 122 Zarządzanie zasobami 123 Współbieżność 124 Podsumowanie 125 Rozdział 6. Techniki zarządzania pamięcią w .NET Core 127 Przegląd zarządzania alokacją pamięci 128 Analizowanie mechanizmów wewnętrznych CLR przez debuger SOS w .NET Core 128 Fragmentacja pamięci 132 Unikanie destruktorów 133 Najlepsze praktyki zwalniania obiektów w .NET Core 135 Wstęp do interfejsu IDisposable 135 Czym są niezarządzane zasoby? 135 Wykorzystywanie IDisposable 136 Kiedy implementować interfejs IDisposable? 137 Destruktor i Dispose 138 Podsumowanie 140 Rozdział 7. Stosowanie zabezpieczeń i implementowanie odporności na błędy w aplikacjach .NET Core 141 Wprowadzenie do aplikacji odpornych na błędy 142 Polityki odporności 142 Przechowywanie danych wrażliwych z wykorzystaniem Application Secrets 158 Zabezpieczanie API w ASP.NET Core 161 SSL (ang. Secure Socket Layer) 161 Zapobieganie atakom CSRF (ang. Cross-Site Request Forgery) 163 Wzmacnianie nagłówków bezpieczeństwa 163 Uwierzytelnianie i autoryzacja 168 Uwierzytelnianie 169 Autoryzacja 169 Implementacja uwierzytelniania i autoryzacji z użyciem frameworka ASP.NET Core Identity 169 Podsumowanie 173 Rozdział 8. Architektura mikrousług 175 Architektura mikrousług 176 Zalety architektury mikrousług 177 Standardowe praktyki podczas tworzenia mikrousług 178 Typy mikrousług 179 DDD 179 Manipulowanie danymi w mikrousługach 179 Spójność w różnych scenariuszach biznesowych 180 Komunikacja z mikrousługami 181 Architektura baz danych w mikrousługach 182 Czym jest kompozycja API? 183 CQRS 184 Tworzenie architektury mikrousług w .NET Core 185 Tworzenie przykładowej aplikacji w .NET Core z wykorzystaniem architektury mikrousług 185 Wdrażanie mikrousług w kontenerach Docker 210 Czym jest Docker? 211 Korzystanie z Dockera w .NET Core 212 Uruchamianie obrazów Dockera 214 Podsumowanie 214 Rozdział 9. Monitorowanie wydajności aplikacji z wykorzystaniem narzędzi 215 Kluczowe wskaźniki wydajności aplikacji 216 Średni czas odpowiedzi 216 Apdex 216 Odsetek błędów 216 Liczba żądań 216 Przepustowość/punkty końcowe 217 Wykorzystanie procesora i pamięci 217 Narzędzia i techniki monitorowania wydajności 217 Wstęp do App Metrics 217 Konfigurowanie App Metrics w ASP.NET Core 217 Śledzące oprogramowanie pośredniczące 218 Dodawanie raportów graficznych 220 Podsumowanie 229 Skorowidz 231 O autorze: Ovais Mehboob Ahmed Khan jest architektem z 14-letnim doświadczeniem w programowaniu, a także autorem książek i innych publikacji technicznych. Pracował w kilku firmach informatycznych w Pakistanie, USA oraz na Bliskim Wschodzie. Obecnie jest zatrudniony w państwowej firmie w Dubaju. Otrzymał tytuł MVP. Specjalizuje się w takich technologiach jak Microsoft .NET, chmura i tworzenie aplikacji internetowych.

Specyfikacja

Podstawowe informacje

Wybrane wydawnictwa
  • Helion
Okładka
  • Miękka
Rok wydania
  • 2019
Ilość stron
  • 240
Tematyka
  • Podręczniki akademickie
  • Programowanie
ISBN
  • 9788328350441
Model
  • miękka