2009 - microsoft springbreak: iis, php & wcf
TRANSCRIPT
Daniel [email protected]
Leistungen• Architektur-Beratung
• Strukturierter und effizienter zu einer wartbaren Anwendung.
• Prozessoptimierung• BPM
• FDD, TDD, MSF Agile & SCRUM
• Software-Entwicklung• Team-out-of-the-box (Near-shoring)
• Objektmodelle und Datenzugriff
• Kommunikations-Infrastrukturen
• Identitäts- und Berechtigungsmodelle
• Web 2.0 und Rich Internet Applikation
• Coaching & Training• Technologien schneller verstehen und richtig einsetzen.
Technologien• Microsoft Windows & .NET Framework
• ASP.NET, WCF, WF, WPF, Silverlight & Geneva
Kunden• Versicherung, Finanzindustrie, Mittelstand, Handel,
Kommunikation, Softwarehersteller u.v.a.• Bundesamt für Sicherheit in der Informationstechnologie,
Microsoft, Dresdner Bank…
Project Experience
Technology Know-how
devcoach®
Daniel Fisher | CTO & Software Architect
MCP, MCTS, MCPD…[email protected]
Mit-Gründer und Geschäftsführer von devcoach.comwww.devcoach.com
Mit-Gründer und Vorstand dergemeinnützigen www.just community.de e.V.
Veranstalter des größten Entwickler & IT-Pro Community Events in Deutschland: www.nrwconf.de
Mit-Gründer und Leiter derINETA Usergroup Düsseldorf
www.NetUG-NiederRhein.de
Mitglied im Microsoft Community Leader & Insider Program (CLIP)
Connected Systems Advisory Board
Expertengruppe für WCF, WF & BizTalk
IIS & The Microsoft Web Platform
Windows Communication Foundation
PHP as SOAP Client
Summary
Completly rebuid
Modular
Roboust
Stable
Easy to administer
The fastest way to setup your environment
• Just download from http://www.microsoft.com/web
The fastest PHP host out there…
http://phplens.com/phpeverywhere/fastcgi-php
Common Language Runtime (CLR)
ADO.NET ASP.NET WinForms ...
WCF WCS WFWPF
Interopwith otherplatforms
ASMX
Attribute-Based
Programming
Enterprise Services
WS-*ProtocolSupport
WSE
Message-Oriented
Programming
System.Messaging
ExtensibilityLocation
transparency
.NET Remoting
Caller Service
MessageABC A B C
A B C
Address Binding Contract
(Where) (How) (What)
[ServiceContract]
public interface ICalculator
{
[OperationContract]
ComplexProblem SolveProblem(ComplexProblem p);
}
[DataContract]
public class ComplexNumber
{
[DataMember] public double Real = 0.0D;
[DataMember]public double Imaginary = 0.0D;
public ComplexNumber(double r, double i){
this.Real = r;this.Imaginary = i;
}
}
<endpoint
address="http://localhost/calculator"
binding="basicHttpBinding"
bindingConfiguration="Binding1"
contractType="ICalculator" />
<bindings><basicHttpBinding><binding
configurationName="Binding1"
maxMessageSize="65536"
messageEncoding="Text"
textEncoding="utf-8" /></binding>
</basicHttpBinding></bindings>
Transport Encoder Security Reliability Protocol
Pipes
MSMQ
Custom
HTTP Text
TCP Binary
MTOM
Custom
Custom Custom
WS-* WS-* WS-*
Custom
WS-* WS-* WS-*TCP Binary
T = Transport Security | S = WS-Security | O = One-Way Only
BasicHttpBinding
WsHttpBinding
WsDualHttpBinding
NetTcpBinding
NetNamedPipesBinding
NetMsmqBinding
WS
WS
T
TS
TS
TS
TS
TS
O
O
NetPeerTcpBinding TS
InterOp Problems!
• WCF is 100% OASIS-Conform
• PHP soap is NOT• Request are sent bare and not as documents
• UTF8 encoding issues
• No Authentication
• …
PHP nusoap
• Open Source Library
require_once("nusoap/lib/nusoap.php");
$client =
new nusoap_client("MyService.wsdl", true);
$result =
$client->call(
"MethodName", $params, $namespaces, …);
HTTP Authentication module
PHP - widley spread platform
• Lots of libraries
• Lots of developers
IIS - perfect Web Server platform
• High performant
• Robust, secure and easy to manage
WCF – Unified communication platform
• implements WS-*a standards
• Easy to start and scale