CsharpTen jeden przykład zaskakuje więcej początkujących niż cała reszta operatorów razem wzięta. Zanim przejdziemy do nowoczesnych ??, ?. i ?:, warto uporządkować podstawy — bo to właśnie tam czają się…
Czytaj więcej →
CsharpWyobraź sobie taką sytuację: masz bibliotekę Shared.dll, w której ktoś zdefiniował public const int MaxRetries = 3;. Pół roku później zmieniasz tę wartość na 5, publikujesz…
Czytaj więcej →
CsharpJeśli znasz już Anatomię wzorca — 8 elementów opisu GoF, wiesz, że każdy z 23 wzorców GoF opisuje się w tym samym formacie. Rozkładamy w nim Observer — jeden…
Czytaj więcej →
CsharpCode coverage mierzy, który procent linii (albo gałęzi) kodu został wykonany podczas uruchomienia testów. To użyteczny sygnał, gdzie testów brakuje — ale wysoki procent nie oznacza…
Czytaj więcej →
CsharpKolejny wzorzec z serii opartej na Anatomii wzorca — 8 elementach opisu GoF. Tym razem Mediator — wzorzec, który ratuje kod, gdy N obiektów zaczyna znać wszystkie pozostałe N-1…
Czytaj więcej →
CsharpW testach integracyjnych ASP.NET Core podmienialiśmy prawdziwą bazę danych na UseInMemoryDatabase. To wygodne, ale ma pułapkę: InMemory provider nie zachowuje się jak prawdziwa relacyjna baza danych…
Czytaj więcej →
CsharpManipulacja tekstem w C# — Replace, Split, Substring inne metody string Każda aplikacja przetwarza tekst (Manipulacja tekstem). Formularze, raporty, importy CSV, logi, API — wszędzie napotykasz…
Czytaj więcej →
CsharpJesli piszesz pierwszy kod w C#, pedzisz pewnie pelna para: zmienne, instrukcje warunkowe, petle. A potem nagle — name.Trim() nie zmienia Twojego stringa. Albo aplikacja zwalnia…
Czytaj więcej →
CsharpTest jednostkowy sprawdza jedną klasę w izolacji. Test integracyjny sprawdza, czy cały pipeline — routing, middleware, dependency injection, serializacja JSON — faktycznie działa razem, wysyłając prawdziwe…
Czytaj więcej →
CsharpPattern Matching w C# – switch expressions i type patterns Otwierasz klasę z logiką biznesową i nagle dostajesz w twarz „drabiną” instrukcji if-else, która ciągnie się…
Czytaj więcej →
CsharpAssert.Equal(oczekiwany, wynik) działa, ale gdy test padnie, komunikat błędu bywa lakoniczny. FluentAssertions to biblioteka, która zamienia asercje w czytelne zdania (wynik.Should().Be(oczekiwany)) i — ważniejsze — generuje…
Czytaj więcej →
CsharpValue types vs reference types w C# — stack, heap i boxing na przykładach Napisz taki kod i zapytaj o wynik dowolnego początkującego programistę: Jeśli nie…
Czytaj więcej →
CsharpJak stworzyć i opublikować pakiet NuGet w .NET (C#) Chcesz przestać kopiować kod między projektami i zacząć budować prawdziwą architekturę w .NET? W tym artykule pokażę…
Czytaj więcej →