If you’ve been listening to recent Coder Radio episodes or following this blog, then you probably know that I have been working on a side project (that I am no longer pursuing due to intense competition in the space and a general lack of interest on my part) in Microsoft’s ASP.NET MVC 4 and Windows Azure. Overall, I really liked the developement experience of the stack and Visual Studio is still the best IDE (if you like that sort of thing) on the market today and of course C# was a delight to work in. Unfortunately, the downsides are just not acceptable for the type of projects I work on or first party products I plan to develop; those downsides being the cost of Azure, the cost of SQL Server, and Windows Server.
Azure is awesome. In a lot of ways it is very similar to Heroku: it has easy to configure Git deployment and is easy to configure and deploy. Unfortunately, it also shares Heroku’s penchant for premium pricing. To be clear, both services are great for prototyping or event the 1.0 versions of a project, but if your project hits any sort of scale, you are going to be looking at some pretty hefty hosting costs.
SQL Server is interesting. I don’t know too much about it as it compares to databases I use on a regular basis (ie PostgreSQL). When I started looking into it, I was quickly derailed by cost. That’s right SQL server is one of those things that if you have to ask how much it cost you can’t afford it and that certainly turned out to be true for me. Though Azure does support MySQL, the default (and presumably prefered) implementation of MVC 4 is best used with SQL Server. Due to the aforementioned Azure hosting costs, I would likely want to migrate any successful projects onto dedicated servers or VPSs and that would mean having to pay for SQL Server licensing fees.
Speaking of licensing fees, let’s not forget Windows Server. To be fair, the cost of Windows Server is a lot less than SQL Server and seems to rolled into a lot of monthly VPS plans. Still, I really don’t like a lot of the decisions Windows Server makes, though Microsoft has made some effort to address this issues in Windows Server 2012. In a lot of ways I just prefer working with a Linux (Ubuntu if at all possible) server over Windows.
The natural question you may have is: “since you are scrubbing the project and don’t plan to use anything you may have learned about the stack, didn’t you just waste a lot of time?” I don’t think so. For one, I always feel that it is a good idea to broaden your horizons technically. More importantly, it was good to see how things are done in the more Windows centric world and it was a joy to interact with the .Net community. Comments? Questions? Share them with me on Google+ or Twitter. This post was made possible by Code Journal and Fingertip Tech, INC. If you are Github user please check out Code Journal and if you are interested in having an Android, iOS, or web app developed please contact me.