E-book details

C# 11 i .NET 7 dla programistów aplikacji wieloplatformowych. Twórz aplikacje, witryny WWW oraz serwisy sieciowe za pomocą ASP.NET Core 7, Blazor i EF Core 7. Wydanie VII

C# 11 i .NET 7 dla programistów aplikacji wieloplatformowych. Twórz aplikacje, witryny WWW oraz serwisy sieciowe za pomocą ASP.NET Core 7, Blazor i EF Core 7. Wydanie VII

Mark J. Price

Ebook

C# jest flagowym dziełem Microsoftu. Podobnie jak wieloplatformowy framework .NET, jest rozwijany i wzbogacany, a z każdą kolejną wersją praca programisty staje się coraz efektywniejsza i bardziej satysfakcjonująca. Dzięki aktualnej wersji C# 11 i .NET 7 bez trudu zbudujesz złożone witryny internetowe czy aplikacje mobilne.

To kolejne, mocno przebudowane wydanie popularnego przewodnika, dzięki któremu zaczniesz skutecznie programować w języku C#. Nabierzesz wprawy w programowaniu zorientowanym obiektowo, pisaniu, testowaniu i debugowaniu funkcji, implementowaniu interfejsów i zarządzaniu danymi. Zobaczysz, w jaki sposób API środowiska .NET realizuje takie zadania jak monitorowanie wydajności i jej poprawianie, jak również praca z systemem plików i serializacją. Wiedza zawarta w kolejnych rozdziałach pozwoli Ci tworzyć praktyczne aplikacje i serwisy z wykorzystaniem biblioteki ASP.NET Core, wzorca MVC i technologii Blazor.

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, 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 korektorze merytorycznym

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?
    • 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
    • Programy 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
  • Badanie kodu w interaktywnych notatnikach .NET
    • 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
    • Ćwiczenie 1.4 - motywy kolorystyczne w nowoczesnym .NET
  • 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#
    • Instrukcje
    • Komentarze
    • Bloki
    • Przykłady instrukcji i bloków
    • 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
    • Niejawne i globalne 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 i przypisanie wartości
    • 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
  • 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
  • Instrukcje async i await
    • Poprawianie reakcji aplikacji konsoli
  • 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, konwertowanie typów i obsługa wyjątkó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
  • Zapisywanie wielu wartości w tablicy
    • Praca z tablicami jednowymiarowymi
    • Praca z tablicami wielowymiarowymi
    • Praca z tablicami poszarpanymi
    • Dopasowywanie wzorców list w tablicach
    • Podsumowanie tablic
  • 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
    • Programy i funkcje najwyższego poziomu
    • Przykład z tabliczką mnożenia
    • Dygresja na temat argumentów i parametrów
    • Pisanie funkcji zwracającej wartość
    • Rekurencyjne obliczanie silni
    • Dokumentowanie funkcji za pomocą komentarzy XML
    • Używanie wyrażeń lambda w implementacji funkcji
  • Debugowanie tworzonego programu
    • Używanie zintegrowanego terminala Visual Studio Code podczas debugowania
    • Tworzenie aplikacji z celowym błędem
    • Tworzenie punktu przerwania
    • Pasek narzędzi debugowania
    • Okna debugowania
    • Krokowe wykonywanie kodu
    • Dostosowywanie punktów przerwania
  • Przeładowywanie na gorąco w trakcie programowania
    • Przeładowywanie na gorąco w Visual Studio 2022
    • Przeładowywanie na gorąco w Visual Studio Code i w wierszu poleceń
  • 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
    • Protokołowanie informacji o kodzie źródłowym
  • 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 w przestrzeni nazw
    • 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
  • Więcej informacji o metodach
    • Implementowanie działań w metodzie
    • Implementowanie działań za pomocą operatora
    • Definiowanie funkcji lokalnych
  • Dopasowywanie wzorców z obiektami
    • 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
  • Wykorzystywanie typów generycznych
    • Praca z typami niegenerycznymi
    • Praca z typami generycznymi
  • Wywoływanie i obsługa zdarzeń
    • Wywoływanie metod za pomocą delegatów
    • Definiowanie i obsługa delegatów
    • Definiowanie i obsługiwanie zdarzeń
  • 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
    • Inicjalizowanie typów nullowalnych
    • Poznawanie nullowalnych typów referencyjnych
    • Sterowanie funkcją ostrzeżeń dla typów nullowalnych
    • Deklarowanie nienullowalnych zmiennych i parametrów
    • Sprawdzanie wartości null
    • Kontrolowanie wartości null w parametrach metod
  • 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ć
  • Tworzenie lepszego kodu
    • Traktowanie ostrzeżeń jak błędów
    • Fale ostrzegawcze
    • Stosowanie analizatorów, aby tworzyć lepszy kod
  • 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 7
    • .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
    • .NET 7.0
    • Poprawki wydajności między .NET 5 a nowszymi wersjami
    • 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
    • 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
    • Przeglądanie oryginalnych źródeł w Visual Studio 2022
    • 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
  • 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
    • Generowanie liczb losowych na potrzeby gier i podobnych aplikacji
  • 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
  • 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
    • Włączanie kolorowania składni wyrażeń regularnych
    • Poprawianie wydajności wyrażeń regularnych za pomocą generatorów kodu
  • 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
  • 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
    • Uproszczenie zwalniania zasobów za pomocą instrukcji using
    • Strumienie kompresujące
    • Praca z archiwami tar
  • Kodowanie tekstu
    • Kodowanie ciągu znaków jako tablicy bajtów
    • Kodowanie i dekodowanie tekstu w plikach
  • Odczytywanie i zapisywanie w urządzeniach o dostępie swobodnym
  • 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
    • Co znaczy "najpierw baza danych" i "najpierw kod"?
    • Usprawnienia wydajności w EF Core 7
    • Tworzenie aplikacji konsoli do pracy z EF Core
    • Używanie przykładowej relacyjnej bazy danych
    • Używanie SQLite
    • Tworzenie przykładowej bazy danych Northwind na serwerze SQLite
    • Zarządzanie przykładową bazą danych Northwind za pomocą SQLiteStudio
    • Używanie lekkiego dostawcy ADO.NET dla SQLite
    • Używanie Microsoft SQL Server w systemie Windows
  • 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
    • Dostosowywanie szablonów wstecznej inżynierii
    • 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
    • Generowanie liczb losowych w zapytaniach
    • Definiowanie globalnych filtrów
  • Wzorce ładowania w EF Core
    • Chętne ładowanie encji za pomocą metody rozszerzającej Include
    • Włączenie leniwego ładowania
    • Jawne ładowanie encji za pomocą metody Load
  • Manipulowanie danymi w EF Core
    • Wstawianie encji
    • Aktualizowanie encji
    • Usuwanie encji
    • Wydajniejsze aktualizowanie i usuwanie
    • Grupowanie kontekstów baz danych
  • Transakcje
    • Sterowanie transakcjami za pomocą poziomów izolacji
    • Jawne definiowanie transakcji
  • Modele Code First w EF Core
  • 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

  • Dlaczego LINQ?
    • Porównanie imperatywnych i deklaratywnych funkcji języka
  • Tworzenie wyrażeń LINQ
    • Z czego składa się LINQ?
    • Rozbudowa sekwencji za pomocą klas wyliczeniowych
    • Czym jest opóźnione wykonanie?
    • 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
    • Sortowanie według elementów
    • 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
    • Uważaj na właściwość Count!
    • Stronicowanie z LINQ
  • Upiększanie składni
  • Używanie wielu wątków w równoległych zapytaniach LINQ
  • Tworzenie własnych metod rozszerzających dla LINQ
    • Próba użycia nowych metod rozszerzających
  • 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. Wprowadzenie do aplikacji sieciowych w ASP.NET Core

  • Czym jest ASP.NET Core?
    • Klasyczna ASP.NET kontra ASP.NET Core
    • Tworzenie stron WWW za pomocą ASP.NET Core
    • Tworzenie serwisów sieciowych
  • 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
    • ASP.NET Core 7.0
  • Struktury projektów
    • Struktura projektów w rozwiązaniu lub przestrzeni roboczej
  • Tworzenie modelu danych dla bazy danych Northwind
    • Tworzenie biblioteki klas dla modelu encji Northwind
    • Tworzenie biblioteki klas modelu encji dla SQL Server
    • Testowanie bibliotek klas
  • Tworzenie w sieci WWW
    • Protokół HTTP
    • Używanie Google Chrome do wykonywania żądań HTTP
    • Tworzenie oprogramowania dla sieci WWW po stronie klienta
  • Praktyka i ćwiczenia
    • Ćwiczenie 12.1 - sprawdź swoją wiedzę
    • Ćwiczenie 12.2 - znasz te skrótowce?
    • Ćwiczenie 12.3 - dalsza lekura
  • Podsumowanie

