Druga część przeglądu źródeł .NET Core. Tym razem poszukujemy wzorców strukturalnych.
Architektura 2924 dni, 23 godziny, 51 minut temu 206 źrodło rozwiń
W źródłach .NET poszukujemy zastosowań wzorców projektowych. Mało tekstu, zero UML, dużo kodu.
Architektura 2929 dni, 39 minut temu 414 źrodło rozwiń
Reading time ~6 minutes This post is covering a subset of what I am talking in my talk How I stopped worrying and learned to love parallel processing (currently only in polish). This will cover on how, in terms of performance, AsParallel can kick you in a place where it hurts a lot, simultaneously being a blessing in terms of… performance. How is that? Let’s look at someHistory AsParallel was introduced as an extension to LINQ with TPL in .NET 4.0. In theory, it’s God’s sent. The promise w...
Architektura 2941 dni, 7 godzin, 57 minut temu 117 źrodło rozwiń
I’ve been recently drawn twice into an open discussion on when to throw exception in application’s logic. I’ve had my opinions, others have theirs but what lead me to this post is that such fundamental topic is extremely opinionated, even among same language/environment developers. In next few paragraphs I’ll try to sum up major proposed approaches of using exceptions (both those which abuse them ...
Architektura 2958 dni, 23 godziny, 43 minuty temu 150 źrodło rozwiń
Architektura 2976 dni, 4 godziny, 13 minut temu 277 źrodło rozwiń
Od pewnego czasu chodził mi głowie pomysł by napisać coś o DDD. Tak się złożyło, ze u mnie w firmie powstaje element systemu o nazwie Audit, który będzie służył do zarządzania (planowanie, wykonanie, raportowanie) audytami. Zdecydowałem się pokazać na blogu jak napisać taki system w oparciu o reguły DDD (głównie ze względu na to, że w obecnym projekcie nie korzystamy z DDD). Aby urealnić cały proces, wymagania które będziemy implementować będą pochodzić z rzeczywistej domeny. Oczywiście będzie ...
Architektura 2983 dni, 7 godzin, 58 minut temu 261 źrodło rozwiń
Architektura 2985 dni, 3 godziny, 14 minut temu 733 źrodło rozwiń
odcinek DevTalk to nie przelewki, oj nie. Dzisiaj trochę… potaplamy się w błocie. Do rozmowy zaprosiłem Jarosława Pałkę: znanego i uznanego programistę, architekta, managera, team leadera, prelegenta, bloggera i co tam jeszcze. Spotkać możecie go na bardzo wielu konferencjach, gdzie opowiada o Javie i ciężkiej orce w naszym zawodzie. Na Twitterze: @j_palka.
Architektura 2988 dni, 9 godzin, 46 minut temu 92 źrodło rozwiń
As I announced in the last part, our CQRS/ES journey is almost finished! But before it happens we need to take care of read side of our application. However, before we move forward to the implementation, it’s worthwhile to explain why do we need a read side? After all, we have an excellent data source called Event Store which allows us to reconstruct every domain object in our system. What’s, even more awesome is the fact that we can „time travel” in our domain by not applying all events in our domain ob...
Architektura 2991 dni, 5 godzin, 2 minuty temu 154 źrodło rozwiń
It’s been quite a while since I’ve started gathering some knowledge about the microservices architectural pattern that’s been on a hype recently. After reading many articles, some books like Microservices in .NET Core and talking with smart guys in the Devs PL Slack channel, I’ve eventually decided that the time has to come to try to make the microservices happen in the real world project. That’s the beginning of my journey into the distributed programming and architecture, so please keep that in mind wh...
Architektura 3000 dni, 11 godzin, 35 minut temu 253 źrodło rozwiń
Reading time ~2 minutes I’m taking a short break from Hangfire series, but I will get back to it. This time - Where did my memory go ? Or to be more exact: Why is this using so much memory? The story starts with one IIS application pool using around 6 Gigabytes of memory on one of our test environments. It was several times above the values that we expected it to use, so we decided to investigate. Without much thinking we fired up Visual Studio installed on the test server, and attached to the proce...
Architektura 3000 dni, 11 godzin, 35 minut temu 64 źrodło rozwiń
All right, after a few short breaks, I’m finally ready to continue our journey, during which we discover Command Query Responsibility Segregation pattern along with Event Sourcing. In a previous part, we discovered the role of events and ES in our application and to be honest we’re almost done! But before that, we need to focus a little bit on transporting our commands and events. That’s why today’s post will be dedicated the buses. Okay, let’s start! RabbitMQ and EasyNetQ To accomplish our task, we n...
Architektura 3003 dni temu 280 źrodło rozwiń
Reading time ~6 minutes This is a sixth part of a series:part 1 - Why schedule and procrastinate jobs?part 2 - Overview of Hangfiepart 3 - Scheduling and Queuing jobs in Hangfirepart 4 - Dashboard, retries and job cancellationpart 5 - Job continuation with ContinueWithpart 6 - Recurring jobs and cron expressions Parts 3, 4, and 5 covered the BackgroundJob class responsible for enqueuing single jobs (fire and forget). This post will cover RecurringJob class exposing API for recurring jobs (as the name ...
Architektura 3004 dni, 4 godziny, 56 minut temu 45 źrodło rozwiń
[EN]Don't do it now! Part 5. Hangfire details - job continuation with ContinueWith – IndexOutOfRange
Reading time ~3 minutes This is a fifth part of a series:part 1 - Why schedule and procrastinate jobs?part 2 - Overview of Hangfiepart 3 - Scheduling and Queuing jobs in Hangfirepart 4 - Dashboard, retries and job cancellationpart 5 - Job continuation with ContinueWithpart 6 - Recurring jobs and cron expressions Part 3 covered almost all functions in BackgroundJob class except for ContinueWith functions family. So here we go :) The fact that it has the same name as a System.Threading.Tasks.Task funct...
Architektura 3011 dni, 8 godzin, 9 minut temu 77 źrodło rozwiń
Reading time ~3 minutes This is the fourth part of a series discussing job scheduling and Hangfire details:part 1 - Why schedule and procrastinate jobs?part 2 - Overview of Hangfiepart 3 - Scheduling and Queuing jobs in Hangfirepart 4 - Dashboard, retries and job cancellation This part will cover few small topics:dashboardretriesmore technical part of the Hangfire.BackgroundJob class APIjob cancellationDashboard Let’s start with the administrative dashboard because it gives a good background for the ...
Architektura 3018 dni, 13 godzin, 22 minuty temu 55 źrodło rozwiń
Reading time ~2 minutes This is the third part of a series discussing job scheduling and Hangfire details:part 1 - Why schedule and procrastinate jobs?part 2 - Overview of Hangfiepart 3 - Scheduling and Queuing jobs in Hangfirepart 4 - Dashboard, retries and job cancellation This part will focus on the basic scheduling API of Hangfire. The easiest way to create a fire and forget job is by using the classHangfire.BackgroundJob and its minimalistic (and this is a complement) API of static functions:Enqu...
Architektura 3036 dni, 19 minut temu 99 źrodło rozwiń
Każdy czegoś nie lubi, ja na przykład nie lubię gdy ktoś siada na moim krześle, a potem ja muszę na nim usiąść, fuj – takie ciepłe, zawsze chwilę odczekuje. Albo NULL – to ciągłe sprawdzanie czy zmienna nie jest nullem, a potem jeszcze specjalna obsługa tu i tam i jeszcze tam, a potem tam i tam niosą, się ify po całym projekcie, albo wyjątki – BLEHSposób Na szczęście na jedno i drugie jest sposób; każdemu mówię, że na moim krześle się nie siada i głośno warczę gdy ktoś łam...
Architektura 3040 dni, 7 godzin, 49 minut temu 348 ź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 3044 dni, 12 godzin, 31 minut temu 147 źrodło rozwiń
W jakich sytuacjach powinniśmy budować portal internetowy od podstaw, a kiedy skorzystać z gotowego rozwiązania? Poniżej znajdziecie listę przypadków w których (moim skromnym zdaniem) powinniśmy zdecydować się na jeden lub drugi scenariusz. Mam nadzieję, że okażą się one przydatne dla kogoś, kto być może stoi przed podobną decyzją w niedalekiej przyszłości
Architektura 3044 dni, 12 godzin, 31 minut temu 158 źrodło rozwiń
Reading time ~2 minutes In the previous post I’ve wrote about why I think the ability to schedule tasks for later execution is a fundamental technical feature, but also a must have from a business point of view. We are passed the whys, so lets get to the hows. The answer is simple - Hangfire. I’ve wrote about it here, here and here, so yeah, I like it. Hangfire is an amazing library. It has proved itself in my pet project (cookit.pl) and in a huge ERP system that we are building at work, where we repla...
Architektura 3047 dni, 11 godzin, 38 minut temu 153 źrodło rozwiń