The Outbox Pattern implementation.
Architektura 2110 dni, 5 godzin, 58 minut temu 154 źrodło rozwiń
Najważniejsza wiadomość z tego tygodnia może być tylko jedna. Znalazłem wiele ciekawych tematów, ale król jest jeden. Chyba kiepsko idzie mi budowanie napięcia, ale co tam dasz radę. Gotowi? No to:Microsoft udostępnił jako open-source jedną z najbardziej używanych aplikacji Mówiąc wprost - Windows Calculator. Całe źródła są dostępne na GitHub: https://github.com/Microsoft/calculator. Powiem więcej jest już całkiem sporo issue zgłoszonych, a co więcej bardzo dużo PR. Wydaje się to dziwne, ale działa :) ...
Kiedy możemy powiedzieć, że architektura naszego systemu jest dobra ? Czy da się znaleźć rozwiązanie, które będzie się dobrze sprawdzać w wielu systemach przez długi czas ? Dobre określenie tego czego się szuka jest kluczowe dla sukcesu poszukiwań. Dlatego warto zastanowić czego oczekujemy od architektury naszych systemów i jakich kryteriów użyć, żeby określić czy jest ona faktycznie dobra.
Architektura 2112 dni, 6 godzin, 27 minut temu 231 źrodło rozwiń
Tech I installed Visual Studio 2019 RC recently and accidently forget to select English as default language. Of course, I realized that mistake after installation and I had to spend much too much time on searching the solution for this problem (yeah, that’s weird, I know). So, I decided to write a short tutorial how to do it. I’m 100% sure, the future me will thank myself for this :D. The easy way If you have many languages installed, you simply go to the Tools -> Options -> Environment -> Internatio...
Często zdarza się, że potrzeba zrobić screen jakiś kawałka ekranu. Ostatnio kolega polecił mi Screenpresso - mały programik, który przyda się każdemu.
Krótki opis jak wyglądają typy anonimowe w rzeczywistości.
Sztuka programowania 2112 dni, 6 godzin, 27 minut temu 83 źrodło rozwiń
Kontynujemy dział o dependency injection, w tym artykule już wykorzystujemy dependency injection w akcji :) do naszych potrzeb również w testach, wszelkie uwagi, rady jak zwykle mile widziane :)
Architektura 2112 dni, 6 godzin, 27 minut temu 130 źrodło rozwiń
How to add a type constructor or a static field to an interface? How to implement a parameterless constructor for a struct? Fourth part of .NET Internals Cookbook with answers to various C#/.NET/CLR questions.
W poprzednim wpisie pokazałem Ci, jak działa w SQL Server mechanizm Temporal Tables. Dzięki niemu możemy w prosty sposób bezpośrednio w samej bazie danych zapisywać historię zmian rekordów. O ile z użyciem tego w czystym SQL (np. za pomocą ADO.NET, Dapper lub innego Micro ORM) nie ma większych problemów, to już w przypadku Entity Framework są. W teorii standardowy Entity Framework nie wspiera Temporal Table. Co do wersji core – widziałem, że coś tam już jest, a...
Bazy danych i XML 2116 dni, 6 godzin, 20 minut temu 133 źrodło rozwiń
Projektując aplikacje, które używają dokumentowej bazy danych CosmosDB bardzo często stajemy przed wyzwaniem oszacowania ich kosztu oraz ich późniejszej optymalizacji. Zadanie to nie jest trywialne. Jeśli chodzi o koszt to zawsze możemy użyć kalkulatora. Wystarczy, że podamy tam parametry rozwiązania (liczbę nowych dokumentów, odczytów, …) oraz wgramy przykładowe dokumenty. Po uzupełnieniu tych informacji otrzymamy estymację kosztu rozwiązania:
Pisząc metody powinniśmy wyodrębniać niskopoziomowe operacje do osobnych metod. Krótka myśl po pewnym code review...
Sztuka programowania 2116 dni, 6 godzin, 20 minut temu 69 źrodło rozwiń
Dlaczego niedbanie o jakość kodu ma fatalny skutek dla planowania.
Sztuka programowania 2118 dni, 5 godzin, 55 minut temu 207 źrodło rozwiń
Domain Model validation in context of Domain Driven Design
Architektura 2118 dni, 5 godzin, 55 minut temu 123 źrodło rozwiń
Dobra architektura kojarzy się zwykle z bardzo dużym wysiłkiem przy starcie projektu. Czy jednak musi tak być? Czy nie da się tego zrobić lekko i rozwijać architektury wraz z rozwojem potrzeb projektu? Co tak naprawdę sprawia, że architektura kojarzy się z ogromem pracy? Warto odpowiedzieć sobie na te pytania, bo system nie może nie mieć architektury.
Architektura 2119 dni, 6 godzin, 16 minut temu 266 źrodło rozwiń
Jakiś czas temu miałam okazję uczestniczyć w pracy w warsztatach prowadzonych przez Radka Maziarkę na temat Event Stormingu. Co to jest te Event Stormin i czemu o nim tak głośno ostatnio? O tym w poście.
How to create object without calling constructor? How to call constructor multiple times? How to create an instance of an interface? Third part of .NET Internals Cookbook with answers to various C#/.NET/CLR questions.
W dwóch ostatnich wpisach na blogu omawiałem zapis historii zmian danych w aplikacji z wykorzystaniem mechanizmu Audit z Entity Framework Plus. Mechanizm tamten działał w momencie, gdy korzystaliśmy z Entity Framework. Jednak nie zawsze chcemy lub możemy korzystać z tego ORMa. Dlatego w dzisiejszym wpisie chcę Ci pokazać mechanizm, który działa zupełnie inaczej i jest dostępny w samym silniku SQL Server. Mechanizm ten nazywa się Temporal Tables i jest dostępny ...
Bazy danych i XML 2123 dni, 6 godzin, 27 minut temu 168 źrodło rozwiń
Przypisanie istniejącego obiektu do innej zmiennej niesie ze sobą pewne ryzyko. Należy być świadomym, czym różni się i co zawiera w sobie typ referencyjny, a co typ wartościowy. O typach wartościowych pisałem już nieco podczas omawiania struktur, w tym materiale. Tam też przedstawiłem problem przypisywania typów referencyjnych do innej zmiennej, który zaraz przypomnę.Przypisywanie typów wartościowych Jak sama nazwa wskazuje typy te zawierają w sobie wartość, która zostaje im przypisana. Stwórzmy w naszy...
Sztuka programowania 2123 dni, 6 godzin, 27 minut temu 135 źrodło rozwiń
Dzisiaj, bez oficjalnej definicji. Jedynie wspomnę o tym, o czym – w kontekście Interface Segregation Principle – należy wspomnieć. Zasadniczo ISP mówi o „rozczłonkowaniu” dużych, wielozadaniowych kontraktów i interfejsów na mniejsze, posiadające jedną konkretną odpowiedzialność. Dzięki czemu, każdy element który konsumuje taki interfejs, ma dostęp tylko do określonej funkcjonalnośći. Intencją ISP jest utrzymanie systemu luźnych powiązań między obiektami, ułatwienie konserwacji systemu, testowania, czy ...
Sztuka programowania 2123 dni, 6 godzin, 27 minut temu 138 źrodło rozwiń
Sztuka programowania 2124 dni, 6 godzin, 7 minut temu 153 źrodło rozwiń