C# 12 i .NET 8 dla programist - Helion
Tytuł oryginału: C# 12 and .NET 8 - Modern Cross-Platform Development Fundamentals, 8th Edition
Tłumaczenie: Wojciech Moch
ISBN: 978-83-289-1456-8
stron: 784, Format: ebook
Księgarnia: Helion
Cena książki: 179,00 zł
Książka będzie dostępna od października 2024
Microsoft mo
Zobacz także:
- Gray Hat C#. Język C# w kontroli i łamaniu zabezpieczeń 57,74 zł, (17,90 zł -69%)
- ASP.NET Core 6. Kurs video. Rozwijaj aplikacje webowe z Entity Framework Core 179,00 zł, (71,60 zł -60%)
- Testowanie automatyczne w .NET. Kurs video. Zastosowania frameworka nUnit 169,00 zł, (76,05 zł -55%)
- Programowanie asynchroniczne i równoległe w C#. Kurs video. Poziom podstawowy 69,00 zł, (31,05 zł -55%)
- Technologia LINQ. Kurs video. Warsztat pracy z danymi z różnych źródeł 59,00 zł, (26,55 zł -55%)
Spis treści
C# 12 i .NET 8 dla programistów aplikacji wieloplatformowych. Twórz aplikacje, witryny WWW oraz serwisy sieciowe za pomocą ASP.NET Core 8, Blazor i EF Core 8. Wydanie VIII eBook -- spis treści
O autorze
O korektorze merytorycznym
Wstęp
Rozdział 1. Cześć, C#! Witaj, .NET!
- Wprowadzenie do książki i jej zawartości
- Pobieranie kodu przygotowanego dla tej książki
- Pojęcia związane z .NET używane w tej książce
- Struktura książki i używany w niej styl
- Tematy omawiane w tej książce
- 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
- Plany obsługi platformy .NET
- Poznawanie języka IL
- Porównanie technologii .NET
- Zarządzanie wieloma projektami w edytorach kodu
- Tworzenie aplikacji konsoli za pomocą Visual Studio 2022
- Pisanie kodu za pomocą Visual Studio 2022
- Kompilowanie i uruchamianie kodu w Visual Studio
- Programy najwyższego poziomu
- Wymagania programów najwyższego poziomu
- Ujawnianie przestrzeni nazwy klasy Program
- Dodawanie drugiego projektu w Visual Studio 2022
- Tworzenie aplikacji konsoli za pomocą 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
- Podsumowanie kroków wykonanych w Visual Studio Code
- Podsumowanie innych typów projektów używanych w tej książce
- Wykorzystywanie repozytorium GitHuba w tej książce
- Kod aplikacji tworzonych 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
- Linki do dokumentacji używane w tej książce
- Uzyskiwanie pomocy dla narzędzia dotnet
- Przeglądanie definicji typów i ich elementów
- Konfigurowanie wskazówek w tekście
- Poszukiwanie odpowiedzi na Stack Overflow
- Poszukiwanie odpowiedzi za pomocą Google
- Przeszukiwanie kodu źródłowego .NET
- Subskrybowanie blogów
- Filmy Scotta Hanselmana
- Narzędzia AI, takie jak ChatGPT i GitHub Copilot
- Wyłączanie narzędzi, gdy zaczynają przeszkadzać
- 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 - używanie notatników Polyglot
- Ćwiczenie 1.5 - motywy kolorystyczne w nowoczesnym .NET
- Ćwiczenie 1.6 - darmowa nauka C# i certyfikacja
- Ćwiczenie 1.7 - wersje alfa platformy .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#
- Wyświetlanie numeru wersji kompilatora
- Poznawanie gramatyki i słownictwa języka C#
- 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#
- Przykład prośby do ChatGPT o wyjaśnienie kodu
- 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
- Ćwiczenie 2.5 - Pakiet Spectre
- Podsumowanie
Rozdział 3. Sterowanie przepływem, konwertowanie typów i obsługa wyjątków
- Działania na zmiennych
- Operatory dwuargumentowe
- Operatory jednoargumentowe
- Operatory trójargumentowe
- Objaśnienie operatorów jednoargumentowych
- Objaśnianie dwuargumentowych operatorów arytmetycznych
- Operatory przypisania
- Operatory pomijania wartości null
- 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
- Dodawanie nowego elementu do projektu w Visual Studio 2022
- 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
- Tablice inline
- Podsumowanie tablic
- Rzutowanie i konwertowanie między typami
- Jawne i niejawne rzutowanie liczb
- Zapisywanie liczb ujemnych w postaci binarnej
- 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
- Konwencja nazywania metod ze słowem Try
- 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 - sprawdź swoją wiedzę o operatorach
- Ćwiczenie 3.4 - pętle i operatory
- Ćwiczenie 3.5 - obsługa wyjątków
- Ćwiczenie 3.6 - poznaj notatniki C#
- Ćwiczenie 3.7 - dalsza lektura
- Podsumowanie
Rozdział 4. Pisanie, debugowanie i testowanie funkcji
- Tworzenie funkcji
- Programy i funkcje najwyższego poziomu
- Co jest automatycznie generowane dla funkcji lokalnej?
- Definiowanie częściowej klasy Program z funkcjami statycznymi
- Co jest generowane automatycznie dla funkcji statycznej?
- 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
- Tworzenie aplikacji z celowym błędem
- Tworzenie punktu przerwania
- Pasek narzędzi debugowania
- Okna debugowania
- Krokowe wykonywanie kodu
- Używanie zintegrowanego terminala Visual Studio Code podczas debugowania
- 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
- 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
- Rzucanie wyjątków za pomocą klauzul ochronnych
- Czym jest stos wywołań?
- Gdzie należy wychwytywać wyjątki?
- Ponowne rzucanie wyjątku
- Implementowanie wzorca tester-wykonawca i wzorca próby
- 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
- Przestrzenie nazw o zasięgu całego pliku
- Definiowanie klasy w przestrzeni nazw
- Modyfikatory dostępu
- Elementy klasy
- Importowanie przestrzeni nazw, aby użyć wybranego typu
- Tworzenie obiektów
- Przechowywanie danych w polach
- Definiowanie pól
- Typy pól
- Modyfikatory dostępu
- Ustalanie i wypisywanie wartości pól
- Ustalanie wartości pól za pomocą składni inicjalizacji obiektu
- 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
- Wymaganie podania wartości właściwości przy tworzeniu obiektu
- Inicjalizowanie pól w konstruktorach
- Praca z metodami i krotkami
- Zwracanie wartości z metody
- Sterowanie przekazywaniem parametrów
- Przeciążanie metod
- Parametry opcjonalne i nazywane
- Mieszanie parametrów opcjonalnych i wymaganych
- Sposoby przekazywania parametrów
- Zwracanie wartości ze słowem kluczowym ref
- Łączenie wielu wartości za pomocą krotki
- Implementowanie funkcji lokalnych
- 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
- Ograniczanie wartości typów wyliczeniowych
- Definiowanie indekserów
- 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
- Równość typów rekordowych
- Pozycyjne elementy danych w rekordach
- Definiowanie podstawowego konstruktora klasy
- Praktyka i ćwiczenia
- Ćwiczenie 5.1 - sprawdź swoją wiedzę
- Ćwiczenie 5.2 - modyfikatory dostępu
- Ćwiczenie 5.3 - dalsza lektura
- Podsumowanie
Rozdział 6. Implementowanie interfejsów i dziedziczenie klas
- Konfigurowanie biblioteki klas i aplikacji konsoli
- Metody statyczne i przeciążanie operatorów
- Implementowanie działań w metodzie
- Implementowanie działań za pomocą operatora
- 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
- Przykłady używania delegatów
- Status: to skomplikowane!
- Definiowanie i obsługa delegatów
- Definiowanie i obsługa 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
- Pamięć stosu i sterty
- Definiowanie typów referencyjnych i typów wartości
- Sposób przechowywania w pamięci typów referencyjnych i typów wartości
- Boxing
- 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
- Wyłączanie innych ostrzeżeń kompilatora
- Deklarowanie nienullowalnych zmiennych i parametrów
- Sprawdzanie wartości null
- Kontrolowanie wartości null w parametrach metod
- Dziedziczenie klas
- Rozbudowywanie klasy
- Ukrywanie elementów
- Słowa kluczowe this i base
- Pokrywanie elementów klasy
- Dziedziczenie po klasach abstrakcyjnych
- Wybieranie między interfejsem a klasą abstrakcyjną
- 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ć
- Możliwości tworzenia własnych typów
- Kategorie własnych typów i ich możliwości
- Zmienność i rekordy
- Dziedziczenie i implementowanie
- Przeglądanie przykładowego kodu
- Praktyka i ćwiczenia
- Ćwiczenie 6.1 - sprawdź swoją wiedzę
- Ćwiczenie 6.2 - tworzenie hierarchii dziedziczenia
- Ćwiczenie 6.3 - pisanie lepszego kodu
- Ćwiczenie 6.4 - dalsza lektura
- Podsumowanie
Rozdział 7. Poznawanie typów .NET
- Wprowadzenie do .NET 8
- 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
- Kontrolowanie wersji .NET SDK
- Mieszanie pakietów SDK i docelowych frameworków
- 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
- Kontrolowanie miejsca tworzenia artefaktów
- Kompilacja native AOT
- 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
- Praca z proponowanymi funkcjami
- Wymaganie proponowanych funkcji
- Włączanie proponowanych funkcji
- Interceptory metod
- Praktyka i ćwiczenia
- Ćwiczenie 7.1 - sprawdź swoją wiedzę
- Ćwiczenie 7.2 - dalsza lektura
- Ćwiczenie 7.3 - przenoszenie kodu z .NET Framework do nowoczesnego .NET
- Ćwiczenie 7.4 - tworzenie generatorów kodu źródłowego
- Ćwiczenie 7.5 - PowerShell
- Ćwiczenie 7.6 - poprawianie wydajności w .NET
- Podsumowanie
Rozdział 8. Używanie typów .NET
- Praca z liczbami
- Praca z wielkimi liczbami całkowitymi
- Praca z liczbami zespolonymi
- Generowanie liczb losowych na potrzeby gier i podobnych aplikacji
- Generowanie identyfikatorów GUID
- 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
- Porównywanie ciągów znaków
- 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
- Sortowanie kolekcji
- Używanie specjalizowanych kolekcji
- Kolekcje tylko do odczytu, niezmienne i zamrożone
- Inicjalizowanie kolekcji za pomocą wyrażeń kolekcji
- 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
- Praktyka i ćwiczenia
- Ćwiczenie 8.1 - sprawdź swoją wiedzę
- Ćwiczenie 8.2 - wyrażenia regularne
- Ćwiczenie 8.3 - metody rozszerzające
- Ćwiczenie 8.4 - praca z zasobami sieciowymi
- Ćwiczenie 8.5 - dalsza lektura
- Podsumowanie
Rozdział 9. Hardening i bezpieczeństwo
- Program antywirusowy Microsoft Defender
- Instalacja programu antywirusowego Microsoft Defender
- Wykorzystanie interfejsu użytkownika
- Wyłączanie programu antywirusowego Microsoft Defender
- Czym w ogóle jest ATP?
- Windows Defender ATP Exploit Guard
- Zapora systemu Windows Defender - bez żartów
- Trzy konsole administracyjne zapory systemu Windows
- Trzy różne profile zapory
- Tworzenie w zaporze nowej reguły przychodzącej
- Tworzenie reguły zezwalającej na wysyłanie pingów (ICMP)
- Zarządzanie zaporą WFAS przy użyciu zasad grupy
- Technologie szyfrowania
- BitLocker i wirtualny układ TPM
- Chronione maszyny wirtualne
- Szyfrowane sieci wirtualne
- Encrypting File System
- Protokoły IPsec
- Azure AD Password Protection
- Szczegółowe zasady dotyczące haseł
- Zaawansowana analiza zagrożeń - koniec wsparcia
- Czym jest (była) ATA?
- Microsoft Defender for Identity
- Najważniejsze wskazówki dotyczące ogólnego bezpieczeństwa
- Pozbycie się wiecznych administratorów
- Korzystanie z odrębnych kont w celu uzyskania dostępu administracyjnego
- Używanie innego komputera do wykonywania zadań administracyjnych
- Nigdy nie przeglądaj internetu, będąc zalogowanym na serwerze
- Kontrola dostępu oparta na rolach
- Just Enough Administration
- Zmiana portu 3389 połączenia pulpitu zdalnego
- Natychmiast wyłącz zewnętrzne połączenia pulpitu zdalnego
- Wyłącz niebezpieczne protokoły szyfrowania
- Podsumowanie
- Pytania
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
- Używanie przykładowej relacyjnej bazy danych
- Używanie SQLite
- Konfigurowanie EF Core w projekcie .NET
- Tworzenie aplikacji konsoli do pracy z EF Core
- 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
- 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
- Pobieranie pojedynczej encji
- Dopasowywanie wzorców za pomocą instrukcji Like
- Generowanie liczb losowych w zapytaniach
- Definiowanie globalnych filtrów
- Wzorce ładowania i śledzenia w EF Core
- Chętne ładowanie encji za pomocą metody rozszerzającej Include
- Włączenie leniwego ładowania
- Jawne ładowanie encji za pomocą metody Load
- Kontrolowanie śledzenia encji
- Manipulowanie danymi w EF Core
- Wstawianie encji
- Aktualizowanie encji
- Usuwanie encji
- Wydajniejsze aktualizowanie i usuwanie
- Grupowanie kontekstów baz danych
- Praktyka i ćwiczenia
- Ćwiczenie 10.1 - sprawdź swoją wiedzę
- Ćwiczenie 10.2 - eksportowanie danych z wykorzystaniem różnych formatów serializacji
- Ćwiczenie 10.3 - praca z transakcjami
- Ćwiczenie 10.4 - modele Code First w EF Code
- Ćwiczenie 10.5 - sekrety aplikacji
- Ćwiczenie 10.6 - dalsza lektura
- Ćwiczenie 10.7 - poznawanie baz danych NoSQL
- Podsumowanie
Rozdział 11. Odczytywanie danych i manipulowanie nimi za pomocą LINQ
- Tworzenie wyrażeń LINQ
- Porównanie imperatywnych i deklaratywnych funkcji języka
- Z czego składa się LINQ?
- Rozbudowa sekwencji za pomocą klas wyliczeniowych
- LINQ w praktyce
- 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 aplikacji konsoli do nauki LINQ dla Encji
- Tworzenie modelu danych EF Core
- Filtrowanie i sortowanie sekwencji
- Projekcje sekwencji na nowe typy
- Łączenie i grupowanie
- Grupowanie wyszukiwań
- Agregowanie i stronicowanie sekwencji
- Sprawdzanie, czy sekwencja nie jest pusta
- Uważaj na właściwość Count!
- Stronicowanie z LINQ
- Upiększanie składni
- Praktyka i ćwiczenia
- Ćwiczenie 11.1 - sprawdź swoją wiedzę
- Ćwiczenie 11.2 - zapytania LINQ
- Ćwiczenie 11.3 - używanie wielu wątków w zapytaniach LINQ
- Ćwiczenie 11.4 - praca z LINQ to XML
- Ćwiczenie 11.5 - tworzenie własnych metod rozszerzających LINQ
- Ćwiczenie 11.6 - 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
- Struktury projektów
- Struktura projektów w rozwiązaniu
- Tworzenie modelu encji używanego w tej książce
- Tworzenie bazy danych Northwind
- Tworzenie biblioteki klas dla modelu encji bazy SQLite
- Dostosowanie modelu i definiowanie metod rozszerzających
- Rejestrowanie zakresu zależnego serwisu
- 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 lektura
- 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
- Żądania w przeglądarce podczas tworzenia aplikacji
- Technologia Razor Pages
- Włączanie technologii Razor Pages
- Definiowanie strony Razor
- Używanie wspólnego układu w wielu stronach Razor
- Tymczasowe przechowywanie danych
- Używanie plików code-behind w stronach Razor
- Konfigurowanie plików dołączanych do projektu ASP.NET Core
- Operacje kompilowania pliku projektu
- 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
- 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średniczącego
- Wizualizacja potoku HTTP
- Implementowanie oprogramowania pośredniczącego jako anonimowego delegata
- Praktyka i ćwiczenia
- Ćwiczenie 13.1 - sprawdź swoją wiedzę
- Ćwiczenie 13.2 - używanie bibliotek klas Razor
- Ćwiczenie 13.3 - włączenie HTTP/3 i obsługa dekompresji żądań
- Ćwiczenie 13.4 - tworzenie witryny obsługującej dane
- Ćwiczenie 13.5 - zastępowanie aplikacji konsoli stronami WWW
- Ćwiczenie 13.6 - wprowadzenie do biblioteki Bootstrap
- Ćwiczenie 13.7 - dalsza lektura
- Ćwiczenie 13.8 - tworzenie witryn WWW za pomocą wzorca Model-View-Controller
- Podsumowanie
Rozdział 14. 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
- Rejestrowanie serwisów zależnych
- Tworzenie repozytorium danych dla encji
- Routowanie w serwisach sieciowych
- 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ą narzędzi HTTP/REST
- 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
- Praktyka i ćwiczenia
- Ćwiczenie 14.1 - sprawdź swoją wiedzę
- Ćwiczenie 14.2 - ćwiczenia w tworzeniu i usuwaniu klientów za pomocą HttpClient
- Ćwiczenie 14.3 - implementowanie zaawansowanych funkcji serwisów sieciowych
- Ćwiczenie 14.4 - tworzenie serwisów sieciowych za pomocą minimalnego API
- Ćwiczenie 14.5 - dalsza lektura
- Podsumowanie
Rozdział 15. 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 w .NET 7 i starszych
- Unifikacja modeli hostowania Blazor w .NET 8
- Omówienie komponentów tworzonych za pomocą Blazora
- Czym różnią się Blazor i Razor?
- Przeglądanie szablonu projektu Blazor Web App
- Tworzenie projektu Blazor Web App
- Routing, układy i nawigacja w aplikacji Blazor
- Klasy komponentów bazowych
- Uruchamianie szablonu projektu Blazor Web App
- Tworzenie komponentów Blazor
- Definiowanie i testowanie prostego komponentu
- Używanie ikon Bootstrapa
- 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
- Włączanie interakcji po stronie serwera
- Testowanie komponentu formularza danych klienta
- Włączanie wykonywania po stronie klienta z wykorzystaniem WebAssembly
- Praktyka i ćwiczenia
- Ćwiczenie 15.1 - sprawdź swoją wiedzę
- Ćwiczenie 15.2 - przygotowanie komponentu tabliczki mnożenia
- Ćwiczenie 15.3 - przygotowanie elementu nawigowania według krajów
- Ćwiczenie 15.4 - rozbudowywanie aplikacji Blazora
- Ćwiczenie 15.5 - używanie otwartych bibliotek komponentów Blazora
- Ćwiczenie 15.6 - dalsza lektura
- Podsumowanie
Epilog