C# 10. Programowanie. Tworzenie aplikacji Windows, internetowych i biurowych Gdynia

Język C#, sztandarowe dzieło Microsoftu, jest rozwijany stopniowo i ze starannością. Wciąż cechuje go prostota, a jego możliwości konsekwentnie rosną. Każda nowa funkcjonalność idealnie integruje się z resztą języka. W efekcie C# jest dojrzały, nowoczesny, wszechstronny i bezpieczny. Jego kolejne …

od 101,45 Najbliżej: 0,8 km

Liczba ofert: 10

Oferta sklepu

Opis

Język C#, sztandarowe dzieło Microsoftu, jest rozwijany stopniowo i ze starannością. Wciąż cechuje go prostota, a jego możliwości konsekwentnie rosną. Każda nowa funkcjonalność idealnie integruje się z resztą języka. W efekcie C# jest dojrzały, nowoczesny, wszechstronny i bezpieczny. Jego kolejne wydanie, oznaczone numerem 10.0, różni się od poprzednich, więc aby programowanie w C# pozostało efektywne i satysfakcjonujące, trzeba opanować niuanse nowej wersji języka i narzędzi z nim związanych. Ta książka jest uaktualnionym wydaniem wyczerpującego przewodnika dla doświadczonych programistów. Omawia ważne koncepcje języka C# i te jego tajniki, które rzadko kiedy są opisywane w poświęconych mu publikacjach. Uwzględnia najnowsze możliwości .NET 6 i C# w wersjach 9.0 i 10.0, z czego warto wymienić: rekordy, rozszerzone możliwości dopasowywania wzorców, a także nowe techniki upraszczania kodu w celu poprawy jego efektywności. Dokładnie opisano tu typy ogólne, LINQ i techniki programowania asynchronicznego. Wyjaśniono, jak w praktyce skorzystać z tych możliwości podczas tworzenia różnego rodzaju aplikacji: chmurowych, internetowych i klasycznych dla komputerów biurkowych. W książce między innymi: zmiany wprowadzone w ostatnich wersjach języka C# zasady korzystania z nowych możliwości języka zastosowanie nowych funkcjonalności C# w tworzeniu aplikacji nowe możliwości bibliotek klas .NET zastosowanie bibliotek klas .NET do praktycznych zadań programistycznych zwiększanie siły ekspresji kodu w C# Poznaj sekretne tajniki C# i zostań mistrzem dobrego kodu! Spis treści: Wstęp 1. Prezentacja C# Dlaczego C#? Kod zarządzany i CLR Ogólność jest preferowana względem specjalizacji Standardy oraz implementacje języka C# Wiele .NET-ów Cykle wydawnicze i wsparcie długoterminowe Użycie .NET Standard w celu tworzenia projektów działających Visual Studio, Visual Studio Code oraz JetBrains Rider Anatomia prostego programu Pisanie testu jednostkowego Przestrzenie nazw Klasy Testy jednostkowe Podsumowanie 2. Podstawy stosowania języka C# Zmienne lokalne Zakres Niejednoznaczności nazw zmiennych Instancje zmiennych lokalnych Instrukcje i wyrażenia Instrukcje Wyrażenia Komentarze i białe znaki Dyrektywy preprocesora Symbole kompilacji Dyrektywy #error oraz #warning Dyrektywa #line Dyrektywa #pragma Dyrektywa #nullable Dyrektywy #region i #endregion Podstawowe typy danych Typy liczbowe Wartości logiczne Znaki i łańcuchy znaków Krotki Dynamic Object Operatory Sterowanie przepływem Decyzje logiczne przy użyciu instrukcji if Wielokrotny wybór przy użyciu instrukcji switch Pętle: while i do Pętle znane z języka C Przeglądanie kolekcji przy użyciu pętli foreach Wzorce Łączenie i negacja wzorców Wzorce relacyjne Uzyskiwanie większej dokładności dzięki użyciu when Wzorce w wyrażeniach Podsumowanie 3. Typy Klasy Składowe statyczne Klasy statyczne Rekordy Typy referencyjne i wartość null Eliminacja wartości pustych przy użyciu referencji, które ich nie akceptują Struktury Kiedy tworzyć typy wartościowe? Gwarantowanie niezmienności Typy record struct Klasy, struktury, rekordy czy krotki? Składowe Dostępność Pola Konstruktory Dekonstruktory Metody Właściwości Operatory Zdarzenia Typy zagnieżdżone Interfejsy Domyślne implementacje metod w interfejsach Typy wyliczeniowe Inne typy Typy anonimowe Typy i metody częściowe Podsumowanie 4. Typy ogólne Typy ogólne Ograniczenia Ograniczenia typu Ograniczenia typu referencyjnego Ograniczenia typu wartościowego Wszystkie typy w hierarchii wartościowe dzięki ograniczeniu unmanaged Ograniczenie notnull Inne specjalne ograniczenia typów Stosowanie wielu ograniczeń Wartości przypominające zero Metody ogólne Wnioskowanie typu Typy ogólne i krotki Tajniki typów ogólnych Podsumowanie 5. Kolekcje Tablice Inicjalizacja tablic Przeszukiwanie i sortowanie Tablice wielowymiarowe Kopiowanie i zmiana wielkości List Interfejsy list i sekwencji Implementacja list i sekwencji Implementacja IEnumerable przy użyciu iteratorów Klasa Collection Klasa ReadOnlyCollection Odwołania do elementów z użyciem indeksów i zakresów System.Index System.Range Obsługa indeksów i zakresów we własnych typach danych Słowniki Słowniki posortowane Zbiory Kolejki i stosy Listy połączone Kolekcje współbieżne Kolekcje niezmienne Podsumowanie 6. Dziedziczenie Dziedziczenie i konwersje Dziedziczenie interfejsów Typy ogólne Kowariancja i kontrawariancja System.Object Wszechobecne metody typu System.Object Dostępność i dziedziczenie Metody wirtualne Metody abstrakcyjne Dziedziczenie i wersje bibliotek Metody i klasy ostateczne Dostęp do składowych klas bazowych Dziedziczenie i tworzenie obiektów Rekordy Rekordy, dziedziczenie i słowo kluczowe with Specjalne typy bazowe Podsumowanie 7. Cykl życia obiektów Mechanizm odzyskiwania pamięci Określanie osiągalności danych Przypadkowe problemy mechanizmu odzyskiwania pamięci Słabe referencje Odzyskiwanie pamięci Tryby odzyskiwania pamięci Tymczasowe zawieszanie odzyskiwania pamięci Przypadkowe utrudnianie scalania Wymuszanie odzyskiwania pamięci Destruktory i finalizacja Interfejs IDisposable Zwalnianie opcjonalne Pakowanie Pakowanie danych typu Nullable Podsumowanie 8. Wyjątki Źródła wyjątków Wyjątki zgłaszane przez API Błędy wykrywane przez środowisko uruchomieniowe Obsługa wyjątków Obiekty wyjątków Wiele bloków catch Filtry wyjątków Zagnieżdżone bloki try Bloki finally Zgłaszanie wyjątków Powtórne zgłaszanie wyjątków Sposób na szybkie zakończenie aplikacji Typy wyjątków Wyjątki niestandardowe Wyjątki nieobsługiwane Podsumowanie 9. Delegaty, wyrażenia lambda i zdarzenia Typy delegatów Tworzenie delegatów MulticastDelegate - delegaty zbiorowe Wywoływanie delegatów Popularne typy delegatów Zgodność typów Więcej niż składnia Funkcje anonimowe Przechwytywane zmienne Wyrażenia lambda oraz drzewa wyrażeń Zdarzenia Standardowy wzorzec delegatów zdarzeń Niestandardowe metody dodające i usuwające zdarzenia Zdarzenia i mechanizm odzyskiwania pamięci Zdarzenia a delegaty Delegaty a interfejsy Podsumowanie 10. LINQ Wyrażenia zapytań Jak są rozwijane wyrażenia zapytań Obsługa wyrażeń zapytań Przetwarzanie opóźnione LINQ, typy ogólne oraz interfejs IQueryable Standardowe operatory LINQ Filtrowanie Selekcja Operator SelectMany Podział na części Określanie porządku Testy zawierania Asynchroniczne przetwarzanie natychmiastowe Agregacja Operacje na zbiorach Operatory działające na całych sekwencjach z zachowaniem kolejności Grupowanie Złączenia Konwersje Generowanie sekwencji Inne implementacje LINQ Entity Framework Core Parallel LINQ (PLINQ) LINQ to XML IAsyncEnumerable Reactive Extensions Podsumowanie 11. Reactive Extensions Podstawowe interfejsy Interfejs IObserver Interfejs IObservable Publikowanie i subskrypcja z wykorzystaniem delegatów Tworzenie źródła przy wykorzystaniu delegatów Subskrybowanie obserwowalnych źródeł przy użyciu delegatów Generator sekwencji Empty Never Return Throw Range Repeat Generate Zapytania LINQ Operatory grupowania Operatory Join Operator SelectMany Agregacja oraz inne operatory zwracające jedną wartość Operator Concat Operatory biblioteki Rx Merge Operatory Buffer i Window Operator Scan Operator Amb DistinctUntilChanged Mechanizmy szeregujące Określanie mechanizmów szeregujących Wbudowane mechanizmy szeregujące Tematy Subject BehaviorSubject ReplaySubject AsyncSubject Dostosowanie IEnumerable i IAsyncEnumerable Zdarzenia .NET API asynchroniczne Operacje z uzależnieniami czasowymi Interval Timer Timestamp TimeInterval Throttle Sample Timeout Operatory okien czasowych Delay DelaySubscription Reaqtor - Rx jako usługa Podsumowanie 12. Podzespoły Anatomia podzespołu Metadane .NET Zasoby Podzespoły składające się z wielu plików Inne możliwości formatu PE Tożsamość typu Wczytywanie podzespołów Określanie podzespołów Jawne wczytywanie podzespołów Izolacja i obsługa wtyczek z użyciem typu AssemblyLoadContext Nazwy podzespołów Silne nazwy Numer wersji Numery wersji a wczytywanie podzespołów Identyfikator kulturowy Zabezpieczenia Platformy docelowe i .NET Standard Podsumowanie 13. Odzwierciedlanie Typy odzwierciedlania Assembly Module MemberInfo Type i TypeInfo MethodBase, ConstructorInfo oraz MethodInfo ParameterInfo FieldInfo PropertyInfo EventInfo Konteksty odzwierciedlania Podsumowanie 14. Atrybuty Stosowanie atrybutów Cele atrybutów Atrybuty obsługiwane przez kompilator Atrybuty obsługiwane przez CLR Definiowanie i stosowanie atrybutów niestandardowych Typy atrybutów Pobieranie atrybutów Wczytywanie jedynie metadanych Podsumowanie 15. Pliki i strumienie Klasa Stream Położenie i poruszanie się w strumieniu Opróżnianie strumienia Kopiowanie Length Zwalnianie strumieni Operacje asynchroniczne Konkretne typy strumieni Jeden typ, wiele zachowań Dostęp swobodny i rozproszone/zebrane operacje wejścia-wyjścia bez klasy Stream Typy operujące na tekstach TextReader oraz TextWriter Konkretne typy do odczytu i zapisu łańcuchów znaków Kodowanie Pliki i katalogi Klasa FileStream Klasa File Klasa Directory Klasa Path Klasy FileInfo, DirectoryInfo oraz FileSystemInfo Znane katalogi Serializacja Klasy BinaryReader i BinaryWriter Serializacja CLR JSON Podsumowanie 16. Wielowątkowość Wątki Wątki, zmienne i wspólny stan Pamięć lokalna wątku Klasa Thread Pula wątków Powinowactwo do wątku oraz klasa SynchronizationContext Klasa ExecutionContext Synchronizacja Monitory oraz słowo kluczowe lock Klasa SpinLock Blokady odczytu i zapisu Obiekty zdarzeń Klasa Barrier Klasa CountdownEvent Semafory Muteksy Klasa Interlocked Leniwa inicjalizacja Pozostałe klasy obsługujące działania współbieżne Zadania Klasy Task i Task Kontynuacje Mechanizmy szeregujące Obsługa błędów Niestandardowe zadania bezwątkowe Związki zadanie nadrzędne - zadanie podrzędne Zadania złożone Inne wzorce asynchroniczne Anulowanie Równoległość Klasa Parallel Parallel LINQ TPL Dataflow Podsumowanie 17. Asynchroniczne cechy języka Nowe słowa kluczowe: async i await Konteksty wykonania i synchronizacji Wykonywanie wielu operacji i pętli Zwracanie obiektu Task Stosowanie async w metodach zagnieżdżonych Wzorzec słowa kluczowego await Obsługa błędów Weryfikacja poprawności argumentów Wyjątki pojedyncze oraz grupy wyjątków Operacje równoległe i nieobsłużone wyjątki Podsumowanie 18. Wydajne użytkowanie pamięci (Nie) kopiować! Reprezentacja elementów sekwencyjnych przy użyciu Span Metody pomocnicze Tylko na stosie Reprezentacja elementów sekwencyjnych przy użyciu Memory ReadOnlySequence Przetwarzanie strumieni danych przy użyciu potoków Przetwarzanie danych JSON w ASP.NET Core Podsumowanie Skorowidz O autorze: Ian Griffiths - jest autorem kursu WPF oraz instruktorem w firmie Pluralsight, specjalizującej się w prowadzeniu kursów Microsoft .NET. Pracuje także jako niezależny konsultant. Jest współautorem książek Windows Forms in a Nutshell, Mastering Visual Studio .NET oraz Programming WPF, wydanych przez wydawnictwo O"Reilly.

Specyfikacja

Podstawowe informacje

Autor
  • Ian Griffiths
Wybrane wydawnictwa
  • Helion
Okładka
  • Broszura
Format
  • 16.5 x 23.5 cm
Rok wydania
  • 2023
Ilość stron
  • 800
Tematyka
  • Programowanie
ISBN
  • 9788383222066