W aplikacjach .NET najwięcej pracy dzieje się pod powierzchnią: w regułach domeny, danych, uprawnieniach i ścieżkach błędów. Interfejs jest ważny, ale dopiero dobrze ułożony model pozwala mu być prostym.
Evil Alchemist: C# poza typowym webem
Evil Alchemist to autorski roguelite z walką turową, w którym najwięcej pracy dzieje się w regułach, danych i narzędziach. Projekt pokazuje, jak wykorzystuję .NET do budowania domeny niezależnej od silnika gry.
NOTATKA Z PROJEKTU
DOMENA
Mechanika nie zależy od sceny
Czysta domena .NET 8 jest oddzielona od Godota. Reguły walki, statusów, reakcji i progresji można testować oraz rozwijać bez mieszania logiki z warstwą prezentacji.
DANE
Balans zapisany jako wersjonowany model
Składniki, receptury i konfiguracja spotkań są przechowywane w JSON. Dzięki temu eksperymentowanie z 162 kombinacjami alchemicznymi nie wymaga przepisywania scen ani kodu sterującego.
NARZĘDZIA
Walidacja przed uruchomieniem
GameContentValidator i osobny audyt sprawdzają kompletność receptur oraz referencji między katalogami. Osobne profile wiedzy, checkpointy i trzy sloty zapisu są częścią projektu, a nie dopiskiem po fakcie.
CampusPBnet: uporządkować życie akademickie w jednym systemie
CampusPBnet powstał z bardzo konkretnej obserwacji: informacje akademickie są rozrzucone po mailach, grupach i przypadkowych kanałach. Zaprojektowałem platformę, która łączy społeczności, publikacje i uprawnienia w jednym modelu.
NOTATKA Z PROJEKTU
PROBLEM
Struktura uczelni wymaga struktury danych
Użytkownik może należeć do wydziału, koła naukowego i mniejszej grupy projektowej. Dlatego społeczności są hierarchiczne, mogą być otwarte albo wymagać akceptacji, a każda z nich ma własne sekcje i reguły widoczności.
MOJA ODPOWIEDZIALNOŚĆ
Od modelu domeny do działającego interfejsu
Jako pomysłodawca i autor implementacji prowadziłem projekt przez model danych, uwierzytelnianie, widoki, wyszukiwanie i moderację. Zbudowałem też cztery typy publikacji: aktualności, dyskusje, ankiety i wydarzenia z lokalizacją.
ARCHITEKTURA
Uprawnienia są częścią domeny, nie dodatkiem
ASP.NET Identity odpowiada za tożsamość, ale role wewnątrz społeczności są niezależne i granularne. EF Core pilnuje relacji, indeksów, ograniczeń i współbieżności. Treści przechodzą przez sanitizację, a bannery są automatycznie kadrowane i kompresowane przed zapisaniem.
Sklep .NET 8: od katalogu do zamówienia
Sklep „Buły i Bagiety” był ćwiczeniem z budowania kompletnego przepływu zakupowego, a nie tylko widoku katalogu. Każda funkcja, od kategorii po panel administratora, miała swoje miejsce w jednym spójnym systemie.
NOTATKA Z PROJEKTU
DOŚWIADCZENIE UŻYTKOWNIKA
Katalog, który prowadzi do decyzji
Zaimplementowałem wyszukiwanie, filtry cenowe i magazynowe, promocje, nowości oraz rekurencyjne drzewo kategorii. Cennik PDF można wygenerować dla kategorii wraz z jej podkategoriami, bez ręcznego składania dokumentu.
KOSZYK I ZAMÓWIENIE
Integralność danych w najważniejszym momencie
Dedykowany CartService prowadzi koszyk powiązany z kontem. Przed złożeniem zamówienia system sprawdza dane klienta i stan magazynowy, a po zatwierdzeniu aktualizuje ilości oraz zachowuje historię zamówień i możliwość ponowienia zakupu.
BACKOFFICE
Administracja bez omijania reguł
Panel administratora obejmuje produkty, hierarchię kategorii, zamówienia, użytkowników i podstawową analitykę. Upload obrazu przechodzi przez ImageSharp, a role, tokeny anty-CSRF i walidacja serwerowa chronią operacje, które zmieniają dane.
Technologia wynika z ograniczeń.
Poniższy stack jest mapą przykładów z tej strony, nie listą zakupów. Wybieram to, co uzasadnia problem i co kolejna osoba będzie mogła utrzymać.
C#
.NET
ASP.NET Core
REST API
NASTĘPNY KROK
Masz podobny problem do uporządkowania?
Opowiedz, co powinno działać lepiej. Pomogę przełożyć pierwszą rozmowę na realny zakres i rozwiązanie, które da się utrzymywać.