Da się zrobić, aby autofac i asp net core web api się polubiły- czyli nauka webapi.
Dzisiejszy wpis jest zainspirowany kilkoma ostatnimi przypadkami, w których widziałem bardzo rozbudowane switche w aplikacji. Utrzymanie tego kodu zaczynało sprawiać programistom spore problemy. Zapewne wielokrotnie widziałeś lub widziałaś metody, w których znajdował się jeden wielki switch, gdzie każdy case zawierał następnie zupełnie inny kod niż pozostałe przypadki. Utrzymanie tego, a w szczególności dodanie nowych przypadków zaczyna być wyzwaniem i często ...
Sztuka programowania 2200 dni, 3 godziny, 54 minuty temu 374 źrodło rozwiń
W aplikacji czasami mamy fragmenty kodu, które dodajemy w różnych miejscach. Tak jak ostatnio opisywałem, możemy chcieć dodać cachowanie danych na poziomie logiki biznesowej, aby zmniejszyć ilość zapytań do bazy. W przykładzie dotyczącym CacheManagera wywołanie usługi CacheService dodałem bezpośrednio w kodzie logiki. Z jednej strony tego kodu nie ma zbyt dużo, ale z drugiej strony fajnie byłoby mieć ten kod automatycznie w każdej logice biznesowej. Szczególnie...
Rejestrowanie zależności poprzez system refleksji + Autofac modules
W tym wpisie, kolejnym z serii dotyczącej kreacyjnych wzorców projektowych, omówię wzorzec projektowy Prototype – Prototyp. Prototyp, zgodnie z intuicją, ma za zadanie dostarczyć jakiś pierwotny obiekt, który potem wykorzystamy do konkretnych celów. Tym celem będzie tworzenie obiektów interesujących klienta.
Architektura 2359 dni, 5 godzin, 1 minutę temu 99 źrodło rozwiń
Pracując z kontenerami Dependency Injection bardzo często dochodzi to sytuacji, gdy kod konfiguracji takiego kontenera bardzo się rozrasta. W szczególności, gdy korzystamy z biblioteki, która nie wspiera autorejestracji (przez dłuższy czas w jeden z aplikacji WPF wykorzystywałem Unity, gdzie trzeba było każdy typ zarejestrować ręcznie w kontenerze), przez co klasa konfiguracji może zawierać dziesiątki, jak i nie setki linii kod. Na szczęście Autofac, którego wykorzystuje o...
Wstrzykiwanie zależności z wykorzystaniem kontenerów jest bardzo wygodne, ale też niesie z sobą trochę problemów. Jednym z tych problemów jest ilość oraz moment tworzenia obiektów. W tym wpisie pokaże ten problem oraz zaproponuje swoje rozwiązanie z wykorzystaniem obiektów Lazy. Poniżej jest przedstawiona dość standardowy kawałek kodu aplikacji ASP.NET MVC, w której jest wykorzystane wstrzykiwanie zależności przez konstruktor w formie interfejsów. Jak widać na kodzie pow...
Sztuka programowania 2403 dni, 5 godzin, 58 minut temu 113 źrodło rozwiń
This post describes how to achieve database transaction, on a command level, with Autofac DI and MediatR.
Architektura 2527 dni, 4 godziny, 53 minuty temu 168 źrodło rozwiń
This post describes how to achieve database transaction, on a request level, with Autofac DI and ASP.NET WebApi.
A few days ago I faced an interesting problem. In a nutshell, I had one interface implemented by three classes...
Cześć. Ostatnio przedstawiłem wam zamysł mojego modułowego systemu do tworzenia tooli CLI w .NET Core. To co będę prezentował w tym poście jest to implementacja POC, więc kod momentami jest robiony na szybko. Będę pisał o tym co myślę, że można jeszcze poprawić w dalszej części artykułu. Na początku zanim pojawi się kodzik opiszę na czym opiera się całe rozwiązanie. Aplikacje CLI postanowiłem zamodelować za pomocą handlerów. To co wpisujemy do k...
Architektura 2658 dni, 5 godzin, 32 minuty temu 51 źrodło rozwiń
There are many different approaches to deal with failures in web apps. One of the most common is returning a result... The idea is simple. If the method fails because of validation or something else, the result tells it. The only thing we need is ifstatement an...
Article for Daj się Poznać competition describing plugin mechanism created in ASP.NET Core with help of Autofac DI container
Daj się poznać 2017 2797 dni, 15 godzin, 54 minuty temu 203 źrodło rozwiń
For couple last days, I worked on gifty to catch up a little bit. My primal task was to introduce JWT authentication to my microservices hosted by Nancy. That’s the topic for next post but today, I’ll describe the proper steps to fully integrate Nancy with Autofac and ASP.NET Core since it’s not that obvious (at least wasn’t for me) and took me way to much time to finally do it. So, I hope that this one will help you one way or another. Installing pa...
Daj się poznać 2017 2801 dni, 21 godzin, 19 minut temu 78 źrodło rozwiń
Wstrzykiwanie zależności do kontrolera - autofac.
Daj się poznać 2017 2818 dni, 3 godziny, 44 minuty temu 59 źrodło rozwiń
Jak można uprościć wstrzykiwanie NLoga w projekcie ASP.NET Core MVC.
Daj się poznać 2017 2822 dni, 4 godziny, 45 minut temu 154 źrodło rozwiń
I created few projects in my solution. I have models, services, tests and webApi project. I added LoginController which uses Services, but it uses it by interfaces. I need to use dependency injection to resolve it for me. I decided to add Autofac. It is IoC container which allow us to register all types and it’s implementations, to inject specific types for us. In the last year I wrote post how to add Autofac to ASP.NET MVC app, but post is in Polish and adding Autofac to .NET Core app is slighty differe...
Daj się poznać 2017 2826 dni, 1 godzinę, 49 minut temu 82 źrodło rozwiń
~ Jarosław Stadnicki Mówili mi ludzie, czemu sam rejestrujesz zależności w autofacu, skoro można skorzystać z konwencji, sam wszystko rozpozna, wykryje co masz załadowane do pamięci i z tego rozkmini. Jak się domyślacie wpis ten wziął się stąd, że nie zawsze tak się dzieje. Otóż tak stworzona rejestracja czasem powoduje problemy: Problemy wygladają tak: None of the constructors found with ‚Autofac.Core.Activators.Reflection.DefaultConstructorFinder’ on type ‚IsThereAnyNews.Mvc.Controllers.HomeContr...
Mechanizm DependencyService zaprezentowany w poprzednim wpisie, daje sporo możliwości już na starcie pracy z Xamarin.Forms. Dzięki zastosowaniu specjalnego atrybutu, możemy korzystać z funkcjonalności opisanych w paradygmacie IoC praktycznie bez żadnego wysiłku i mamy ten mechanizm dostępny "out-of-the-box". Prostota rozwiązania niesie za sobą też pewne skutki uboczne. Mechanizm jest niezwykle łatwy w użyciu, ale zarazem bardzo ograniczony funkcjonalnie. Jeśli kiedykolwiek pracowaliście z kontenerami Io...
Mobile development 3025 dni, 5 godzin, 1 minutę temu 87 źrodło rozwiń
Today we are going to have a little break from our CQRS/ES journey, but I hope you’ll like that article anyway. Meet Aspect-Oriented Programming! An approach that’s going to change the way of writing our code and more importantly will help us to keep it clean and simple (in most cases). The idea Writing the code we can often observe that the certain group of the non-business functionalities is copied in many areas, and moreover, it affects other parts of our system. Here we can include: creating datab...
Sztuka programowania 3053 dni, 5 godzin, 10 minut temu 168 źrodło rozwiń