+ All Categories
Home > Documents > Slide 1 - 2009 PHP Quebec Conference

Slide 1 - 2009 PHP Quebec Conference

Date post: 01-Nov-2014
Category:
Upload: sampetruda
View: 2,239 times
Download: 5 times
Share this document with a friend
Description:
 
Popular Tags:
54
Joe Stagner Opinionated Misfit Geek Microsoft Corporation [email protected] www.JoeOn.net xtending PHP with the xtending PHP with the icrosoft Platform icrosoft Platform
Transcript
Page 1: Slide 1 - 2009 PHP Quebec Conference

Joe Stagner

Opinionated Misfit GeekMicrosoft Corporation

[email protected]

www.JoeOn.net

Extending PHP with the Extending PHP with the Microsoft PlatformMicrosoft Platform

Page 2: Slide 1 - 2009 PHP Quebec Conference

Who am I and why am I here?Who am I and why am I here?

Programming for over 30 years.Programming for over 30 years. PHP developer since 1998.PHP developer since 1998. Other Web Dev, ASP, CGI, Perl, Other Web Dev, ASP, CGI, Perl,

JSP/Java, LiveWire, ColdFusionJSP/Java, LiveWire, ColdFusion With Microsoft for 6 years.With Microsoft for 6 years. Work mostly in the Web Platofrms Work mostly in the Web Platofrms

GroupGroup Been the “PHP Guy” at Microsoft for Been the “PHP Guy” at Microsoft for

all 6 years.all 6 years.

Page 3: Slide 1 - 2009 PHP Quebec Conference

My Goal …….My Goal …….

To add one more option to your choices.To add one more option to your choices.

Page 4: Slide 1 - 2009 PHP Quebec Conference

Why isn’t this already redundant?Why isn’t this already redundant?

If (PHP != “LAMP”)If (PHP != “LAMP”) Microsoft MissedMicrosoft Missed The Community MissedThe Community Missed Slashdot Won Slashdot Won

Page 5: Slide 1 - 2009 PHP Quebec Conference

About Microsoft About Microsoft (From the PHP Developer’s Perspective.)

Don’t think of Microsoft as ASP.NETDon’t think of Microsoft as ASP.NET Microsoft’s Platform MotivationsMicrosoft’s Platform Motivations

Products versus PlatformsProducts versus Platforms

But Think ECOSYSTEMBut Think ECOSYSTEM 90% of PHP Developers Code on 90% of PHP Developers Code on

WindowsWindows 10% of PHP Developers DEPLOY on 10% of PHP Developers DEPLOY on

WindowsWindows

Page 6: Slide 1 - 2009 PHP Quebec Conference

What’s Changed at Microsoft?What’s Changed at Microsoft? Scott Guthrie / DevDiv OrganizationScott Guthrie / DevDiv Organization Platform FocusPlatform Focus Dynamic LanguagesDynamic Languages

Python, Ruby, PhalangerPython, Ruby, Phalanger

IIS Team IIS Team FastCGIFastCGI

Hosting TeamHosting Team Tools & Data TeamsTools & Data Teams Open Source ***Open Source ***

Page 7: Slide 1 - 2009 PHP Quebec Conference

The PHP DeveloperThe 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.

Page 8: Slide 1 - 2009 PHP Quebec Conference

PHP versus ASP.NET PHP versus ASP.NET PHP ASP.NETPHP ASP.NETDynamicDynamic CompiledCompiledLoosely TypedLoosely Typed Strongly TypedStrongly TypedOptional OOOptional OO Mandatory OOMandatory OORuns On the OSRuns On the OS Runs IN the OS ***Runs IN the OS ***.php / .inc.php / .inc .dll / .exe.dll / .exe““C”C” .NET.NETSimplicity Simplicity ComprehensivenessComprehensiveness

Page 9: Slide 1 - 2009 PHP Quebec Conference

PHP on Windows PHP on Windows - Problems / Solutions- Problems / Solutions

Startup Cost Startup Cost Ongoing CostOngoing Cost HostingHosting Threads ! Threads !

Reliability / PerformanceReliability / Performance CommunityCommunity

Page 10: Slide 1 - 2009 PHP Quebec Conference

Microsoft Developer StartMicrosoft Developer Start

Windows / IIS Windows / IIS SQL Server Express (Workgroup) SQL Server Express (Workgroup) Visual Web Developer ExpressVisual Web Developer Express Visual C# (VB) ExpressVisual C# (VB) Express Microsoft AjaxMicrosoft Ajax WPF / E ***WPF / E ***

