Saturday, December 17, 2011

SaaS that has ASPX in the URL? Run away.

This is not a Windows bashing post. I worked on Windows exclusively for about 10 years and it's what we run in our house. Developing for Windows is a great experience, with Visual Studio, C#, the .NET framework, Microsoft has made it so. That said...

Heard of SaaS? It's all the hotness after software vendors figured out that selling software for businesses to run on their own computers wasn't going to work anymore. Thanks to the fast-paced American business market and pointy-haired CIO types, we no longer have funds for local IT folks to deploy and operate machinery. So we'll pay 3x as much for a "hosted" solution. That's where SaaS comes in to rip us off offer a solution.

In any case, two of the most appalling SaaS products I've seen in the past year has been from vendors who based their stack all on Microsoft technology. For one of them, when you take a look at their product, it takes about 10 seconds to figure out this is a mishmash of ASP.NET 1.0, 1.1, 2.0 (and so on), components. Overall, It has the old and truly busted behavior of a Microsoft "web application" that uses Viewstate and iframes. God help you if you refresh or hit the back button. The other vendor didn't even support non-IE for the first 3 months of us being on their platform. How our people ever decided to use this, since we almost all work on Macs, I'll never know, but it's absolutely outrageous in 2011 if your website doesn't support Safari, Chrome and Firefox.

The problem with using extensive Microsoft libraries like this is that you are bound to what they implement. The web will improve. Compare the HTML and Javascript used in 2000 to that of a website today. When you're depending on Microsoft's "webforms" and such to generate that code, you are at their whims for your user's experience. Then when Microsoft decides to upgrade that experience, you'll need to upgrade, but oftentimes that legacy code won't be easy to upgrade. Consider the state of the art in .NET web tech from 2002 until now: porting all of that UX from Webforms 1.0 to ASP.MVC ... that's just not easy.

In general, I would run away from Microsoft tech for building a SaaS unless there are circumstances that require it. One is integration with other services on the Windows platform. Then it makes a lot of sense. Let's say your SaaS specifically helps people manage IIS instances for their own websites, and those customers want to use IIS. Fine, whatever.

On my last Windows project, I did the math on how much we'd save in software licenses by moving to Linux. It was only around $250K... not enough to justify the move. But having been removed from Windows for work for a year now, I'm fairly convinced that when you're building a service, you should go for Linux and FOSS, and it has nothing to do with up front cost. You just don't control your own destiny otherwise. Problem with MSVC? Bitch to Microsoft on their issue voting system and hope they fix it. Problem with GCC? Patch that shit. And being a customer of SaaS, I'm just not going to trust vendors that don't understand this.