ROZDZIAŁ 13. Tworzenie witryn WWW przy użyciu ASP.NET Core Razor Pages

  • ASP.NET Core
    • Tworzenie pustego projektu ASP.NET Core
    • Testowanie i zabezpieczanie witryny
    • Kontrola środowiska hostingowego
    • 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
    • Wyłączanie kompaktowych folderów w Visual Studio Code
    • Tworzenie biblioteki klas Razor
    • 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
    • Konfigurowanie routowania punktów końcowych
    • Przeglądanie konfiguracji routowania punktów końcowych w naszym projekcie
    • Przygotowywanie potoku obsługi żądań HTTP
    • Podsumowanie najważniejszych metod rozszerzających oprogramowania pośredniego
    • Wizualizacja potoku HTTP
    • Implementowanie oprogramowania pośredniego jako anonimowego delegata
    • Włączanie obsługi dekompresji żądań
  • Włączanie obsługi HTTP/3
  • Praktyka i ćwiczenia
    • Ćwiczenie 13.1 - sprawdź swoją wiedzę
    • Ćwiczenie 13.2 - tworzenie witryny obsługującej dane
    • Ćwiczenie 13.3 - zastępowanie aplikacji konsoli stronami WWW
    • Ćwiczenie 13.4 - dalsza lektura
  • Podsumowanie

