I’m going to step into shark-infested waters here a bit with this post, since there are some very heated opinions on both sides of this. I’ve spoken quite a bit in recent postings about websites, from the point of view of the website serving as the nexus of a company’s online presence. The vast majority of what I build are WordPress websites, because I primarily cater to the small business community. WordPress provides amazing flexibility at a great price. As long as you’re careful about plug-ins, you can get good longevity and reasonable software support with WordPress.
However, when it comes to developing an actual business application from scratch, over the years my go-to programming language has been ASP.NET for business web applications, with a MicroSoft SQL database, sometimes with wrappers for C++ API’s and such.
To explain what I mean by a web-based business application, let me give you an example. Back around 2005, plus or minus a year, I used ASP.Net to develop an application called Scantastic. (You won’t find it online; it was an internal tool.) Scantastic was a browser-based mobile-oriented application to perform real-time property inventory location updates by means of using a bluebooth barcode scanner with the mobile device. If you have no idea what I’m talking about, large companies like to know where there expensive assets are and they typically have databases to keep track of them. I used ASP.NET as the core of an application to go from carrying around stacks of paper, to doing look-ups and making updates in real time.
When you talk about any sort of a business application, one of the first questions you need to answer before you can design anything is the importance of the application – how available does it need to be? Does it have to be 24/7 with absolutely no exceptions? Or are maintenance windows outside of normal hours OK? This leads to other infrastructure questions about load balancing, clustering, and all sorts of technical stuff that you may need if your application needs to be “highly available” – but I’m wandering slightly off-topic a bit I suppose.
The reliability of your custom web application is something you need to consider, though. If you’re writing a custom app and it’s important to your business, I’d go with ASP.NET rather than any sort of PHP based platform for several different reasons.
First, the stuff is designed and intended to work together. That means you’re a lot less likely to run into any sort of interoperability problem if you stick with a core MicroSoft platform. All of the native data providers and whatnot will, for the most part, just work. In the event that something doesn’t work right, you only have to go to one place for support.
This is contrasted with any sort of MySQL and PHP-based environment where you’re patching together things that generally play quite nice together, but are, in truth, completely independent of each other. Any time you are dealing with such an environment and run into a problem, fixing problems is more complicated and takes longer.
The other issue is sloppy coding. The nature of ASP.Net and C# together are such that you’re more likely to build a better-structured program. This is contrasted with the completely free-form nature of PHP, where they may or may not write their code in a way that makes it easy for someone to make changes to later. With C# on the ASP.Net platform, I feel like you have more of a fighting chance. Why does this matter? It was, in fact, that very issue that prompted me to write this article. I recently found myself needing to change something about a website written in PHP, and as I dug into the code, I was flabbergasted at the short-cuts taken by the programmer that essentially crippled the software. It was actually incapable of performing what you’d think would be a basic function, and due to the way it was written it would have just been too much work to re-write the code. As that situation unfolded, I found myself saying, this would never have happened with a ASP.Net C# application. Perhaps I’m being idealistic but that was my reaction at the time.
Now, by no means am I diminishing the MySQL and PHP communities, because they have some amazing products and awesome user communities. You can really do some amazing things with their products and I wouldn’t hesitate to use them – for the right application. For a lot of lower-end business applications, I think they’re probably a terrific choice because they represent a great balance between cost and functionality – the primary concern of a small business owner.
In contrast, with the MicroSoft ASP.Net platform, you have a set of products all carefully designed to work together as part of a common roadmap.
So, if you find yourself considering having a custom web application built one day, think through the importance of the application first. Understand what it needs to do, and how available it needs to be to you. Then you can make a better decision weighing cost and functionality as you consider the ASP.Net and PHP/MySQL platforms. If you need a ASP.Net web application developed or want to strategize, feel free to send me a shout here on the website.