Sprawdź zawód
Lekcje kursu

Programista .NET / C#

Twórz usługi w C# i ASP.NET Core. Ucz się cyklu życia zależności, pracy w tle, anulowania oraz obsługi ponowień.

Kompendium zawodu — pojęcia i zwroty

Pojęcia w pracy

Dependency injection
Przekazywanie obiektowi potrzebnych zależności przez ustaloną konfigurację.
Scope
Zakres, w którym określone zależności współdzielą cykl życia.
Worker
Usługa wykonująca pracę bez oczekiwania użytkownika na otwarte żądanie.
CancellationToken
Mechanizm przekazywania sygnału przerwania operacji.
Idempotencja
Własność pozwalająca powtórzyć operację bez powielenia jej skutku.

Zwroty w typowych sytuacjach

„Każdy przebieg w tle potrzebuje własnego zakresu zależności.”
Pilnujesz czasu życia usług.
„Użytkownik otrzyma identyfikator, a stan raportu odczyta oddzielnie.”
Rozdzielasz przyjęcie zlecenia od wykonania.
„Przy zatrzymaniu dokończymy bezpieczny etap albo zostawimy sprawę do ponowienia.”
Chronisz spójność pracy.

Podstawy · Lekcja 1 z 6

ASP.NET i odpowiedzialność za żądanie

Żądanie ma określony czas i zakres. Odczytaj wejście, potwierdź uprawnienie i zwróć wynik lub informację o przyjęciu pracy. Długi proces może mieć własny stan dostępny niezależnie.

Tok pracy w tej lekcji
  1. Co zrobić najpierwSprawdź wejście
  2. Co zrobić dalejZapisz zlecenie
  3. Jak zakończyćZwróć identyfikator

Przykład z pracy

Użytkownik wysyła żądanie raportu i otrzymuje identyfikator do odczytu stanu.

Ćwiczenie praktyczne

Rozpisz dane przyjęcia oraz stan widoczny po wysłaniu żądania.

Sprawdź się — opcjonalne pytanie

Co warto zwrócić przy przyjęciu dłuższego zadania?

  • Gotowy wynik przed jego powstaniem
  • Identyfikator pracy i uzgodniony sposób odczytu stanu
  • Wyłącznie nazwę procesu serwera
Pokaż odpowiedź i wyjaśnienie

Identyfikator pracy i uzgodniony sposób odczytu stanu. Identyfikator pozwala wrócić do zadania po zamknięciu żądania.

Podstawy · Lekcja 2 z 6

Zależności i ich cykl życia

Rozróżnij zależności współdzielone oraz związane z zakresem pracy. Unikaj przechowywania obiektu zakresowego w usłudze długotrwałej. Dla zadania utwórz odpowiedni zakres.

Tok pracy w tej lekcji
  1. Co zrobić najpierwRozpoznaj zależność
  2. Co zrobić dalejWyznacz zakres
  3. Jak zakończyćZakończ przebieg

Przykład z pracy

Worker otwiera zakres danych na czas obsługi konkretnej sprawy.

Ćwiczenie praktyczne

Narysuj cykl pracy zależności dla dwóch kolejnych zleceń.

Restart następuje w połowie tworzenia raportu

Worker zapisał część danych. Po restarcie zlecenie jest nadal w kolejce, a użytkownik oczekuje jednego spójnego wyniku.

Pokaż przykładową reakcję

Odczytuję trwały stan, stosuję uzgodnione ponowienie i potwierdzam kompletność. Przywracasz pracę bez podwójnego efektu i pozostawiasz spójny wynik.

Sprawdź się — opcjonalne pytanie

Co ogranicza współdzielenie stanu między zadaniami?

  • Zachowanie jednego kontekstu dla wszystkich użytkowników
  • Wydłużenie nazwy serwisu
  • Osobny zakres potrzebnych zależności dla każdego przebiegu
Pokaż odpowiedź i wyjaśnienie

Osobny zakres potrzebnych zależności dla każdego przebiegu. Zakres porządkuje czas życia i zapobiega niechcianemu współdzieleniu.

Praca krok po kroku · Lekcja 3 z 6

Kolejka i ślad pracy

Zapisz identyfikator, stan i warunki podjęcia zlecenia. Zdecyduj, które dane muszą przetrwać restart. Udostępniaj status osobie mającej prawo go odczytać.

Tok pracy w tej lekcji
  1. Co zrobić najpierwZapisz pracę
  2. Co zrobić dalejAktualizuj stan
  3. Jak zakończyćPotwierdź wynik