Page 11: Slide 1 - 2009 PHP Quebec Conference

PHP & Microsoft EcosystemPHP & Microsoft Ecosystem

PHPPHPMicrosoft Microsoft

Page 12: Slide 1 - 2009 PHP Quebec Conference

PHP-NukePHP-Nuke

PHPBB2PHPBB2

MD-ProMD-Pro

b2Evolutionb2Evolution

OSCNukeOSCNuke

MoodleMoodle

VBulletinVBulletin

PostNukePostNuke

MyPHPNukeMyPHPNuke

bBlogbBlog

Zen CartZen Cart

SegueSegue

VBPortalVBPortal DrupalDrupal

CoppermineCoppermine

phpGroupWarephpGroupWare

PHPWebSitePHPWebSite

eGroupWareeGroupWare

SerendipitySerendipity

XoopsXoops

Site@SchoolSite@School

TextPatternTextPattern

Typo3Typo3

QwikiWikkiQwikiWikki

RunCMSRunCMS MamboMambo

cPanelcPanel

TikiWikiTikiWiki

WordPressWordPress

SugarCRMSugarCRM

MyPHPAdminMyPHPAdmin

e107e107

XarayaXaraya

OSCommerceOSCommerce

ATutorATutor

WebCalendarWebCalendar

Some Favorite PHP Applications

Page 13: Slide 1 - 2009 PHP Quebec Conference

MS AccessMS Access

MS ExcelMS Excel

MS FrontPageMS FrontPage

MS InfoPathMS InfoPath

Live MeetingLive Meeting

MS OneNoteMS OneNote

PowerPointPowerPoint

MS OutlookMS Outlook

MS ProjectMS Project

Small Business Accounting

Small Business Accounting

MS VisioMS Visio

MS WordMS Word

SharePointSharePoint Business Manager

Business Manager

MS CRMMS CRM

Project ServerProject Server

MS CMSMS CMS

CommerceServer

CommerceServer

ExchangeServer

ExchangeServer

MS LCSMS LCS

MapPointMapPoint

MessengerMessenger

Virtual EarthVirtual Earth

MOMMOM

BizTalkBizTalk SQL ServerSQL Server

SQL RSSQL RS

SQL ASSQL AS

SQL NSSQL NS

App CenterApp Center

IdentityIntegration

Server

IdentityIntegration

Server

ISA ServerISA Server

Data AnalyzerData Analyzer

MS MobileMS Mobile

Tablet PCTablet PC

MS Starter Kits

MS Starter Kits

Software Options from Microsoft

Page 14: Slide 1 - 2009 PHP Quebec Conference

Great PlainsGreat Plains

AxaptaAxapta

Small Business Manager

Small Business Manager

MSEnterprise Reporting

MSEnterprise Reporting

NavisionNavision

Retail Management

Retail Management

MS SolomonMS SolomonWindows Mobile

Windows Mobile

Windows Embedded

Windows Embedded

Active Directory

Active Directory

ADAMADAM

Authorization Manager

Authorization Manager

Operations Manager

Operations Manager

IIS 6/7IIS 6/7

Windows Server 2003

Windows Server 2003

XML-WSWSE

XML-WSWSE

Media CenterMedia Center

WindowsMedia Server

WindowsMedia Server

Application Center

Application Center

SystemManagement

Server

SystemManagement

Server

Windows Unix

Services

Windows Unix

Services

Host Integration

Server

Host Integration

Server

Windows Workflow

Windows Workflow

VistaLonghorn

VistaLonghorn

Presentation Foundation

Presentation Foundation

MSNSearch

MSNSearch

WindowsIndexServer

WindowsIndexServer

VBA / VSAVBA / VSA

Info BridgeInfo Bridge

WSHWSH

DirectXDirectX

ActiveXActiveX

HostedControls

HostedControls

MSMQMSMQ Info CardInfo Card

WinFXWinFX

More Software Options from Microsoft

Page 15: Slide 1 - 2009 PHP Quebec Conference

Why Develop & Run on WindowsWhy Develop & Run on Windows

Windows EcosystemWindows Ecosystem Over 600,000 partners in the Microsoft Over 600,000 partners in the Microsoft

Ecosystem. Ecosystem. Microsoft makes MUCH more than Microsoft makes MUCH more than

WindowsWindows Microsoft is making huge investments Microsoft is making huge investments

interoperability standards and interoperability standards and technologies. (WS-I, etc.) technologies. (WS-I, etc.)

