Details zum E-Book

C# 10 i .NET 6 dla programistów aplikacji wieloplatformowych. Twórz aplikacje, witryny WWW oraz serwisy sieciowe za pomocą ASP.NET Core 6, Blazor i EF Core 6 w Visual Studio 2022 i Visual Studio Code. Wydanie VI

C# 10 i .NET 6 dla programistów aplikacji wieloplatformowych. Twórz aplikacje, witryny WWW oraz serwisy sieciowe za pomocą ASP.NET Core 6, Blazor i EF Core 6 w Visual Studio 2022 i Visual Studio Code. Wydanie VI

Mark J. Price

E-book

C# to jedno z najdoskonalszych dzieł Microsoftu. Co więcej, język ten, podobnie jak wieloplatformowy framework .NET, jest konsekwentnie rozwijany i wzbogacany. Coraz więcej profesjonalistów przekonuje się, że używanie C# jest przyjemne i satysfakcjonujące, a każda kolejna wersja przynosi liczne udogodnienia i nowe funkcjonalności. Aktualne wersje C# 10 i .NET 6 pozwalają bez trudu tworzyć rozbudowane serwisy internetowe czy wieloplatformowe aplikacje mobilne.

Ta książka jest kolejnym, gruntownie przebudowanym wydaniem cenionego podręcznika dla programistów #C. Dzięki niej nauczysz się najważniejszych zasad korzystania z tego języka. Znajdziesz tu drobiazgowe omówienie API środowiska .NET, jak również techniki pracy z systemem plików, asynchronicznymi strumieniami, serializacją i szyfrowaniem.

Po przyswojeniu zagadnień związanych z językiem C# i aplikacjami konsoli dowiesz się, jak tworzyć praktyczne aplikacje i usługi z wykorzystaniem biblioteki ASP.NET Core, a także wzorzec MVC i technologię Blazor. Zapoznasz się z metodami stosowania wielozadaniowości do poprawy wydajności i skalowalności aplikacji. Przeczytasz też, w jaki sposób ASP.NET Core ułatwia pracę wielu zespołów programistów. Poszczególne zagadnienia zostały zilustrowane dokładnie wyjaśnionymi przykładami kodu, a dodatkowe ćwiczenia pozwolą Ci na utrwalenie zdobytych umiejętności.

Z tą książką nauczysz się:

  • tworzyć własne typy w programowaniu zorientowanym obiektowo
  • pisać, testować i debugować funkcje
  • odczytywać dane i manipulować nimi za pomocą LINQ
  • pracować z Entity Framework Core, a także Microsoft SQL Server i SQLite
  • tworzyć usługi sieciowe i interfejsy użytkownika
  • projektować aplikacje wieloplatformowe

C# i .NET: najlepsze środowisko do programowania w najlepszym języku!

O autorze

O recenzentach

Wstęp

Rozdział 1. Cześć, C#! Witaj, .NET!

  • Konfigurowanie środowiska programistycznego
    • Wybieranie narzędzia i typu aplikacji właściwych do nauki
    • Instalowanie na wielu platformach
    • Pobieranie i instalowanie Visual Studio 2022 dla Windows
    • Pobieranie i instalowanie Microsoft Visual Studio Code
  • Poznawanie .NET
    • Poznawanie .NET Framework
    • Poznawanie projektów Mono, Xamarin i Unity
    • Poznawanie .NET Core
    • Droga do jednej platformy .NET
    • Plany obsługi platformy .NET
    • Co się zmienia w nowoczesnym .NET?
    • Motywy kolorystyczne w nowoczesnym .NET
    • Poznawanie .NET Standard
    • Platformy .NET i narzędzia używane w tym wydaniu
    • Poznawanie języka IL
    • Porównanie technologii .NET
  • Tworzenie aplikacji konsoli za pomocą Visual Studio 2022
    • Zarządzanie wieloma projektami w Visual Studio 2022
    • Pisanie kodu za pomocą Visual Studio 2022
    • Kompilowanie i uruchamianie kodu w Visual Studio
    • Pisanie programów najwyższego poziomu
    • Dodawanie drugiego projektu w Visual Studio 2022
  • Tworzenie aplikacji konsoli za pomocą Visual Studio Code
    • Zarządzanie wieloma projektami w Visual Studio Code
    • Pisanie kodu za pomocą Visual Studio Code
    • Kompilowanie i uruchamianie kodu za pomocą polecenia dotnet
    • Dodawanie drugiego projektu w Visual Studio Code
    • Zarządzanie wieloma plikami za pomocą Visual Studio Code
  • Badanie kodu w interaktywnych notatnikach .NET
    • Tworzenie notatnika
    • Pisanie i uruchamianie kodu w notatniku
    • Zapisywanie notatnika
    • Dodawanie do notatnika składni Markdown i poleceń specjalnych
    • Uruchamianie kodu w wielu komórkach
    • Używanie interaktywnych notatników .NET do pisania kodu z tej książki
  • Przeglądanie folderów i plików projektów
    • Wspólne foldery i pliki
    • Kod w repozytorium GitHuba
  • Wykorzystywanie repozytorium GitHuba w tej książce
    • Pobieranie kodu rozwiązań z repozytorium GitHuba
    • Używanie systemu Git w Visual Studio Code
  • Gdzie znaleźć pomoc?
    • Przeglądanie dokumentacji Microsoftu
    • Uzyskiwanie pomocy dla narzędzia dotnet
    • Przeglądanie definicji typów i ich elementów
    • Poszukiwanie odpowiedzi na Stack Overflow
    • Poszukiwanie odpowiedzi za pomocą Google
    • Subskrybowanie blogów
    • Filmy Scotta Hanselmana
  • Praktyka i ćwiczenia
    • Ćwiczenie 1.1 - sprawdź swoją wiedzę
    • Ćwiczenie 1.2 - ćwicz C# gdzie się da
    • Ćwiczenie 1.3 - dalsza lektura
  • Podsumowanie

