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 actually 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 cases. That’s not necessarily bad, but it’s nice to be able to switch between technologies based on the type 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 available 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 available 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 support WordPress. In most cases, 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 benefit 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 services 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 underlying engine is a good option.
In case you don’t know, LAMP stands for Linux-Apache-MySQL-PHP, which is a very common and powerful set of technology components 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. available 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 “environment”. 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 components properly installed. While the installers for the LAMP components have definitely improved, they still 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 available. 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 means 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 means by things like “host unlimited # of domains”. In many cases they just mean 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 still managed. When it came time to create a more advanced web site, however, I quickly decided to switch over to ASP.NET and use Visual Studio. Debugging was a snap and the coding was made much easier thanks to Intellisense and Visual Studio’s ability to “import” web services 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 advanced web site but don’t want to spend 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.