PROGRAMUJE .NET

Moje przygody z programowaniem :)

Aplikacja multi tenant

Aplikacja multi tenant

Wprowadzenie Większość aplikacji, jakie tworzymy, to tak zwane aplikacje single tenant. Czyli mamy jedną instancję aplikacji dla pojedynczego klienta/firmy/organizacji, lub w ogóle nie myślimy o takich rzeczach na poziomie samej aplikacji. Gdy pojawia się druga firma, to po prostu stawiamy dla niej nową instancję i wszyscy są zadowoleni. Są natomiast sytuacje, w których taki model Read more about Aplikacja multi tenant[…]

SQL Server i Docker

SQL Server i Docker

Wprowadzenie Używanie kontenerów bardzo ułatwia lokalne programowanie. W szczególności gdy nasz projekt jest rozbudowany i wykorzystuje różne elementy infrastrukturalne, takie jak baza danych, storage, kolejki i tym podobne rzeczy. Dzięki dockerowi możemy w kilka chwil postawić lokalne środowisko do pracy bez konieczności spędzania długich godzin na instalowaniu niezbędnych komponentów. W tym wpisie pokażę Ci, w Read more about SQL Server i Docker[…]

Scrutor użycie dekoratora

Scrutor użycie dekoratora

Wprowadzanie W poprzednim wpisie pokazałem, w jaki sposób za pomocą biblioteki Scrutor dodać do wbudowanego kontenera dependency incjection w .NET Core/.NET 5 automatyczną rejestrację typów. Scrutor poza skanowaniem udostępnia również możliwość rejestrowania dekoratorów, za pomocą których możemy nawet w sposób dynamiczny konfigurować zachowanie typów w naszej aplikacji. A to wszystko bez zmiany kodu typu, do Read more about Scrutor użycie dekoratora[…]

Scrutor - automatyczna rejestracja typów

Scrutor automatyczna rejestracja typów

Wprowadzenie Od wielu lat wykorzystuję kontener Autofac do wstrzykiwania zależności. Najbardziej przypadła mi do gustu możliwość automatycznej rejestracji typów, dzięki czemu jedną linijką w kodzie można zarejestrować i skonfigurować całą rodzinę typów (implementującą na przykład jakiś interfejs). Gdy zaczynałem pracę z .NET Core, automatyczna rejestracja typów była jedną z rzeczy, której brakowało mi w domyślnym Read more about Scrutor automatyczna rejestracja typów[…]

Azure DevOps path filters

Azure DevOps path filters

Wprowadzenie Możemy spotkać różne sposoby organizacji projektów w repozytoriach. Niektórzy preferują podejście monorepo, w którym wiele różnych projektów/aplikacji znajduje się w tym samym wspólnym repozytorium. Innym podejściem jest multirepo, gdzie dla każdego projektu/aplikacji tworzymy dedykowane repozytorium. Jednym z problemów pierwszego podejścia jest optymalizacja budowania aplikacji w procesie CI/CD, bo nie chcemy budować wszystkich projektów w Read more about Azure DevOps path filters[…]

SendGrid - Webhook

SendGrid – Webhook

Wprowadzenie W jednym z wcześniejszych wpisów pokazałem, w jaki sposób wysłać wiadomość email z wykorzystaniem SendGrida. Wspomniałem również, że umożliwia on otrzymywanie zdarzeń o zmianie statusu wysłanej wiadomości. Możemy otrzymać takie informacje jak dostarczenie wiadomości, otworzenie przez użytkownika, kliknięcie w link. W tym wpisie pokażę Ci, jak otrzymywać te zdarzenia w C#. SendGrid Webhook W Read more about SendGrid – Webhook[…]

ngrok - tunelowanie ruchu

ngrok – tunelowanie ruchu

Wprowadzenie Zdarza się, że potrzebujemy dostać się do jakiejś usługi działającej na komputerze lokalnym z sieci zewnętrznej – na przykład podczas testowania integracji z webhookami wysyłanymi między innymi przez takiego SendGrida. O ile mamy publiczne IP i możemy skonfigurować przekierowanie portów, to nie jest to jakoś mocno problematyczne. Gorzej jak pracujemy w biurze i doproszenie Read more about ngrok – tunelowanie ruchu[…]

SendGrid - wysyłka email

SendGrid – wysyłka email

Wprowadzenie Tworząc systemy, staram się jak najwięcej korzystać z gotowych rozwiązań. Szczególnie w przypadku elementów, które są poboczne w rozwiązaniu, które tworzę, a jednak są wymagane do poprawnego działania aplikacji. Przykładem takiego elementu systemu jest wysyłka wiadomości email. Prawie każda aplikacja wysyła wiadomości email, a twórcy takich systemów jak SendGrid za drobną opłatą zrobią to Read more about SendGrid – wysyłka email[…]

EF Core 5 relacja wiele do wielu

EF Core 5 relacja wiele do wielu

Wprowadzenie Jedną z nowości, jaka pojawiła się w Entity Framework Core 5 jest obsługa relacji wiele do wielu bez konieczności dodawania klasy dla tabeli łączącej. Trochę to zajęło, szczególnie, że było to dostępne w zwykłym Entity Framework. Jednak, co istotne, systematycznie są dodawane kolejne rzeczy do Entity Framework Core. Bardzo fajne jest to, że z Read more about EF Core 5 relacja wiele do wielu[…]

RateLimiter limitowanie ilości żądań

RateLimiter limitowanie ilości żądań

Wprowadzenie Tworząc aplikację, na ogół zależy nam na tym, aby działała jak najszybciej. Spędzamy często wiele godzin na tym, aby zoptymalizować jej działanie. Ale sporadycznie pojawiają się sytuacje, kiedy musimy sztucznie ograniczyć ilość operacji. Na przykład API, z którego korzystamy, umożliwia wykonanie tylko ograniczonej ilości żądań w jednostce czasu. Biblioteka RateLimiter, o której mowa w Read more about RateLimiter limitowanie ilości żądań[…]