Not long ago, a friend of mine sent me an email asking for my opinion on whether a site he was developing should be done using WordPress, LAMP, or ASP.NET. I’ve used all of those, but have always been so focused on the details and learning them that I never really thought about the great question of “What technology should be used for a given site?”. That is such a good question that I decided to put my thoughts on paper and help provide some education to others.
Some people don’t have the skills and ability to truly be able to choose the most appropriate technology. They know one thing and that is going to have to be made to work in all situations. That’s not necessarily bad, but it’s nice to be able to switch between technologies based on the kind of site. The important thing to realize in web site development is that one technology does not fit all.
I have several web sites currently running WordPress. I originally thought of WordPress as just a blogging platform. While that is certainly its main use and what it is optimized for, you can definitely use it to create a more “traditional” looking web site. It is very configurable and there are tons of custom plug-ins obtainable that can allow you to add RSS feeds, SEO tags, voting, etc. Since WordPress is developed using PHP and MySQL, it is also possible to create your own plugins and customize your site template. Oh, and that’s the other incredibly awesome thing about WordPress — the templates! There are literally thousands of free WordPress templates obtainable for download. If you can’t find one that fits the theme of your site than you aren’t looking hard enough.
Another nice thing about WordPress is that you can easily find web hosting providers that sustain WordPress. In most situations, you can click an install link and have WordPress properly installed on your site in a few seconds. Then you go to the WordPress admin console and configure your site. It is all very easy. You can upload multiple templates and easily switch between them. It is also easy to make minor changes to the templates (like changing tag lines, colors, etc.).
The other assistance of WordPress is that it is a blogging platform and the search engines love blogs. You can configure your WordPress install to automatically ping one or more blogging sets whenever you add a new post or page. That way they know your site has changed and they should come index your site again. If you want your site to be found then using WordPress as the inner engine is a good option.
In case you don’t know, LAMP stands for Linux-Apache-MySQL-PHP, which is a very shared and powerful set of technology elements used for building web sites (and did I mention completely Open Source and free!). If you want complete control over your web site, then LAMP is a good option. There are plenty of examples, free scripts, etc. obtainable on the web site to help you get started. There are also plenty of free editors and tools to help you along. The downside of LAMP is that it is hard for you to create your own development “ecosystem”. Since most of us run some flavor of Windows as our desktop operating system, we would need to use something like VMWare or Virtual PC to create a virtual machine running Linux. The next challenge is getting all of the elements properly installed. While the installers for the LAMP elements have definitely improved, they nevertheless don’t compare to the ease of installing a Windows-based application. The next challenge with LAMP is debugging. It would be nice if we all wrote perfect code, but the reality is you need the ability to debug. There are PHP debuggers obtainable. A good one is going to cost you some money though.
One of the best things about LAMP is that there are TONS of web hosting providers out there for you to pick from. The reason is quite simple — LAMP is completely open source, so it there is very little cost for the hosting company to bear. That method more margin for them!
Microsoft’s contribution to web site development is ASP.NET. You can use any .NET language (C#, VB.NET, Python.NET, etc.) to develop an ASP.NET based site. In my opinion, the best thing about ASP.NET is the fact you can use Microsoft Visual Studio for you development tool. Visual Studio is the best tool out there. Yes, it costs money, but you definitely get what you pay for. The other nice thing about ASP.NET is that you can easily develop on your Windows-based desktop or laptop.
It is harder to find a good ASP.NET hosting provider. Believe me, I’ve looked! And I’ve used several different ones. The ASP.NET providers lag behind the LAMP providers in terms of what they offer. You also need to be careful and really understand what the provider method by things like “great number unlimited # of domains”. In many situations they just average you can have an unlimited # of domains point to your single web site. That probably isn’t what you want.
I mentioned the use of Visual Studio before. That tool is awesome and makes development SOOOO much easier. I did quite a bit of development using LAMP and got some sites up and running. I used Eclipse with a PHP plug-in and it worked pretty good. I didn’t have Apache running or Linux, so couldn’t really debug but I nevertheless managed. When it came time to create a more progressive web site, however, I quickly decided to switch over to ASP.NET and use Visual Studio. Debugging was a break and the coding was made much easier thanks to Intellisense and Visual Studio’s ability to “import” web sets and make them easier for me to call from my code.
Making the Right Choice
Each of the technology options has pros and cons. If you want to get a site up quickly and it will be displaying basic information (text, images, video) then WordPress is a great option. If you want a more progressive web site but don’t want to use much money on development tools, then LAMP is the best choice. Finally, if you already have Visual Studio or know .NET programming, then ASP.NET is a good option. If you’re really lucky and can know all three then you can use the right tool for the job no matter what.