Microsoft provides Microsoft provides ……. a complete turn-key infrastructure. a complete turn-key infrastructure ……. Individual best-of-breed applications . Individual best-of-breed applications

for you to choose fromfor you to choose from

Page 16: Slide 1 - 2009 PHP Quebec Conference

Why PHP for Windows DevelopersWhy PHP for Windows Developers

The PHP Ecosystem The PHP Ecosystem Nuke and Nuke-Like ApplicationNuke and Nuke-Like Application Open source designsOpen source designs Loose and WildLoose and Wild The PHP community contributes to a The PHP community contributes to a

variety of defacto standard facilities to variety of defacto standard facilities to connect everythingconnect everything

Zend and the PHP community are Zend and the PHP community are invested in Windows Specific PHP invested in Windows Specific PHP technology.technology.

Page 17: Slide 1 - 2009 PHP Quebec Conference

The State of PHP on WindowsThe State of PHP on Windows PHP is PHP is PHP. PHP is PHP is PHP. (Mostly)(Mostly) Winabler, Platform, FastCGIWinabler, Platform, FastCGI Other 3Other 3rdrd parties offer……. parties offer…….

CodeGear Delphi for PHPCodeGear Delphi for PHP Phalanger = Managed Code PHPPhalanger = Managed Code PHP

http://www.php-compiler.net/http://www.php-compiler.net/

JCX.SoftwareJCX.Software VS.PHPVS.PHP

Zend’s Windows Work ContinuesZend’s Windows Work Continues Microsoft’s work for PHP ContinuesMicrosoft’s work for PHP Continues

Page 18: Slide 1 - 2009 PHP Quebec Conference

Things PHP is not designed for.Things PHP is not designed for. Component CreationComponent Creation Calling binary .DLLsCalling binary .DLLs Simplifying InteroperabilitySimplifying Interoperability Remote InstancingRemote Instancing Application MultithreadingApplication Multithreading Asynchronous DependenciesAsynchronous Dependencies Multi Phase TransactionsMulti Phase Transactions Aggregating Multi-Interfaced ObjectsAggregating Multi-Interfaced Objects Type Encapsulation & AbstractionType Encapsulation & Abstraction Object Scope PromotionObject Scope Promotion Static Instance AccessStatic Instance Access

Page 19: Slide 1 - 2009 PHP Quebec Conference

PHP on WindowsPHP on Windows

PHP on IIS 6PHP on IIS 6 PHP Versions…. Why choose ?PHP Versions…. Why choose ?

PHP on IIS 7 PHP on IIS 7 New application context ?New application context ?

Page 20: Slide 1 - 2009 PHP Quebec Conference

IIS 7

Page 21: Slide 1 - 2009 PHP Quebec Conference

PHP on WindowsPHP on Windows

More OptionsMore Options Managed Code (.NET) PHPManaged Code (.NET) PHP

Phalanger Phalanger http://php-compiler.net/http://php-compiler.net/

Windows ApplicationsWindows Applications WinBinnderWinBinnder NuSphere PHP DocNuSphere PHP Doc

PHP-GTKPHP-GTK

Page 22: Slide 1 - 2009 PHP Quebec Conference
Page 23: Slide 1 - 2009 PHP Quebec Conference
Page 24: Slide 1 - 2009 PHP Quebec Conference
Page 25: Slide 1 - 2009 PHP Quebec Conference
Page 26: Slide 1 - 2009 PHP Quebec Conference

PerformancePerformance

What’s the problem anyway.What’s the problem anyway. CGI on Windows ?CGI on Windows ? The PHP ISAPI ExtensionThe PHP ISAPI Extension Microsoft FastCGIMicrosoft FastCGI Microsoft / Zend AgreementMicrosoft / Zend Agreement

Page 27: Slide 1 - 2009 PHP Quebec Conference

PerformancePerformance

IISIIS Binary SolutionsBinary Solutions CGI, ISAPICGI, ISAPI

Winabler Winabler

Zend PlatformZend Platform PhalangerPhalanger COM / .NET BridgeCOM / .NET Bridge FastCGIFastCGI

Page 28: Slide 1 - 2009 PHP Quebec Conference

Integration OptionsIntegration Options The Windows File SystemThe Windows File System SMTPSMTP X.500X.500 WDDXWDDX MS-SQL Server, ADO, ODBCMS-SQL Server, ADO, ODBC

ASP.NET Authorization ProviderASP.NET Authorization Provider Database’d session stateDatabase’d session state

XMLXML LDAP LDAP

Page 29: Slide 1 - 2009 PHP Quebec Conference

Integration OptionsIntegration Options

