Michał Jankowski

avatar

About Michał Jankowski

Microsoft MVP Azure, an architect, designer, team leader and trainer. He began programming in the early ’90s from Basic and Assembler for 8-bit computers. During most of his career, he was delivering .NET platform targeted application for the world’s largest companies. Currently, he is specialising in the development of web applications and Azure environment. A great enthusiast of software craftsmanship, unit testing, software design and other topics related to software development. In his free time, when he is not playing with the code, he likes travelling, photography and writing a technical blog.

FluentValidation.Validators.UnitTestExtension wersja 1.4

Nowa wersja pakietu FluentValidation.Validators.UnitTestExtension jest dostępna. Pakiet umożliwia tworzenie testów jednostkowych Fluent Validator-ów w sposób bardziej efektywny. W wersji 1.4 wprowadziłem następujące zmiany: wprowadziłem możliwość szybkiego testowania nowych walidatorów – EnumValidator, MaxLengthValidator, MinLenghtValidator, ExactLengthValidator, ExclusiveBetweenValidator oraz InclusiveBetweenValidator dodałem wsparcie dla .NETStandard 1.6 oraz .NETStandard 2.0 Projekt dostępny jest oczywiście na GitHubie.

Zdalne włączanie \ wyłączanie Azure Function

Dziś trochę inny temat. Czy zastanawialiście się kiedyś jak można wbudować w system możliwość wyłączania Azure Functions? Tak, aby nasza aplikacja była w stanie włączyć jakąś funkcję w miarę potrzeb i potem ją wyłączyć. Powodów takich wymagań może być wiele. Możemy przykładowo chcieć odroczyć przetwarzanie jakiś wiadomości do godzin nocnych, tak aby w trakcie dnia nasza funkcja nie obciążała elementu naszej infrastruktury. Innym dość często spotykanym pytaniem w trakcie różnego rodzaju meetupów lub hackatonów jest to czy jesteśmy w stanie w jakiś sposób wyłączyć funkcję automatycznie jeśli wykorzystamy darmową ilość wykonań funkcji. […]

By |2019-05-12T15:58:28+02:0027 czerwca 2018 |Azure Functions, C#|7 komentarzy

Jak dbać o jakość kodu w naszym projekcie?

W poprzednią sobotę w trakcie prowadzenia wykładu o jakości oprogramowania trochę się zdziwiłem ponieważ dość duża liczba osób nie znała najprostszych narzędzi, które pozwalają poprawić jakość wytwarzanego oprogramowania. Koszt wdrożenia oraz utrzymywanie jakości w projekcie jest niewielki pod warunkiem, że pomyślimy o tym w momencie rozpoczynania pracy. Odkładanie tej decyzji w czasie powoduje, że rosną koszty naprawy potencjalnych błędów wprowadzonych w aplikacji. Oczywiście docelowo zakładałbym, że naszym celem będzie utrzymanie poprawnego kodu, natomiast jeśli nie mamy na to wystarczającego budżetu to wdrożenie monitorowania jakości kodu pozwala nam na zorientowanie się w którym miejscu jesteśmy oraz określenie trendu. […]

By |2018-06-05T11:25:22+02:005 czerwca 2018 |Dodatki / Narzędzia|0 komentarzy

Zapraszam na wrześniowe warsztaty

Choć mamy jeszcze maj, to już teraz chciałbym zaprosić Was na warsztaty które będę prowadził we wrześniu. Pierwsze z nich - CosmosDB jako baza danych dla rozwiązań typu serverless – odbędą się w trakcie konferencji ProgNET London 2018 w dniu 13 września 2018 roku. Przez 3,5 godziny będziemy poznawać dokumentową bazę danych CosmosDB. Zaczniemy od krótkiego wstępu, potem poznamy najważniejsze funkcjonalności tego typu bazy danych, a następnie skupimy się na optymalizowaniu zapytań. Na koniec zastanowimy się jak można zoptymalizować koszty bazy danych. Dodatkowo można przedłużyć pobyt w Londynie na weekend i poznać miasto. Drugi z nich - Serverless w Microsoft Azure [...]

Wysyłanie SMSów przy użyciu Azure Functions – Twilio

Kolejnym tematem, który chciałbym przybliżyć jest wysyłanie SMS-ów z Azure Functions. Po raz kolejny chciałbym Was przekonać do koncepcji komponowania aplikacji z gotowych elementów. Tym razem są to SMS-y, które będziemy wysyłać za pomocą platformy Twilio […]

By |2019-05-12T16:00:16+02:0014 kwietnia 2018 |.net, Azure, Azure Functions, C#|2 komentarze

Wysyłanie maili z Azure Functions – SendGrid

Staram się przekonać programistów, że obecnie powinniśmy zmienić nasze podejście do budowania aplikacji w sposób efektywny. Dotychczasowe budowanie aplikacji w sposób samodzielny od prawie zera powinniśmy zamienić na komponowanie rozwiązania przy wykorzystaniu gotowych elementów. Tak, aby ograniczyć ilość wytwarzanego przez nas kodu. Pewnie zgodzicie się, ze mną, że wraz ze zmniejszeniem ilości kodu, maleje również prawdopodobieństwo popełnienia błędu. Taki podejście chciałbym zastosować w tym przypadku. Naturalnym wyborem dla wysyłania maili w przypadku Azure Functions jest usługa SendGrid. […]

By |2019-05-12T16:01:53+02:0014 kwietnia 2018 |.net, Azure, Azure Functions, C#|0 komentarzy

Azure Function – Upload zdjęć do Azure Blob Storage

Dziś kolejny przykład użycia Azure Functions w kodzie produkcyjnym. Problem jest dość prosty – chcemy wykorzystać funkcję do wgrania zdjęcia do Azure Blob Storage. Oczywiście można było wgrać zdjęcie od razu do Azure Blob Storage, ale takie podejście powoduje dość silne uzależnienie się od tego rozwiązania. Z tego powodu została zastosowana funkcja jako element pośredni. Funkcja ta stanowi API pozwalające na przesłanie zdjęcia zakodowanego w base64 do wybranego przez nas miejsca. Takie podejście pozwoli nam w przyszłości na łatwą zmianę wybranego rozwiązania służącego do przechowywania plików. […]

By |2019-05-12T16:02:10+02:0023 lutego 2018 |.net, Azure, Azure Functions, W praktyce|0 komentarzy

Kryzys produktywności – jak nie być niewolnikiem kalendarza

Coraz częściej łapię się na tym ile mam rzeczy do zrobienia. I co gorsza zaczynam działać jak firewall – Jestem zajęty!!! Jestem bardzo zajęty!!! Nie mam czasu!!! Stałem się niewolnikiem własnego kalendarza i listy ToDo. A co gorsza nie zawsze są to rzeczy, które chciałbym robić i do których sam się zobowiązałem. Problem pojawia się też z efektywnością… Sporo z tego jest pierdół, a na rzeczy poważne zaczyna brakować czasu. Robiąc podsumowanie dnia zastanawiam się czasem co takiego udało mi się dziś osiągnąć. I czasami jest mi ciężko to określić. Pędzę ze spotkania na spotkanie, rozwiązuję problemy innych, a tymczasem [...]