In the countdown to the SilverStripe CMS 2.4 release, we'll be running some interviews with people involved in key aspects of our upcoming release.
First up is Sean Harvey, one of SilverStripe's early employees. Sean has been working for more than a year now on various improvements in SilverStripe to do with the Microsoft platform, and answers some questions put to him below:
SilverStripe is an open source software written in PHP. Why is it important to support Microsoft technology?
Because a lot of our customers and developers want it. The number of people downloading and installing SilverStripe on Windows is sometimes close to half the downloads we get in a month. A lot of these installs are for trial or development purposes but, as Microsoft improves support for PHP on Windows Server, we're increasingly seeing SilverStripe running on Windows in production.
So what's the biggest advance that SilverStripe 2.4 brings in terms of supporting Microsoft technology?
That you can run SilverStripe on Microsoft SQL Server 2008. We've officially supported running SilverStripe on Windows for years, but you still needed to use MySQL for its database. With 2.4, the full server stack can be in Microsoft technology: operating system, web server (IIS), and database. To achieve this, several people worked on an object-oriented database abstraction layer, which allows for SilverStripe to elegantly run on a number of different databases. The first database beyond MySQL we got production-ready was Microsoft SQL Server 2008, dictated by the fact that there were several Government agencies that wanted it for their production environments.
How does SQL Server support change the SilverStripe install process?
There's two ways to install SilverStripe on Windows. The most commonly used and simplest method is using the Web Platform Installer via Microsoft's Web Application Gallery. The other is manually setting up your web server environment and using our PHP-based installer, which offers more control over your configuration. Either way, when SilverStripe 2.4 is released, the installers will ask which type of database you want to install onto, and if you choose Microsoft SQL Server 2008, it will set up the whole application for you within seconds. In the Web Platform Installer, the choice is presented like this:
If you do a manual install, the choice is presented in much the same way. The only difference is that a manual install requires you to download and uncompress the SQL Server SilverStripe module (or other alternative database modules) before you begin the install process.
SilverStripe 2.4 will benefit from improved unit test coverage. How does this relate to the Microsoft platform work you've been doing?
First, you can now run tests at the Windows command line. This required adapting SilverStripe to accommodate both the Windows command line and Linux command shells such as bash. This means we could more robustly and comprehensively test what we were doing on SQL Server and other related work.
We have set up a continuous integration buildbot for automated unit testing on checked-in code. This makes us more aware of any code checked in by developers that could break support for the Microsoft platform.
As with any automated testing activity, this job is never complete, but it goes a long way to make us sleep easy at night.
What else is new in SilverStripe 2.4 to do with Microsoft technology?
Mainly bug fixes and performance improvements. Thanks to more people using SilverStripe on Windows and reporting issues they have to us, we've improved the reliability of SilverStripe running on IIS and Windows Server. This is very valuable as we're wanting to support users on Windows Server 2008 R2 right back to the still-popular Windows XP. We've also tested that SilverStripe runs reliably with Microsoft's dynamic caching product, WinCache. Finally, as part of our process in deploying SilverStripe on customer websites, we've identified and incorporated Windows-specific performance improvements.
What has the relationship been with Microsoft in doing this work?
SilverStripe staff and the developer community are responsible for doing all of the programming work, however we've had some really valuable assistance from Microsoft along the way. Mostly, when we've had a question, be it on SQL Server, PHP support on IIS, WinCache, or the Web Platform Installer, we've had Microsoft staff provide us with answers that kept us on the right track, and didn't let us waste time trying to solve technical challenges. They've also tested our application from time to time and offered suggestions on how to do things following best practices.
This support means we feel more confident about the technical approach we've taken when supporting Microsoft technology. Besides technical assistance, we've had Microsoft accept us into their Web Application Gallery, and we were very excited to be one of the initial couple of PHP applications to achieve this status last year.
Does this impact SilverStripe's values with open source?
Not at all. SilverStripe supporting Microsoft technology is in addition to everything else we do. Just as we ensure the CMS allows content authoring to be done in various web browsers, we want to offer choice on what operating system and database you can run our software on.