księgarnia informatyczna aton.pl

C# 6.0. Księga przepisów Rozwiązania dla programistów C# Wydanie IV

Wydawnictwo Promise

Cena:    126.00   94.50zł

C# 6.0. Księga przepisów Rozwiązania dla programistów C# Wydanie IV


Autor: Jay Hilyard, Stephen Teilhet

ISBN: 978-83-7541-160-7

Ilość stron: 768

Data wydania: 12/2015 (wydanie 4)

Oprawa: Miękka

Format: 17.0x23.0cm

Wydawnictwo: Promise


Nowe wydanie bestsellerowej książki, w pełni zaktualizowane do wersji C# 6.0, oferuje ponad 150 użytecznych rozwiązań dla typowych i nie aż tak typowych problemów, z którymi muszą sobie radzić programiści C# w codziennej pracy. Większość przykładów zostało przypisanych z wykorzystaniem nowych funkcjonalności C# 6.0.

To lektura obowiązkowa dla każdego programisty preferującego ogólniejsze rozwiązania języka C# i szukającego szybkich odpowiedzi na teoretyczne pytania. C# 6.0   Księga przepisów udostępnia nowe przepisy dla metod asynchronicznych, obiektów dynamicznych, zaawansowanej obsługi błędów, kompilatora Rosyln i jeszcze więcej.

Niektóre z omawianych zagadnień:
• Klasy i typy ogólne
• Kolekcje, wyliczenia i iteratory
• Typy danych
• Wyrażenia LINQ i Lambda
• Obsługa wyjątków
• Odbicia i programowanie dynamiczne
• Wyrażenia regularne
• Interakcja z systemem plików
• Praca w sieci i Web
• Wykorzystanie XML
• Wątkowanie, synchronizacja i współbieżność

Każdy przepis w książce zawiera przetestowany kod, który można pobrać z witryny oreilly.com i wykorzystać we własnych aplikacjach, przy czym do każdego z nich dołączone jest szczegółowe wyjaśnienie, jak i dlaczego działa pokazana technika. Do korzystania z książki i dołączonych przykładów nie trzeba być doświadczonym programistą C# lub .NET. Trzeba jedynie być kimś, kto chce rozwiązać problem już teraz, bez konieczności poznawania najpierw całej powiązanej teorii.

Spis treści:

1 Klasy i typy generyczne
1.0 Wprowadzenie        1
1.1 Tworzenie unii        3
1.2 Umożliwianie sortowania typu                 6
1.3 Umożliwianie przeszukiwania typu        11
1.4 Zwracanie z metody wielu elementów              14
1.5 Parsowanie parametrów wiersza poleceń             18
1.6 Inicjowanie stałego pola w czasie wykonywania          31
1.7 Tworzenie klonowalnych klas                 34
1.8 Zapewnianie prawidłowego usuwania obiektu    38
1.9 Kiedy i gdzie stosować typy generyczne       41
1.10 Wprowadzenie do typów generycznych       42
1.11 Odwracanie zawartości posortowanej listy     51
1.12 Ograniczanie argumentów typu                54
1.13 Inicjowanie zmiennych generycznych do ich domyślnych wartości 57
1.14 Dodawanie punktów zaczepienia do wygenerowanych obiektów  59
1.15 Kontrolowanie wywołań delegatów wewnątrz delegatu zbiorowego 62
1.16 Domknięcia w C#70
1.17 Wykonywanie operacji na listach za pomocą funktorów     76
1.18 Kontrolowanie inicjalizacji pól struktury             80
1.19 Bardziej przystępne sprawdzanie wartości null    85
2 Kolekcje, enumeratory i iteratory     89

2.0 Wprowadzenie
2.1 Wyszukiwanie zduplikowanych elementów na liście List    92
2.2 Utrzymywanie listy List w posortowanej postaci       97
2.3 Sortowanie kluczy i/lub wartości słownika     99
2.4 Tworzenie słownika z wartościami granicznymi  101
2.5 Utrwalanie kolekcji pomiędzy sesjami aplikacji   104
2.6 Testowanie elementów tablicy lub listy List   106
2.7 Tworzenie niestandardowych enumeratorów    108
2.8 Korzystanie z iteratorów i bloków finally      113
2.9 Implementowanie w klasie zagnieżdżonych pętli foreach     117
2.10 Korzystanie z bezpiecznego wątkowo słownika dla współbieżnego dostępu bez blokowania             122

3 Typy danych
3.0 Wprowadzenie       131
3.1 Kodowanie danych binarnych przy użyciu formatu Base64    133
3.2 Dekodowanie danych binarnych zakodowanych formatem Base64135
3.3 Powrotne konwertowanie łańcucha znaków zwróconego
z tablicy Byte[] do typu string                 137
3.4 Przekazywanie łańcucha znaków do metody przyjmującej wyłącznie Byte[] 138
3.5 Sprawdzanie, czy łańcuch znakowy jest poprawną liczbą     140
3.6 Zaokrąglanie wartości zmiennoprzecinkowej    141
3.7 Wybieranie algorytmu zaokrąglania        142
3.8 Bezpieczne wykonywanie zawężającego rzutowania numerycznego 143
3.9 Testowanie pod kątem poprawności wartości typu wyliczeniowego 146
3.10 Wykorzystywanie członków typów wyliczeniowych w masce bitowej 149
3.11 Sprawdzanie, czy któraś z flag typu wyliczeniowego została ustawiona   152

