Language Compare Series: TUPLES in CSharp, TypeScript, and Rust

Introduction about the series I’ve been in the technology for more than a decade now, and one thing that really facinates me is when I get back to the roots of programming languages. When you just look at “coding” and not really have to deal with business requirements, what methodologies to use, and how to communicate effectively with your teams and stakeholders. This is what I particularly love about technology and programming languages, there’s always something new to learn....

January 2023 · Michael John Peña

“CQS (Command Query Separation) in Azure Functions”

Introduction Azure Functions made it very easy to create services on the cloud. It’s very simple to get started just like Logic Apps , but also extensible like a full ASP.NET Core application (if you’re using .NET). You also have a variety of language options to choose from, so it’s not just exclusive to C# or .NET. It uses a serverless architecture so that you don’t need to maintain any runtime dependencies, operating system patches, and infrastructure maintenance as well....

September 2022 · Michael John Peña

Creating native MacOS background apps with .NET

Introduction In the previous blog post , I covered how you can create Universal Apps for MacOS. But what if you actually want to create and run a head-less (no UI) application in your Mac using your favourite .NET framework and libraries? Then I have some good news for you, it’s possible, but then again - with some caveats. For those who are already familiar with Windows Services, with .NET, you traditionally create a Windows Service project using the ....

September 2022 · Michael John Peña

Creating MacOS universal apps in .NET

It’s been a while since the most mind-breaking thing happened to .NET developers who are also Mac users like me - the introduction of .NET Core (of course equally excited with Xamarin and Mono as well). But with .NET core which is supported by Microsoft themselves, we can now create self-hosted applications and deploy it to almost anywhere, including Macs. This means that if you want to create an application that you want to target Macs as the host (not an app), then ....

September 2022 · Michael John Peña

Using named pipes for interprocess communication in C#

There are multiple ways applications can communicate to each other. You can use HTTP, gRPC, gRPC, web sockets, shared databases, message brokers (and buses), and the list goes on. One of the overlooked fundamentals is the use of Pipes and Streams. Pipes - a communication channel between two processes. Streams - a data collection that moves from a source to a destination. Just think of the actual ‘pipe’ where water flows....

September 2022 · Michael John Peña

In Memory SQLite database on C#

If you’re running a .NET application that doesn’t require a database, one of the options that you can use is having In Memory Database. What this means is that you are using the machine’s RAM to store data for your application. There are multiple ways of implementing these: Plain C# object / list / dictionary / hash table Dependency Injection with proper lifetime (singleton/trancient/scoped) Using SQLite (preferred) Why use it?...

August 2022 · Michael John Peña