28
Symétrique de l’ Interopérabilité PHP .NET Grégory Renard - Alias Rédo Directeur Développement Wygwam sarl - http://www.wygwam.com Auteur de nombreux articles .NET sur www.asp-php.net ( Rédo) Microsoft MVP Visual Developer ASP - ASP.NET, Microsoft CodeWise Community Member

Symétrique de l’ Interopérabilité PHP .NET

  • Upload
    zubin

  • View
    26

  • Download
    3

Embed Size (px)

DESCRIPTION

Symétrique de l’ Interopérabilité PHP  .NET. Grégory Renard - Alias Rédo Directeur Développement Wygwam sarl - http://www.wygwam.com Auteur de nombreux articles .NET sur www.asp-php.net  ( Rédo ) Microsoft MVP Visual Developer ASP - ASP.NET, Microsoft CodeWise Community Member. - PowerPoint PPT Presentation

Citation preview

Page 1: Symétrique de l’ Interopérabilité PHP    .NET

Symétrique de l’ Interopérabilité PHP .NET

Grégory Renard - Alias Rédo Directeur Développement Wygwam sarl - http://www.wygwam.com Auteur de nombreux articles .NET sur www.asp-php.net (Rédo)Microsoft MVP Visual Developer ASP - ASP.NET, Microsoft CodeWise Community Member

Page 2: Symétrique de l’ Interopérabilité PHP    .NET

La communauté www.asp-php.net

Apprendre en douceur les langages majeurs du Apprendre en douceur les langages majeurs du Web dynamique … ni catégoriquement pour Web dynamique … ni catégoriquement pour

l'un, ni farouchement contre l'autre ! l'un, ni farouchement contre l'autre ! Didier Yver (Fondateur ASP-PHP.NET)Didier Yver (Fondateur ASP-PHP.NET)

Page 3: Symétrique de l’ Interopérabilité PHP    .NET

La WygTeam

Page 4: Symétrique de l’ Interopérabilité PHP    .NET

RoadMap

• Interopérabilité ?!?– Contexte– Informations en ligne– Définition & objectifs– Architecture des technologies

• Symétrie de l’interopérabilité PHP .NET– Les couplages– Définition Couplages, Fort & Lâche– De .NET à PHP (.NET esclave, PHP maître)

– De PHP à .NET (PHP esclave, .NET maître)

• Retour d’expérience… l’Interopérabilité au quotidien

• Solutions exotiques émergeantes

• Références & Liens

• Conclusion

Page 5: Symétrique de l’ Interopérabilité PHP    .NET

Interopérabilité ?!?

Contexte

– Élargissement des systèmes d’informations de l’entreprise et diminution de sa maîtrise (partenariats, acquisitions, …)

– Élargissement des systèmes d’informations au-delà des limites de l’entreprise (Extranets collaboratifs, diffusion de l’information en temps réel, …)

– Multiplication des technologies du marché (Hétérogénéité)

– …

Page 6: Symétrique de l’ Interopérabilité PHP    .NET

Interopérabilité ?!?

Informations en ligneGoogle : « définition interopérabilité »

– Capacité qu'ont deux systèmes de se comprendre l'un l'autre et de fonctionner en synergie. Contraire : incompatibilité.(www.tout-savoir.net)

– L'interopérabilité est la capacité qu'ont deux systèmes de se comprendre l'un l'autre et de fonctionner en synergie. L'interopérabilité rassemble des moyens logiciels et matériels. (www.laboratoire-microsoft.org)

– Aptitude de deux ou plusieurs systèmes (logiciels ou matériels) à fonctionner ensemble en utilisant des standards communs. (www.journaldunet.com)

Page 7: Symétrique de l’ Interopérabilité PHP    .NET

Interopérabilité ?!?

• Définition

L’interopérabilité consiste à partager et utiliser conjointement des fonctionnalités d’applications de technologies différentes.

• Objectifs

– Communiquer le plus simplement possible en éliminant la complexité et la diversité des technologies.

– « Exploiter le meilleur des deux technologies »– …

Page 8: Symétrique de l’ Interopérabilité PHP    .NET

Architecture des technologies

.NET with ASP.NETPHP pagesrunning onmost majorweb servers

