Szczegóły ebooka

C# 7.0 w pigułce. Wydanie VII

C# 7.0 w pigułce. Wydanie VII

Joseph Albahari, Ben Albahari

Ebook

C# jest uważany za flagowy projekt firmy Microsoft. Język ten charakteryzuje się niezwykłą elastycznością i wszechstronnością. Udostępnia wysokopoziomowe abstrakcje, takie jak wyrażenia, zapytania i kontynuacje asynchroniczne, ale też pozwala na korzystanie z mechanizmów niskopoziomowych. W efekcie dzięki takim konstrukcjom, jak własne typy wartościowe programisty czy opcjonalne wskaźniki, można znacząco zwiększyć wydajność aplikacji. Wersja 7.0 jest kolejną poważną aktualizacją języka. Zapoznanie się z tymi zmianami będzie bardzo ważne dla każdego programisty piszącego w C#.

Niniejsza książka jest kolejnym, uzupełnionym i zaktualizowanym wydaniem cenionego kompendium wiedzy o C#, CLR oraz o związanej z C# platformie. Napisano ją z myślą o programistach na co najmniej średnim poziomie zaawansowania. W zrozumiały, a równocześnie dogłębny sposób wyjaśniono takie trudne kwestie, jak współbieżność, bezpieczeństwo i domeny aplikacji. Informacje o nowych składnikach języka C# 6.0 i 7.0, a także o związanej z nim platformie zostały oznaczone. Szczególnie istotny z punktu widzenia programisty może okazać się rozdział o nowym kompilatorze Roslyn, zwanym kompilatorem usługowym.

Najważniejsze zagadnienia ujęte w książce:

  • składnia, typy oraz zmienne C#
  • wskaźniki, przeciążanie operatorów i wiązanie dynamiczne
  • programowanie współbieżne i asynchroniczne, praca z wątkami i programowanie równoległe
  • rdzenne technologie i techniki platformy .NET Framework, w tym LINQ, XML, kolekcje, kontrakty kodu, zarządzanie pamięcią, refleksja, programowanie dynamiczne
  • kompilator Roslyn, w tym jego architektura, struktura drzewa składni i model semantyczny

C# w nowej odsłonie - nowoczesny język dla profesjonalistów!

Wstęp (11)

1. Wprowadzenie do C# i .NET Framework (15)

  • Obiektowość (15)
  • Bezpieczeństwo typów (16)
  • Zarządzanie pamięcią (17)
  • Platformy (17)
  • Powiązania C# z CLR (17)
  • CLR i .NET Framework (18)
  • Inne platformy (18)
  • Historia C# w pigułce (22)

2. Podstawy języka C# (29)

  • Pierwszy program w języku C# (29)
  • Składnia (32)
  • Podstawy typów (34)
  • Typy liczbowe (42)
  • Typ logiczny i operatory (50)
  • Łańcuchy znaków i pojedyncze znaki (52)
  • Tablice (54)
  • Zmienne i parametry (58)
  • Wyrażenia i operatory (67)
  • Operatory null (72)
  • Instrukcje (73)
  • Przestrzenie nazw (82)

3. Tworzenie typów w języku C# (89)

  • Klasy (89)
  • Dziedziczenie (104)
  • Typ object (113)
  • Struktury (117)
  • Modyfikatory dostępu (118)
  • Interfejsy (120)
  • Wyliczenia (125)
  • Typy zagnieżdżone (128)
  • Typy generyczne (130)

