Przejdź do treści

Artykuły

MonoGame — jak napisałem grę platformową w C# bez silnika i bez wstydu

  • przez

Pewnego dnia postanowiłem napisać grę. Nie w Unity, nie w Godot, nie w Unreal — w czystym C#. Dlaczego? Bo jestem masochistą z dyplomem i chciałem wiedzieć, co tak naprawdę kryje się pod spodem każdego „przeciągnij sprite’a tutaj”.

Efekt? MathNerd — platformówka w stylu Mario, gdzie nerdziak w okularach i muszce musi pokonywać dresiarzy, rozwiązując zadania matematyczne. Tak, to gra edukacyjna. Nie, nie jestem z tego dumny. Tak, jest śmieszna.

Dowiedz się więcej »MonoGame — jak napisałem grę platformową w C# bez silnika i bez wstydu

MongoDB i Entity Framework Core – praktyczny przewodnik

  • przez

Entity Framework Core (EF Core) to popularny ORM dla platformy .NET, który pozwala programistom pracować z bazami danych za pomocą obiektów C# zamiast pisania surowych zapytań. Dzięki MongoDB EF Core Provider te same znane wzorce można teraz stosować z bazą NoSQL, jaką jest MongoDB.

W tym artykule dowiesz się, jak połączyć MongoDB z EF Core, poznasz kluczowe koncepcje i zobaczysz praktyczny przykład, który możesz zaadaptować do własnych projektów.

Dowiedz się więcej »MongoDB i Entity Framework Core – praktyczny przewodnik

Gridify: Proste i Wydajne Filtrowanie Danych w .NET

  • przez

W świecie nowoczesnych aplikacji webowych, efektywne zarządzanie dużymi zbiorami danych jest kluczowym wyzwaniem. Użytkownicy oczekują błyskawicznego wyszukiwania, sortowania i stronicowania wyników, niezależnie od tego, czy przeglądają listę produktów, czy logi systemowe. Deweloperzy często stają przed wyborem: pisać powtarzalny kod filtrujący ręcznie, co jest żmudne i podatne na błędy, albo użyć ciężkich frameworków, które mogą negatywnie wpłynąć na wydajność.

Tutaj pojawia się Gridify – nowoczesna, lekka i niezwykle szybka biblioteka dla ekosystemu .NET, która zamienia skomplikowane operacje na danych w proste, czytelne zapytania.

Dowiedz się więcej »Gridify: Proste i Wydajne Filtrowanie Danych w .NET

Facet w .NET: Koniec z ręcznym pisaniem DTO i wolnym mapowaniem

  • przez

W świecie programowania w .NET, walka z tzw. „boilerplate code” (kodem powtarzalnym) to chleb powszedni. Każdy programista backendowy zna ten ból: masz encję domenową, ale potrzebujesz ją zwrócić z API. Tworzysz więc klasę DTO. Następnie piszesz mapper (lub konfigurujesz AutoMapper). Potem, przy zapytaniu do bazy danych, musisz pamiętać o projekcji (.Select()), aby nie pobierać całej bazy do pamięci.

Tutaj na scenę wkracza Facet – biblioteka, która wykorzystuje jedną z najpotężniejszych funkcji współczesnego C#: Source Generators.

Dowiedz się więcej »Facet w .NET: Koniec z ręcznym pisaniem DTO i wolnym mapowaniem

.NET Channels

  • przez

Wraz z nadejściem .NET Core 3.0 otrzymaliśmy do rąk potężne narzędzie – bibliotekę System.Threading.Channels. Mimo że od premiery minęło już sporo czasu, wiele zespołów wciąż polega na przestarzałych mechanizmach jak BlockingCollection lub ryzykownych operacjach na wątkach puli, by obsłużyć asynchroniczne przetwarzanie danych.

Channels to nowoczesna implementacja wzorca Producer-Consumer, zoptymalizowana pod kątem wysokiej przepustowości i niskiej alokacji pamięci. W połączeniu z wbudowanym w .NET mechanizmem IHostedService (BackgroundService), pozwala na tworzenie robustnych procesów przetwarzania w tle bezpośrednio w instancji aplikacji.

Dziś przejdziemy przez implementację, która zapewnia nie tylko asynchroniczność, ale także mechanizm Backpressure – chroniący Twój serwer przed zalaniem zbyt dużą liczbą zadań. Zobaczmy, jak to zrobić dobrze.

Dowiedz się więcej ».NET Channels