PresentationPresentation

Business Business LogicLogic

DataDataMySQL

PHP andApache

CLRC#, VB.NET, …AssemblyADO.NET.Can still use COM+Components.

MySQL common, but support for most databases

PHP PlatformPHP Platform

SQL Server 2000

Stored ProceduresOpenXML.

Web FormsServer ControlsCode-Behind.

ASP.NETIIS

PHP5 Model Object

Page 9: Symétrique de l’ Interopérabilité PHP    .NET

Architectures des technologies

.NET.NETPHP PlatformPHP Platform

Couplage FortCouplage Fort

Couplage LâcheCouplage Lâche

• Les couplages

Page 10: Symétrique de l’ Interopérabilité PHP    .NET

Symétrie de l’interopérabilité PHP .NET

• Définition Couplages, Fort & Lâche

– Couplage : « Qualifie la manière dont deux ou plusieurs systèmes interagissent »

– Couplage Fort (tightly coupled) • Indique que les systèmes sont dépendant les uns des autres. • Comme le fonctionnement d'un serveur de données est intimement

lié au processeur central auquel il est associé.

– Couplage Lâche (loosely coupled) • Indique que les systèmes sont reliés par un réseau de

communication mais qu'ils poursuivent leur propre logique de fonctionnement.

• Ex : des PC reliés par un réseau local.

Source : http://www.journaldunet.com/encyclopedie

Page 11: Symétrique de l’ Interopérabilité PHP    .NET

Symétrie de l’interopérabilité PHP .NET

Maître

EsclavePHP .NET

.NET

• Couplage fort– Extension COM - DCOM– Extension .NET – PHP5 - Mono– PHP#

• Couplage lâche– XML-RPC ou REST–Services Web (ex: NuSOAP)

/

PHP /

•Couplage fort– Mono 1.0– PHP#

•Couplage lâche– XML-HTTP– Services Web

Page 12: Symétrique de l’ Interopérabilité PHP    .NET

Symétrie de l’interopérabilité PHP .NET

Maître

EsclavePHP .NET

.NET

• Couplage fort– Extension COM - DCOM– Extension .NET – PHP5 - Mono– PHP#

• Couplage lâche– XML-RPC ou REST–Services Web (ex: NuSOAP)

/

PHP /

•Couplage fort– Mono 1.0– PHP#

•Couplage lâche– XML-HTTP– Services Web

Page 13: Symétrique de l’ Interopérabilité PHP    .NET

De .NET à PHP (.NET esclave, PHP maître)

• Couplage fort– Extension COM - DCOM

• Définition : Component Object Model - c'est une couche orientée objet (et services associés) au dessus de DCE RPC (un standard libre) qui défini une convention de nommage commune qui permet à un code écrit en n'importe quel langage de communiquer avec du code écrit dans un autre langage, sous peu que ces deux langages soient compatibles avec COM (ex : utiliser

Ms Word)

• PHP4 : disponibles pour les versions Windows de PHP

• PHP5 : nouvelles fonctionnalités – Accédez aux tableaux multi-dimensionnels ou aux propriétés COM qui requièrent plusieurs paramètres comme si vous accédiez à un tableau

– Bouclez sur les SafeArrays ("vrais" tableaux) en utilisant la structure de contrôle

• Sources

– http://www.php.net/manual/fr/ref.com.php

Page 14: Symétrique de l’ Interopérabilité PHP    .NET

De .NET à PHP (.NET esclave, PHP maître)

• Couplage fort– Extension .NET – PHP5 - Mono 1.0

• Définition : La classe DOTNET sous PHP5 vous autorise d'instancier une classe depuis un ensemble .NET et d'appeler ces propriétés ainsi que d'accéder à ces propriétés. Sous OS Windows & Linux – Mono 1.0

• $obj = new DOTNET("assembly", "classname") • PHP5 : module EXPERIMENTAL, le support .NET requiert PHP 5 et

l'exécutable .NET • Sources

– http://www.php.net/manual/fr/ref.com.php– http://www.zend.com/php5/articles/php5-dotnet.php

– http://www.lephpfacile.com/manuel_php/ref.com.php– http://www.lephpfacile.com/manuel_php/class.dotnet.php

