Developers love choice. And open source developers have choice aplenty. There is a veritable avalanche of technologies that can be used to build open source applications. Of these technologies, the LAMP stack (Linux, Apache, MySQL, and PHP) has emerged as one of the most popular open source development and deployment platforms. Open source ISVs who embrace LAMP technologies (SugarCRM for example), have gained legions of volunteer developers who contribute time, energy, and ideas (although for every open source success story there are hundreds of projects that never gain critical mass).
The commercialization of open source raises an interesting question. What platform choices should the customer of an open source application have? The reality is that CIOs and IT directors care little about what language an application is written in. What they do care about is the platform the application runs on. Enterprise data centers may have hundreds, if not thousands, of servers running applications that are central to success of the business. Large-scale enterprises do not strictly focus on the upfront cost of technology. Considerations such as platform manageability, reliability, and availability of skill sets are the important factors. The cost of encountering difficulties in these areas can easily swamp the few dollars saved by adopting low- or no-cost software.
A Window to the World
Open source ISVs seeking to offer their customers choices (and who wouldn't want to do so) should seriously consider supporting Microsoft® Windows® as a deployment option. Some of the largest sites on the Internet are run on Microsoft technologies and many enterprises have standardized on cost efficient Windows Server®. Selling a Linux-only application into a Windows-centric environment can be difficult. IT managers are understandably hesitant to support yet another operating system, especially one that is considered more challenging to administer.
Let's look at why you should offer your customers choice. The most important reason, of course, is that the market demands it. The success of Windows as an enterprise deployment platform virtually guarantees prospects will ask, "Does your application run on Microsoft Windows?" Answer no, and you're out of the game. Not only will you have difficultly selling into homogenous environments, you will also miss out on the vast marketing and business development resources available to companies that support Windows.
The economic benefits of becoming a Microsoft partner (which is available to companies that support Windows) can be especially important to early-stage open source companies. Your ability to attract venture capital is greater given a relationship with Microsoft than without. Becoming a Microsoft partner can help open up a huge world of new opportunities. What does this mean to you? Well, for starters you may get entrée into the enterpriseand how much is that worth to your company?
It's a Simple Switch, Really!
Supporting the Windows platform does not require rewriting your application into ASP.NET or anything so drastic. The truth is that little technical work is needed to make a LAMP application into a good citizen in the world of Windows. PHP is inherently a platform independent language. You can generally swap out the Linux, Apache, and MySQL part of the LAMP equation for Windows Server, IIS (Microsoft's Web server), and SQL Server with little to no effort.
The effort required to port your code to Windows Server is minimal. It's simply the new platform your PHP application runs on. IIS support is similarly a no-brainer. PHP industry leader, Zend Technologies, has done all the heavy lifting for you. In October of 2006, Zend and Microsoft announced a technical collaboration partnership to improve the interoperability of PHP on the Windows Server platform. Central to this collaboration is Microsoft's support for the IIS add-on component, FastCGI. FastCGI solves the CGI performance problem (it's 4x to 8x faster than CGI) and also overcomes the thread-safety problems of many PHP extensions.
Upgrading from MySQL to SQL Server is no problem either (just enable the mssql modules in your PHP installation). Developers may wish to take advantage of the more advanced feature set of SQL Server. For example, SQL Server offers native XML support, a robust set of ETL (extract, transform, load) tools, and more sophisticated query optimization capabilities. The other reason to consider SQL Server is it's ubiquity in the corporate world. While MySQL is a good product, it may not make sense from an administrative standpoint to add an additional database server, when SQL Server is already deployed in the enterprise.
As most every technical detail of migrating to Windows is already taken care of, you only need deal with creating a Windows-compatible installation (MSI) file. This can be done without purchasing a single Microsoft development tool. Back in 2004, Microsoft released the "Windows Installer XML" (WiX) on SourceForge. WiX is a toolset for building Windows installation packages from XML source code. And to top it off, WiX is a no-strings proposition as it was released under the Microsoft Community License agreement (be sure to learn more about Microsoft's Shared Source program).
What's Next?
The ROI for supporting Windows is compelling. A small investment in moving your PHP application to the Windows platform can help open markets previously off-limits. Open source ISVs should seriously consider taking advantage of the benefit offered through the Microsoft NXT initiative. This offering helps you enter the fast-growing enterprise market for solutions that run on Microsoft technology. When you participate in NXT, you get technical, sales, and marketing support, including guidance and resources to help ensure that cross-platforming your solution to Microsoft technologies is a success.
*This article was commissioned by and prepared for Microsoft Corporation. This document is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS SUMMARY.