Rozdział 2. Mówimy w C#

  • Wprowadzenie do języka C#
    • Rozpoznawanie wersji oraz funkcji języka
    • Standardy języka C#
    • Odczytywanie wersji używanego kompilatora C#
  • Poznawanie gramatyki i słownictwa języka C#
    • Wyświetlanie numeru wersji kompilatora
    • Gramatyka języka C#
    • Słownictwo języka C#
    • Porównanie języków programowania do języków ludzkich
    • Zmiana schematu kolorów składni języka C#
    • Pomoc przy pisaniu kodu
    • Importowanie przestrzeni nazw
    • Czasowniki jako metody
    • Rzeczowniki to typy, pola i zmienne
    • Ujawnienie wielkości słownika języka C#
  • Praca ze zmiennymi
    • Nazywanie zmiennych
    • Literały
    • Przechowywanie tekstu
    • Przechowywanie liczb
    • Przechowywanie liczb rzeczywistych
    • Przechowywanie wartości logicznych
    • Zapisywanie obiektów dowolnego typu
    • Przechowywanie typów dynamicznych
    • Deklarowanie zmiennych lokalnych
    • Odczytywanie i ustalanie domyślnych wartości typów
    • Zapisywanie wielu wartości w tablicy
  • Dokładniejsze poznawanie aplikacji konsoli
    • Wyświetlanie informacji dla użytkownika
    • Pobieranie danych od użytkownika
    • Uproszczone korzystanie z konsoli
    • Odczytywanie naciśnięć klawiszy
    • Odczytywanie parametrów aplikacji konsoli
    • Ustalanie opcji za pomocą argumentów
    • Obsługiwanie platform nieobsługujących wybranych API
  • Praktyka i ćwiczenia
    • Ćwiczenie 2.1 - sprawdź swoją wiedzę
    • Ćwiczenie 2.2 - sprawdź swoją wiedzę o typach liczbowych
    • Ćwiczenie 2.3 - poznaj wielkości i zakresy liczb
    • Ćwiczenie 2.4 - dalsza lektura
  • Podsumowanie

Rozdział 3. Sterowanie przepływem i konwertowanie typów

  • Działania na zmiennych
    • Operatory jednoargumentowe
    • Dwuargumentowe operatory arytmetyczne
    • Operatory przypisania
    • Operatory logiczne
    • Warunkowe operatory logiczne
    • Operatory bitowe i operatory przesunięć
    • Operatory różne
  • Instrukcje wyboru
    • Instrukcja if
    • Dopasowywanie wzorców z instrukcją if
    • Instrukcja switch
    • Dopasowywanie wzorców z instrukcją switch
    • Upraszczanie instrukcji switch za pomocą wyrażeń switch
  • Instrukcje iteracji
    • Instrukcja while
    • Instrukcja do
    • Instrukcja for
    • Instrukcja foreach
  • Rzutowanie i konwertowanie między typami
    • Jawne i niejawne rzutowanie liczb
    • Używanie typu System.Convert
    • Zaokrąglanie liczb
    • Kontrolowanie sposobu zaokrąglania
    • Konwersja z dowolnego typu na ciąg znaków
    • Konwertowanie obiektu binarnego na ciąg znaków
    • Parsowanie ciągów znaków z liczbami, datami i czasem
  • Obsługa wyjątków
    • Instrukcja try
  • Wykrywanie przepełnień
    • Instrukcja checked
    • Instrukcja unchecked
  • Praktyka i ćwiczenia
    • Ćwiczenie 3.1 - sprawdź swoją wiedzę
    • Ćwiczenie 3.2 - pętle i przepełnienia
    • Ćwiczenie 3.3 - pętle i operatory
    • Ćwiczenie 3.4 - obsługa wyjątków
    • Ćwiczenie 3.5 - sprawdź swoją wiedzę o operatorach
    • Ćwiczenie 3.6 - dalsza lektura
  • Podsumowanie

