Multi-thread Producer Consumer

I’ve talked here about distributed systems, micro-services, Event Driven Architecture (EDA) with Kafka, RabbitMQ and that kind of stuff.

So, with this ecosystem, with events, scalable performance, to integrate systems and make the communication with each other, or even react to events, we usually adopt Queue platforms solutions to our systems.

And at this point there is a important thing to think: how my software will be able to respond to a massive events requisitions? Continue reading “Multi-thread Producer Consumer”

Image Resize with .NET

It is very common apps have some image processing. Mobile apps usually apply filters. Web apps can get a file from a upload and store it.

In this operations we could store image in different sizes, keeping desired patterns (of sizes) and optimizing the data traffic.

Because of operations like that, I created a helper to use in some of my projects, let me share it. Continue reading “Image Resize with .NET”

Process.Start();

The world of technology love web and mobile apps lately.

And we have a massive amount of tools and frameworks to go along. Such as Angular, Ionic, Xamarin, React… even some hybrid concepts like PWA.

But there are huge empires built in Java, .NET… legacy systems or even systems that needs to run in the desktop environment, with Forms or WPF.

For some of this I have a tip to show. The method Start() from Process class. We can find it into System.Diagnostics of the .NET Platform.  Continue reading “Process.Start();”

C# performance tips & tricks

Nowadays is common have distributed systems, or some microservices oriented applications.
These have a lot positive points, for example is easy to scale up, partial deploy, isolate behavior and responsibilities.

And yes, it isn’t perfect. We have some concern points, like the challenge to perform integration tests and communication performance (for instance, when we have round-trips between APIs over HTTP protocol communication).

But if you are designing and implementing something like a microservice API, maybe some lean adjustments can be done to improve performance… nothing so much usual, but when you think about an API with a lot of users accessing simultaneously, it can make a significant difference. Continue reading “C# performance tips & tricks”

Taking Advantage of Parallelism in .NET

Microservices, Data stream Processing, Event-Driven Architecture, CQRS… a lot of terms and buzzwords that represents the capacity of run process asynchronously in our softwares.

And they are good, but lets have a little break to think what kind of power we have right in our hands: the modern CPUs.

They usually have more than one physical core, and still manage to emulate more. Continue reading “Taking Advantage of Parallelism in .NET”

.NET, .NET Core and .NET Standard all together

Usually the first image illustrates the context of the post, but specially that one above, explain a lot the things right here.

Do you know what is the difference among .NET, .NET Core and .NET Standard?

Seem to be a big mess, but when you understand it you will realize that all of this is necessary and useful. Continue reading “.NET, .NET Core and .NET Standard all together”

Difference between abstract class and interface with a practical example

Do you know when use an Abstract Class instead of Interface?

What are the differences? How to describe them?

What about a practical example, implementing a repository based on the Dapper example? Continue reading “Difference between abstract class and interface with a practical example”