ROZDZIAŁ 14. 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
    • Uruchamianie projektu witryny Mvc
    • Rejestrowanie użytkowników
    • 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 z wykorzystaniem serwisu zależnego
    • Modele encji i widoków
    • Widoki
    • Jak działa cache busting włączany znacznikami pomocniczymi?
  • Dostosowywanie witryny ASP.NET Core MVC
    • Definiowanie własnych stylów
    • Konfigurowanie obrazków dla kategorii
    • Składnia i wyrażenia Razor
    • Definiowanie typu dla widoku
    • Przekazywanie parametrów przy użyciu wartości ścieżki
    • Wiązanie modeli
    • Sprawdzanie poprawności modelu
    • Poznawanie pomocniczych metod widoku
    • Definiowanie widoków za pomocą znaczników pomocniczych
    • Czym są filtry?
    • Zapisywanie danych wyjściowych w pamięci podręcznej
  • 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 14.1 - sprawdź swoją wiedzę
    • Ćwiczenie 14.2 - implementowanie wzorca MVC w tworzonej stronie danych kategorii
    • Ćwiczenie 14.3 - poprawianie skalowalności przez poznawanie i implementowanie asynchronicznych metod akcji
    • Ćwiczenie 14.4 - testy jednostkowe dla kontrolerów
    • Ćwiczenie 14.5 - dalsza lektura
  • Podsumowanie

ROZDZIAŁ 15. 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
    • Obsługa protokołowania dodatkowych nagłówków żądań w systemie W3CLogger
  • 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
    • Uruchamianie wielu projektów
    • Uruchamianie projektów serwisu sieciowego i klienta MVC
  • Implementowanie zaawansowanych funkcji
  • Tworzenie serwisów sieciowych używających minimalnego API
    • Testowanie minimalnego serwisu pogodowego
    • Dodawanie prognozy pogody do głównej strony witryny Northwind
  • Praktyka i ćwiczenia
    • Ćwiczenie 15.1 - sprawdź swoją wiedzę
    • Ćwiczenie 15.2 - ćwiczenia w tworzeniu i usuwaniu klientów za pomocą HttpClient
    • Ćwiczenie 15.3 - dalsza lektura
  • Podsumowanie

ROZDZIAŁ 16. 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
    • Tworzenie komponentów do tworzenia, edytowania i usuwania klientów
    • Testowanie komponentu formularza danych klienta
  • Tworzenie komponentów za pomocą Blazor WebAssembly
    • Konfigurowanie serwera dla projektu Blazor WebAssembly
    • Konfigurowanie klienta aplikacji Blazor WebAssembly
    • Testowanie komponentów i serwisu Blazor WebAssembly
  • Usprawnianie aplikacji tworzonych za pomocą Blazor WebAssembly
  • Praktyka i ćwiczenia
    • Ćwiczenie 16.1 - sprawdź swoją wiedzę
    • Ćwiczenie 16.2 - przygotowanie komponentu tabliczki mnożenia
    • Ćwiczenie 16.3 - przygotowanie elementu nawigowania według krajów
    • Ćwiczenie 16.4 - dalsza lektura
  • Podsumowanie

Epilog

  • Następne kroki Twojej podróży w świecie C# i .NET
    • Poprawianie swoich umiejętności za pomocą wskazówek projektowych
    • Książka uzupełniająca
    • Z których książek uczyć się dalej?
  • Następne wydanie tej książki
  • Powodzenia!

DODATEK A. Odpowiedzi na pytania z testów

  • Title: C# 11 i .NET 7 dla programistów aplikacji wieloplatformowych. Twórz aplikacje, witryny WWW oraz serwisy sieciowe za pomocą ASP.NET Core 7, Blazor i EF Core 7. Wydanie VII
  • Author: Mark J. Price
  • Original title: C# 11 and .NET 7 - Modern Cross-Platform Development Fundamentals: Start building websites and services with ASP.NET Core 7, Blazor, and EF Core 7, 7th Edition
  • Translation: Wojciech Moch
  • ISBN: 978-83-8322-688-0, 9788383226880
  • Date of issue: 2023-09-26
  • Format: Ebook
  • Item ID: c11n77
  • Publisher: Helion