Rozdział 4. Pisanie, debugowanie i testowanie funkcji

  • Tworzenie funkcji
    • Przykład z tabliczką mnożenia
    • Pisanie funkcji zwracającej wartość
    • Zamiana liczebników głównych na porządkowe
    • Rekurencyjne obliczanie silni
    • Dokumentowanie funkcji za pomocą komentarzy XML
    • Używanie wyrażeń lambda w implementacji funkcji
  • Debugowanie tworzonego programu
    • Tworzenie aplikacji z celowym błędem
    • Tworzenie punktu przerwania
    • Pasek narzędzi debugowania
    • Okna debugowania
    • Krokowe wykonywanie kodu
    • Dostosowywanie punktów przerwania
  • Protokołowanie błędów
    • Dostępne opcje protokołowania
    • Wykorzystywanie typów Debug i Trace
    • Konfigurowanie obiektów nasłuchujących
    • Przełączanie poziomów śledzenia
  • Testy jednostkowe
    • Różne rodzaje testów
    • Tworzenie biblioteki klas wymagającej testowania
    • Tworzenie testów jednostkowych
  • Rzucanie i wychwytywanie wyjątków w funkcjach
    • Rozróżnienie błędów użycia i błędów wykonania
    • Wyjątki często rzucane w funkcjach
    • Czym jest stos wywołań?
    • Gdzie należy wychwytywać wyjątki?
    • Ponowne rzucanie wyjątku
    • Implementowanie wzorca tester-wykonawca
  • Praktyka i ćwiczenia
    • Ćwiczenie 4.1 - sprawdź swoją wiedzę
    • Ćwiczenie 4.2 - tworzenie funkcji z wykorzystaniem debugowania i testów jednostkowych
    • Ćwiczenie 4.3 - dalsza lektura
  • Podsumowanie

Rozdział 5. Tworzenie własnych typów w programowaniu obiektowym

  • Programowanie obiektowe
  • Tworzenie bibliotek klas
    • Tworzenie biblioteki klas
    • Definiowanie klasy
    • Elementy klasy
    • Tworzenie obiektów
    • Importowanie przestrzeni nazw
    • Poznawanie obiektów
  • Przechowywanie danych w polach
    • Definiowanie pól
    • Modyfikatory dostępu
    • Ustalanie i wypisywanie wartości pól
    • Zapisywanie wartości za pomocą słowa kluczowego enum
    • Przechowywanie wielu wartości w typie enum
  • Zapisywanie wielu wartości za pomocą kolekcji
    • Kolekcje generyczne
    • Tworzenie pól statycznych
    • Tworzenie stałych pól
    • Tworzenie pól tylko do odczytu
    • Inicjowanie pól w konstruktorach
  • Tworzenie i wywoływanie metod
    • Zwracanie wartości z metody
    • Łączenie wielu wartości za pomocą krotki
    • Sterowanie przekazywaniem parametrów
    • Przeciążanie metod
    • Parametry opcjonalne i nazywane
    • Sposoby przekazywania parametrów
    • Zwracanie wartości ze słowem kluczowym ref
    • Dzielenie klas na części
  • Kontrola dostępu za pomocą właściwości i indekserów
    • Definiowanie właściwości tylko do odczytu
    • Definiowanie właściwości z możliwością przypisania
    • Wymaganie podania wartości właściwości przy tworzeniu obiektu
    • Definiowanie indekserów
  • Dopasowywanie wzorców z obiektami
    • Tworzenie i używanie biblioteki klas .NET 6
    • Definiowanie listy pasażerów
    • Rozszerzenia dopasowywania wzorców w C# 9 i nowszych
  • Praca z rekordami
    • Właściwości wyłącznie inicjalizowane
    • Rekordy
    • Pozycyjne elementy danych w rekordach
  • Praktyka i ćwiczenia
    • Ćwiczenie 5.1 - sprawdź swoją wiedzę
    • Ćwiczenie 5.2 - dalsza lektura
  • Podsumowanie

Rozdział 6. Implementowanie interfejsów i dziedziczenie klas

  • Konfigurowanie biblioteki klas i aplikacji konsoli
  • Więcej informacji o metodach
    • Implementowanie działań w metodzie
    • Implementowanie działań za pomocą operatora
    • Definiowanie funkcji lokalnych
  • Wywoływanie i obsługa zdarzeń
    • Wywoływanie metod za pomocą delegatów
    • Definiowanie i obsługa delegatów
    • Definiowanie i obsługiwanie zdarzeń
  • Wykorzystywanie typów generycznych
    • Praca z typami niegenerycznymi
    • Praca z typami generycznymi
  • Implementowanie interfejsów
    • Typowe interfejsy
    • Porównywanie obiektów podczas sortowania
    • Porównywanie obiektów za pomocą osobnej klasy
    • Jawne i niejawne implementowanie interfejsów
    • Definiowanie interfejsów z domyślnymi implementacjami
  • Zarządzanie pamięcią za pomocą typów referencyjnych i typów wartości
    • Definiowanie typów referencyjnych i typów wartości
    • Sposób przechowywania w pamięci typów referencyjnych i typów wartości
    • Równość typów
    • Definiowanie typu kategorii struct
    • Praca z typami record struct
    • Zwalnianie niezarządzanych zasobów
    • Wymuszanie wywołania metody Dispose
  • Praca z wartościami null
    • Przekształcanie typu wartości w typ nullowalny
    • Poznawanie nullowalnych typów referencyjnych
    • Włączanie nullowalnych i nienullowalnych typów referencyjnych
    • Deklarowanie nienullowalnych zmiennych i parametrów
    • Sprawdzanie wartości null
  • Dziedziczenie klas
    • Rozbudowywanie klasy
    • Ukrywanie elementów
    • Pokrywanie elementów klasy
    • Dziedziczenie po klasach abstrakcyjnych
    • Blokowanie dziedziczenia i pokrywania
    • Polimorfizm
  • Rzutowanie w ramach hierarchii dziedziczenia
    • Rzutowanie niejawne
    • Rzutowanie jawne
    • Obsługa wyjątków rzutowania
  • Dziedziczenie i rozbudowywanie typów .NET
    • Dziedziczenie po wyjątku
    • Rozszerzanie typów, po których nie można dziedziczyć
  • Stosowanie analizatorów, aby tworzyć lepszy kod
    • Ukrywanie komunikatów o ostrzeżeniach
  • Praktyka i ćwiczenia
    • Ćwiczenie 6.1 - sprawdź swoją wiedzę
    • Ćwiczenie 6.2 - tworzenie hierarchii dziedziczenia
    • Ćwiczenie 6.3 - dalsza lektura
  • Podsumowanie

