C# 10 i .NET 6 dla programist - Helion
Tytuł oryginału: 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
Tłumaczenie: Wojciech Moch
ISBN: 978-83-283-9074-4
stron: 786, Format: 168x237, okładka: mi
Księgarnia: Helion
Książka będzie dostępna od sierpnia 2022
C# to jedno z najdoskonalszych dzie
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# 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 -- spis treści
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!