Używamy cookies, aby ułatwić korzystanie z Portalu. Możesz określić warunki przechowywania, dostępu do plików cookies w Twojej przeglądarce. Dowiedz się więcej.
strona główna Strona główna | Nowości | Promocje | Zapowiedzi Twoje konto | Zarejestruj | Schowek | Kontakt | Pomoc
mapa działów
Szukaj: szukanie zaawansowane
Koszyk
Książki \ Programowanie \ .NET

Tajniki C# i .NET Framework. Wydajne aplikacje dzięki zaawansowanym funkcjom języka C# i architektury .NET Język: 1

978-83-7541-334-2

Cena Brutto: 89.99

Cena netto: 85.70

Ilość:
Wersja: Drukowana
Autor Marino Posadas
Liczba_stron 534
Wydawnictwo Packt Publishing
Oprawa mękka
Data_Wydania 2017-09-15

Tajniki

C# i .NET Framework

Wydajne aplikacje dzięki zaawansowanym funkcjom języka C# i architektury .NET


Książka Tajniki C# i .NET Framework szczegółowo przedstawia zagadnienia związane z językiem C# 6.0/7.0 oraz platformą .NET 4.6 pozwalając zrozumieć, jak działa ta platforma podczas wykonywania kodu i jak wykorzystać tę wiedzę do pisania wydajnych aplikacji. Pozwala w pełni spożytkować nową rewolucję w programowaniu .NET, w tym otwarty kod źródłowy platformy, możliwości wieloplatformowe i zmiany architektoniczne w CoreCLR.

Zaczniemy od omówienia, w jaki sposób CLR wykonuje kod oraz odkryjemy niszowe i zaawan­sowane aspekty programowania w języku C# - od delegatów i typów ogólnych aż do programowania asynchronic-znego. Poznamy nowe formy deklarowania typów i przypisań, wywoływanie kodu źródłowego, składnię statycznych deklaracji using, automatyczne inicjowanie właściwości, inicjowanie słowników, operatory wa-runkowe dla wartości null i wiele innych zagadnień. Następnie odblokujemy prawdziwy potencjał platformy .NET. Dowiemy się, jak pisać aplikacje zgodne z OWASP, jak prawidłowo implementować wzorce projektowe w C# oraz jak stosować ogólne zasady SOLID i ich implementacje w kodzie C#.

Zakończymy na wskazówkach pomagających maksymalnie wykorzystać język C# i platformę .NET.
W ostatnim rozdziale książki omówimy też kwestie związane z platformą .NET Core 1.1.

Dzięki tej książce można:
  • Dokładnie zrozumieć podstawowe pojęcia języka C#, od algorytmów sortujących do notacji dużego O.
  • Poznać najnowsze zmiany w języku C# 6/7.
  • Łączyć bazy danych SQL Server i NoSQL z platformą .NET.
  • Zrozumieć zasady SOLID i najistotniejsze wzorce Gang of Four na praktycznych przykładach w języku C# 6.0.
  • Dowiedzieć się, jak bronić aplikacje w języku C# przed atakami.
  • Korzystać z platformy Roslyn do kompilowania i manipulowania językami C# oraz Visual Basic .NET.
  • Rozróżniać zapytania LINQ i związane z nimi wyrażenia Lambda, typy ogólne oraz delegaty.
  • Zaprojektować od podstaw nową aplikację w .NET.
  • Zrozumieć wewnętrzną strukturę podzespołu .NET.
  • Poznać przydatne i zaawansowane funkcje związane z optymalizacją i programowaniem równoległym.