Rozdział 7. Poznawanie typów .NET

  • Wprowadzenie do .NET 6
    • .NET Core 1.0
    • .NET Core 1.1
    • .NET Core 2.0
    • .NET Core 2.1
    • .NET Core 2.2
    • .NET Core 3.0
    • .NET Core 3.1
    • .NET 5.0
    • .NET 6.0
    • Poprawki wydajności między .NET Core 2.0 a .NET 5
    • Sprawdzanie dostępności aktualizacji .NET SDK
  • Zestawy i przestrzenie nazw
    • Zestawy, pakiety i przestrzenie nazw
    • Poznawanie pakietów SDK dla projektów .NET
    • Przestrzenie nazw i typy w zestawach
    • Pakiety NuGet
    • Czym są frameworki?
    • Importowanie przestrzeni nazw w celu użycia typu
    • Związki słów kluczowych języka C# z typami .NET
    • Odwzorowywanie aliasów języka C# na typy .NET
    • Wieloplatformowe współdzielenie kodu z bibliotekami klas .NET Standard
    • Domyślne ustawienia bibliotek klas w różnych wersjach SDK
    • Tworzenie biblioteki klas .NET Standard 2.0
    • Kontrolowanie wersji .NET SDK
  • Publikowanie własnych aplikacji
    • Tworzenie aplikacji konsoli do publikacji
    • Poznawanie polecenia dotnet
    • Pobieranie informacji na temat platformy .NET i jej środowiska
    • Zarządzanie projektami
    • Publikowanie samodzielnej aplikacji
    • Publikowanie aplikacji jednoplikowej
    • Zmniejszanie wielkości aplikacji
  • Dekompilowanie zestawów
    • Dekompilowanie za pomocą rozszerzenia ILSpy w Visual Studio 2022
    • Dekompilowanie za pomocą rozszerzenia ILSpy w Visual Studio Code
    • Nie, nie można zablokować możliwości dekompilowania
  • Przygotowywanie własnych pakietów NuGet
    • Dodawanie odwołania do pakietu
    • Tworzenie pakietu dla NuGet
    • Przeszukiwanie pakietów NuGet
    • Testowanie pakietu
  • Przenoszenie kodu z .NET Framework do .NET Core
    • Co można przenieść?
    • Co należy przenieść?
    • Różnice między .NET Framework i nowoczesnym .NET
    • Korzystanie z programu .NET Portability Analyzer
    • Asystent uaktualniania programu .NET
    • Używanie bibliotek spoza .NET
  • Praca z proponowanymi funkcjami
    • Wymaganie proponowanych funkcji
    • Włączanie proponowanych funkcji
    • Matematyka typów generycznych
  • Praktyka i ćwiczenia
    • Ćwiczenie 7.1 - sprawdź swoją wiedzę
    • Ćwiczenie 7.2 - dalsza lektura
    • Ćwiczenie 7.3 - PowerShell
  • Podsumowanie

Rozdział 8. Używanie typów .NET

  • Praca z liczbami
    • Praca z wielkimi liczbami całkowitymi
    • Praca z liczbami zespolonymi
    • Kwaterniony
  • Praca z tekstem
    • Odczytywanie długości ciągu znaków
    • Odczytywanie znaków z ciągu
    • Dzielenie ciągu znaków
    • Pobieranie części ciągu znaków
    • Poszukiwanie tekstu w ciągu
    • Inne elementy klasy string
    • Wydajne tworzenie ciągów znaków
  • Praca z datami i czasem
    • Definiowanie wartości daty i czasu
    • Globalizacja dla zapisu daty i czasu
    • Praca z samą datą lub samym czasem
  • Dopasowywanie wzorców za pomocą wyrażeń regularnych
    • Kontrolowanie cyfr wprowadzonych jako tekst
    • Poprawianie wydajności wyrażeń regularnych
    • Składnia wyrażenia regularnego
    • Przykłady wyrażeń regularnych
    • Dzielenie złożonych ciągów znaków rozdzielanych przecinkami
  • Praca z kolekcjami
    • Wspólne funkcje wszystkich kolekcji
    • Poprawianie wydajności przez zdefiniowanie pojemności kolekcji
    • Poznawanie kolekcji
    • Praca z listami
    • Praca ze słownikami
    • Praca z kolejkami
    • Sortowanie kolekcji
    • Używanie specjalizowanych kolekcji
    • Używanie kolekcji niezmiennych
    • Dobre praktyki w pracy z kolekcjami
  • Praca z typem Span, indeksami i zakresami
    • Wydajne korzystanie z pamięci za pomocą typu Span
    • Określanie pozycji za pomocą typu Index
    • Definiowanie zakresów za pomocą typu Range
    • Używanie indeksów i zakresów
  • Praca z zasobami sieciowymi
    • Praca z adresami URI, serwerami DNS i adresami IP
    • Pingowanie serwera
  • Praca z refleksją i atrybutami
    • Numery wersji zestawów
    • Odczytywanie metadanych zestawu
    • Tworzenie własnych atrybutów
    • Inne możliwości refleksji
  • Praca z obrazami
  • Internacjonalizacja kodu
    • Wykrywanie i zmienianie bieżącej kultury
  • Praktyka i ćwiczenia
    • Ćwiczenie 8.1 - sprawdź swoją wiedzę
    • Ćwiczenie 8.2 - wyrażenia regularne
    • Ćwiczenie 8.3 - metody rozszerzające
    • Ćwiczenie 8.4 - dalsza lektura
  • Podsumowanie

