Open source software can provide a lower-cost option to incorporating certain features into your website. The costs associated with open source are based on the complexity and quantity of custom programming and coding necessary beyond the basics of the open-source program. Typically, an open-source software program provides a basic shell that programmers worldwide are voluntarily (and continually) coding into a better and better product. From this shell, we can customize the program for each client. One of the best things about an open-source option is its community of support.
To understand what is meant by the term “open source," one common example is the age-old practice of sharing recipes. You share your chocolate cake recipe with Caroline and she adds pureed beets that make your recipe even better. She shares it back with you and also to her other friends and now you're all adding beets. Open source software is similar, though in the modern age there are a lot more cooks in the kitchen! But, that community of support and a collective interest in the best software/chocolate cake drives the process.
So, when we face the question of what software to employ for different projects, we are continually analyzing new software (open source or not) as it becomes available. For example, when we’re asked to incorporate a content management system (CMS) into a website design, we may not necessarily recommend the most feature-rich solution as its capabilities may exceed that particular client's needs. Alternatively, we often recommend Drupal, a lower-cost open-source solution. Drupal provides the flexibility we need to create custom solutions within specific budgets. However, Drupal is not infinitely flexible. If the requirements are too complex, we may recommend a more comprehensive, full-service software solution, such as Ektron.
To recommend a solution, we first need to understand both the client’s immediate needs and their predicted (or desired) future growth.
In a recent conversation with a prospective client, we provided our logic for recommending a Microsoft.Net platform over an open-source PHP platform that was using a My SQL (structured query language) database.
On our end, the Microsoft.Net framework provides precise control over the entire process of developing a data-rich business application. For the client, it can provide a cost-effective approach to their future plans, such as being able to make website updates themselves.
As for the .Net versus open-source PHP debate, both have their pros, and their cons. We typically recommend using PHP for projects that require reliance on a CMS for small- to mid-size businesses. Some pros of PHP/MySQL include Joomla, the aforementioned Drupal, Magento (an e-commerce storefront), and WordPress.
For projects that involve database integration, we suggest the .Net platform because it provides the best and easiest way to develop data-intensive applications. It also provides excellent development tools (which are now available for free), and, many of the third-party plug-ins make coding easier and therefore faster. As for the myth that .Net technologies are expensive to implement, that is no longer true. Previously, you had to buy their integrated development environment (IDE) but today, those same tools are now free.
Compiled vs. Interpreted
From a technical point of view, .Net is compiled and PHP is interpreted. And, we know that .Net (compiled code) is almost always going to run faster than PHP (interpreted code). In addition, .Net is very structured from an object-oriented point of view. PHP started introducing object-oriented options with PHP 5, but it is still not on par with .Net. Using .Net also allows for easier updates in the future, for example, if the client wanted to stream graphs and charts to a third-party site.
In software, as in life, there are few cookie-cutter solutions. Open source fits some, but not all. The ability to listen to clients’ needs, understand their budgets, and plan for the future, are the first steps to a cost-effective and efficient solution for any client.