4 Zapytania LINQ i wyrażenia lambda
4.0 Wprowadzenie       157
4.1 Odpytywanie kolejki komunikatów              160
4.2 Praca z danymi z wykorzystaniem semantyki zbiorów      165
4.3 Ponowne wykorzystywanie sparametryzowanych zapytań LINQ do SQL     170
4.4 Sortowanie wyników w zależności od kultury    172
4.5 Dodawanie rozszerzeń funkcjonalnych do wykorzystania w LINQ176
4.6 Odpytywanie i łączenie różnych repozytoriów danych180
4.7 Pozyskiwanie danych z plików konfiguracyjnych przy użyciu LINQ184
4.8 Tworzenie kodu XML bezpośrednio z bazy danych        187
4.9 Selektywne wybieranie wyników zapytania     202
4.10 LINQ i kolekcje niewspierające interfejsu IEnumerable   206
4.11 Zaawansowane wyszukiwanie interfejsu            208
4.12 Korzystanie z wyrażeń lambda                211
4.13 Korzystanie w wyrażeniach lambda z innych modyfikatorów parametrów  216
4.14 Przyspieszanie operacji LINQ z użyciem współbieżności     220

5 Debugowanie i obsługa wyjątków
5.0 Wprowadzenie       233
5.1 Wyłapywanie i ponowne rzucanie wyjątków           241
5.2 Obsługa wyjątków rzucanych z metod wywołanych w ramach odbicia     243
5.3 Tworzenie nowego typu wyjątku                246
5.4 Przerywanie na wyjątku pierwszej szansy            256
5.5 Obsługiwanie wyjątków rzucanych z asynchronicznego delegatu  261
5.6 Dodawanie do wyjątków dodatkowych informacji z użyciem właściwości Exception.Data    263
5.7 Praca z nieobsłużonymi wyjątkami w aplikacjach WinForms   266
5.8 Praca z nieobsłużonymi wyjątkami w aplikacjach WPF     268
5.9 Ustalanie, czy proces przestał odpowiadać           271
5.10 Korzystanie w aplikacji z dzienników zdarzeń   273
5.11 Monitorowanie dziennika zdarzeń pod kątem konkretnego wpisu 286
5.12 Implementowanie prostego licznika wydajności   287
5.13 Tworzenie niestandardowych wyświetlaczy debugowania dla naszych klas  291
5.14 Wykrywanie miejsca powstania wyjątku      293
5.15 Obsługa wyjątków w scenariuszach asynchronicznych297
5.16 Selektywne przetwarzanie wyjątków        304

6 Odbicie i programowanie dynamiczne
6.0 Wprowadzenie       309
6.1 Listowanie wykorzystywanych zestawów      310
6.2 Określanie charakterystyki typów w zestawach         316
6.3 Określanie charakterystyki dziedziczenia     321
6.4 Wywoływanie członków z użyciem odbicia     327
6.5 Pozyskiwanie informacji ze zmiennej lokalnej          332
6.6 Tworzenie typu generycznego                 335
6.7 Różnica pomiędzy dynamic a object        337
6.8 Dynamiczne tworzenie obiektów               340
6.9 Modyfikowanie obiektów pod kątem rozszerzalności       345

7 Wyrażenia regularne
7.0 Wprowadzenie       357
7.1 Wyodrębnianie grup z obiektu MatchCollection  358
7.2 Weryfikowanie składni wyrażeń regularnych    362
7.3 Rozszerzanie podstawowej funkcji zamiany tekstu 364
7.4 Implementowanie lepszego tokenizatora      367
7.5 Zwracanie pełnego wiersza, w którym znaleziono dopasowanie  369
7.6 Wyszukiwanie określonych wystąpień dopasowania 374
7.7 Korzystanie z powszechnych wzorców       376

8 Operacje wejścia-wyjścia w systemie plików
8.0 Wprowadzenie       381
8.1 Wyszukiwanie katalogów lub plików za pomocą znaków wieloznacznych      382
8.2 Uzyskiwanie drzewa katalogów388
8.3 Parsowanie ścieżki393
8.4 Uruchamianie i używanie narzędzi konsoli     395
8.5 Blokowanie fragmentów pliku                 397
8.6 Oczekiwanie na wystąpienie akcji w systemie plików402
8.7 Porównywanie informacji o wersji dwóch modułów wykonywalnych 405
8.8 Wyszukiwanie informacji o wszystkich nośnikach dostępnych w systemie         408
8.9 Kompresja i dekompresja plików               411