Rozdział 9. Praca z plikami, strumieniami i serializacją

  • Praca z systemem plików
    • Obsługa środowisk i systemów plików na wielu platformach
    • Obsługa napędów
    • Praca z katalogami
    • Praca z plikami
    • Praca ze ścieżkami
    • Odczytywanie informacji o pliku
    • Zarządzanie plikami
  • Odczytywanie i zapisywanie w strumieniach
    • Strumienie abstrakcyjne i konkretne
    • Praca ze strumieniami tekstowymi
    • Praca ze strumieniami XML
    • Zwalnianie zasobów plików
    • Strumienie kompresujące
    • Kompresowanie za pomocą algorytmu Brotli
  • Kodowanie tekstu
    • Kodowanie ciągu znaków jako tablicy bajtów
    • Kodowanie i dekodowanie tekstu w plikach
  • Serializacja obiektów
    • Serializacja do formatu XML
    • Generowanie kompaktowej struktury XML
    • Deserializacja danych z formatu XML
    • Serializowanie do formatu JSON
    • Wydajne przetwarzanie danych w formacie JSON
  • Kontrolowane przetwarzanie danych JSON
    • Nowe metody rozszerzające, które ułatwiają pracę z odpowiedziami HTTP
    • Przenoszenie kodu z biblioteki Newtonsoft do nowej biblioteki
  • Praktyka i ćwiczenia
    • Ćwiczenie 9.1 - sprawdź swoją wiedzę
    • Ćwiczenie 9.2 - serializowanie do formatu XML
    • Ćwiczenie 9.3 - dalsza lektura
  • Podsumowanie

Rozdział 10. Praca z bazami danych przy użyciu Entity Framework Core

  • Nowoczesne bazy danych
    • Czym jest Entity Framework?
    • Entity Framework Core
    • Tworzenie aplikacji konsoli do pracy z EF Core
    • Używanie przykładowej relacyjnej bazy danych
    • Używanie Microsoft SQL Server w systemie Windows
    • Tworzenie przykładowej bazy danych Northwind dla SQL Server
    • Zarządzanie przykładową bazą danych Northwind w eksploratorze serwera
    • Używanie SQLite
    • Tworzenie przykładowej bazy danych Northwind na serwerze SQLite
    • Zarządzanie przykładową bazą danych Northwind za pomocą SQLiteStudio
  • Konfigurowanie EF Core
    • Wybieranie dostawcy danych EF Core
    • Łączenie z bazą danych
    • Definiowanie klasy kontekstu bazy danych Northwind
  • Definiowanie modeli EF Core
    • Konwencje w EF Core
    • Atrybuty EF Core
    • Płynne API EF Core
    • Tworzenie modelu w EF Core
    • Dodawanie tabel do klasy kontekstu bazy danych Northwind
    • Konfigurowanie narzędzia dotnet-ef
    • Tworzenie modeli na podstawie istniejącej bazy danych
    • Konfigurowanie konwencji
  • Zapytania do modelu EF Core
    • Filtrowanie dołączanych encji
    • Filtrowanie i sortowanie produktów
    • Pobieranie generowanych instrukcji SQL
    • Protokołowanie w EF Core
    • Dopasowywanie wzorców za pomocą instrukcji Like
    • Definiowanie globalnych filtrów
  • Wzorce ładowania w EF Core
    • Chętne ładowanie encji
    • Włączenie leniwego ładowania
    • Jawne ładowanie encji
  • Manipulowanie danymi w EF Core
    • Wstawianie encji
    • Aktualizowanie encji
    • Usuwanie encji
    • Grupowanie kontekstów baz danych
  • Transakcje
    • Sterowanie transakcjami za pomocą poziomów izolacji
    • Jawne definiowanie transakcji
  • Modele Code First w EF Core
    • Migracje
  • Praktyka i ćwiczenia
    • Ćwiczenie 10.1 - sprawdź swoją wiedzę
    • Ćwiczenie 10.2 - eksportowanie danych z wykorzystaniem różnych formatów serializacji
    • Ćwiczenie 10.3 - dalsza lektura
    • Ćwiczenie 10.4 - poznawanie baz danych NoSQL
  • Podsumowanie

