DEV Community

Cover image for Ditching .NET and finding faith again after 10 years!
Keyvan M. Sadeghi for Functionland

Posted on

Ditching .NET and finding faith again after 10 years!

TL;DR .NET MAUI is a dope multiplatform stack and may well be the perfect candidate for your next app. Don’t dismiss it because it’s “Made in Microsoft.” You can check out Fx Files as a testimonial to its interop with JS, and the general new .NET direction.

My way or the highway! That's the prevalent mantra in Big Tech. Even from the grave, Steve Jobs’s guideline of “Be Incompatible!” is haunting us to this day — when we have a guest over and they can’t charge their phone with our cable! Worse yet, there’s always a “cult” of followers, belittling others who don’t fall in line under the same banner, constantly pointing out tech flaws from the other side, and they are so susceptible to confirmation bias from their peers. The same toxic pattern can sometimes be found in developer circles too.

Microsoft was no different under Steve Balmer (nor Gates). I should know because I was a die-hard Microsheep up until 2012 🙈. You had the Microsoft Universe to drown in, and to be fair it was quite compelling! Don’t you pity those poor backwards fellas who have to open a terminal to do the simplest things? Need an IDE? Behold the mighty Visual Studio! Need UI? Here you have WPF, putting the frontier of UX dev at your fingertips! And it’s all drag and drop, with seamless codegen that you can witness live! Also bear in mind, REAL software runs exclusively on Windows, do you know of a single enterprise app that’s elsewhere?

Time would prove all wrong, but back then these arguments seemed sound.

Microsoft is a fear factory. Oh, your team is still not Agile? You have to use our software suite that gives MANAGEMENT measurable VISIBILITY on what happens in your org!

During my studies, classmates were doing their homework in spaghetti C, while I swaggered by and showed off my shiny C# class diagram and glorious WinForms UI! I had a date with destiny though. The first job I landed was at a research lab in Hong Kong. Had a 2-week deadline to deliver a library written in Python, running on Linux, neither of which I’d ever touched! No longer did I have the luxury of being like “Pff, this weird shitty open-source stuff again!” The date was set and I needed to push my code into this other weird thing: GitHub. Thus began my journey. In the decade since, I delved deep into all that open-source stuff, convinced every employer to publish pieces of my work as open-source, ditched languages and frameworks left and right, and learned to be loyal to nothing if not innovation!

Given this history, I was highly skeptical when my friend mehrandvd pitched me .NET for development of our next app. We had, one might say, unrealistic expectations: a File Manager that runs on Android, iOS, Windows and macOS. It should handle local file operations like copy, rename, etc., as well as utilities like thumbnails, zip extraction and in-app file viewers. The same UI, we decided, should have another tab where you browse your “remote files.” These could be on any cloud provider, AWS S3 and such, or weirder places like IPFS. I.e. being “Backend Agnostic.” A developer implements an interface, submits the pull request, and the provider shows up as another configurable “source” for your files. We also wanted interoperability between one’s local and remote files, things like syncing a local folder on a remote provider.

Craziest of all, we wanted all these developed in just 3 months!

And I kid you not, Mehran and the team delivered! They even managed to squeeze in extra features like code highlighting! Here’s a peek:

Project on GitHub:

And here’s the app on Google Play and Microsoft Store:

Fx Files on Google Play

Fx Files on Microsoft Store

(iOS, Mac and remote file integration in an upcoming update.)

MAUI’s appeal is abstracting away capabilities of different platforms under the same API. For our use case, as an example, we needed to talk with four different file systems. MAUI offers these as a unified Storage API. Also in edge cases that require you to write platform-specific code, e.g. performance optimization for infinity scroll, you have the freedom to do so.

Another aspect that surprised me was the way Microsoft has started to play fair with others. MAUI code can work in tandem with other languages and frameworks in your stack. This was a hard requirement for us, since our IPFS integration is a polyglot of Go, Rust, JavaScript and other upstream 🐉s I’m not aware of. This is so unlike the Microsoft I knew! After all, they were once famous for their EEE strategy!

A few more data points like MAUI and I may revert to Microsoft believer again! Pivoting the corporate culture at this scale is nothing short of astonishing. I salute Satya Nadella and everyone involved in this shift. Eager to see more!

Your feedback is much appreciated as always. Hope to get acquainted with you in the comments section! ❤️

Latest comments (0)