4. Zaawansowane elementy języka C# (143)

  • Delegaty (143)
  • Zdarzenia (151)
  • Wyrażenia lambda (158)
  • Metody anonimowe (162)
  • Instrukcje try i wyjątki (163)
  • Wyliczanie i iteratory (171)
  • Typy wartościowe dopuszczające wartość null (176)
  • Metody rozszerzające (181)
  • Typy anonimowe (184)
  • Krotki (C# 7) (185)
  • Atrybuty (188)
  • Atrybuty informacji wywołującego (190)
  • Wiązanie dynamiczne (192)
  • Przeciążanie operatorów (199)
  • Niebezpieczny kod i wskaźniki (202)
  • Dyrektywy preprocesora (206)
  • Dokumentacja XML (208)

5. Ogólny zarys platformy (213)

  • .NET Standard 2.0 (215)
  • CLR i rdzeń platformy (217)
  • Technologie praktyczne (221)

6. Podstawowe wiadomości o platformie (229)

  • Obsługa łańcuchów i tekstu (229)
  • Data i godzina (242)
  • Daty i strefy czasowe (249)
  • Formatowanie i parsowanie (255)
  • Standardowe łańcuchy formatu i flagi parsowania (260)
  • Inne mechanizmy konwersji (267)
  • Globalizacja (271)
  • Praca z liczbami (272)
  • Wyliczenia (276)
  • Struktura Guid (279)
  • Sprawdzanie równości (280)
  • Określanie kolejności (289)
  • Klasy pomocnicze (293)

7. Kolekcje (297)

  • Przeliczalność (297)
  • Interfejsy ICollection i IList (304)
  • Klasa Array (308)
  • Listy, kolejki, stosy i zbiory (316)
  • Słowniki (324)
  • Kolekcje i pośredniki z możliwością dostosowywania (330)
  • Dołączanie protokołów równości i porządkowania (336)

8. Zapytania LINQ (343)

  • Podstawy (343)
  • Składnia płynna (345)
  • Wyrażenia zapytań (351)
  • Wykonywanie opóźnione (355)
  • Podzapytania (361)
  • Tworzenie zapytań złożonych (364)
  • Strategie projekcji (368)
  • Zapytania interpretowane (370)
  • LINQ to SQL i Entity Framework (376)
  • Budowanie wyrażeń zapytań (389)

9. Operatory LINQ (395)

  • Informacje ogólne (396)
  • Filtrowanie (399)
  • Projekcja (403)
  • Łączenie (414)
  • Porządkowanie (421)
  • Grupowanie (424)
  • Operatory zbiorów (427)
  • Metody konwersji (428)
  • Operatory elementów (431)
  • Metody agregacyjne (433)
  • Kwantyfikatory (437)
  • Metody generujące (438)

10. LINQ to XML (441)

  • Przegląd architektury (441)
  • Informacje ogólne o X-DOM (442)
  • Tworzenie drzewa X-DOM (445)
  • Nawigowanie i wysyłanie zapytań (448)
  • Modyfikowanie drzewa X-DOM (452)
  • Praca z wartościami (455)
  • Dokumenty i deklaracje (458)
  • Nazwy i przestrzenie nazw (461)
  • Adnotacje (466)
  • Projekcja do X-DOM (467)

11. Inne technologie XML (473)

  • Klasa XmlReader (474)
  • Klasa XmlWriter (482)
  • Typowe zastosowania klas XmlReader i XmlWriter (484)
  • XSD i sprawdzanie poprawności schematów (488)
  • XSLT (491)

12. Zwalnianie zasobów i mechanizm usuwania nieużytków (493)

  • IDisposable, Dispose i Close (493)
  • Automatyczne usuwanie nieużytków (499)
  • Finalizatory (501)
  • Jak działa mechanizm usuwania nieużytków? (506)
  • Wycieki pamięci zarządzanej (511)
  • Słabe odwołania (515)

13. Diagnostyka i kontrakty kodu (519)

  • Kompilacja warunkowa (520)
  • Debugowanie i klasy monitorowania (523)
  • Integracja z debuggerem (526)
  • Procesy i wątki procesów (528)
  • Klasy StackTrace i StackFrame (529)
  • Dziennik zdarzeń Windows (530)
  • Liczniki wydajności (533)
  • Klasa Stopwatch (538)

14. Współbieżność i asynchroniczność (539)

  • Wprowadzenie (539)
  • Wątkowanie (540)
  • Zadania (557)
  • Reguły asynchroniczności (565)
  • Funkcje asynchroniczne w języku C# (570)
  • Wzorce asynchroniczności (586)
  • Wzorce uznane za przestarzałe (594)

15. Strumienie i wejście-wyjście (599)

  • Architektura strumienia (599)
  • Użycie strumieni (601)
  • Adapter strumienia (614)
  • Kompresja strumienia (622)
  • Praca z plikami w postaci archiwum ZIP (624)
  • Operacje na plikach i katalogach (625)
  • Plikowe operacje wejścia-wyjścia w UWP (635)
  • Mapowanie plików w pamięci (638)
  • Odizolowany magazyn danych (641)

16. Sieć (643)

  • Architektura sieci (643)
  • Adresy i porty (646)
  • Adresy URI (647)
  • Klasy po stronie klienta (649)
  • Praca z HTTP (661)
  • Utworzenie serwera HTTP (667)
  • Użycie FTP (670)
  • Użycie DNS (672)
  • Wysyłanie poczty elektronicznej za pomocą SmtpClient (673)
  • Użycie TCP (673)
  • Otrzymywanie poczty elektronicznej POP3 za pomocą TCP (677)
  • TCP w środowisku uruchomieniowym Windows (679)

17. Serializacja (681)

  • Koncepcje serializacji (681)
  • Serializacja kontraktu danych (685)
  • Kontrakty danych i kolekcje (695)
  • Rozszerzenie kontraktu danych (697)
  • Serializacja binarna (700)
  • Atrybuty serializacji binarnej (702)
  • Serializacja binarna za pomocą ISerializable (706)
  • Serializacja XML (709)

18. Zestawy (719)

  • Co znajduje się w zestawie? (719)
  • Silne nazwy i podpisywanie zestawu (724)
  • Nazwy zestawów (727)
  • Technologia Authenticode (730)
  • Global Assembly Cache (734)
  • Zasoby i zestawy satelickie (736)
  • Wyszukiwanie i wczytywanie zestawów (745)
  • Wdrażanie zestawów poza katalogiem bazowym (750)
  • Umieszczenie w pojedynczym pliku wykonywalnym (751)
  • Praca z zestawami, do których nie ma odwołań (753)

19. Refleksja i metadane (755)

  • Refleksja i aktywacja typów (756)
  • Refleksja i wywoływanie składowych (762)
  • Refleksja dla zestawów (774)
  • Praca z atrybutami (775)
  • Generowanie dynamicznego kodu (781)
  • Emitowanie zestawów i typów (787)
  • Emitowanie składowych typów (791)
  • Emitowanie generycznych typów i klas (796)
  • Kłopotliwe cele emisji (798)
  • Parsowanie IL (801)

20. Programowanie dynamiczne (807)

  • Dynamiczny system wykonawczy języka (807)
  • Unifikacja typów liczbowych (809)
  • Dynamiczne wybieranie przeciążonych składowych (810)
  • Implementowanie obiektów dynamicznych (816)
  • Współpraca z językami dynamicznymi (819)

21. Bezpieczeństwo (821)

  • Code Access Security (821)
  • Tożsamość i role (822)
  • Zabezpieczenia systemu operacyjnego (825)
  • Kryptografia (827)
  • Windows Data Protection (828)
  • Obliczanie skrótów (829)
  • Szyfrowanie symetryczne (831)
  • Szyfrowanie kluczem publicznym i podpisywanie (835)

22. Zaawansowane techniki wielowątkowości (839)

  • Przegląd technik synchronizacji (840)
  • Blokowanie wykluczające (840)
  • Blokady i bezpieczeństwo ze względu na wątki (848)
  • Blokowanie bez wykluczania (854)
  • Sygnalizacja przy użyciu uchwytów zdarzeń oczekiwania (859)
  • Klasa Barrier (867)
  • Leniwa inicjalizacja (868)
  • Pamięć lokalna wątku (871)
  • Metody Interrupt i Abort (873)
  • Metody Suspend i Resume (874)
  • Zegary (875)

23. Programowanie równoległe (879)

  • Dlaczego PFX? (879)
  • PLINQ (882)
  • Klasa Parallel (895)
  • Równoległe wykonywanie zadań (901)
  • Klasa AggregateException (910)
  • Kolekcje współbieżne (913)
  • Klasa BlockingCollection (916)

24. Domeny aplikacji (921)

  • Architektura domeny aplikacji (921)
  • Tworzenie i likwidowanie domen aplikacji (923)
  • Posługiwanie się wieloma domenami aplikacji (924)
  • Metoda DoCallBack (926)
  • Monitorowanie domen aplikacji (927)
  • Domeny i wątki (927)
  • Dzielenie danych między domenami (929)

25. Współdziałanie macierzyste i poprzez COM (935)

  • Odwołania do natywnych bibliotek DLL (935)
  • Szeregowanie (936)
  • Wywołania zwrotne z kodu niezarządzanego (939)
  • Symulowanie unii C (939)
  • Pamięć współdzielona (940)
  • Mapowanie struktury na pamięć niezarządzaną (943)
  • Współpraca COM (946)
  • Wywołanie komponentu COM z C# (948)
  • Osadzanie typów współpracujących (952)
  • Główne moduły współpracujące (952)
  • Udostępnianie obiektów C# dla COM (953)

26. Wyrażenia regularne (955)

  • Podstawy wyrażeń regularnych (956)
  • Kwantyfikatory (960)
  • Asercje o zerowej wielkości (961)
  • Grupy (964)
  • Zastępowanie i dzielenie tekstu (965)
  • Receptury wyrażeń regularnych (967)
  • Leksykon języka wyrażeń regularnych (970)

27. Kompilator Roslyn (975)

  • Architektura Roslyn (976)
  • Drzewa składni (977)
  • Kompilacja i model semantyczny (991)

Skorowidz (1003)

  • Tytuł: C# 7.0 w pigułce. Wydanie VII
  • Autor: Joseph Albahari, Ben Albahari
  • Tytuł oryginału: C# 7.0 in a Nutshell: The Definitive Reference, 7ed
  • Tłumaczenie: Łukasz Piwko
  • ISBN: 978-83-283-4076-3, 9788328340763
  • Data wydania: 2018-06-29
  • Format: Ebook
  • Identyfikator pozycji: c7pig7
  • Wydawca: Helion