Tim Keller Lead Developer Umoya Networks www.umoya.net
DTL318
Slide 3
PHP GATECRASHES A MICROSOFT EVENT
Slide 4
PHP at a Microsoft event What on earth? A Microsoft Primer for
PHP developers A PHP Primer for Microsoft developers Either way,
welcome! Thanks for coming.
Slide 5
Who am I Tim Keller (@timkeller or timk.co.za) Your typical
Mac/Linux type Lead Developer of a PHP-based cloud hosted tool for
teachers and school admins, called staffroom Microsoft-friendly HI,
IM TIM KELLER LEAD PHP DEVELOPER www.mystaffroom.net
[email protected]
Slide 6
Goals Good intensions Show you some cool stuff Tell you where
you can get it Tell you where you can learn more Answer questions
Go have a beer with all of you
Slide 7
Stuff well talk about 6 things. Simple. Microsoft and
Opensource PHP and IIS Powershell for IIS SQL Server Driver for PHP
Microsoft Ajax Library Silverlight and PHP
Slide 8
TAG TWEETS WITH #techedafrica FOLLOW ME
twitter.com/timkeller
Slide 9
Microsoft and OpenSource
Slide 10
D ENIA L Its not just a river in Egypt.
Slide 11
Microsoft and OpenSource Surprising perhaps MS Redmond OSS lab
Staffed by OSS and Linux experts 300 servers of varying types 340+
Linux distros available for testing Tests interoperability of OSS
and Windows Research of OSS technologies
Slide 12
Microsoft and OpenSource Surprising perhaps Projects so far
Firefox Silverlight support Silverlight/Moonlight common standard
Vista Firefox compatibility FastCGI hosting of PHP and Python on
IIS SQL Server drivers for PHP and Java
Slide 13
Microsoft and OpenSource Surprising perhaps Active and Future
projects PHP Active Directory integration PHP SharePoint
integration SugarCRM SQL Server connectivity Windows - Apache build
support/research
Slide 14
Why PHP anyway?
Slide 15
WordpressphpBBMediaWiki DrupalGallerySugarCRM DokuWiki
SilverStripe CMS Joomla PHP Web Applications
Slide 16
CakePHPCodeIgniterDrupal eZ Components KohanaPEAR Zend
Framework ZoopHorde PHP Web Frameworks
Slide 17
YahooFlickr FacebookDigg YouTubeWikipedia Commercial sites
using PHP
Slide 18
Slide 19
HARD TO IGNORE.
Slide 20
PHP on Windows, with IIS
Slide 21
PHP on Windows Its actually been around for a long time Most
PHP developers: Develop on Windows Deploy to Linux, BSD, *nix.
Perception that PHP on IIS sucks (this was true) Often install
Apache for Dev or Production
Slide 22
Performance vs. Reliability CGI Invokes a new php.exe process
for each request Advantage Very stable Disadvantage SLOOOW due to
I/O overhead of Process Creation on Windows ISAPI PHP Loaded as an
extension in IISs memory space Advantages Better performance
Disadvantages Not very stable Many PHP (PECL) extensions are not
Thread-Safe FastCGI Process caching and pooling mechanism
Advantages Faster than CGI More Stable than ISAPI Can run
non-thread- safe versions of PHP and PECL extensions
Slide 23
FastCGI: Pooling and Caching PHP processes are reused. No
process creation overhead = 20x performance increase PHP HTTP
Request index.php HTTP Request index.php HTTP Request login.php
HTTP Request login.php PHP HTTP Request header.php HTTP Request
header.php FastCGI process pool for PHP5 PHP
Slide 24
IIS7+ FastCGI Handler Basic Architecture FastCGI process pool
for PHP5 IIS Worker Process Read
ConfigurationAuthenticateAuthorizeMap RequestHandle RequestSend
ResponseLog Request FastCGI handler ASP.NET Static Request queue
php-cgi.exe FastCGI process pool for PHP4 php.exe FastCGI protocol
over named pipes or TCP
Slide 25
C OMMUNIT Y Youd be surprised what you can accomplish when you
work with people who have common goals and ideals.
Slide 26
2006 Zend and Microsoft announce collaboration 2007 Zend and
PHP Core Devs start optimising PHP5.2.x builds for windows. FastCGI
extensions for IIS6. 2008 MS release IIS7 with native FastCGI for
PHP.
Slide 27
2008 Microsofts Pierre Joye and the PHP community conduct major
work on the PHP 5.3 codebase. Fixed 60+ Windows-specific bugs
Updated every library to latest version (some were 10+ years old)
Compiled PHP with VC++ 9 (VS 2008) x86 and x64 builds for
Windows
Slide 28
2009 Microsoft release IIS 7.5 builds with Windows 7 and Server
2008 R2 builds. Zend ships Zend Core for Windows with Microsofts
FastCGI implementation
Slide 29
Popular Web Servers (June 09) Courtesy: Netcraft Web Server
Survey, June 2009. IIS7 IIS6 IIS5
Slide 30
Where to get all this PHP and FastCGI goodness IIS 6 (Windows
Server 2003) http://www.iis.net/php IIS 7 (Windows Vista SP1 and
Server 2008) Ships with the product. Activate the CGI feature
through Server Manager IIS 7.5 (Windows 7 and Server 2008R2)
Supports Failed Request Tracing for FastCGI (PHP)
Slide 31
Setting up PHP on Windows & IIS Tim Keller Lead Developer
Umoya Networks
Slide 32
IIS7 features Remote Management capability XML-based
configuration system Modular architecture for reduced attack
surface Ability to extend IIS7 using managed code Integration with
Windows Media Server Advanced Diagnostics
Slide 33
M ISSION IMPOSSIBL E Waitwhat?
Slide 34
PHP Developers want: Multiple versions of PHP on one server.
PHP4PHP5.2PHP5.3PHP6.0
Slide 35
URL Rewriting Ever used mod_rewrite in Apache?
http://timk.co.za/index.php?type=post&id=34
http://timk.co.za/index.php?type=post&id=34 becomes
http://timk.co.za/post/34 http://timk.co.za/post/34 IIS7 offers
this, without the need for complex Regular Expressions
Slide 36
More PHP'ing Tim Keller Lead Developer Umoya Networks
Slide 37
PowerShell and IIS Powerful command line for Windows With
IIS7.5 you can manipulate your IIS config from the command
line.
Slide 38
SQL Server and PHP An INNER JOIN made in heaven? Simple Goal To
provide robust, scalable, and reliable SQL Server connectivity to
PHP developers targeting the Windows platform. Built by Microsoft
with community feedback Version 1.0 released July 2008
http://blogs.msdn.com/sqlphp/http://blogs.msdn.com/sqlphp/ (good
blog)
Slide 39
ASP.NET AJAX and PHP Take back the web, sorta.
Slide 40
User Interface Web Server Request Response Traditional
Client/Server User Interface Web Server Ajax Engine AJAX Paradigm
What is AJAX?
Slide 41
What AJAX (sometimes) means DHTML: HTML + Javascript Animations
Drag and Drop Show and Hide Partial page updates User interface
makes background calls to server AJA* : XML, HTML, Text, JSON
Slide 42
ASP.NET AJAX A library in three parts MS Ajax Library
Javascript files for the frontend ASP.Net Ajax Extensions
Server-side.NET code ASP.Net Ajax Control Toolkit Shared-source
components The PHP MS AJAX library was released in 2008.
http://codeplex.com/phpmsajax http://codeplex.com/phpmsajax
Slide 43
ASP.NET AJAX with PHP Tim Keller Lead Developer Umoya
Networks
Slide 44
Silverlight from PHP
Slide 45
Hi, haaaave you met XAML? XML-based description of a Rich User
Interface. Part of the Windows Presentation Foundation. PHP can
easily output text/xml. XAML also supports UI Events. Which is
cool. Hello World!
Slide 46
Silverlight from PHP Tim Keller Lead Developer Umoya
Networks
Slide 47
Futures for PHP on Windows IE WebSlices from PHP applications
PHP MS Virtual Earth Integration On-going SQL Server driver
development Azure PHP SDK
Slide 48
Call to action We want you! Enable FastCGI in IIS7 Install PHP
Grab some cool PHP apps Tell your friends how great PHP is on IIS.
Tweet about it!
Slide 49
Session Resources Web Platform Installer
http://tinyurl.com/mswebplatform http://tinyurl.com/mswebplatform
PHP on Windows central http://www.iis.net/php Microsoft AJAX for
PHP www.codeplex.com/phpmsajax Silverlight www.silverlight.net PHP
builds and sourcecode for Windows http://windows.php.net URL
Rewrite in IIS7 http://www.iis.net/extensions/URLRewrite
Slide 50
Slide 51
www.microsoft.com/teched International Content & Community
http://microsoft.com/technet Resources for IT Professionals
http://microsoft.com/msdn Resources for Developers
www.microsoft.com/learning Microsoft Certification & Training
Resources Resources Required Slide Speakers, TechEd 2009 is not
producing a DVD. Please announce that attendees can access session
recordings from Tech-Ed website. These will only be available after
the event. Required Slide Speakers, TechEd 2009 is not producing a
DVD. Please announce that attendees can access session recordings
from Tech-Ed website. These will only be available after the event.
Tech Ed Africa 2009 sessions will be made available for download
the week after the event from:
www.tech-ed.co.zawww.tech-ed.co.za
Slide 52
Related Content Breakout Sessions (session codes and titles)
Whiteboard Sessions (session codes and titles) Hands-on Labs
(session codes and titles) Required Slide Speakers, please list the
Breakout Sessions, TLC Interactive Theaters and Labs that are
related to your session. Any queries, please check with your Track
Owner. Required Slide Speakers, please list the Breakout Sessions,
TLC Interactive Theaters and Labs that are related to your session.
Any queries, please check with your Track Owner.
Slide 53
Track Resources Resource 1 Resource 2 Resource 3 Resource 4
Required Slide Track Owners to provide guidance. Please address any
queries to your track owners. Required Slide Track Owners to
provide guidance. Please address any queries to your track
owners.
Slide 54
Required Slide Complete a session evaluation and enter to win!
10 pairs of MP3 sunglasses to be won
Slide 55
2009 Microsoft Corporation. All rights reserved. Microsoft,
Windows, Windows Vista and other product names are or may be
registered trademarks and/or trademarks in the U.S. and/or other
countries. The information herein is for informational purposes
only and represents the current view of Microsoft Corporation as of
the date of this presentation. Because Microsoft must respond to
changing market conditions, it should not be interpreted to be a
commitment on the part of Microsoft, and Microsoft cannot guarantee
the accuracy of any information provided after the date of this
presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR
STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION. Required
Slide