Rozdział 11. Odczytywanie danych i manipulowanie nimi za pomocą LINQ

  • Tworzenie wyrażeń LINQ
    • Z czego składa się LINQ?
    • Rozbudowa sekwencji za pomocą klas wyliczeniowych
    • Filtrowanie encji za pomocą metody Where
    • Korzystanie z metody nazwanej
    • Upraszczanie kodu przez usunięcie jawnego tworzenia delegata
    • Korzystanie z wyrażenia lambda
    • Sortowanie encji
    • Deklarowanie zapytania za pomocą słowa kluczowego var lub określonego typu
    • Filtrowanie według typu
    • Praca ze zbiorami
  • Używanie LINQ z EF Core
    • Tworzenie modelu danych EF Core
    • Filtrowanie i sortowanie sekwencji
    • Projekcje sekwencji na nowe typy
    • Łączenie i grupowanie
    • Agregowanie sekwencji
  • Upiększanie składni
  • Używanie wielu wątków w równoległych zapytaniach LINQ
    • Tworzenie aplikacji korzystającej z wielu wątków
  • Tworzenie własnych metod rozszerzających dla LINQ
    • Próba użycia nowych metod rozszerzających
    • Próba użycia metod Mediana i Dominanta
  • Praca z LINQ to XML
    • Generowanie danych XML za pomocą LINQ to XML
    • Odczytywanie danych XML za pomocą LINQ to XML
  • Praktyka i ćwiczenia
    • Ćwiczenie 11.1 - sprawdź swoją wiedzę
    • Ćwiczenie 11.2 - zapytania LINQ
    • Ćwiczenie 11.3 - dalsza lektura
  • Podsumowanie

Rozdział 12. Poprawianie wydajności i skalowalności za pomocą wielozadaniowości

  • Procesy, wątki i zadania
  • Monitorowanie wydajności i wykorzystania zasobów
    • Ocena wydajności typów
    • Monitorowanie wydajności i zużycia pamięci
    • Pomiar wydajności pracy z ciągami znaków
    • Monitorowanie wydajności i zużycia pamięci za pomocą biblioteki Benchmark.NET
  • Asynchroniczne uruchamianie zadań
    • Synchroniczne uruchamianie wielu operacji
    • Asynchroniczne uruchamianie wielu operacji z wykorzystaniem zadań
    • Oczekiwanie na zadania
    • Kontynuowanie pracy w innym zadaniu
    • Zadania zagnieżdżone i potomne
    • Tworzenie obiektów typu Task dla innych obiektów
  • Synchronizowanie dostępu do wspólnych zasobów
    • Używanie wspólnego zasobu w wielu wątkach
    • Nakładanie na zasoby wzajemnie wykluczającej blokady
    • Synchronizowanie zdarzeń
    • Tworzenie operacji atomowych
    • Stosowanie innych rodzajów synchronizacji
  • Słowa kluczowe async i await
    • Poprawianie reakcji aplikacji konsoli
    • Poprawianie reakcji aplikacji z interfejsem graficznym
    • Poprawianie skalowalności aplikacji i serwisów WWW
    • Często używane typy umożliwiające pracę wielowątkową
    • Instrukcja await w bloku catch
    • Praca ze strumieniami asynchronicznymi
  • Praktyka i ćwiczenia
    • Ćwiczenie 12.1 - sprawdź swoją wiedzę
    • Ćwiczenie 12.2 - dalsza lektura
  • Podsumowanie

Rozdział 13. Praktyczne aplikacje w języku C# i w .NET

  • Modele aplikacji w C# i w .NET
    • Tworzenie stron WWW za pomocą ASP.NET Core
    • Tworzenie serwisów sieciowych
    • Tworzenie aplikacji mobilnych i stacjonarnych
    • Alternatywy dla .NET MAUI
  • Nowe funkcje w ASP.NET Core
    • ASP.NET Core 1.0
    • ASP.NET Core 1.1
    • ASP.NET Core 2.0
    • ASP.NET Core 2.1
    • ASP.NET Core 2.2
    • ASP.NET Core 3.0
    • ASP.NET Core 3.1
    • Blazor WebAssembly 3.2
    • ASP.NET Core 5.0
    • ASP.NET Core 6.0
  • Tworzenie aplikacji stacjonarnych dla systemów Windows
    • Starsze platformy aplikacji dla systemów Windows
    • Możliwości obsługi starszych platform Windows w nowoczesnym .NET
  • Struktury projektów
    • Struktura projektów w rozwiązaniu lub przestrzeni roboczej
  • Używanie innych szablonów projektów
    • Instalowanie dodatkowych pakietów szablonów
  • Tworzenie modelu danych dla bazy danych Northwind
    • Tworzenie biblioteki klas dla modelu encji Northwind
    • Tworzenie biblioteki klas modelu encji dla SQL Server
  • Praktyka i ćwiczenia
    • Ćwiczenie 13.1 - sprawdź swoją wiedzę
    • Ćwiczenie 13.2 - dalsza lekura
  • Podsumowanie