Page 15: Symétrique de l’ Interopérabilité PHP    .NET

De .NET à PHP (.NET esclave, PHP maître)

• Couplage fort– PHP# (Prototype)

• Définition : Compilateur IL (Intermediate Language) PHP

• PHP # compilateur• « mono.PHP.Variable.Object »• … PHP again uses the classic Bison Parser, as the Zend engine is

all in C, so this combination is fast and suitable. In Mono, a Tool called Jay is used, this is a C program that can generate Java or C# code, (obviously in Mono it's C#)…

• Sources– http://www.akbkhome.com/wiki.php/Projects/PHP_Sharp

Page 16: Symétrique de l’ Interopérabilité PHP    .NET

De .NET à PHP (.NET esclave, PHP maître)

• Couplage lâche– XML-RPC ou REST

• Définition : Protocole permettant d'invoquer un objet distant en fournissant les paramètres nécessaires à l'appel dans un message au format XML et en utilisant le moyen de communication HTTP.La réponse est également renvoyée dans un format XML.

• REST : Representational State Transfer (… art Éric van der Vlist, ZDNet)

• PHP4 : depuis la version 4.1.0, non activée par défaut

• PHP5 : module est EXPERIMENTAL

• Sources

– http://www.php.net/manual/fr/ref.xmlrpc.php

– http://www.xmlrpc.com/

Page 17: Symétrique de l’ Interopérabilité PHP    .NET

De .NET à PHP (.NET esclave, PHP maître)

• Couplage lâche– Services Web (ex : NuSOAP)

• Définition : Application web pouvant interagir dynamiquement avec d'autres programmes en utilisant des protocoles d'échanges basé

sur XML comme SOAP, XML-RPC ou XMLP.

• Sources

– http://dietrich.ganx4.com/nusoap/index.php

– http://developpeur.journaldunet.com/tutoriel/php/030321php_serviceweb1.shtml

– http://www.phpbuilder.com/columns/kramberger20031226.php3?page=1

Source : http://www.journaldunet.com/encyclopedie

Page 18: Symétrique de l’ Interopérabilité PHP    .NET

Symétrie de l’interopérabilité PHP .NET

Maître

EsclavePHP .NET

.NET

• Couplage fort– Extension COM - DCOM– Extension .NET – PHP5 - Mono– PHP#

• Couplage lâche– XML-RPC ou REST–Services Web (ex: NuSOAP)

/

PHP /

•Couplage fort– Mono 1.0– PHP#

•Couplage lâche– XML-HTTP– Services Web

Page 19: Symétrique de l’ Interopérabilité PHP    .NET

De PHP à .NET (PHP esclave, .NET maître)

• Couplage fort– Mono 1.0 - NET pour Unix et Linux

• Définition : Mono est un projet qui a pour but de développer un framework .NET alternatif complet, disponible pour les plate-formes Linux et Windows (Mac et Bsd par extension). Il a été lancé par l'équipe Ximian

• Lancé le 9 juillet 2001 et géré par Miguel de Icaza, vice-président du développement chez Novell, qui a créé Mono (et co-fondé Ximian).

• Mono 2.0 inclura un support natif des WinForms et du Visual Basic.Net ainsi qu’une mise à jour des API .Net

• Une application .Net créée sous Linux ou Windows tournera indifféremment sur l’un ou l’autre OS

• Sources– http://www.go-mono.org – http://www.gotmono.com

Page 20: Symétrique de l’ Interopérabilité PHP    .NET

De PHP à .NET (PHP esclave, .NET maître)

• Couplage fort– PHP# (Prototype)

• Définition : Compilateur IL (Intermediate Language) PHP

• PHP # compilateur• « mono.PHP.Variable.Object »• … PHP again uses the classic Bison Parser, as the Zend engine is

all in C, so this combination is fast and suitable. In Mono, a Tool called Jay is used, this is a C program that can generate Java or C# code, (obviously in Mono it's C#)…

• Sources– http://www.akbkhome.com/wiki.php/Projects/PHP_Sharp

Page 21: Symétrique de l’ Interopérabilité PHP    .NET

De PHP à .NET (PHP esclave, .NET maître)

• Couplage lâche– XML-HTTP

