Slide 1 - PHP Quebec Conference

cabbagepatchtapeInternet και Εφαρμογές Web

5 Φεβ 2013 (πριν από 4 χρόνια και 8 μήνες)

174 εμφανίσεις

Joe Stagner


Opinionated Misfit Geek

Microsoft Corporation

Joe.Stagner@Microsoft.com

www.JoeOn.net

Extending PHP with the

Microsoft Platform



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


Python, Ruby, Phalanger


IIS Team


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 ASP.NET

Dynamic

Compiled

Loosely Typed

Strongly Typed

Optional OO

Mandatory OO

Runs On the OS

Runs IN the OS ***

.php / .inc

.dll / .exe

“C”

.NET

Simplicity

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

PHP
-
Nuke

PHPBB2

MD
-
Pro

b2Evolution

OSCNuke

Moodle

VBulletin

PostNuke

MyPHPNuke

bBlog

Zen Cart

Segue

VBPortal

Drupal

Coppermine

phpGroupWare

PHPWebSite

eGroupWare

Serendipity

Xoops

Site@School

TextPattern

Typo3

QwikiWikki

RunCMS

Mambo

cPanel

TikiWiki

WordPress

SugarCRM

MyPHPAdmin

e107

Xaraya

OSCommerce

ATutor

WebCalendar

Some Favorite PHP Applications

MS Access

MS Excel

MS FrontPage

MS InfoPath

Live Meeting

MS OneNote

PowerPoint

MS Outlook

MS Project

Small Business

Accounting

MS Visio

MS Word

SharePoint

Business

Manager

MS CRM

Project Server

MS CMS

Commerce

Server

Exchange

Server

MS LCS

MapPoint

Messenger

Virtual Earth

MOM

BizTalk

SQL Server

SQL RS

SQL AS

SQL NS

App Center

Identity

Integration

Server

ISA Server

Data Analyzer

MS Mobile

Tablet PC

MS Starter

Kits

Software Options from Microsoft

Great Plains

Axapta

Small

Business

Manager

MS

Enterprise

Reporting

Navision

Retail

Management

MS Solomon

Windows

Mobile

Windows

Embedded

Active

Directory

ADAM

Authorization

Manager

Operations

Manager

IIS 6/7

Windows

Server 2003

XML
-
WS

WSE

Media Center

Windows

Media

Server

Application

Center

System

Management

Server

Windows

Unix

Services

Host

Integration

Server

Windows

Workflow

Vista

Longhorn

Presentation

Foundation

MSN

Search

Windows

Index

Server

VBA / VSA

Info Bridge

WSH

DirectX

ActiveX

Hosted

Controls

MSMQ

Info Card

WinFX

More Software Options from Microsoft

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 3
rd

parties offer…….


CodeGear

Delphi for PHP


Phalanger = Managed Code PHP


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


JCX.Software


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


Phalanger
http://php
-
compiler.net/


Windows Applications


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

Finally some ADVANTAGE to
HTTP’s stateless protocol
.


HTTP Form Tricks


They can be Open


They can be Hidden


They can be Encrypted


Cookie Tricks


They can also be encrypted

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

Operating System

Common Language Runtime

Base Class Library

ADO .NET and XML

ASP .NET

Web Forms Web Services

Mobile Internet Toolkit

Windows

Forms

Common Language Specification

VB

C++

C#

J#



Visual Studio .NET

.NET Framework and Tools

VS.NET

Common Language Runtime

System

System.Data (ADO.NET)

System.Xml

Design

ADO

Adapters

SQL

Globalization

Diagnostics

Configuration

Collections

Resources

Reflection

Net

IO

Threading

Text

ServiceProcess

Security

Runtime

InteropServices

Remoting

Serialization

XPath

XSLT

Serialization

System.Drawing

JIT



GC

MSIL

App Domain Loader

Common Type System

Class Loader

System.Web (ASP.NET)

Configuration

SessionState

Caching


Security

Simple Web Services

Description

Protocols

UI

HtmlControls

WebControls

Discovery

C#

VC/MC++

Imaging

Drawing2D


Text

Printing

JScript

VB

Platform Adaptation Layer

Boot Loader

Sync

Threads

Networking

Timers

Filesystem

System.WinForms

Design

ComponentModel

Debugger

Designers

SDK Tools

CorDBG

ILAsm

ILDbDump

SN

ILDAsm

MetaInfo

PEVerify

ECMA CLI

The Shared Source CLI

Base Class Library

System


System.Data

System.Xml

System.Web

Globalization

Diagnostics

Configuration

Collections

Resources

Reflection

Net

IO

Threading

Text

ServiceProcess

Security

Common

OleDb

SQLTypes

SqlClient

XPath

XSLT

Runtime

InteropServices

Remoting

Serialization

Serialization

Configuration

SessionState

Caching


Security

Services

Description

Discovery

Protocols

UI

HtmlControls

WebControls

System.Drawing

Imaging

Drawing2D


Text

Printing

System.Windows.Forms

Design


ComponentModel

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 Joe.Stagner@Microsoft.com


Read me at www.JoeOn.net

Thanks


Andrew
Stopford


NuSphere


Michael Pham


Juan Rivera (VS.PHP)


Zend

© 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 !

© 2006 Microsoft Corporation. All rights reserved.

This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.