Just delved into MartenDB for my latest project – a versatile database solution that seamlessly handles structure creation and excels in event support, all built on PostgreSQL. I've shared my initial insights and migration plans in my latest blog post. Dive in for a deeper look!
Mikroserwisy muszą być wspomniane przynajmniej raz na kilka artykułów, podobno w innym wypadku blog jest uznawany za archaiczny. Korzystając z tej architektury łatwo jest jednak strzelić sobie w stopę. Systemy oparte na zdarzeniach mają wiele zalet - niski coupling, ułatwiona komunikacja z biznesem oraz duża elastyczność.
Architektura 1333 dni, 1 godzinę, 43 minuty temu 135 źrodło rozwiń
Ósmy odcinek kursu „Distributed .NET Core” jest już na YouTube więc do dobry moment, aby kontynuować kolejne zagadnienia związane z naszą implementacją mikroserwisów. W poprzednich wpisach omówiłem kolejno zapis i odczyt danych z systemu bazującego na wzorcu CQRS tym samym „zamykając” temat komunikacji użytkownik-system. Istnieje jednak jeszcze jedna, istotna forma komunikacji, niewidoczna dla zewnętrznych podmiotów. Mowa o wewnętrznej wymianie informacji między konkretnymi usługami. Po co usługi komun...
Architektura 2120 dni, 16 godzin, 11 minut temu 260 źrodło rozwiń
Zapraszam do polemiki z zarzutami wobec event sourcingu. Jak w każdym podejściu, odpowiednio zastosowane, w otoczeniu dobrze dobranych komponentów pozwala na wiele. Złe wybory narzędzi powodują zupełnie odwrotny efekt.
Architektura 2801 dni, 23 godziny, 40 minut temu 63 źrodło rozwiń
So far we learned about the whole concept of Command Query Responsibility Segregation (CQRS) and Event Sourcing. We also implemented domain objects which Aggregate consists of, and we expressed user’s intentions using Commands executed by Command Handlers. Today we’ll discover the role of events, and more importantly, we’ll introduce Event Sourcing to our Awesome Calendar project. One more thing. As I mentioned in one of the previous parts, I’m currently working on this project wich means that some code ...
Architektura 3013 dni, 2 godziny, 27 minut temu 147 źrodło rozwiń
Dzisiaj wracam do tematu obsługi ekranów dotykowych, o której pisałem w jednym z ostatnich wpisów. Wspomniałem wówczas, że w Internet Explorer wygląda to wszystko trochę inaczej… I na tym mam zamiar się w skupić w dzisiejszym poście. Na wstępie zaznaczę, że zdarzenia wskaźnika (ang. pointer events) pojawiły się wraz z wypuszczeniem przez Microsoft Internet Explorera 10 – w wydaniu tym, wprowadzono zupełnie odmienny od opisanego przeze mnie poprzednio, model obsługi zdarzeń zarówno myszki jak i dotyku. M...
Dzisiejszy wpis jest pierwszym z dwóch, w których opiszę jak obsługiwać ekrany dotykowe w języku JavaScript. W pierwszym z nich zajmę się przypadkiem podstawowym czyli zdarzaniami standardowo dostępnymi w tym języku, a w drugim… jak się być może domyślacie, przypadkiem szczególnym, a mianowicie obsługą zdarzeń dotyku w Internet Explorer… No bo przecież IE nie może robić tego tak jak inne przeglądarki… Ech;)
O zdarzeniach było już wielokrotnie na blogu. Pokazywałem różne sposoby wywołania zdarzeń. Najpopularniejszym chyba sposobem jest poniższy wzorzec:publicclass Person { publicevent EventHandler FirstNameChanged; virtualprotectedvoid OnFirstNameChanged(EventArgs e) { if (FirstNameChanged !=null) FirstNameChanged(this, e); } } Jeśli wielowątkowość wchodzi w grę wtedy lepiej napisać:publicclass Person { publicevent EventHandler FirstNameChanged; virtualprotectedvoid O...
Sztuka programowania 4411 dni, 49 minut temu 99 źrodło rozwiń
Programując, wcześniej czy później będziemy zmuszeni nauczyć się obsługi zdarzeń (events). Opisując program z laborek wyjaśnię jak korzystać ze zdarzeń według wzorca .NETu. Zdarzenia Początkujący programiści mogą nie wiedzieć czym są zdarzenia, ale zapewne ich używają. Bo czy nie zdarzyło się komuś wpisać fragmentu kodu do Form1Load(…) lub button1Click(…)? Podejrzewam, że takich osób jest niewiele. Tak jak w życiu codziennym, tak i w programowaniu są pewne zdarzenia na które musimy odpow...
Niniejszy post jest kontynuacją cyklu o Reactive Extensions dla .NET ([RX 1], [RX 2], [RX 3], [RX 4], [RX 5], [RX 6], [RX 7], [RX 8], [RX9], [RX10], [RX11]) stanowi on kontynuację przykładu z poprzedniego wpisu i skupia się na kompozycji zdarzeń.Przejdźmy może do ciekawszego przykładu, w którym będziemy rysować linie. Linia będzie rysowana poprzez wskazanie przyciśnięciem lewego klawisza myszki jej początku, przesunięcie myszki i wskazanie końca linii poprzez zwolnienie lewego przycisku. Wymaga to złożen...
Dzisiaj prosta i częsta sprawa – obsługa zdarzeń. Zdefiniujmy fikcyjne zdarzenie:class SampleClass { publicevent EventHandler EventHappened; } Następnie mamy jakąś metodę, która po wykonaniu własnej logiki, wywołuje zdarzenie. Jak powinno to zostać prawidłowo wykonane? Zacznijmy od niepoprawnego podejścia:class SampleClass { publicevent EventHandler EventHappened; privatevoid Method() { EventHappened(this,new EventArgs()); } } Metoda spowoduje wyjątek jeśli żadne z...
Po chwilowej przerwie w blogowaniu postanowiłem wrócić to tego niezwykle przyjemnego zajęcia. Dziś chciałbym przedstawić zagadnienie zdarzeń rozproszonych jakie można zastosować w aplikacjach klient/serwer pisanych w .NET Framework. W swojej karierze spotkałem się z produkcyjnym użyciem dwóch rodzajów zdarzeń, pierwsze polegało na użyciu Notification Services wysyłanych przez Microsoft SQL Server 2005, jednak...
Programowanie rozproszone 5113 dni, 21 godzin, 40 minut temu 101 źrodło rozwiń