Przykład z pracy

Kolejka pamięta zlecenie, a aplikacja pokazuje, że oczekuje na wykonanie.

Ćwiczenie praktyczne

Opisz stany oczekiwania, pracy i zakończenia oraz warunki przejść.

Sprawdź się — opcjonalne pytanie

Co pozwala odzyskać pracę po restarcie?

  • Trwały zapis potrzebnych danych i stanu
  • Wiadomość tylko w pamięci procesu
  • Historia przeglądarki użytkownika
Pokaż odpowiedź i wyjaśnienie

Trwały zapis potrzebnych danych i stanu. Odzyskanie zależy od dostępnego śladu wykonania.

Praca krok po kroku · Lekcja 4 z 6

Anulowanie i zatrzymanie

Przekazuj sygnał anulowania do operacji, które go obsługują. Ustal etapy, w których można zakończyć bez pozostawienia niejasnego wyniku. Zapisz stan umożliwiający reakcję po uruchomieniu.

Tok pracy w tej lekcji
  1. Co zrobić najpierwOdbierz sygnał
  2. Co zrobić dalejZakończ etap
  3. Jak zakończyćZapisz stan

Przykład z pracy

Po sygnale zatrzymania worker nie zaczyna nowej sprawy i zapisuje stan bieżącej.

Ćwiczenie praktyczne

Wskaż granice bezpiecznego zatrzymania procesu raportowego.

Sprawdź się — opcjonalne pytanie

Po co propagujesz anulowanie?

  • Żeby zawsze ignorować trwające żądania
  • Żeby operacje mogły zakończyć pracę w uzgodniony sposób
  • Żeby zniknęła potrzeba zapisu stanu
Pokaż odpowiedź i wyjaśnienie

Żeby operacje mogły zakończyć pracę w uzgodniony sposób. Sygnał koordynuje kontrolowane kończenie pracy.

Trudniejsze sytuacje · Lekcja 5 z 6

Ponowienie bez podwójnego wyniku

Przypisz pracy stabilny identyfikator. Przed zapisem sprawdź, jaki skutek już istnieje i jakie warunki chronią przed równoczesnym wykonaniem. Oddziel powtarzalne niepowodzenie od chwilowego błędu.

Tok pracy w tej lekcji
  1. Co zrobić najpierwRozpoznaj zlecenie
  2. Co zrobić dalejSprawdź skutek
  3. Jak zakończyćPotwierdź wynik

Przykład z pracy

Po chwilowej niedostępności zlecenie wraca do obsługi bez powielenia pliku.

Ćwiczenie praktyczne

Ułóż reakcje na pierwszy przebieg, ponowienie i zapis zakończony.

Sprawdź się — opcjonalne pytanie

Co zabezpiecza przed podwójnym wynikiem?

  • Wygenerowanie nowego losowego identyfikatora dla tego samego zlecenia
  • Ukrycie pliku przed użytkownikiem
  • Powiązanie skutku z identyfikatorem oraz spójny zapis decyzji
Pokaż odpowiedź i wyjaśnienie

Powiązanie skutku z identyfikatorem oraz spójny zapis decyzji. Stała tożsamość pracy pozwala rozpoznać poprzednie wykonanie.

Trudniejsze sytuacje · Lekcja 6 z 6

Obserwowanie i odbiór wydania

Obserwuj kolejkę, czas, błędy i skutek widoczny użytkownikowi. Przed wdrożeniem sprawdź przerwanie oraz ponowienie. W logach zachowaj kontekst bez zapisu zbędnych danych.

Tok pracy w tej lekcji
  1. Co zrobić najpierwOdtwórz warunki
  2. Co zrobić dalejSprawdź przebieg
  3. Jak zakończyćZapisz dowód

Przykład z pracy

Worker przechodzi odbiór po przerwaniu pracy i dokończeniu tego samego raportu.

Ćwiczenie praktyczne

Przygotuj kryteria odbioru dla aplikacji i zespołu utrzymania.

Sprawdź się — opcjonalne pytanie

Który dowód potwierdza bezpieczny restart?

  • Jedno kompletne zakończenie tej samej sprawy po wznowieniu
  • Samo uruchomienie procesu
  • Zwiększenie liczby wpisów w logu
Pokaż odpowiedź i wyjaśnienie

Jedno kompletne zakończenie tej samej sprawy po wznowieniu. Odbiór łączy zachowanie techniczne z wynikiem użytkownika.