C# 6.0 Księga przepisów

Podobne dokumenty
C# 6.0 : księga przepisów / Jay Hilyard, Stephen Teilhet. Warszawa, Spis treści

C# 6.0 : kompletny przewodnik dla praktyków / Mark Michaelis, Eric Lippert. Gliwice, cop Spis treści

Jarosław Kuchta Administrowanie Systemami Komputerowymi. Internetowe Usługi Informacyjne

TOPIT Załącznik nr 3 Programowanie aplikacji internetowych

Część I Tworzenie baz danych SQL Server na potrzeby przechowywania danych

Ed Wilson. Windows PowerShell Krok po kroku 3.0. Przekład: Marek Włodarz

Przesłanki powstania książki... xvi Dla kogo przeznaczona jest ta książka?... xvi Co znajdziemy wewnątrz książki?... xvii

Myśl w języku Python! : nauka programowania / Allen B. Downey. Gliwice, cop Spis treści

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ),

Język programowania Scala / Grzegorz Balcerek. Wyd. 2. Poznań, cop Spis treści

Szczegółowy opis zamówienia:

Microsoft Visual C# 2012 Krok po kroku

PHP i MySQL dla każdego / Marcin Lis. Wyd. 3. Gliwice, cop Spis treści

Zacznij Tu! Poznaj Microsoft Visual Basic. Michael Halvorson. Przekład: Joanna Zatorska

William R. Stanek. Vademecum Administratora 2012 R2. Windows Server. Podstawy i konfiguracja. Przekład: Leszek Biolik

1 Implementowanie i konfigurowanie infrastruktury wdraŝania systemu Windows... 1

PHP: bloki kodu, tablice, obiekty i formularze

4. Podstawowa konfiguracja

Tabela wewnętrzna - definicja

Android poradnik programisty

C# 6.0 w pigułce / Joseph Albahari, Ben Albahari. Gliwice, cop Spis treści

Microsoft Office 2016 Krok po kroku

Programowanie w języku Swift : Big Nerd Ranch guide / Matthew Mathias, John Gallagher. Gliwice, cop Spis treści

Dokumentacja SMS przez FTP

Jeśli chcesz łatwo i szybko opanować podstawy C++, sięgnij po tę książkę.

ROZSZERZANIE MOŻLIWOŚCI...

Microsoft Visual C : praktyczne przykłady / Mariusz Owczarek. Gliwice, cop Spis treści

INFORMATYKA Pytania ogólne na egzamin dyplomowy

Internetowy serwis Era mail Aplikacja sieci Web

Spis treści. oraz Microsoft Visual Studio Wstęp... xiii. Część I Wprowadzenie do języka Microsoft Visual C# 1 Wprowadzenie do języka C#...

Oracle11g: Wprowadzenie do SQL

Wprowadzenie (17) Część I. Makra w Excelu - podstawy (23)

Sprawozdanie nr 4. Ewa Wojtanowska

Budowa architektury podstawowych funkcji usług IIS Działanie witryny sieci Web Korzystanie z aplikacji sieci Web i katalogów

ZMODYFIKOWANY Szczegółowy opis przedmiotu zamówienia

11. Autoryzacja użytkowników

Wykaz zmian w programie WinAdmin Replikator

Programowanie aplikacji dla Sklepu Windows w języku C#

Microsoft Exchange Server 2013

Projektowani Systemów Inf.

Leonard G. Lobel Eric D. Boyd. Azure SQL Database Krok po kroku. Microsoft. Przekład: Marek Włodarz. APN Promise, Warszawa 2014

Visual C# dla zupełnie początkujących / Tony Gaddis. Wydanie IV. Gliwice, copyright Spis treści. Wstęp 11. Uwaga, czytelnicy 19

Egzamin : administrowanie systemem Windows Server 2012 R2 / Charlie Russel. Warszawa, Spis treści

Joyce Cox Joan Lambert. Microsoft Access Krok po kroku. Przekład: Jakub Niedźwiedź

Część I Rozpoczęcie pracy z usługami Reporting Services

Wykaz zmian w programie SysLoger

Spis wzorców. Działania użytkownika Strona 147 Obsługa większości Działań użytkownika za pomocą kodu JavaScript przy użyciu metod obsługi zdarzeń.

Szkolenie autoryzowane. MS 6232 Wdrażanie bazy danych Microsoft SQL Server 2008 R2

Curtis D. Frye. Microsoft Excel Krok po kroku. Przekład: Leszek Biolik

TCP/IP. Warstwa aplikacji. mgr inż. Krzysztof Szałajko

Część I Dostęp do danych oraz moŝliwości programowe (silnik bazy danych)

Wykaz zmian w programie WinAdmin Replikator

Java w 21 dni / Rogers Cadenhead. Gliwice, cop Spis treści. O autorze 11. Wprowadzenie 13 TYDZIEŃ I JĘZYK JAVA

ZPKSoft WDoradca. 1. Wstęp 2. Architektura 3. Instalacja 4. Konfiguracja 5. Jak to działa 6. Licencja

Dokumentacja wstępna TIN. Rozproszone repozytorium oparte o WebDAV

4 Web Forms i ASP.NET Web Forms Programowanie Web Forms Możliwości Web Forms Przetwarzanie Web Forms...152

ECDL Base na skróty : Syllabus V. 1.0 / Alicja Żarowska-Mazur, Waldemar Węglarz. Warszawa, Spis treści

