In the morning, visual studio crashed first thing with a ‘non-fatal’ error.
Then I was making a bug fix in a Xamarin.Forms app - changing a string in the UI. I deploy the app, but the change isn’t there. So I clean and rebuild. Then I redeploy. Change isn’t there. I uninstall the app from the simulator. I delete the output directory. I redeploy - still the change isn’t there. Xamarin was deploying cached packages and I had no idea. Imagine verifying a bug fix or change, which causes a crash, and not knowing because the updated package never gets deployed.
Every once in a while I accidentally double-click a xaml file - big mistake. I get to watch visual studio turn white and not respond for about 35 seconds - time to check email and try not to break something.
In the afternoon, I wanted to connect to my mac while doing work in the background - connecting to the Mac takes ages. Unfortunately that’s not an option - connecting to a server is a modal operation. I have no idea why and it frustrates the heck out of me. Even worse, they have flow problems. If you fail to connect to a Mac, you have to close and re-open the dialog before you can add a new one. You have to do this every single time Visual Studio crashes. Visual Studio crashes at least 5 times a day with even moderate use. Xamarin is a big culprit for the instability, but Visual Studio has its share of fuckups, including mainstream releases that will just stop you from running unit tests until they ship a patch. Or just break your build altogether.
Xamarin Forms is uniquely frustrating because it, for the last ~12 months of my active use, always had a bug in the latest version that affects my product. Every time I upgrade, one bug gets fixed, but another one is added. Their QA is nonexistent and it really shows. And it’s not little things- think controls just don’t render on some platforms, or toolbars are busted on iOS. The newest version has some long-awaited features, but I’m afraid to upgrade. Visual Studio is also really bad nowadays - I really, really, really avoid upgrading; it is usually painful and more than once I’ve had to totally uninstall and reinstall.
The build system is a nightmare. There’s a lot of complexity in Forms and a lot of room for things to go wrong. People come to me with build errors all the time, and the first thing I say is, did you hit the green button again? Because failing once doesn’t mean there’s a problem with your app. There’s all sorts of nonsense that happens with caching, msbuild instances interfere with each other - I’ve had to painfully run builds in serial because yes, running msbuild on two projects simultaneously will break both.
I’ve got a lot more complaints but I’m tired and want to keep it brief.
Xamarin.Forms is (and I recognize that much of the pain I described is really problems with other supporting tools) painful enough that I wonder if it’s worth the benefit of writing C#, and this is coming from a militant C# fanboy.
I was really hoping the Microsoft acquisition would lead to more robust QA efforts, but clearly not.