9 Zagadnienia sieciowe
9.0 Wprowadzenie       423
9.1 Obsługa błędów serwera WWW                424
9.2 Komunikacja z serwerem WWW         426
9.3 Przekazywanie żądań przez proxy         428
9.4 Pobieranie HTML na podstawie adresu URL    430
9.5 Używanie kontrolki przeglądarki internetowej          431
9.6 Prekompilacja strony ASP.NET z poziomu programu       434
9.7 Stosowanie sekwencji specjalnych i ich usuwanie z danych dla sieci WWW  438
9.8 Sprawdzanie niestandardowych stron błędów serwera WWW  440
9.9 Tworzenie serwera TCP   445
9.10 Tworzenie klienta TCP                    455
9.11 Symulacja przesłania formularza                464
9.12 Przesyłanie danych za pośrednictwem HTTP    468
9.13 Komunikacja z wykorzystaniem potoków nazwanych       472
9.14 Pingowanie z poziomu kodu                 481
9.15 Wysyłanie poczty SMTP z wykorzystaniem usługi SMTP    483
9.16 Skanowanie portów na komputerze za pomocą gniazd486
9.17 Wykorzystanie bieżących ustawień internetowych  491
9.18 Przenoszenie plików za pomocą FTP              499

10 XML
10.0 Wprowadzenie       503
10.1 Odczyt i dostęp do danych XML w kolejności zdefiniowanej w dokumencie 504
10.2 Przeszukiwanie treści dokumentu XML             508
10.3 Weryfikacja XML      513
10.4 Wykrywanie zmian w dokumencie XML      519
10.5 Obsługa niedozwolonych znaków w łańcuchu XML 522
10.6 Przekształcanie XML                     527
10.7 Weryfikacja zmodyfikowanych dokumentów XML bez ich ponownego wczytywania
10.8 Rozszerzanie przekształceń 541
10.9 Uzyskiwanie schematów na podstawie istniejących plików XML 548
10.10 Przekazywanie parametrów do przekształceń    550

11 Bezpieczeństwo
11.0 Wprowadzenie       557
11.1 Szyfrowanie i odszyfrowywanie łańcucha            557
11.2 Szyfrowanie i odszyfrowywanie pliku              562
11.3 Usuwanie informacji dotyczących szyfrowania          567
11.4 Zapobieganie uszkodzenia łańcucha podczas transferu danych   570
11.5 Gwarantowanie bezpieczeństwa asercji             578
11.6 Weryfikacja nadania określonych uprawnień podzespołowi   581
11.7 Minimalizowanie obszaru ataków na podzespół  582
11.8 Uzyskiwanie informacji na temat zabezpieczeń i inspekcji     583
11.9 Nadawanie lub odbieranie dostępu do pliku lub do klucza rejestru 589
11.10 Zabezpieczanie danych łańcuchowych       592
11.11 Zabezpieczanie danych strumieniowych      595
11.12 Szyfrowanie informacji w pliku web.config     609
11.13 Uzyskiwanie bezpieczniejszego dojścia do pliku   611
11.14 Przechowywanie haseł   613

12 Wątki, synchronizacja i współbieżność
12.0 Wprowadzenie       623
12.1 Tworzenie pól statycznych dla określonych wątków       624
12.2 Zapewnianie bezpiecznego wątkowo dostępu do elementów klasy 627
12.3 Zapobieganie dyskretnemu zakończeniu wątku   634
12.4 Powiadamianie o zakończeniu działania asynchronicznego delegata636
12.5 Przechowywanie prywatnych danych własnych wątku      639
12.6 Nadawanie dostępu do zasobów wielu klientom z wykorzystaniem semafora
12.7 Synchronizowanie wielu procesów za pomocą muteksu      649
12.8 Wykorzystywanie zdarzeń w celu zapewnienia współpracy wątków 659
12.9 Wykonywanie operacji niepodzielnych w wątkach 662
12.10 Optymalizacja dostępu polegającego głównie na odczycie danych 664
12.11 Jak sprawić, by nasze żądania do bazy danych były bardziej skalowalne         679
12.12 Uruchamianie zadań w określonej kolejności    682

13 Przybornik
13.0 Wprowadzenie       689
13.1 Obsługa zamykania systemu, zarządzania energią lub zmian w sesji użytkownika     689
13.2 Kontrola usługi       695
13.3 Pobieranie listy procesów, w których wczytany jest podzespół   700
13.4 Używanie kolejek komunikatów na lokalnej stacji roboczej    704
13.5 Przechwytywanie wyniku ze standardowego strumienia wyjścia  709
13.6 Przechwytywanie standardowego wyjścia procesu  711
13.7 Uruchamianie kodu we własnej domenie AppDomain714
13.8 Sprawdzanie wersji systemu operacyjnego i dodatku Service Pack

Cena:    126.00   94.50zł


C# 6.0. Księga przepisów Rozwiązania dla programistów C# Wydanie IVKsiążka informatyczna: C# 6.0. Księga przepisów Rozwiązania dla programistów C# Wydanie IV
Księgarnia informatyczna aton.pl

Tutaj możesz kupić tę książkę w dobrej cenie. Zapraszamy na zakupy do naszej księgarni internetowej.