BANGALORE, INDIA: Microsoft has always been known for its very tightly integrated pieces of software. For instance, if you look at components like
ASP.NET, Active Directory, SQL Server, Exchange and SharePoint, all of these work extremely well together and provide a whole bunch of services to each other as well as a great development platform that lets you use and extend the features as you wish. However, one of the biggest complaints against Microsoft technologies was that they did not play fair with others' platforms.
The above complaint has been taken quite seriously by Microsoft and when developing the current version of Windows Server, they did a fairly surprising turn around. During the development phase for the latest version of Internet Information Services (IIS) 7.0, they collaborated with developers of PHP ? one of Microsoft's biggest rivals in the Web application platform space and what they both came up with is an interesting combination of features.
PHP has always been possible to run on
Windows and IIS. However, it is in IIS7 that it really shines. Not only is PHP fully compatible with IIS, it also is a first class citizen in IIS along with Microsoft's own ASP.NET! PHP on Windows gets a large number of features, and that too for free, that simply do not exist on other places where PHP can run.
One of the big changes in IIS7 over previous version is the introduction of what is known as the ASP.NET Integrated Pipeline Mode. This mouthful actually means that development platforms that integrate into IIS7 (like PHP), gain access to many of the features of ASP.NET that are now ?exposed? as IIS features. This means that you can actually add a number of features into a PHP site on IIS7 very easily either using IIS management or an ASP.NET extension. Let's take a look at a couple of scenarios below to illustrate these points.
 |
| Adding Caching to your PHP application in IIS7. |
Let's say you have a large PHP site hosted on IIS7 using the Integrated Pipeline. You might find that performance of the site is not up to par and might want to go ahead and do something about it.
The very first thing that you might want to do is introduce caching into the web site so that repeated queries for the same page (or page signature - that includes queries to the database as well) are cached on the Web server and does not require a re-generation or round trip to the database. There are of course ways to achieve this in PHP itself either by writing your own (non-trivial) code or by including third party files or controls and configuring them.
However when working with IIS7, you can go ahead and use the IIS7's built in Output Caching mechanism that is based on the caching module feature of ASP.NET.