MSMQ / MQ SeriesMSMQ / MQ Series SocketsSockets RSSRSS XML-RPCXML-RPC XML Web Services / SOAP XML Web Services / SOAP PHP Extensibility MechanismsPHP Extensibility Mechanisms

Page 30: Slide 1 - 2009 PHP Quebec Conference

Integration OptionsIntegration Options

Finally some ADVANTAGE to Finally some ADVANTAGE to HTTP’s stateless protocolHTTP’s stateless protocol..

HTTP Form TricksHTTP Form Tricks They can be OpenThey can be Open They can be HiddenThey can be Hidden They can be EncryptedThey can be Encrypted

Cookie TricksCookie Tricks They can also be encryptedThey can also be encrypted

Page 31: Slide 1 - 2009 PHP Quebec Conference

Integration OptionsIntegration Options

Build your own.Build your own. PHP on Windows built with VC++PHP on Windows built with VC++ PECL ExtensionsPECL Extensions PHP is Open SourcePHP is Open Source

Page 32: Slide 1 - 2009 PHP Quebec Conference

Office Documents

Page 33: Slide 1 - 2009 PHP Quebec Conference

Integration OptionsIntegration Options

WinDNA / COMWinDNA / COMMicrosoft .NETMicrosoft .NET

Page 34: Slide 1 - 2009 PHP Quebec Conference

PHP and COMPHP and COM What’s COM ?What’s COM ? PHP doesn’t REALLY speak COM.PHP doesn’t REALLY speak COM. COM is the Lingua Franca of COM is the Lingua Franca of

WindowsWindows VBVB C++ (Ours and many others)C++ (Ours and many others) DelphiDelphi PythonPython PerlPerl CobolCobol FortranFortran

Page 35: Slide 1 - 2009 PHP Quebec Conference

Creating a COM Object Instance

<?php<?php

$myCOMObject =new $myCOMObject =new COM("COMObject.COMClass");COM("COMObject.COMClass");

$myCOMObject->someMethod(“Some Argument”);$myCOMObject->someMethod(“Some Argument”);

?>?>

Page 36: Slide 1 - 2009 PHP Quebec Conference

Creating a COM VeneerCreating a COM Veneer

Build it in Visual Basic 6 Build it in Visual Basic 6 Then call from PHP Then call from PHP

<?php<?php

$myCOMObject =new $myCOMObject =new COM("COMObject.COMClass");COM("COMObject.COMClass");

$myCOMObject->someMethod(“Some $myCOMObject->someMethod(“Some Argument”);Argument”);

?>?>

Page 37: Slide 1 - 2009 PHP Quebec Conference

COM Objects

Page 38: Slide 1 - 2009 PHP Quebec Conference

Operating SystemOperating System

Common Language RuntimeCommon Language Runtime

Base Class LibraryBase Class Library

ADO .NET and XMLADO .NET and XML

ASP .NETASP .NETWeb Forms Web ServicesWeb Forms Web Services

Mobile Internet ToolkitMobile Internet Toolkit

WindowsWindowsFormsForms

Common Language Specification

VBVB C++C++ C#C# J#J# ……V

isua

l Stu

dio

.NE

TV

isua

l Stu

dio

.NE

T

.NET Framework and Tools.NET Framework and Tools

Page 39: Slide 1 - 2009 PHP Quebec Conference

VS.NET

Common Language RuntimeCommon Language Runtime

System System

System.Data (ADO.NET) System.Xml

Design

ADO

Adapters

SQL

Globalization

Diagnostics

Configuration

Collections

Resources

Reflection

Net

IO

Threading

Text

ServiceProcess

Security RuntimeInteropServices

Remoting

Serialization

XPath

XSLT Serialization

System.Drawing

JIT

GC

MSIL

App Domain Loader

Common Type System Class Loader

System.Web (ASP.NET)

Configuration

SessionStateCachingSecurity

Simple Web Services

DescriptionProtocols

UIHtmlControls

WebControls

Discovery

C#

VC/MC++ Imaging

Drawing2D

Text

Printing

JScript

VB

Platform Adaptation LayerPlatform Adaptation LayerBoot Loader

SyncThreads

Networking

Timers Filesystem

System.WinForms

Design ComponentModel

Debugger

Designers

SDK ToolsSDK Tools

CorDBG

ILAsm

ILDbDump

SN

ILDAsm

MetaInfo

PEVerify

EC

MA

C

LIThe Shared Source CLI The Shared Source CLI

Page 40: Slide 1 - 2009 PHP Quebec Conference