Wykład 2 Składnia języka C# (cz. 1)

EXSO-CORE - specyfikacja

Klient-Serwer Komunikacja przy pomocy gniazd

Efektywne tworzenie aplikacji webowych z wykorzystaniem AngularJS, HTML5 i JavaScript

Instrukcja konfigurowania poczty Exchange dla klienta pocztowego użytkowanego poza siecią uczelnianą SGH.

1. Zaczynamy! (9) 2. Edycja dokumentów (33)

Jak efektywnie wykrywać podatności bezpieczeństwa w aplikacjach? OWASP The OWASP Foundation

Baza danych sql. 1. Wprowadzenie

DESlock+ szybki start

Programowanie MorphX Ax

76.Struktura oprogramowania rozproszonego.

Przewodnik użytkownika (instrukcja) AutoMagicTest

Kurs ASP.NET ASP.NET CORE APLIKACJE WEBOWE

Plan. Formularz i jego typy. Tworzenie formularza. Co to jest formularz? Typy formularzy Tworzenie prostego formularza Budowa prostego formularza

Wprowadzenie do programowania

Programowanie obiektowe

System DiLO. Opis interfejsu dostępowego v. 2.0

C# 6.0 Księga przepisów

1 Powłoka programu Windows PowerShell Skrypty programu Windows PowerShell Zarządzanie dziennikami... 65

Instrukcja konfiguracji funkcji skanowania

Wykład 3 Składnia języka C# (cz. 2)

Księgarnia PWN: Greg Bastien, Christian Abera Degu Ściany ogniowe Cisco PIX

Konfigurowanie Windows 8

Wykaz zmian w programie SysLoger

Rozkład materiału do realizacji informatyki w szkole ponadgimnazjalnej w zakresie rozszerzonym

Programowanie obiektowe

Studia podyplomowe. Programowanie na platformie Microsoft Visual Studio.NET

Tomasz Greszata - Koszalin

Modele danych walidacja widoki zorientowane na model

SSL (Secure Socket Layer)

Rok akademicki: 2012/2013 Kod: JFM s Punkty ECTS: 3. Poziom studiów: Studia I stopnia Forma i tryb studiów: Stacjonarne

Specyfikacja API 1.0. Specyfikacja kontroli Konta systemu CashBill z wykorzystaniem API opartego na REST

Podstawy programowania skrót z wykładów:

Zadanie programistyczne nr 3 z Sieci komputerowych

Tworzenie witryn internetowych PHP/Java. (mgr inż. Marek Downar)

Analiza malware Remote Administration Tool (RAT) DarkComet

Wykaz zmian w programie SysLoger

Plan. Wprowadzenie. Co to jest APEX? Wprowadzenie. Administracja obszarem roboczym

Programowanie w języku Java 7 z biblioteką SWING

Zadanie1: Odszukaj w serwisie internetowym Wikipedii informacje na temat protokołu http.

2 Praca z danymi Domeny aplikacji, odbicie i metadane 53

Transkrypt:

C# 6.0 Księga przepisów Jay Hilyard & Stephen Teilhet przekład: Krzysztof Kapustka, Joanna Zatorska APN Promise Warszawa 2015

Spis treści Wstęp........................................................................xi 1 Klasy i typy generyczne................................................... 1 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................................................89 2.1 Wyszukiwanie zduplikowanych elementów na liście List<T>.........92 2.2 Utrzymywanie listy List<T> 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<T>...................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 v

3 Typy danych............................................................131 3.0 Wprowadzenie...............................................131 3.1 Kodowanie danych binarnych przy użyciu formatu Base64.........133 3.2 Dekodowanie danych binarnych zakodowanych formatem Base64...135 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......................................157 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 LINQ...176 4.6 Odpytywanie i łączenie różnych repozytoriów danych.............180 4.7 Pozyskiwanie danych z plików konfiguracyjnych przy użyciu LINQ..184 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<T>.........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.......................................233 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 vi Spis treści

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 asynchronicznych.............297 5.16 Selektywne przetwarzanie wyjątków.............................304 6 Odbicie i programowanie dynamiczne...................................309 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....................................................357 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..............................381 8.0 Wprowadzenie...............................................381 8.1 Wyszukiwanie katalogów lub plików za pomocą znaków wieloznacznych...............................................382 Spis treści vii

8.2 Uzyskiwanie drzewa katalogów.................................388 8.3 Parsowanie ścieżki............................................393 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ów...............402 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...................................................423 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ą gniazd.............486 9.17 Wykorzystanie bieżących ustawień internetowych.................491 9.18 Przenoszenie plików za pomocą FTP............................499 10 XML...................................................................503 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 viii Spis treści

10.7 Weryfikacja zmodyfikowanych dokumentów XML bez ich ponownego wczytywania......................................536 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........................................................557 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ść...................................623 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 delegata.636 12.5 Przechowywanie prywatnych danych własnych wątku..............639 12.6 Nadawanie dostępu do zasobów wielu klientom z wykorzystaniem semafora....................................643 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.............................................................689 13.0 Wprowadzenie...............................................689 Spis treści ix

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 AppDomain.............714 13.8 Sprawdzanie wersji systemu operacyjnego i dodatku Service Pack...716 Indeks......................................................................719 O autorach.................................................................745 x Spis treści