Wstęp. . . . . . . . . . . . . . . . . . . . . . . . . . xvii
Rozdział 1: Wewnątrz CLR. . . . . . . . . 1
Uwagi dotyczące kilku ważnych pojęć komputerowych . . .  . . . . . 2
Kontekst. . . . . . . . . . . . . . . . . . . . . . . . . 2
Model wykonywania wielu zadań w systemie operacyjnym . . . .  . . . . 2
Typy kontekstu. . . . . . . . . . . . . . . . . . . 2
Bezpieczeństwo wątków. . . . . . . . . . 3
Stan. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
Stan programu. . . . . . . . . . . . . . . . . . . 4
Serializacja. . . . . . . . . . . . . . . . . . . . . . . 4
Proces. . . . . . . . . . . . . . . . . . . . . . . . . . . 5
Wątek. . . . . . . . . . . . . . . . . . . . . . . . . . . 5
SysInternals. . . . . . . . . . . . . . . . . . . . . . 7
Pamięć statyczna i dynamiczna. . . . 9
Odśmiecanie pamięci. . . . . . . . . . . . 10
Przetwarzanie współbieżne. . . . . . 10
Przetwarzanie równoległe. . . . . . . 11
Programowanie imperatywne. . . . 11
Programowanie deklaratywne. . . 11
Ewolucja .NET. . . . . . . . . . . . . . . . . . . . . . . . 12
.NET jako reakcja na świat języka Java . . . . . . . . . . . . . . . . . . . . 13
Ruch otwartego oprogramowania i .NET Core . . . . . . . . . . . . . . 13
Common Language Runtime. . . . . 15
Common Intermediate Language . . . . . . . . . . . . .. . . . . . . . . . . 16
Zarządzane wykonywanie kodu . . . . . . . . . . .  . . . . . . . . . . . . . 16
Składniki i języki. . . . . . . . . . . . . . 17
Struktura pliku podzespołu. . . . 18
Metadane. . . . . . . . . . . . . . . . . . . . . . . 21
Wprowadzenie do metadanych przy pomocy podstawowego
programu Hello World. . . . . . . . 21
PreJIT, JIT, EconoJIT i RyuJIT. . . 26
Wspólny system typów. . . . . . . 28
Szybka wskazówka dotycząca analizy wykonywania i pamięci
dla podzespołu w Visual Studio 2015 . . . . . . . . . . . . . . 30
Stos i sterta. . . . . . . . . . . . . . . . . . 32
Odśmiecanie pamięci. . . . . . . . . 36
Implementowanie algorytmów w CLR . . . . . . . . . .  . . . . . . . . . . . 42
Struktury danych, algorytmy i złożoność . . . . .  . . . . . . . . . . . . 43
Notacja wielkiego O. . . . . . . . . . 43
Istotne funkcje pojawiające się w wersjach 4.5x, 4.6 oraz .NET Core 1.0 i 1.1 . . . . 47
.NET 4.5.x. . . . . . . . . . . . . . . . . . . . 47
.NET 4.6 (wraz z Visual Studio 2015) . . . . . . . .. . . . . . 48
.NET Core 1.0. . . . . . . . . . . . . . . . . 49
.NET Core 1.1. . . . . . . . . . . . . . . . . 49
Podsumowanie. . . . . . . . . . . . . . . . . . . . . . . 50
Rozdział 2: Najważniejsze pojęcia języka C# i platformy .NET . . . . . . . . . . . . . . . . 51
C# – co jest innego w tym języku?. . . . . 52
Języki: silnie typowane, słabo typowane, dynamiczne i statyczne . . . .  . . . . . 53
Główne różnice. . . . . . . . . . . . . . . . . 54
Prawdziwy powód dla stworzenia delegatów . . . . . . . . .. . . . . . . . . . . . 57
Ewolucja w wersjach 2.0 i 3.0. . . . . . . . . . 61
Typy ogólne. . . . . . . . . . . . . . . . . . . . . 62
Tworzenie niestandardowych typów i metod ogólnych . . . . . . . . . . . . . . . . . . . . 63
Wyrażenia lambda i typy anonimowe . . . . . . . .. . . . . . . . . . . 68
Wyrażenia lambda. . . . . . . . . . . . 69
Składnia LINQ. . . . . . . . . . . . . . . . . . . 72
Składnia LINQ jest oparta na języku SQL . . . . . . . . . . . . . . 73
Odroczone wykonywanie. . . . . 74
Łączenie i grupowanie kolekcji74
Projekcje typów. . . . . . . . . . . . . . 76
Metody rozszerzeniowe. . . . . . . . . . 77
Podsumowanie. . . . . . . . . . . . . . . . . . . . . . . 78
Rozdział 3: Zaawansowane pojęcia języka C# i platformy .NET . . . . . . . . . . . . . . . 79
C# 4 i .NET Framework 4.0. . . . . . . . . . . . . 80
Kowariancja i kontrawariancja.. . . 80
Kowariancja w interfejsach. . . . 82
Kowariancja w typach ogólnych . . . . . . . . .. . . . . . . . . . 84
Kowariancja w LINQ. . . . . . . . . . 85
Kontrawariancja. . . . . . . . . . . . . . 86
Krotki: przypomnienie. . . . . . . . . . . 87
Krotki: implementacja w C#. . . . . . 88
Krotki: wsparcie dla równości strukturalnej . . . . . . . . . . . . . . . . 89
Krotki a typy anonimowe. . . . . . . . 90
Leniwe inicjowanie i tworzenie wystąpień obiektów . . . . . . . . . . . . . . . . . . . . . . . . . . 92
Programowanie dynamiczne. . . . . 95
Dynamiczne typowanie. . . . . . . . . . 95
Obiekt ExpandoObject. . . . . . . . . . . 98
Parametry opcjonalne i nazwane100
Obiekt Task i wywołania asynchroniczne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
C# 5.0: deklaracje async/await. . . . . . . . 103
Co nowego w wersji C# 6.0. . . . . . . . . . . 104
Interpolacja łańcuchów tekstowych . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
Filtry wyjątków. . . . . . . . . . . . . . . . . 105
Operator nameof. . . . . . . . . . . . . . . 106
Operator warunkowy dla wartości null. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
Automatyczne inicjowanie właściwości . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
Statyczne deklaracje using. . . . . . 110
Metody z ciałem w postaci wyrażenia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
Inicjowanie indeksów. . . . . . . . . . . 112
Co nowego w wersji C# 7.0. . . . . . . . . . . 113
Literały binarne i separatory cyfr113
Dopasowywanie do wzorca i instrukcje switch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
Krotki. . . . . . . . . . . . . . . . . . . . . . . 116
Dekompozycja. . . . . . . . . . . . . . 118
Funkcje lokalne. . . . . . . . . . . . . . 119
Zwracanie wartości typu ref. . 119
Podsumowanie. . . . . . . . . . . . . . . . . . . . . . 120
Rozdział 4: Porównanie różnych typów podejścia do programowania . . . . . . .123
Języki funkcjonalne. . . . . . . . . . . . . . . . . . 124
F# 4 a platforma .NET Framework . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
Nieodłączny program demonstracyjny Hello World . . . . . . . . . . . . . . . . . . . . . . . 127
Identyfi katory i zakres. . . . . . . 129
Listy. . . . . . . . . . . . . . . . . . . . . . . . 130
Język TypeScript. . . . . . . . . . . . . . . . . . . . . 136
Nowy JavaScript.. . . . . . . . . . . . . . . 137
TypeScript: nadzbiór JavaScript. 139
Czym dokładnie jest TypeScript?140
Główne funkcje i koalicje. . . . . 140
Instalowanie narzędzi. . . . . . . . 141
Transpilacja do różnych wersji143
Korzyści w zintegrowanym środowisku programistycznym . . . . . . . . . . . . . . . . 144
Uwaga na temat obiektowo zorientowanej składni języka TypeScript . . . . . . . . . 146
Więcej szczegółów i funkcjonalności . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
Podsumowanie. . . . . . . . . . . . . . . . . . . . . . 147
Rozdział 5: Mechanizm refl eksji i programowanie dynamiczne . . . . . . . . . . . . .149
Refl eksja w .NET Framework. . . . . . . . . . 150
Wywoływanie zewnętrznych podzespołów . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
Refl eksja dla typów ogólnych. . . 157
Emitowanie kodu w trakcie działania programu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
Przestrzeń nazw System.CodeDOM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
Przestrzeń nazw Reflection.Emit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
Interoperacyjność. . . . . . . . . . . . . . . . . . . . 163
Główne podzespoły Interop. . . . . 165
Formatowanie komórek. . . . . . 169
Wstawianie multimediów do arkusza . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170
Interop w Microsoft Word. . . . . . . 175
Aplikacje dla pakietu Offi ce. . . . . 180
Domyślny projekt aplikacji pakietu Offi ce . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180
Różnice architektoniczne. . . . . 183
Podsumowanie. . . . . . . . . . . . . . . . . . . . . . 185
Rozdział 6: Programowanie baz danych SQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .187
Model relacyjny.. . . . . . . . . . . . . . . . . . . . . 188
Właściwości tabel relacyjnych. . . 188
Narzędzia – SQL Server 2014. . . . . . . . . 191
Język SQL. . . . . . . . . . . . . . . . . . . . . . 193
Korzystanie z SQL Server z poziomu Visual Studio . . . . . . . . . . . . . . . . . . . . . . . . . . . 194
Dostęp do danych w Visual Studio. . . . 200
Dostęp do danych w .NET. . . . . . . 201
Korzystanie z podstawowych obiektów ADO.NET . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203
Konfi gurowanie interfejsu użytkownika . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204
Model danych Entity Framework. . . . . . 205
Podsumowanie. . . . . . . . . . . . . . . . . . . . . . 211
Rozdział 7: Programowanie baz danych NoSQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . .213
Krótki kontekst historyczny. . . . . . . . . . . 214
Świat NoSQL. . . . . . . . . . . . . . . . . . . . . . . . 215
Zmiany architektoniczne względem systemów RDBMS . . . . . . . . . . . . . . . . . . . . . . 217
Zapytania do innych zapytań. 218
Problem nieznormalizowanych danych . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218
Zagnieżdżanie danych. . . . . . . 218
Operacje CRUD. . . . . . . . . . . . . . . . . 219
MongoDB w systemie Windows.. . . . . . 221
Struktura plików i domyślna konfi guracja . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221
Kilka przydatnych poleceń. . . 223
Zmienianie danych – pozostałe operacje CRUD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227
Indeksy tekstowe. . . . . . . . . . . . 228
MongoDB z poziomu Visual Studio. . . . 230
Pierwszy program demonstracyjny: proste zapytanie z Visual Studio . . . . . . . . . 230
Operacje CRUD. . . . . . . . . . . . . . . . . 234
Usuwanie. . . . . . . . . . . . . . . . . . . 234
Wstawianie.. . . . . . . . . . . . . . . . . 235
Modyfi kacje i zastąpienia. . . . 236
Podsumowanie. . . . . . . . . . . . . . . . . . . . . . 237
Rozdział 8: Programowanie otwarte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .239
Historyczne ruchy programowania otwartego . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240
Inne projekty i inicjatywy. . . . . . . 240
Otwarty kod źródłowy dla programisty . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241
Inne języki. . . . . . . . . . . . . . . . . . 241
Projekt Roslyn. . . . . . . . . . . . . . . . . . . . . . . 245
Różnice w stosunku do tradycyjnych kompilatorów . . . . . . . . . . . . . . . . . . . . . . . . . 246
Rozpoczęcie pracy z Roslyn. . . . . 247
Pierwsze spojrzenie na Microsoft Code Analysis Services . . . . . . . . . . . . . . . . . . . . . 250
Analizatory kodu. . . . . . . . . . . . 250
Cały przykład otwartego oprogramowania: ScriptCS . . . . . . . . . . . . . . . . . . . . . . 251
Podstawowy projekt wykorzystujący Microsoft.CodeAnalysis . . . . . . . . . . . . . . 252
Pierwsze podejście do refaktoringu kodu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255
Debugowanie i testowanie programu demonstracyjnego . . . . . . . . . . . . . . . . . 260
TypeScript. . . . . . . . . . . . . . . . . . . . . . . . . . . 262
Debugowanie kodu TypeScript. . 263
Debugowanie TypeScript przy pomocy Chrome . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264
Interfejsy i silne typowanie.. . . . . 264
Implementowanie przestrzeni nazw . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265
Deklaracje, zakres i Intellisense. . 266
Zakres i hermetyzacja. . . . . . . . 267
Klasy i dziedziczenie klas. . . . . . . . 268
Funkcje. . . . . . . . . . . . . . . . . . . . . 270
Tablice i interfejsy. . . . . . . . . . . 274
Więcej języka TypeScript w działaniu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275
Połączenie z DOM. . . . . . . . . . . . . . 278
Podsumowanie. . . . . . . . . . . . . . . . . . . . . . 280
Rozdział 9: Architektura. . . . . . . .281
Wybór architektury. . . . . . . . . . . . . . . . . . 282
Platforma Microsoft. . . . . . . . . . . . 282
Platforma uniwersalna. . . . . . . . . . 283
Model aplikacji MSF. . . . . . . . . . . . 284
Model zespołu.. . . . . . . . . . . . . . 285
Model zarządzania. . . . . . . . . . . . . 288
Model ryzyka. . . . . . . . . . . . . . . . . . 290
Ocena ryzyka. . . . . . . . . . . . . . . . 292
Szacowanie ryzyka. . . . . . . . . . 292
Plany działań na wypadek ryzyka . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292
Narzędzia CASE. . . . . . . . . . . . . . . . . . . . . . 294
Rola Visio. . . . . . . . . . . . . . . . . . . . . . . . . . . . 295
Pierwszy przykład. . . . . . . . . . . . . . 296
Projekt bazy danych. . . . . . . . . . . . . . . . . 298
Tworzenie demonstracyjnej aplikacji w Visual Studio . . . . . . . . . . . . . . . . . . . . . . . . 300
Projektowanie serwisu WWW. . . 302
Raporty. . . . . . . . . . . . . . . . . . . . . . . . 306
Wiele innych opcji. . . . . . . . . . . . . . 307
BPMN 2.0 (Business Process Model and Notation) . . . . . . . . . . . . . . . . . . . . . . . . . 308
Obsługa standardu UML. . . . . . . . 310
Narzędzia Visual Studio do planowania architektury, testowania i analizy . . . . . . . . . . 310
Architektura aplikacji w Visual Studio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 310
Diagramy klas. . . . . . . . . . . . . . . 313
Testowanie. . . . . . . . . . . . . . . . . . . . 314
Testowanie naszej aplikacji w Visual Studio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314
Menu Analyze. . . . . . . . . . . . . . . 317
Koniec cyklu życia – publikowanie rozwiązania . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317
Podsumowanie. . . . . . . . . . . . . . . . . . . . . . 319
Rozdział 10: Wzorce projektowe.321
Początki. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 322
Zasady SOLID. . . . . . . . . . . . . . . . . . . . . . . . 322
Zasada pojedynczej odpowiedzialności . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324
Przykład. . . . . . . . . . . . . . . . . . . . 326
Zasada otwarte-zamknięte. . . . . . . . . . . 330
Powrót do naszego przykładu. . . 331
Zasada podstawienia Liskov. . . . . . . . . . 333
Ponownie wracamy do kodu. . . . 334
Inne implementacje zasady podstawienia Liskov w .NET (typy ogólne) . . . . . . . 335
Zasada rozdzielenia interfejsów. . . . . . . 338
Zasada odwrócenia zależności. . . . . . . . 341
Końcowa wersja programu przykładowego . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 341
Wzorce projektowe. . . . . . . . . . . . . . . . . . 344
Singleton. . . . . . . . . . . . . . . . . . . . . . 347
Wzorzec fabryki. . . . . . . . . . . . . . . . 348
Wzorzec adaptera. . . . . . . . . . . . . . 348
Wzorzec fasady. . . . . . . . . . . . . . . . 351
Wzorzec dekoratora. . . . . . . . . . . . 352
Wzorzec polecenia. . . . . . . . . . . . . 352
Przykład implementacji obecnej już w .NET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 353
Wzorzec obserwatora. . . . . . . . . . . 354
Wzorzec strategii. . . . . . . . . . . . . . . 356
Inne wzorce programowe. . . . . . . . . . . . 356
Inne wzorce. . . . . . . . . . . . . . . . . . . . . . . . . 359
Podsumowanie. . . . . . . . . . . . . . . . . . . . . . 360
Rozdział 11: Bezpieczeństwo. . . .361
Inicjatywa OWASP. . . . . . . . . . . . . . . . . . . 362
Lista 10 największych zagrożeń według OWASP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 362
A1 – Wstrzykiwanie. . . . . . . . . . . . . . . . . . 366
Wstrzykiwanie kodu SQL. . . . . . . . 366
Zapobieganie. . . . . . . . . . . . . . . . . . 367
Przypadek baz danych NoSQL. . . 369
A2 – Niewłaściwe uwierzytelnianie i zarządzanie sesją . . . . . . . . . . . . . . . . . . . . . . . . . . . . 370
Przyczyny. . . . . . . . . . . . . . . . . . . . . . 371
Zapobieganie. . . . . . . . . . . . . . . 372
Kodowanie w .NET w związku z A2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 373
Aplikacje biurkowe. . . . . . . . . . 373
Aplikacje WWW. . . . . . . . . . . . . . . . 374
A3 – Cross-Site Scripting (XSS). . . . . . . . 377
Zapobieganie. . . . . . . . . . . . . . . . . . 379
A4 – Niebezpieczne bezpośrednie odwołania do obiektów . . . . . . . . . . . . . . . . . . . . . . . . 379
Zapobieganie. . . . . . . . . . . . . . . . . . 381
A5 – Błędna konfi guracja zabezpieczeń . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 382
Możliwe przykłady ataków. . . . . . 383
Zapobieganie – aspekty warte rozważenia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 384
Środki zapobiegawcze. . . . . . . 384
A6 – Ujawnienie wrażliwych danych. . 385
A7 – Brakująca kontrola dostępu na poziomie funkcji . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 387
Zapobieganie. . . . . . . . . . . . . . . . . . 389
A8 – Cross-Site Request Forgery. . . . . . 389
Zapobieganie. . . . . . . . . . . . . . . . . . 390
A9 – Wykorzystanie składników ze znanymi lukami zabezpieczeń . . . . . . . . . . . . . . . . . . 391
A10 – Niesprawdzone przekierowania393
Podsumowanie. . . . . . . . . . . . . . . . . . . . . . 394
Rozdział 12: Wydajność. . . . . . . . .395
Inżynieria wydajności aplikacji. . . . . . . . 395
Narzędzia. . . . . . . . . . . . . . . . . . . . . . 397
Zaawansowane opcje w Visual Studio 2015 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 398
Inne narzędzia. . . . . . . . . . . . . . . . . 406
Proces dostrajania wydajności. . 408
Liczniki wydajności. . . . . . . . . . 409
Wykrywanie wąskich gardeł. . 409
Korzystanie z kodu do oceny wydajności . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 412
Optymalizowanie aplikacji WWW415
Optymalizacja IIS. . . . . . . . . . . . 416
Optymalizacja ASP.NET. . . . . . . 417
Podsumowanie. . . . . . . . . . . . . . . . . . . . . . 423
Rozdział 13: Tematy zaawansowane . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .425
Podsystem komunikatów Windows. . . 426
Struktura komunikatu. . . . . . . . . . 426
Techniki tworzenia podklas. . . . . . . . . . . 429
Kilka przydatnych narzędzi. . . . . . . . . . . 431
Platform/Invoke: wywoływanie funkcji systemu operacyjnego z .NET . . . . . . . . . . . . . . 434
Proces wywoływania platformowego . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 434
Windows Management Instrumentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 437
Programowanie równoległe. . . . . . . . . . 446
Różnica pomiędzy wielowątkowością a programowaniem równoległym . . . . . . 448
Parallel LINQ. . . . . . . . . . . . . . . . . . . . . . . . . 449
Radzenie sobie z innymi problemami . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 453
Anulowanie wykonywania. . . . . . 454
Klasa Parallel. . . . . . . . . . . . . . . . . . . . . . . . 456
Wersja pętli Parallel.ForEach. . . . 459
Biblioteka Task Parallel Library. . . . . . . . 461
Komunikacja pomiędzy wątkami461
.NET Core 1.0. . . . . . . . . . . . . . . . . . . . . . . . 467
Lista obsługiwanych środowisk. . 468
Core FX. . . . . . . . . . . . . . . . . . . . . 468
Core CLR. . . . . . . . . . . . . . . . . . . . 469
Core RT. . . . . . . . . . . . . . . . . . . . . 469
Core CLI. . . . . . . . . . . . . . . . . . . . . 470
Instalacja .NET Core. . . . . . . . . . . . 470
Interfejs CLI. . . . . . . . . . . . . . . . . . . . 477
ASP.NET Core 1.0. . . . . . . . . . . . . . . . . . . . . 479
Co nowego. . . . . . . . . . . . . . . . . . . . 479
Pierwsze podejście. . . . . . . . . . . . . 480
Ustawienia konfi guracji i uruchamiania . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 482
Samodzielne aplikacje. . . . . . . . . . 486
ASP.NET Core 1.0 MVC. . . . . . . . . . 487
Zarządzanie skryptami. . . . . . . . . . 493
.NET Core 1.1. . . . . . . . . . . . . . . . . . . . . . . . 494
Podsumowanie. . . . . . . . . . . . . . . . . . . . . . 495
Indeks. . . . . . . . . . . . . . . . . . . . . . . . . .497

powrót
 
Produkty Podobne
Tajniki C# i .NET Framework. Wydajne aplikacje dzięki zaawansowanym funkcjom języka C# i architektury .NET
AngularJS for .NET Developers in 24 Hours, Sams Teach Yourself
Microsoft .NET: Architecting Applications for the Enterprise, 2nd Edition
Visual Studio 2012 i .NET 4.5. Poradnik dla zaawansowanych programistów
Język C# 2010 i platforma .NET 4.0
Programming ASP.NET MVC 4
Podstawy Windows Phone 7.5. Projektowanie aplikacji przy użyciu Silverlight
XAML Developer Reference
MCPD 70-518 Exam Ref: Designing and Developing Windows Applications Using Microsoft .NET Framework 4
MCPD 70-519 Exam Ref: Designing and Developing Web Applications Using Microsoft .NET Framework 4
Więcej produktów