HomeWorkshopsSpeakingMediaAboutContactSponsor Sponsored by: I've got 2 massive things to announce today that have been a long time in the works and by pure coincidence, have aligned such that I can share them together here today. One you would have been waiting for and one totally out of left field. Both these announcements are being made at a time where Pwned Passwords is seeing unprecedented growth: Getting closer and closer to the 1B requests a month mark for @haveibeenpwned's Pwned Passwords. 99.6...
Demitrius May 26th, 2021 We started a journey to build a native package manager for Windows 10 when we announced the Windows Package Manager preview at Microsoft Build 2020. We released the project on GitHub as an open-source collaborative effort and the community engagement has been wonderful to experience! Here we are today at Microsoft Build 2021… We are excited to announce the release of Windows Package Manager 1.0!Windows Package Manager 1.0Client The winget client is the main tool you will use ...
This week I'm continuing the documentation topic. I'm giving insight on how we're using Algolia in Event Store for advanced search in our docs. I explained the whole flow with samples scraping the data and automating it with Github Actions.
Na blogu pojawiło się już kilka wpisów poświęconych Postmanowi, który jest genialnym narzędziem do testowania Web API. Używam go praktycznie każdego dnia. Natomiast w dzisiejszym wpisie chciałbym Ci pokazać alternatywę (a tak naprawdę fajne uzupełnienie) Postmana. Jest nim dodatek REST Client do Visual Studio Code. Podobnie jak Postman, REST Client umożliwia wykonywanie żądań HTTP do serwera. A największą różnicą jest to, że zamiast graficznego interfejsu użytk...
Dziś będzie trochę o bazach danych. To nie tylko tabelki i operację CRUD, potrafią zrobić zdecydowanie więcej. Chciałbym dzisiaj przybliżyć możliwości biblioteki Entity Framework Core związaną z obsługą widoków.Czym jest widok? Zacznijmy od początku, czyli zdefiniowania czym jest widok. Zaglądając do wikipedi otrzymamy bardzo ładną definicję: Widok (perspektywa) to logiczny byt (obiekt), osadzony na serwerze baz danych. Umożliwia dostęp do podzbioru kolumn i wierszy tabel lub tabeli na podstawie zapyta...
ProgramowanieNapisz komentarz Dziś wstępnie przyjrzymy się tematowi, który nieśmiało zyskuje ostatnio popularność. Są to testy mutacyjne. W jaki sposób możemy testować nasze testy? Co nam to daje? Dlaczego testy mutacyjne są świetnym uzupełnieniem code coverage? Jak „za darmo” wygenerować nowe przypadki testowe dla naszego kodu? Jeśli zainteresowały Cię te pytania, zapraszam do lektury 😉 Spis treściCo to są testy mutacyjne?Code coverage vs testy mutacyjneNarzędzia do testów mutacyjnychCo nam dają test...
Tym razem już na pewno 71. odcinek podcastu a w nim temat, który wyniknął z rozmowy odnośnie architektur sterowanych zdarzeniami. Rozmawiamy o tym jak to się programowało dawno temu i czy było prościej. Zastanawiamy się czy R# lub też inne „pomagajki” sprawiają, że piszemy kod niechlujnie czy jednak jest to niezależne od tego w czym piszemy nasz kod. Miłego słuchania.
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 którego będziemy dodawali zachowanie.Wzorzec dekorator Dekorator ...
In this blog post I’m going to share my experience on testing ASP.NET Core applications with applying unconventional method called snapshot assertions. In comparison to the classical approach this method should save you a lot of time and improve assertions maintainability.
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 kontenerze. Na szczęście biblioteka Scrutor uzupełnia ten bra...
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 repozytorium, w mom...
Posted on przez Daniel PlawgoWprowadzenie 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 panelu konfiguracyjnym SendGrida możemy skonfigurować webhooka, za pomo...
Refaktoryzacj przy pomocy wyrażeń regularnych w Visual Studio Wyrażenia regularne to uniwersalne narzędzie w skrzynce narzędziowej każdego programisty. Jednym z miejsc, w których mogą one być przydatne, są okna dialogowe Quick Find i Quick Replace w Visual Studio. W tym poście pokażę, jak wykorzystać możliwości wyrażeń regularnych w inteligentnej refaktoryzacji.
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 się o to administratorów graniczy z cudem. W takiej sytuacji z pomocą przychodzi tytułowy...
Dziś biorę na tapet dwa najpopularniejsze IDE dla .NET developerów – Visual Studio i JetBrains Rider. Czym się różnią? I dlaczego używam już (prawie) tylko Ridera? 😉 Zapraszam!
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 dużo lepiej niż my.SendGrid SendGrid jest popularną usługą, która służy ...
Testy mutacyjne. Szybki start i biblioteka Stryker w .NET i dotnetcore. Pierwsze uruchomienie, szybkie spojrzenie na rezultaty testów.
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 tym wpisie, właśnie umożliwia zrealizowanie czegoś takiego w aplikacji .NET....
Jakiś czas temu poruszyliśmy w pracy ciekawą dyskusję. Rozmawialiśmy o wydajności. Niestety umowy i zobowiązania nie pozwalają mi ze szczegółami opowiedzieć czego dokładnie dotyczyła. Chcąc mniej więcej przybliżyć temat przyjmijmy że chcieliśmy porównać trzy scenariusze:Jeden request, który robi 1000 akcji1000 request-ów, które robią 1 akcję10 batch-y request-ów, które robią 100 akcji O ile nie jestem wielkim fanem testów wydajnościowych (w wielu aplikacjach to tylko przerost formy nad treścią) to tym ...