Rozdział 14. Tworzenie witryn WWW przy użyciu ASP.NET Core Razor Pages

  • Tworzenie w sieci WWW
    • Protokół HTTP
    • Używanie Google Chrome do wykonywania żądań HTTP
    • Tworzenie oprogramowania dla sieci WWW po stronie klienta
  • ASP.NET Core
    • Klasyczna ASP.NET kontra ASP.NET Core
    • Tworzenie pustego projektu ASP.NET Core
    • Testowanie i zabezpieczanie witryny
    • Kontrola środowiska hostingowego
    • Rozdzielanie konfiguracji serwisu i potoku
    • Włączanie plików statycznych
  • Technologia Razor Pages
    • Włączanie technologii Razor Pages
    • Definiowanie strony Razor
    • Używanie wspólnego układu w wielu stronach Razor
    • Używanie plików code-behind w stronach Razor
  • Używanie Entity Framework Core z ASP.NET Core
    • Konfigurowanie Entity Framework Core jako serwisu
    • Manipulowanie danymi na stronach Razor
    • Wstrzykiwanie zależnego serwisu na stronę Razor
  • Używanie bibliotek klas Razor
    • Tworzenie biblioteki klas Razor
    • Wyłączanie kompaktowych folderów w Visual Studio Code
    • Implementowanie funkcji pracowników za pomocą EF Core
    • Implementowanie widoku cząstkowego do wyświetlania danych pracownika
    • Używanie i testowanie biblioteki klas Razor
  • Konfigurowanie serwisów i potoku obsługi żądań HTTP
    • Routowanie punktów końcowych
    • Przeglądanie konfiguracji routowania punktów końcowych w naszym projekcie
    • Podsumowanie najważniejszych metod rozszerzających oprogramowania pośredniego
    • Wizualizacja potoku HTTP
    • Implementowanie oprogramowania pośredniego jako anonimowego delegata
  • Praktyka i ćwiczenia
    • Ćwiczenie 14.1 - sprawdź swoją wiedzę
    • Ćwiczenie 14.2 - tworzenie witryny obsługującej dane
    • Ćwiczenie 14.3 - zastępowanie aplikacji konsoli stronami WWW
    • Ćwiczenie 14.4 - dalsza lektura
  • Podsumowanie

Rozdział 15. Tworzenie aplikacji WWW przy użyciu ASP.NET Core MVC

  • Konfigurowanie witryny ASP.NET Core MVC
    • Tworzenie witryny ASP.NET Core MVC
    • Tworzenie bazy danych uwierzytelniania na serwerze SQL Server LocalDB
    • Przeglądanie domyślnej witryny ASP.NET Core MVC
    • Przegląd szablonu projektu ASP.NET Core MVC
    • Sprawdzanie bazy danych ASP.NET Core Identity
  • Poznawanie mechanizmów ASP.NET Core MVC
    • Rozruch ASP.NET Core
    • Czym jest domyślna ścieżka?
    • Kontrolery i akcje
    • Konwencja wyszukiwania ścieżek widoku
    • Protokołowanie
    • Czym są filtry?
    • Modele encji i widoków
    • Widoki
  • Dostosowywanie witryny ASP.NET Core MVC
    • Definiowanie własnych stylów
    • Konfigurowanie obrazków dla kategorii
    • Poznawanie składni stron Razor
    • Definiowanie typu dla widoku
    • Testowanie zmienionej strony startowej
    • Przekazywanie parametrów przy użyciu wartości ścieżki
    • Wiązanie modeli
    • Sprawdzanie poprawności modelu
    • Poznawanie pomocniczych metod widoku
  • Odczytywanie danych z bazy i używanie szablonów wyświetlania
  • Poprawianie skalowalności za pomocą asynchronicznych zadań
    • Przygotowanie asynchronicznych metod akcji kontrolera
  • Praktyka i ćwiczenia
    • Ćwiczenie 15.1 - sprawdź swoją wiedzę
    • Ćwiczenie 15.2 - implementowanie wzorca MVC w tworzonej stronie danych kategorii
    • Ćwiczenie 15.3 - poprawianie skalowalności przez poznawanie i implementowanie asynchronicznych metod akcji
    • Ćwiczenie 15.4 - testy jednostkowe dla kontrolerów
    • Ćwiczenie 15.5 - dalsza lektura
  • Podsumowanie

Rozdział 16. Tworzenie i używanie serwisów sieciowych

  • Tworzenie serwisów w technologii ASP.NET Core Web API
    • Skróty stosowane w serwisach sieciowych
    • Żądania i odpowiedzi HTTP w Web API
    • Tworzenie projektu ASP.NET Core Web API
    • Sprawdzanie funkcji serwisu sieciowego
    • Tworzenie serwisu internetowego dla bazy danych Northwind
    • Tworzenie repozytorium danych dla encji
    • Implementowanie kontrolera Web API
    • Konfigurowanie repozytorium klientów i kontrolera Web API
    • Podawanie szczegółów problemu
    • Kontrola nad serializacją XML
  • Dokumentowanie i testowanie serwisów
    • Testowanie żądań GET za pomocą przeglądarki
    • Testowanie żądań HTTP za pomocą rozszerzenia REST Client
    • Włączanie narzędzia Swagger
    • Testowanie żądań w narzędziu SwaggerUI
    • Włączanie protokołowania HTTP
  • Używanie serwisu za pomocą klientów HTTP
    • Klasa HttpClient
    • Konfigurowanie klientów HTTP za pomocą klasy HttpClientFactory
    • Pobieranie w kontrolerze listy klientów w formacie JSON
    • Włączanie funkcji CORS
  • Implementowanie zaawansowanych funkcji
    • Implementowanie API Health Check
    • Implementowanie konwencji i analizatorów Open API
    • Implementowanie obsługi błędów przejściowych
    • Dodawanie zabezpieczających nagłówków HTTP
  • Tworzenie serwisów sieciowych używających minimalnego API
    • Tworzenie serwisu pogodowego z minimalnym API
    • Testowanie minimalnego serwisu pogodowego
    • Dodawanie prognozy pogody do głównej strony witryny Northwind
  • Praktyka i ćwiczenia
    • Ćwiczenie 16.1 - sprawdź swoją wiedzę
    • Ćwiczenie 16.2 - ćwiczenia w tworzeniu i usuwaniu klientów za pomocą HttpClient
    • Ćwiczenie 16.3 - dalsza lektura
  • Podsumowanie