Base Class LibraryBase Class Library

SystemSystem

System.DataSystem.Data System.XmlSystem.Xml

System.WebSystem.Web

Globalization

Diagnostics

Configuration

Collections

Resources

Reflection

Net

IO

Threading

Text

ServiceProcess

Security

Common

OleDb

SQLTypes

SqlClient

XPath

XSLT

RuntimeInteropServices

Remoting

Serialization

Serialization

Configuration SessionState

Caching Security

ServicesDescription

Discovery

Protocols

UIHtmlControls

WebControls

System.DrawingSystem.Drawing

Imaging

Drawing2D

Text

Printing

System.Windows.FormsSystem.Windows.Forms

Design ComponentModel

Page 41: Slide 1 - 2009 PHP Quebec Conference

Microsoft .NET Microsoft .NET

COM Callable WrapperCOM Callable Wrapper Runtime Callable WrapperRuntime Callable Wrapper PHP RestrictionsPHP Restrictions

OLE 2OLE 2

Parameterless ConstructorsParameterless Constructors

Page 42: Slide 1 - 2009 PHP Quebec Conference

.NET Objects

Page 43: Slide 1 - 2009 PHP Quebec Conference

XML Web Services XML Web Services

NuSOAPNuSOAP PHP 5 – Native SOAP ExtensionPHP 5 – Native SOAP Extension ezSOAPezSOAP PEAR::SOAPPEAR::SOAP

Page 44: Slide 1 - 2009 PHP Quebec Conference

XMLWebServices

Page 45: Slide 1 - 2009 PHP Quebec Conference

Microsoft AJAXMicrosoft AJAX

•Free & Open Source Free & Open Source •Client LibrariesClient Libraries•ASP.NET Server ImplementationASP.NET Server Implementation•PHP Server ImplementationPHP Server Implementation

•Cross Platform Client ImplementationCross Platform Client Implementation•ASP.NET Server Side -> JavascriptASP.NET Server Side -> Javascript•Or fully LAMPOr fully LAMP

Page 46: Slide 1 - 2009 PHP Quebec Conference

Microsoft AJAX

Page 47: Slide 1 - 2009 PHP Quebec Conference

Microsoft WPF/eMicrosoft WPF/e

•Rich Client Behavior Rich Client Behavior •Cross BrowserCross Browser•Cross PlatformCross Platform•V.1 XAML & JavaScriptV.1 XAML & JavaScript•V.next C# and/or VBV.next C# and/or VB•Expression ToolsExpression Tools

Page 48: Slide 1 - 2009 PHP Quebec Conference

Microsoft WPF/e

Page 49: Slide 1 - 2009 PHP Quebec Conference

Joe’s Wish ListJoe’s Wish List Great SQL Server 2005 access for PHPGreat SQL Server 2005 access for PHP A native Active Directory API PHPA native Active Directory API PHP An AzMan API for PHPAn AzMan API for PHP A PHP Bridge to ADAMA PHP Bridge to ADAM An ASP.NET 2.0 Auth Provider for PHPAn ASP.NET 2.0 Auth Provider for PHP A seamless session state bridge.A seamless session state bridge. A CDO / Exchange Bridge for PHPA CDO / Exchange Bridge for PHP PHP-Nuke, Mambo, etc. etc. PHP-Nuke, Mambo, etc. etc.

On WindowsOn Windows On Microsoft SQLOn Microsoft SQL Optionally in Phalanger, using ADOptionally in Phalanger, using AD

Page 50: Slide 1 - 2009 PHP Quebec Conference

Call to Action !Call to Action !

•Get your Visual Studio (FREE) Get your Visual Studio (FREE) •Get SQL Server Express (FREE)Get SQL Server Express (FREE)•Understand what products Microsoft makes.Understand what products Microsoft makes.•Email [email protected] [email protected]•Read me at www.JoeOn.netRead me at www.JoeOn.net

Page 51: Slide 1 - 2009 PHP Quebec Conference
Page 52: Slide 1 - 2009 PHP Quebec Conference

Thanks Thanks •Andrew StopfordAndrew Stopford•NuSphereNuSphere•Michael PhamMichael Pham•Juan Rivera (VS.PHP)Juan Rivera (VS.PHP)•ZendZend

Page 53: Slide 1 - 2009 PHP Quebec Conference

© 2006 Microsoft Corporation. All rights reserved.This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Q&A

THANKS !

Page 54: Slide 1 - 2009 PHP Quebec Conference

© 2006 Microsoft Corporation. All rights reserved.This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.


Recommended