• Définition : Protocole permettant d'invoquer un objet distant en fournissant les paramètres nécessaires à l'appel dans un message au format XML et en utilisant le moyen de communication HTTP.La réponse est également renvoyée dans un format XML.

• .NET– System.Net.HttpWebRequest– System.Net.HttpWebResponse

• Sources– http://msdn.microsoft.com/library/fre/default.asp?url=/library/FRE/cpref/html/

frlrfSystemNet.asp – http://www.dotnet247.com/247reference/msgs/25/125779.aspx – http://www.xmlforasp.net

Page 22: Symétrique de l’ Interopérabilité PHP    .NET

De PHP à .NET (PHP esclave, .NET maître)

• Couplage lâche– Services Web

• Définition : Application web pouvant interagir dynamiquement avec d'autres programmes en utilisant des protocoles d'échanges basé sur

XML comme SOAP, XML-RPC ou XMLP.

• .NET– System.Web.Services

• Sources– http://msdn.microsoft.com/library/fre/default.asp?url=/library/FRE/cpref/html/

frlrfsystemwebservicesprotocols.asp – http://www.microsoft.com/france/msdn/technos/webservices.mspx – http://www.xmlforasp.net/CodeBank.aspx?codeType=webservices

Source : http://www.journaldunet.com/encyclopedie

Page 23: Symétrique de l’ Interopérabilité PHP    .NET

Interopérabilité au quotidien

• L’interopérabilité (lâche) au quotidien entre les communautés www.asp-php.net et www.codes-sources.com – Interopérabilité lâche par flux RSS.

• Simple à mettre en place• Rapide, Efficace &Fiable• Peu de contraintes techniques

• Blogs ;)

– http://blogs.developpeur.org/redo– http://blogs.developpeur.org/redo/Rss.aspx – http://sig.levillage.org/index.php?p=543

Page 24: Symétrique de l’ Interopérabilité PHP    .NET

Retour d’expérience…

http://www.asp-php.net

Page 25: Symétrique de l’ Interopérabilité PHP    .NET

Retour d’expérience…

http://www.codes-sources.com

Page 26: Symétrique de l’ Interopérabilité PHP    .NET

Solutions exotiques émergeantes

• Add-In J2EE VS.NET MainSoft– convertir une simple application ASP.NET en un servlet Java debuggable le tout devant

ainsi être déployé sur une plateforme Tomcat – http://blogs.developpeur.org/redo/archive/2004/07/01/1945.aspx

• Add-In VS.PHP (Intégration à VS.NET) & VS.PHP Debugger– Contrary to other PHP IDE products, VS.Php leverages the familiar interface of

Microsoft Visual Studio.Net allowing PHP developers leverage all the features Visual Studio.Net provides. No need to learn a new IDE interface or tools.

– http://www.jcxsoftware.com/jcx.corporate6/modules/wfsection/index.php?category=12

– http://www.jcxsoftware.com/jcx.corporate6/modules/wfsection/article.php?articleid=35&PHPSESSID=4eddab2285a1449aeaf8ab89c6d13e44

• Interop par Tiers : MCDBR

Page 27: Symétrique de l’ Interopérabilité PHP    .NET

Conclusion

• Interopérabilité :

– Évolution constante de PHP• Sur extensions et connecteurs• Sur le support des Web Services

– .NET Interop en mode Natif– Evolution du projet Mono– Simplification de la communication entre systèmes

hétérogènes, élimine les complexités et les diversités technologiques.

« Exploitez le meilleur des deux technologies »

Page 28: Symétrique de l’ Interopérabilité PHP    .NET

Références & Liens

• PHP5– http://www.php.net/downloads.php

• Manuel PHP4 – PHP5– http://www.php.net/manual/fr/index.php – http://www.php.net/download-docs.php

• Install de php5 sous IIS– http://www.asp-php.net/ressources/bouts_de_code.php?codid=60

• Projet Mono– http://www.go-mono.org

• Faire un agrégateur en PHP 5 – http://www.asp-php.net/scripts/asp-php/php5-agregateur_rss.php?page=2

• Communautés– http://www.phpfrance.com– http://www.asp-php.net– http://www.codes-sources.com