Transcript Slide 1
Extending PHP with the Microsoft Platform Joe Stagner Opinionated Misfit Geek Microsoft Corporation [email protected] www.JoeOn.net Who am I and why am I here? Programming for over 30 years. PHP developer since 1998. Other Web Dev, ASP, CGI, Perl, JSP/Java, LiveWire, ColdFusion With Microsoft for 6 years. Work mostly in the Web Platofrms Group Been the “PHP Guy” at Microsoft for all 6 years. My Goal ……. To add one more option to your choices. Why isn’t this already redundant? If (PHP != “LAMP”) Microsoft Missed The Community Missed Slashdot Won About Microsoft (From the PHP Developer’s Perspective.) Don’t think of Microsoft as ASP.NET Microsoft’s Platform Motivations Products versus Platforms But Think ECOSYSTEM 90% of PHP Developers Code on Windows 10% of PHP Developers DEPLOY on Windows What’s Changed at Microsoft? Scott Guthrie / DevDiv Organization Platform Focus Dynamic Languages IIS Team Python, Ruby, Phalanger FastCGI Hosting Team Tools & Data Teams Open Source *** The PHP Developer Is a natural pragmatist. Is an integration specialist. Tends to focus on the solution, not the plumbing. Works in venue that’s changing at a staggering pace. PHP versus ASP.NET PHP Dynamic Loosely Typed Optional OO Runs On the OS .php / .inc “C” Simplicity ASP.NET Compiled Strongly Typed Mandatory OO Runs IN the OS *** .dll / .exe .NET Comprehensiveness PHP on Windows - Problems / Solutions Startup Cost Ongoing Cost Hosting Threads ! Reliability / Performance Community Microsoft Developer Start Windows / IIS SQL Server Express (Workgroup) Visual Web Developer Express Visual C# (VB) Express Microsoft Ajax WPF / E *** PHP & Microsoft Ecosystem PHP Microsoft Some Favorite PHP Applications PHP-Nuke PostNuke RunCMS Mambo Xoops MyPHPAdmin PHPBB2 VBulletin VBPortal cPanel Drupal e107 MD-Pro MyPHPNuke PHPWebSite TikiWiki Typo3 Xaraya b2Evolution bBlog Serendipity WordPress TextPattern OSCommerce OSCNuke Zen Cart eGroupWare phpGroupWare Site@School ATutor Moodle Segue Coppermine QwikiWikki SugarCRM WebCalendar Software Options from Microsoft MS Access MS Outlook BizTalk SQL Server MS LCS Identity Integration Server MS Excel PowerPoint SharePoint SQL RS Business Manager ISA Server MS FrontPage MS Project MS CMS SQL AS Virtual Earth Data Analyzer MS InfoPath Small Business Accounting Exchange Server SQL NS Messenger MS Mobile Live Meeting MS Visio Commerce Server Project Server MapPoint Tablet PC MS OneNote MS Word MS CRM MOM App Center MS Starter Kits More Software Options from Microsoft Active Directory IIS 6/7 Axapta Navision Info Bridge Media Center ADAM MSMQ Great Plains Retail Management WSH Info Card Authorization Manager Windows Server 2003 Small Business Manager Windows Unix Services DirectX WinFX Operations Manager Windows Mobile MS Solomon VBA / VSA ActiveX Windows Workflow MS Enterprise Reporting XML-WS WSE Application Center MSN Search Hosted Controls Presentation Foundation Windows Embedded Windows Media Server System Management Server Windows Index Server Host Integration Server Vista Longhorn Why Develop & Run on Windows Windows Ecosystem Over 600,000 partners in the Microsoft Ecosystem. Microsoft makes MUCH more than Windows Microsoft is making huge investments interoperability standards and technologies. (WS-I, etc.) Microsoft provides …. a complete turn-key infrastructure …. Individual best-of-breed applications for you to choose from Why PHP for Windows Developers The PHP Ecosystem Nuke and Nuke-Like Application Open source designs Loose and Wild The PHP community contributes to a variety of defacto standard facilities to connect everything Zend and the PHP community are invested in Windows Specific PHP technology. The State of PHP on Windows PHP is PHP is PHP. (Mostly) Winabler, Platform, FastCGI Other 3rd parties offer……. CodeGear Delphi for PHP Phalanger = Managed Code PHP JCX.Software http://www.php-compiler.net/ VS.PHP Zend’s Windows Work Continues Microsoft’s work for PHP Continues Things PHP is not designed for. Component Creation Calling binary .DLLs Simplifying Interoperability Remote Instancing Application Multithreading Asynchronous Dependencies Multi Phase Transactions Aggregating Multi-Interfaced Objects Type Encapsulation & Abstraction Object Scope Promotion Static Instance Access PHP on Windows PHP on IIS 6 PHP Versions…. Why choose ? PHP on IIS 7 New application context ? IIS 7 PHP on Windows More Options Managed Code (.NET) PHP Windows Applications Phalanger http://php-compiler.net/ WinBinnder NuSphere PHP Doc PHP-GTK Performance What’s the problem anyway. CGI on Windows ? The PHP ISAPI Extension Microsoft FastCGI Microsoft / Zend Agreement Performance IIS Binary Solutions CGI, ISAPI Winabler Zend Platform Phalanger COM / .NET Bridge FastCGI Integration Options The Windows File System SMTP X.500 WDDX MS-SQL Server, ADO, ODBC ASP.NET Authorization Provider Database’d session state XML LDAP Integration Options MSMQ / MQ Series Sockets RSS XML-RPC XML Web Services / SOAP PHP Extensibility Mechanisms Integration Options HTTP Form Tricks They can be Open They can be Hidden They can be Encrypted Cookie Tricks They can also be encrypted Finally some ADVANTAGE to HTTP’s stateless protocol. Integration Options Build your own. PHP on Windows built with VC++ PECL Extensions PHP is Open Source Office Documents Integration Options WinDNA / COM Microsoft .NET PHP and COM What’s COM ? PHP doesn’t REALLY speak COM. COM is the Lingua Franca of Windows VB C++ (Ours and many others) Delphi Python Perl Cobol Fortran Creating a COM Object Instance <?php $myCOMObject =new COM("COMObject.COMClass"); $myCOMObject->someMethod(“Some Argument”); ?> Creating a COM Veneer Build it in Visual Basic 6 Then call from PHP <?php $myCOMObject =new COM("COMObject.COMClass"); $myCOMObject->someMethod(“Some Argument”); ?> COM Objects .NET Framework and Tools VB C++ C# … J# Common Language Specification Web Forms Web Services Mobile Internet Toolkit Windows Forms ADO .NET and XML Base Class Library Common Language Runtime Operating System Visual Studio .NET ASP .NET The Shared Source CLI VS.NET C# JScript VB System.Web (ASP.NET) UI SessionState HtmlControls Caching Security WebControls Configuration Debugger Simple Web Services Protocols Discovery Description Designers System.Data (ADO.NET) VC/MC++ ADO SDK Tools Design SN ILDAsm Boot Loader Threads System.Drawing Drawing2D Printing Imaging Text System.Xml XSLT Adapters Serialization XPath System Collections IO Security Configuration Net ServiceProcess Diagnostics Reflection Text Remoting Globalization Resources Threading Serialization Runtime InteropServices Common Language Runtime MetaInfo PEVerify ComponentModel GC App Domain Loader JIT MSIL Common Type System Class Loader Platform Adaptation Layer Sync Timers Networking Filesystem ECMA CLI ILDbDump Design SQL CorDBG ILAsm System.WinForms Base Class Library System.Web Services Description Discovery Protocols UI HtmlControls WebControls Caching Configuration Security SessionState System.Windows.Forms Design ComponentModel System.Drawing Drawing2D Imaging System.Data OleDb Common Printing Text System.Xml SqlClient SQLTypes XSLT XPath Serialization System Collections Configuration Diagnostics Globalization IO Net Reflection Resources Security ServiceProcess Text Threading Runtime InteropServices Remoting Serialization Microsoft .NET COM Callable Wrapper Runtime Callable Wrapper PHP Restrictions OLE 2 Parameterless Constructors .NET Objects XML Web Services NuSOAP PHP 5 – Native SOAP Extension ezSOAP PEAR::SOAP XML WebServices Microsoft AJAX •Free & Open Source •Client Libraries •ASP.NET Server Implementation •PHP Server Implementation •Cross Platform Client Implementation •ASP.NET Server Side -> Javascript •Or fully LAMP Microsoft AJAX Microsoft WPF/e •Rich Client Behavior •Cross Browser •Cross Platform •V.1 XAML & JavaScript •V.next C# and/or VB •Expression Tools Microsoft WPF/e Joe’s Wish List Great SQL Server 2005 access for PHP A native Active Directory API PHP An AzMan API for PHP A PHP Bridge to ADAM An ASP.NET 2.0 Auth Provider for PHP A seamless session state bridge. A CDO / Exchange Bridge for PHP PHP-Nuke, Mambo, etc. etc. On Windows On Microsoft SQL Optionally in Phalanger, using AD Call to Action ! •Get your Visual Studio (FREE) •Get SQL Server Express (FREE) •Understand what products Microsoft makes. •Email [email protected] •Read me at www.JoeOn.net Thanks •Andrew Stopford •NuSphere •Michael Pham •Juan Rivera (VS.PHP) •Zend Q&A THANKS ! © 2006 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary. © 2006 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.