Let's go invent tomorrow instead of worrying about what happened yesterday|mail@jankowskimichal.pl

Michał Jankowski

avatar

O 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.

Azure Functions – Lessons learned

Ostatnio wszystkie tematy związane z Chmurą oraz pojęciem Serverless stały się bardzo modne. Jednym z takich elementów są Azure Functions. Na stronie Microsoftu można przeczytać, że: Azure Functions to rozwiązanie umożliwiające łatwe uruchamianie małych fragmentów kodu („funkcji”) w chmurze. Możesz napisać tylko kod rozwiązujący aktualny problem, nie martwiąc się o całą aplikację ani infrastrukturę do jej uruchomienia. Dzięki usłudze Functions programowanie może być jeszcze wydajniejsze i można korzystać z wybranego języka programowania, takiego jak C#, F#, Node.js, Python lub PHP. Płać tylko za czas działania kodu — platforma Azure jest skalowana zgodnie z potrzebami. Usługa Azure Functions pozwala tworzyć na [...]

By |2019-05-12T16:06:50+02:006 czerwca 2017 |Kategorie: .net, Azure Functions, C#|0 komentarzy

FluentValidation.Validators.UnitTestExtension wersja 1.1

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.1 wprowadziłem następujące zmiany: dodałem wsparcie do najnowszej wersji biblioteki FluentValidation 7.*, wprowadziłem możliwość szybkiego testowania dwóch walidatorów – ScalePrecisionValidator oraz RegularExpressionValidator. Projekt dostępny jest oczywiście na GitHubie.

Piszę dobry kod – InfoMEET Katowice 2017 – Materiały

Zgodnie z obietnicą zamieszczam materiały oraz prezentację z mojego wykładu. Znajdują się one na GitHubie w repozytorium InfoMEET-2017-Katowice. W razie pytań zapraszam do kontaktu.

Piszę dobry kod – InfoMEET Katowice 2017

Już w najbliższą sobotę (20.05) będzie można mnie posłuchać na konferencji InfoMEET Katowice 2017. Temat wykładu to Piszę dobry kod – czyli jak dbać o jakość kodu w naszym projekcie? W trakcie prezentacji wyjaśnię pojęcie jakość kodu, pokażę jak prostymi sposobami możemy ją zwiększyć. Jednak to nie wszystko. Największy nacisk położę na część praktyczną. Pokażę jak w prosty sposób narzędzia mogą pomóc nam dbać o nasz kod. Duży nacisk w trakcie przedstawiania przykładów będzie położony na efektywność tego procesu. Tak abyśmy mogli osiągnąć jak największą korzyść małym kosztem. Serdecznie zapraszam!

DSP 2017 – nuget.download.stats – Sprint 1

Minął pierwszy tydzień Daj Się Poznać 2017. Czas na drobne podsumowanie. Projekt wystartował pomału. W repozytorium pojawił się kod, który wystawia WebAPI pozwalające na pobranie podstawowych informacji o paczkach. Trochę czasu zeszło na zabawę z Visual Studio 2017.  Niestety nie działa ono tak dobrze jak myślałem. Liczyłem na to, że w końcu będzie można pracować normalnie z testami jednostkowymi. Ale tak się nie stało. Narzędzie wspiera pisanie testów w xUnicie. Pozwala je nawet uruchomić, ale liczyłem, że po premierze Visual Studia 2017 będzie działał już w pełni Resharper, ale tak się nie stało. Kolejna nowość, którą chciałem przetestować to Live [...]

By |2017-07-22T07:49:43+02:0010 marca 2017 |Kategorie: Projekty|Tagi: |0 komentarzy

Pakiet Moq.EntityFramework.Helpers

Na blogu pojawiły się ostatnio dwa wpisy pokazujące w jaki sposób mnożna zamockować DbSet<TEntity> wykorzystując Moq: wywołania synchroniczne – Mockowanie typów DbContext oraz DbSet z wykorzystaniem Moq wywołania asynchroniczne – EntityFramework – testowanie zapytań asynchonicznych Opisane rozwiązania połączyłem w jednej bibliotece i opublikowałem jako pakiet NuGet – Moq.EntityFramework.Helpers. […]

EntityFramework – testowanie zapytań asynchonicznych

Jakiś czas temu opisałem w jaki sposób można zamockować typy DbContext przy pomocy Moq – Mockowanie typów DbContext oraz DbSet z wykorzystaniem Moq. Temat ten nie został wtedy całkowicie wyczerpany. Pozostał jeden element do opisania – zapytania asynchoroniczne. Do tego elementu chciałbym dziś wrócić. Punktem wyjścia będzie poprzedni wpis – czyli mamy fragment kodu, który pozwala na zamockowanie DbSet<T>. Teraz tylko dodamy możliwość obsługi wywołań asynchronicznych. Aby to zrobić należy zaimplementować interfejs IDbAsyncQueryProvider: public class InMemoryAsyncQueryProvider<TEntity> : IDbAsyncQueryProvider { private readonly IQueryProvider innerQueryProvider; internal InMemoryAsyncQueryProvider(IQueryProvider innerQueryProvider) { this.innerQueryProvider = innerQueryProvider; } public IQueryable CreateQuery(Expression expression) { return new InMemeoryAsyncEnumerable<TEntity>(expression); } public IQueryable<TElement> CreateQuery<TElement>(Expression expression) { return new InMemeoryAsyncEnumerable<TElement>(expression); } public object Execute(Expression expression) { return this.innerQueryProvider.Execute(expression); } public TResult Execute<TResult>(Expression expression) { return this.innerQueryProvider.Execute<TResult>(expression); } public Task<object> ExecuteAsync(Expression expression, CancellationToken cancellationToken) { return Task.FromResult(Execute(expression)); [...]

By |2020-07-01T16:52:32+02:005 marca 2017 |Kategorie: .net|Tagi: , , , , , |0 komentarzy

Daj Się Poznać – Krótki wstęp

Kilka dni temu wystartowała kolejna edycja konkursu Daj Się Poznać. Trochę się zastanawiałem, czy wziąć w niej udział. Główną przeszkodą był jak zwykle kalendarz – praktycznie każdy weekend do końca maja zajęty oraz dodatkowo dwa wyjazdy zagraniczne (w tym jeden dłuższy). Nigdy na wakacje nie brałem laptopa, a tym razem chyba nie będzie wyjścia. Postanowiłem jednak spróbować – tym bardziej, że namawiałem Jurka i grzechem byłoby się nie zapisać. Mam nadzieję, że uda mi się dotrwać do końca. Potraktuję to jako wyzwanie. Tyle o konkursie… Skupmy się na problemie. Już od jakiegoś czasu próbuję przerzucić się na technologie webowe. Generalnie idzie [...]

By |2017-03-04T15:04:02+01:004 marca 2017 |Kategorie: Projekty|Tagi: |0 komentarzy
Przejdź do góry