Category: .NET

Scrutor czyli skanowanie Assembly dla domyślnego DI ASP.NET Core

Jakiś czas temu podczas rozwijania swojego projektu Open Source stanąłem przed, wydawać by się mogło prostym problemem. Otóż chciałem udostepnić użytkownikom biblioteki metodę rozszerzającą, która automatycznie zarejestrowałaby w kontenarze dependency injection wszystkie klasy implementujace konkretny interfejs. W przypadku zewnętrzynych bibliotek...

Enum jako flaga w C#

Rzadko zdarza mi się pisać o ficzerach języka C#, a już na pewno nie o takich, które są dostępne od wielu lat. Niemniej, dziś miałem okazję ponownie wykorzystać ciekawą i mniej znaną „odsłonę” enum-ów dostępną poprzez atrybut FlagsAttribute, która być może okaże się...

Bezpieczny null-check w C#

Dziś krótki wpis, który być może okaże się dla Ciebie bardzo przydatny. Chodzi o jedną z technik programowania defensywnego, którą bardzo często możesz spotkać w kodzie C# (z uwagi na jego specyfikę), a mianowicie null-check (ogólniej asercja). Spójrz na poniższy kod...

CQRS i mikroserwisy: odczyt danych

W poprzednim wpisie dosyć obszernie przedstawiłem ogólny koncept oraz implementację zapisu danych w aplikacji DShop, która opiera się na architekturze mikroserwisowej oraz wzorcu CQRS. W tym wpisie zajmiemy się drugim flow przepływu danych w aplikacji tj. ich odczytem. Zaczynajmy!   Ogólny zarys podejścia...

CQRS i mikroserwisy: zapis danych

Ostatnimi czasy na blogu było dosyć cicho, ale wynika to z dwóch rzeczy. Po pierwsze zrobiłem sobię przerwę wakacyjną (która przyznam szczerze rozciągnęła się nieco w czasie), a po drugie aplikacja DShop zmieniła się mocno pod kontem infrastrukturalnym, dlatego pozwoliłem...

Tworzenie własnego szablonu dla projektu .NET Core

Ostatnio w pracy rozpoczęliśmy nowy projekt, który oparty jest na mikroserwisach. Cały proces tworzenia aplikacji zaczęliśmy od stworzenia dedykowanego repozytorium dla każdej usługi (o tym podejściu pisałem tutaj) i umieszczeniu w nim projektu ASP.NET Core, który następnie należało odpowiednio przygotować. Mam tu...

Projekt DShop – instrukcja uruchomienia

W poprzednim wpisie opisującym ciemną stronę mikroserwisów wspomniałem, że przedstawię kompletną instrukcję uruchomienia projektu DShop, który wspólnie z Piotrkiem Gankiewiczem przygotowaliśmy na potrzeby prezentacji „Distributed .NTE Core”. Dlaczego właściwie ją publikuję? Powody są w zasadzie dwa. Pierwszy to fakt, że...

Method invocation in C# is tricky

A few days ago, a friend o mine had a very interesting issue with C# code he had written. Let’s take a look:     There are two overloads of the generic method called Bar. The first one accepts a...

C# internals: foreach statement

After a while, we get back to series dedicated to the internals of C# language. Personally, I think that previous part about iterators was quite longish and complicated, hence today I decided to choose a much simpler (but hopefully still...