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

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