Koduj jak profesjonalista C# - Helion

ebook
Autor: Jort RodenburgISBN: 978-83-7541-459-2
stron: 464, Format: ebook
Data wydania: 2022-03-17
Ksi臋garnia: Helion
Cena ksi膮偶ki: 80,99 z艂 (poprzednio: 89,99 z艂)
Oszcz臋dzasz: 10% (-9,00 z艂)
Osoby kt贸re kupowa艂y "Koduj jak profesjonalista C#", wybiera艂y tak偶e:
- Visual Studio 2013. Podr臋cznik programowania w C# z zadaniami 58,98 z艂, (29,49 z艂 -50%)
- Microsoft Visual C# 2022 Krok po kroku 148,51 z艂, (105,44 z艂 -29%)
- Microsoft Visual C# 2013 Krok po kroku 98,35 z艂, (69,83 z艂 -29%)
- Microsoft Visual C# 2015 Krok po kroku 97,66 z艂, (75,20 z艂 -23%)
- Microsoft Visual C# 2013 Krok po kroku 101,82 z艂, (78,40 z艂 -23%)
Spis tre艣ci
Koduj jak profesjonalista C# eBook -- spis tre艣ci
- Spis tre艣ci
- przedmowa
- podzi臋kowania
- o tej ksi膮偶ce
- o autorze
- o ilustracji na ok艂adce
- U偶ywanie C# i .NET
- Przedstawiamy C# i .NET
- 1.1 Dlaczego warto pracowa膰 w C#?
- 1.1.1 Pow贸d 1: C# jest ekonomiczny
- 1.1.2 Pow贸d 2: C# jest 艂atwy w utrzymaniu
- 1.1.3 Pow贸d 3: C# jest przyjazny dla dewelopera i 艂atwy w u偶yciu
- 1.2 Kiedy lepiej nie pracowa膰 w C#?
- 1.2.1 Tworzenie systemu operacyjnego
- 1.2.2 Tworzenie wbudowanych system贸w czasu rzeczywistego w C#
- 1.2.3 Przetwarzanie numeryczne a C#
- 1.3 Prze艂膮czanie si臋 na C#
- 1.4 Czego mo偶na si臋 nauczy膰 z tej ksi膮偶ki
- 1.5 Czego nie nauczymy si臋 z tej ksi膮偶ki
- Podsumowanie
- 1.1 Dlaczego warto pracowa膰 w C#?
- .NET i proces kompilacji
- 2.1 Czym jest .NET Framework?
- 2.2 Czym jest .NET 5?
- 膯wiczenia
- 2.3 Jak kompilowane s膮 j臋zyki zgodne z CLI
- 2.3.1 Krok 1: Kod C# (wysokiego poziomu)
- 2.3.2 Krok 2: Common Intermediate Language (poziom asemblera)
- 2.3.3 Krok 3: Kod natywny (poziom procesora)
- 膯wiczenia
- Podsumowanie
- Przedstawiamy C# i .NET
- Istniej膮ca baza kodu
- Jak z艂y jest ten kod?
- 3.1 Przedstawiamy Flying Dutchman Airlines
- 3.2 Kawa艂ki uk艂adanki: Spojrzenie na wymagania
- 3.2.1 Mapowanie obiektowo-relacyjne
- 3.2.2 Punkt ko艅cowy GET /flight: Pobieranie informacji o wszystkich lotach
- 3.2.3 Punkt ko艅cowy GET /flight/{flightNumber}: Pobieranie informacji o konkretnym locie
- 3.2.4 Punkt ko艅cowy POST /booking/{flightNumber}: Rezerwowanie lotu
- 3.3 Uzgadnianie wymaga艅 z istniej膮c膮 baz膮 kodu
- 3.3.1 Ocena istniej膮cego schematu bazy danych i jej tabel
- 3.3.2 Istniej膮ca baza kodu: pliki konfiguracyjne us艂ugi Web
- 3.3.3 Badanie modeli i widok贸w w istniej膮cej bazie kodu
- Podsumowanie
- Zarz膮dzanie zasobami niezarz膮dzanymi!
- 4.1 FlightController: badanie punktu ko艅cowego GET /flight
- 4.1.1 Punkt ko艅cowy GET /flight i jego dzia艂anie
- 4.1.2 Sygnatura metody: Znaczenie s艂贸w kluczowych ResponseType oraz typeof
- 4.1.3 Gromadzenie informacji o lotach za pomoc膮 kolekcji
- 4.1.4 艁a艅cuchy po艂膮czenia, czyli jak doprowadzi膰 in偶yniera zabezpiecze艅 do zawa艂u
- 4.1.5 U偶ywanie IDisposable do zwalniania niezarz膮dzanych zasob贸w
- 4.1.6 Odpytywanie bazy danych za pomoc膮 SqlCommand
- 4.2 FlightController: Poznajemy GET /flight/{flightNumber}
- 4.3 FlightController: POST /flight
- 4.4 FlightController: DELETE /flight/{flightNumber}
- 膯wiczenia
- Podsumowanie
- 4.1 FlightController: badanie punktu ko艅cowego GET /flight
- Jak z艂y jest ten kod?
- Warstwa dost臋pu do bazy danych
- Konfigurowanie projektu i bazy danych za pomoc膮 Entity Framework Core
- 5.1 Tworzenie rozwi膮zania i projektu .NET 5
- 5.2 Tworzenie i konfigurowanie us艂ugi Web
- 5.2.1 Konfigurowanie us艂ugi Web .NET 5
- 5.2.2 Tworzenie i u偶ywanie HostBuilder
- 5.2.3 Implementowanie klasy Startup
- 5.2.4 U偶ywanie wzorca repozytorium/us艂uga w architekturze naszej us艂ugi Web
- 5.3 Implementowanie warstwy dost臋pu do bazy danych
- 5.3.1 Entity Framework Core i in偶ynieria odwrotna
- 5.3.2 DbSet i przep艂yw pracy Entity Framework Core
- 5.3.3 Metody konfiguracji i zmienne 艣rodowiskowe
- 5.3.4 Ustawianie zmiennej 艣rodowiskowej w Windows
- 5.3.5 Ustawianie zmiennej 艣rodowiskowej w macOS
- 5.3.6 Odczytywanie zmiennych 艣rodowiskowych w czasie dzia艂ania programu
- 膯wiczenia
- Podsumowanie
- Konfigurowanie projektu i bazy danych za pomoc膮 Entity Framework Core
- Warstwa repozytorium
- Wytwarzanie sterowane testami i wstrzykiwanie zale偶no艣ci
- 6.1 Wytwarzanie sterowane testami
- 膯wiczenia
- 6.2 Metoda CreateCustomer
- 6.2.1 Dlaczego nale偶y walidowa膰 argumenty wej艣ciowe
- 6.2.2 U偶ywanie wzorca AAA w pisaniu test贸w jednostkowych
- 6.2.3 Walidacja pod k膮tem nieprawid艂owych znak贸w
- 6.2.4 W艂amywanie danych testowych za pomoc膮 atrybutu [DataRow]
- 6.2.5 Inicjalizatory obiekt贸w i automatycznie generowany kod
- 6.2.6 Konstruktory, refleksje i programowanie asynchroniczne
- 6.2.7 Blokady, muteksy i semafory
- 6.2.8 Wykonywanie synchroniczne do asynchronicznego ci膮g dalszy
- 6.2.9 Testowanie Entity Framework Core
- 6.2.10 Kontrolowanie zale偶no艣ci przy u偶yciu wstrzykiwania zale偶no艣ci
- 膯wiczenia
- Podsumowanie
- Por贸wnywanie obiekt贸w
- 7.1 Metoda GetCustomerByName
- 7.1.1 Znaki zapytania: typu nullowalne i ich zastosowania
- 7.1.2 Niestandardowe wyj膮tki, LINQ i metody rozszerzaj膮ce
- 7.2 Kongruencja: od 艣redniowiecza do C#
- 7.2.1 Tworzenie klasy por贸wnuj膮cej przy u偶yciu EqualityComparer<T>
- 7.2.2 Testowanie r贸wno艣ci poprzez nadpisanie metody Equals
- 7.2.3 Przeci膮偶anie operatora r贸wno艣ci
- 膯wiczenia
- Podsumowanie
- 7.1 Metoda GetCustomerByName
- Atrapy, typy og贸lne i sprz臋偶enie
- 8.1 Implementowanie repozytorium Booking
- 8.2 Walidacja wej艣cia, rozdzielanie zagadnie艅 i sprz臋ganie
- 膯wiczenia
- 8.3 U偶ywanie inicjalizator贸w obiekt贸w
- 8.4 Testy jednostkowe z u偶yciem atrap
- 8.5 Programowanie przy u偶yciu typ贸w og贸lnych
- 8.6 Dostarczanie domy艣lnych warto艣ci argument贸w przy u偶yciu parametr贸w opcjonalnych
- 8.7 Wyra偶enia warunkowe, typ Func i prze艂膮czniki
- 8.7.1 Tr贸jargumentowy operator warunkowy
- 8.7.2 Rozga艂臋zianie wykonania przy u偶yciu tablicy funkcji
- 8.7.3 Instrukcje i wyra偶enia switch
- 8.7.4 Odpytywanie o oczekuj膮ce zmiany w Entity Framework Core
- 膯wiczenia
- Podsumowanie
- Metody rozszerzaj膮ce, strumienie i klasy abstrakcyjne
- 9.1 Implementowanie repozytorium Airport
- 9.2 Pobieranie lotniska z bazy danych na podstawie przekazanego identyfikatora
- 9.3 Walidacja parametru wej艣ciowego AirportID
- 9.4 Strumienie wyj艣ciowe i zapewnienie odpowiedniej abstrakcji
- 9.5 Odpytywanie bazy danych o obiekt Airport
- 9.6 Implementowanie repozytorium Flight
- 9.6.1 Metoda rozszerzaj膮ca IsPositive oraz magiczne liczby
- 9.6.2 Pobieranie obiektu lotu z bazy danych
- 膯wiczenia
- Podsumowanie
- Wytwarzanie sterowane testami i wstrzykiwanie zale偶no艣ci
- Warstwa us艂ugi
- Refleksja i imitacje
- 10.1 Powr贸t do wzorca repozytorium/us艂uga
- 10.1.1 Jakie jest zastosowanie klasy us艂ugi?
- 膯wiczenia
- 10.2 Implementowanie klasy CustomerService
- 10.2.1 Konfigurowanie przypadku sukcesu: tworzenie klas szkieletowych
- 10.2.2 Jak usun膮膰 sw贸j w艂asny kod
- 膯wiczenia
- 10.3 Implementowanie BookingService
- 10.3.1 Testy jednostkowe przekraczaj膮ce granice pomi臋dzy warstwami architektury
- 10.3.2 R贸偶nica pomi臋dzy stubem a mockiem
- 10.3.3 Imitowanie klasy za pomoc膮 biblioteki Moq
- 10.3.4 Wywo艂ywanie repozytorium z poziomu us艂ugi
- 膯wiczenia
- Podsumowanie
- 10.1 Powr贸t do wzorca repozytorium/us艂uga
- Sprawdzanie typ贸w w czasie dzia艂ania i obs艂uga b艂臋d贸w spojrzenie drugie
- 11.1 Walidacja parametr贸w wej艣ciowych metody warstwy us艂ugi
- 11.1.1 Sprawdzanie typ贸w w czasie dzia艂ania przy u偶yciu operator贸w is i as
- 11.1.2 Sprawdzanie typu za pomoc膮 operatora is
- 11.1.3 Sprawdzanie typ贸w przy u偶yciu operatora as
- 11.1.4 Co zrobili艣my w punkcie 11.1?
- 11.2 Sprz膮tanie klasy BookingServiceTests
- 11.3 Ograniczenia klucza obcego w klasach us艂ugowych
- 11.3.1 Wywo艂ywanie repozytorium Flight z klasy us艂ugowej
- 膯wiczenia
- Podsumowanie
- 11.1 Walidacja parametr贸w wej艣ciowych metody warstwy us艂ugi
- Stosowanie IAsyncEnumerable<T> oraz yield return
- 12.1 Czy potrzebujemy klasy AirportService?
- 12.2 Implementowanie klasy FlightService
- 12.2.1 Uzyskiwanie informacji o lotach z FlightRepository
- 12.2.2 艁膮czenie dw贸ch strumieni danych w widok
- 12.2.3 U偶ywanie s艂贸w kluczowych yield return w blokach kodu try-catch
- 12.2.4 Implementowanie metody GetFlightByFlightNumber
- 膯wiczenia
- Podsumowanie
- Refleksja i imitacje
- Warstwa kontrolera
- Oprogramowanie po艣rednie, trasy HTTP i odpowiedzi HTTP
- 13.1 Klasy kontroler贸w w ramach wzorca repozytorium/us艂uga
- 13.2 Ustalanie, kt贸re kontrolery trzeba zaimplementowa膰
- 13.3 Implementowanie klasy FlightController
- 13.3.1 Zwracanie odpowiedzi HTTP przy u偶yciu interfejsu IActionResult (GetFlights)
- 13.3.2 Wstrzykiwanie zale偶no艣ci do kontrolera za pomoc膮 middleware
- 13.3.3 Implementowanie punktu ko艅cowego GET /Flight/{FlightNumber}
- 13.4 Kierowanie 偶膮da艅 HTTP do kontroler贸w i metod
- 膯wiczenia
- Podsumowanie
- Serializacja i deserializacja JSON oraz niestandardowe wi膮zanie modelu
- 14.1 Implementowanie klasy BookingController
- 14.1.1 Wprowadzenie do deserializacji danych
- 14.1.2 U偶ywanie atrybutu [FromBody] do deserializacji przychodz膮cych danych HTTP
- 14.1.3 U偶ycie niestandardowego wi膮zania modelu i atrybutu metody dla wi膮zania
- 14.1.4 Implementowanie logiki punktu ko艅cowego w metodzie CreateBooking
- 14.2 Testy akceptacyjne i middleware Swagger
- 14.2.1 R臋czne wykonywanie test贸w akceptacyjnych na podstawie specyfikacji OpenAPI
- 14.2.2 Generowanie specyfikacji OpenAPI w czasie dzia艂ania programu
- 14.3 Koniec podr贸偶y
- Podsumowanie
- 14.1 Implementowanie klasy BookingController
- Oprogramowanie po艣rednie, trasy HTTP i odpowiedzi HTTP
- Odpowiedzi do 膰wicze艅
- Lista kontrolna czystego kodu
- Wskaz贸wki instalacyjne
- OpenAPI FlyTomorrow
- Lista lektur
- Polecamy tak偶e