gRPC is a modern open source remote procedure call framework. There are many exciting features in gRPC: real-time streaming, client-to-server code generation, and great cross-platform support to name a few. The most exciting to me, and consistently mentioned by developers who are interested in gRPC, is performance. Last year Microsoft contributed a new implementation of gRPC for .NET to the CNCF. Built on top of Kestrel and HttpClient, gRPC for .NET makes gRPC a first-class me...
Strona głównaUżytkownik
rroszczyk | użytkownik
Programowanie rozproszone 1484 dni, 1 godzinę, 30 minut temu 78 źrodło rozwiń
Sztuka programowania 1512 dni, 2 godziny, 57 minut temu 174 źrodło rozwiń
Architektura heksagonalna jest znana pod kilkoma nazwami. Na szczęście, niezależnie od nazwy, w każdym opisie cechuje się takimi samymi rzeczami. Po pierwsze – świetnie separuje aspekty biznesowe od technicznych. Po drugie – projektowanie prostych adapterów pozwala na podejmowanie pewnych decyzji na późniejszym etapie projektu. Na koniec, po trzecie – wymienność adapterów ułatwia testowanie, jak i eksperymentowanie.
Architektura 1511 dni, 2 godziny, 8 minut temu 235 źrodło rozwiń
Ostatni wpis zamknął serię związaną z implementacją mikroserwisów jako takich. Jest jednak jeszcze wiele tematów związanych z ich utrzymywaniem i wdrażaniem, które chciałbym sukcesywnie poruszać na blogu. Dziś zaczniemy od moim zdanim kluczowego mechanizmu, bez którego praca z systemem rozproszonym na produkcji może okazać się piekłem. Cym jest rozproszone śledzenie? Wyobraź sobie, że zakończył się etap implementacj...
Programowanie rozproszone 1851 dni, 1 godzinę, 17 minut temu 160 źrodło rozwiń
A little while ago I blogged here and I set it up to be a "continues..." style post. I haven't had the energy to continue it in that context, and this fact was putting me off concluding the post. I then realised: the thing that matters isn't some overarching narrative structure, but that I get my ideas down. So: I'm aborting any attempt at making this post a continuation, and just focusing on the content! There's been a lot of confusion over when to use Task[
Programowanie rozproszone 1914 dni, 2 godziny, 16 minut temu 116 źrodło rozwiń
In several recent posts, we discussed two ways to trade off correctness for performance in database systems. In particular, I wrote two posts (first one and second one) on the subject of isolation levels, and one post on the subject of consistency le...
Bazy danych i XML 1914 dni, 2 godziny, 16 minut temu 110 źrodło rozwiń
In this series I describe the new Microsoft.FeatureManagement library that is being developed by the Azure team. It standardises the approach to adding feature flags to an ASP.NET Core app. In the first post, I introduce the library and show how to create simple feature flags. In later posts I show some of the extensibility features of the library, as well as the some of the tighter integration points with ASP.NET Core Posts in this series (new posts will be listed here as they're written): Part 1...
Generalized async return types — it is a new C#7 feature that allows using not only Task as a return type of async methods but also other types (classes or structures) that satisfy some specific requirements. At the same time, async/await is a way to call a set of "continuation" functions inside some context which is an essence of another design pattern — Monad. So,...
Sztuka programowania 1942 dni, 2 godziny, 27 minut temu 182 źrodło rozwiń
A little over a year ago, we ran a series of blog posts describing performance improvements we were making to ReSharper. We’ve delivered a lot of improvements in the releases since then, but we haven’t yet delivered on the big one – running ReSharper out of process. We thought it was about time we gave you an update on where we are. TL;DR: This isn’t an announcement post. We don’t have an ETA to share right now, although we have made s...
Od wielu lat używam viewmodeli do przekazywania danych do widoku – niezależnie od tego, czy to aplikacja desktopowa w WPF, czy webowa w ASP.NET MVC. Do tego jeszcze Automapper do mapowania danych na viewmodele. Niestety mapowanie z wykorzystaniem metody Map obiektów z Entity Frameworka bardzo często ma swoje negatywne konsekwencje (na ogół pobieramy zbyt dużo danych do aplikacji). Jednym z rozwiązań tego problemu jest skorzystanie z metody ProjectTo z Automappe...
Bazy danych i XML 2143 dni, 12 minut temu 276 źrodło rozwiń
W ostatnim wpisie poruszyłem temat testowania i w dzisiejszym wpisie zostaniemy przy tym temacie. O ile z testowaniem warstwy logiki biznesowej na ogół nie mamy problemów, to już dużo gorzej wygląda to z warstwą dostępu do danych. Entity Framework z pudełka nie umożliwia prostego pisania testów jednostkowych. Są różne rozwiązania tego problemu. Część osób idzie tak naprawdę w testy integracyjne i wykonuje zapytania na realnej bazie. Część osób korzysta z baz da...
Bazy danych i XML 2184 dni, 33 minuty temu 196 źrodło rozwiń
Bardzo lubię wykorzystywać Entity Framework w swoich projektach. W szczególności za łatwość i szybkość tworzenia kodu (na przykład za opisywany ostatnio mechanizm migracji). Ale, żeby nie było tak różowo, Entity Framework ma również swoje problemy. Głównie są one związane z wydajnością. Szczególnie, że niektóre operacje, który wykonalibyśmy w czystym SQLu jednym prostym zapytaniem, w Entity Framework wymagają wielu operacji na bazie danych. Taką operacji jest ...
Bazy danych i XML 2199 dni, 59 minut temu 189 źrodło rozwiń
Od wielu lat usługi REST wypierają stare dobre usługi SOAP (a można już chyba nawet powiedzieć, że wyparły). Kiedy zaczynałem tworzyć usługi REST oraz z nich korzystać, miałem w pewnym sensie wrażenia, że robimy krok w tył. W SOAP mieliśmy WSDLa, który opisywał usługę. Dzięki niemu Visual Studio mogło wygenerować wszystkie klasy, które następnie używałem do komunikacji z usługą. W przypadku usług RESTowych nie mamy czegoś takiego z pudełka. Więc bardzo często ...
W tym wpisie pokażę jak można otworzyć konsolę bezpośrednio z Visual Studio z od razu ustawionym katalogiem projektu. Dodamy opcję Git Bash do menu głównego Visual Studio 🙂
Dwa ostatnie wpisy na blogu dotyczyły sposób migracji schematu bazy danych. Migracje w Entity Framework oraz Fluent Migrator charakteryzują się tym, że cały proces migracji jest zapisany w klasach za pomocą api, które udostępnia dana biblioteka. Ilość sqla, którą piszemy w tych migracjach jest minimalizowana i sprowadza się głównie do wykonywania jakiś specyficznych rzeczy – np. skopiowania danych z jednego miejsca w drugie. Natomiast dzisiejsza biblioteka (DbU...
Bazy danych i XML 2226 dni, 18 minut temu 108 źrodło rozwiń
Założę, że programujesz obiektowo. W takim razie niemalże na pewno zdarzyło Ci się stanąć przed wyborem bibliotek w momencie tworzenia rozwiązania lub przeglądać stos technologiczny istniejącego projektu. Myślę, że się nie pomylę, jeżeli napiszę, że w większości, jeśli nie we wszystkich przypadkach przed Twoimi oczami mignął jakiś ORM. Czasem okazuje się też, że SQL jest wymagany tylko i wyłącznie dlatego, że ten konkretny maper stoi nad tą, a nie inną technologią bazodanową.
Bazy danych i XML 2242 dni, 1 godzinę, 54 minuty temu 186 źrodło rozwiń
Wysyłka email w ASP.NET MVC Wcześniej, czy później w aplikacji następuje potrzeba wysłania wiadomości email do użytkownika. W aplikacji ASP.NET MVC można zrobić to na wiele sposób. Możemy ręcznie przygotować treść wiadomości oraz wysłać ją z wykorzystaniem klasy SmtpClient. Możemy też skorzystać z tego, co daje ASP.NET MVC i użyć widoki do generowania treści wiadomości. W tym wpisie pokaże jak wykorzystać bibliotekę Postal do wysyłki email w ASP.NET MVC.Postal – przygotowan...
I really enjoy learning new architectures, design patterns, frameworks, libraries or in general – everything related to web development. I really do. But honestly, after quite long time all these stuff became a little bit… boring. To avoid possible burnout I decided to play with something completely different. My thoughts circled around functional programming (F#, Heskel), IoT, quantum programming in Q# and much more, but none of them felt right. Enlightenment ...
Sztuka programowania 2483 dni, 2 godziny, 39 minut temu 233 źrodło rozwiń
Cześć wszystkim! Oceńcie i bloga i wpis, wszelkie uwagi i rady mile widziane :) Wpis o wzorcu projektowym Łańcuch zobowiązań :) W skróce służy do szybkiego i łatwego przetwarzania żądań.
Architektura 2520 dni, 19 godzin, 57 minut temu 194 źrodło rozwiń
How to check if a number is a power of two