Rozdział 17. Tworzenie interfejsów użytkownika w technologii Blazor

  • Technologia Blazor
    • JavaScript i podobne
    • Silverlight - C# i .NET w formie wtyczki
    • WebAssembly - podstawa technologii Blazor
    • Różne modele hostowania komponentów Blazora
    • Omówienie komponentów tworzonych za pomocą Blazora
    • Czym różnią się Blazor i Razor?
  • Porównanie szablonów projektów Blazor
    • Przeglądanie szablonu projektu Blazor Server
    • Routowanie do komponentów stronicowych Blazora
    • Uruchamianie szablonu projektu Blazor Server
    • Przeglądanie szablonu projektu Blazor WebAssembly
  • Tworzenie komponentów za pomocą Blazor Server
    • Definiowanie i testowanie prostego komponentu
    • Przekształcanie komponentu w routowalny komponent stronicowy
    • Dodawanie encji do komponentu
  • Tworzenie abstrakcji serwisu dla komponentu Blazora
    • Definiowanie formularzy za pomocą komponentu EditForm
    • Tworzenie i używanie komponentu formularza danych klienta
    • Testowanie komponentu formularza danych klienta
  • Tworzenie komponentów za pomocą Blazor WebAssembly
    • Konfigurowanie serwera dla projektu Blazor WebAssembly
    • Konfigurowanie klienta aplikacji Blazor WebAssmebly
    • Testowanie komponentów i serwisu Blazor WebAssembly
  • Usprawnianie aplikacji tworzonych za pomocą Blazor WebAssembly
    • Włączanie funkcji Blazor WebAssembly AOT
    • Obsługa aplikacji PWA
    • Analizator zgodności przeglądarki dla aplikacji Blazor WebAssembly
    • Współdzielenie komponentów Blazora w bibliotece klas
    • Współpraca ze skryptami JavaScriptu
    • Biblioteki komponentów Blazora
  • Praktyka i ćwiczenia
    • Ćwiczenie 17.1 - sprawdź swoją wiedzę
    • Ćwiczenie 17.2 - przygotowanie komponentu tabliczki mnożenia
    • Ćwiczenie 17.3 - przygotowanie elementu nawigowania według krajów
    • Ćwiczenie 17.4 - dalsza lektura
  • Podsumowanie

Odpowiedzi na pytania z testów

  • Rozdział 1. Cześć, C#! Witaj, .NET!
  • Rozdział 2. Mówimy w C#
    • Ćwiczenie 2.1 - sprawdź swoją wiedzę
    • Ćwiczenie 2.2 - sprawdź swoją wiedzę o typach liczbowych
  • Rozdział 3. Sterowanie przepływem i konwertowanie typów
    • Ćwiczenie 3.1 - sprawdź swoją wiedzę
    • Ćwiczenie 3.2 - pętle i przepełnienia
    • Ćwiczenie 3.5 - sprawdź swoją wiedzę o operatorach
  • Rozdział 4. Pisanie, debugowanie i testowanie funkcji
  • Rozdział 5. Tworzenie własnych typów w programowaniu obiektowym
  • Rozdział 6. Implementowanie interfejsów i dziedziczenie klas
  • Rozdział 7. Poznawanie typów .NET
  • Rozdział 8. Używanie typów .NET
  • Rozdział 9. Praca z plikami, strumieniami i serializacją
  • Rozdział 10. Praca z bazami danych przy użyciu Entity Framework Core
  • Rozdział 11. Odczytywanie danych i manipulowanie nimi za pomocą LINQ
  • Rozdział 12. Poprawianie wydajności i skalowalności za pomocą wielozadaniowości
  • Rozdział 13. Praktyczne aplikacje w C# i .NET
  • Rozdział 14. Tworzenie witryn WWW przy użyciu ASP.NET Core Razor Pages
  • Rozdział 15. Tworzenie aplikacji WWW przy użyciu ASP.NET Core MVC
  • Rozdział 16. Tworzenie i używanie serwisów sieciowych
  • Rozdział 17. Tworzenie interfejsów użytkownika w technologii Blazor

Epilog

  • Następne kroki Twojej podróży w świecie C# i .NET
    • Poprawianie swoich umiejętności za pomocą wskazówek projektowych
    • Z których książek uczyć się dalej?
  • Opóźnienie .NET MAUI
  • Następne wydanie tej książki
  • Powodzenia!
  • Titel: C# 10 i .NET 6 dla programistów aplikacji wieloplatformowych. Twórz aplikacje, witryny WWW oraz serwisy sieciowe za pomocą ASP.NET Core 6, Blazor i EF Core 6 w Visual Studio 2022 i Visual Studio Code. Wydanie VI
  • Autor: Mark J. Price
  • Originaler Titel: C# 10 and .NET 6 - Modern Cross-Platform Development: Build apps, websites, and services with ASP.NET Core 6, Blazor, and EF Core 6 using Visual Studio 2022 and Visual Studio Code, 6th Edition
  • Übersetzung: Wojciech Moch
  • ISBN: 978-83-283-9075-1, 9788328390751
  • Veröffentlichungsdatum: 2022-11-15
  • Format: E-book
  • Artikelkennung: c10ne6
  • Verleger: Helion