Réflexions sur l’utilisation de PHP dans le monde Microsoft et sur ses intérêts
Ces derniers temps, il m’arrive souvent d’avoir la chance de pouvoir discuter avec des développeurs de la communauté PHP. En comparant nos 2 univers, on peut voir clairement qu’il y a de bonnes synergies à mettre en place et que les 2 mondes ont beaucoup à apprendre l’un de l’autre en les faisant communiquer.
Il y a plusieurs scénarios intéressants à mon sens. Je vous propose de les revoir ensemble. N’ayant pas encore énormément de recul sur le monde merveilleux du développement PHP, je suis ouvert à toutes les formes de commentaires et de critiques. Dès l’instant qu’elles sont constructives bien sûr!
1 – Vous êtes développeur sur la plateforme LAMP et vous êtes très heureux ainsi. Utilisez nos services grâce aux standards!
Vous ne souhaitez pas toucher à la moindre lettre de votre éclairage. Genre, la touche W de votre clavier ne vous inspire pas du tout. :) Malgré tout, certains services peuvent être susceptibles de vous intéresser. Prenons par exemple les services Live proposant la possibilité d’authentifier des utilisateurs sur vos sites Web avec leur Live ID. Cela peut clairement avoir un intérêt vu les plus de 600 millions de Live ID présents sur Internet à l’heure actuelle!
Pour cela, le Live Framework pourra vous aider à mettre en place cette intégration. Basé sur les standards du Web, cela ne devrait pas vous poser la moindre difficulté. Vous pourrez alors ensuite accéder aux contacts, accéder à un espace Live Mesh, utiliser Virtual Earth, etc.
Si le sujet vous intéresse, je vous conseille de regarder ces 2 WebCasts (en Anglais):
- PDC09 : “Live Services: Programming Live Services Using Non-Microsoft Technologies” : https://channel9.msdn.com/pdc2008/BB51/ . Vous trouverez également un helper PHP pour le Live Framework ici
- MIX09 : “Running PHP on Microsoft Servers and Services” : https://videos.visitmix.com/MIX09/T21F vers la 43ème minute. Vous verrez comment interagir avec les services Live depuis une application PHP (avec WordPress en l’occurrence).
Les standards sont également intensivement utilisés dans notre plateforme Azure. Vous pourrez ainsi facilement faire appel à des services exposés sous forme de WebServices depuis vos applications PHP. Si ce sujet spécifique vous intéresse, je vous conseille alors cette session d’1h en Français : “Scénarios d'interopérabilité de la plateforme Azure en Java, Ruby et Cobol” . Les principes exposés étant les mêmes pour un accès depuis PHP.
2 – Vous souhaitez développer sur Windows mais déployer sous Linux
Pour quelles raisons? Parce vous trouvez plus agréable une machine sous Windows pour travailler et développer. Pourquoi pas, ce n’est pas moi qui vous dirais le contraire ! :)
Dans ces cas là, je vous invite alors à regarder la solution WAMP suivante : https://www.wampserver.com/ et à lire le blog suivant très intéressant : https://blog.wampserver.com/ animé par Romain BOURDON.
Voici un bref descriptif issu du site: “WampServer est une plate-forme de développement Web sous Windows. Il vous permet de développer des applications Web dynamiques à l'aide du serveur Apache2, du langage de scripts PHP et d'une base de données MySQL. Il possède également PHPMyAdmin et SQLite Manager pour gérer plus facilement vos bases de données. ”
3 – Vous souhaitez porter ou écrire votre application PHP de Linux/Apache vers Windows/IIS (avec FastCGI).
J’ai en effet constaté que les développeurs LAMP développent souvent sous Windows (avec WAMP donc) et publient ensuite sous Linux. Il serait donc peut-être plus intéressant d’avoir un ensemble cohérent avec une station de développement sous Windows et le serveur Web également sous Windows. De plus, il arrive également que certaines demandes clientes imposent l’utilisation de serveur Windows pour le déploiement des solutions PHP.
Par ailleurs, cela vous permet alors d’héberger des applications ASP.NET et PHP sur le même serveur grâce à l’utilisation du couple Windows/IIS. Simplification des problématiques d’administration donc.
A noter: qui à passer sous Windows, il me semble qu’il faut mieux passer sous IIS/FastCGI. Les raisons sont assez simples: Apache vient du monde Unix et lève par défaut un processus par demande (même si cela peut-être changé depuis la version 2 avec le module mpm_winnt_module). Pour des choix d’architecture, Windows est nettement moins à l’aise avec la création de nombreux processus par rapport à une base Unix. Mieux vaut donc partir sur le serveur Web IIS (Internet Information Server) prévu pour tirer le maximum de l’architecture de Windows et présent par défaut. D’autre part, sauf erreur de ma part, WAMP n’est pas actuellement supporté en production.
Pour vous aider à développer du PHP sur Windows, il est important de noter que nous avons sorti une série de kit de formation autour de ce sujet téléchargeable ici : “PHP on Windows Training Kit (April 2009) ” : https://go.microsoft.com/?linkid=9656081
A l’intérieur de ce kit PHP, voici les ateliers susceptibles de vous intéresser:
Utilisation des fonctionnalités de contrôle d’accès d’IIS 7.0 pour PHP
Utilisation des fonctionnalités média d’IIS 7.0 au sein d’une application PHP
Comment débugger du PHP sur IIS
Comment migrer une application PHP vers IIS 7.0
Pour terminer sur cette partie, un des bénéfices induit par le travail de migration d’une application PHP de Linux/Apache vers Windows/IIS/FastCGI est l’ouverture vers le Cloud. En effet, vous vous ouvrez alors facilement le portage vers notre plateforme d’hébergement et d’exécution dans le Cloud : Windows Azure. Si ce sujet vous intéresse, mon collègue Pierre Lagarde vous indique la marche à suivre pour publier une application PHP dans Windows Azure à travers ces 2 billets:
- “Support de Fast-CGI dans l’hébergement Windows Azure” : https://blogs.msdn.com/pierlag/archive/2009/03/20/support-de-fast-cgi-dans-l-h-bergement-windows-azure.aspx
- “Solution Azure Php (Exemple)” : https://blogs.msdn.com/pierlag/archive/2009/03/30/solution-azure-kphp-exemple.aspx
La session indiquée plus haut du MIX09 : “Running PHP on Microsoft Servers and Services” vous intéressera alors également.
4 – Vous souhaitez bénéficier de services dans vos applications PHP non disponibles dans MySQL
Rien ne vous empêche dès lors de faire appel à SQL Server 2008 depuis PHP.
A noter: notre équivalent gratuit à MySQL se nomme SQL Server 2008 Express. Vous pouvez donc le télécharger gratuitement ici : Sql Express 2008 . Ce dernier bénéfice bien par exemple des nouveaux types spatiaux même dans sa version gratuite.
Dans le kit présenté plus haut, voici la série qui pourra vous intéresser :
Démos
Démo avec les nouveaux types pour la géo-localisation
Démo de rapports avec SQL Server Reporting Services
Ateliers
Introduction à l’utilisation de SQL Server depuis PHP
A travers cet atelier, vous apprendrez à effectuer les opérations classiques d’accès aux données (Création, Lecture, Mise à jour, Suppression) vers SQL Server depuis des scripts PHP tournant sous IIS 7. Vous verrez ainsi les étapes à suivre pour vous connecter à la base de données et comment effectuer ces opérations au sein d’une transaction. |
Utilisation des fonctionnalités de recherche de texte libre et des BLOBs depuis PHP grâce à SQL Server
Les requêtes de type texte libre effectuent des recherches linguistiques sur des données de type texte en travaillant sur des mots et des phrases à travers des règles spécifiques à chaque langage comme le Français ou le Japonais par exemple. Pour chacun des langages supportés, SQL Server fournit des composants linguistiques spécifiques. Vous pouvez même éventuellement rechercher des synonymes.
Ressources complémentaires
Comment accéder aux bases de données SQL Server depuis PHP
Le driver Microsoft SQL Server pour PHP permet aux développeurs PHP d’accéder aux données d’une base SQL Server 2005 ou SQL Server 2008. Ce driver inclut le support des méthodes d’authentification Windows et SQL, les transactions, l’accès aux métadonnées, la gestion d’erreur, le pooling de connections, etc. Cet article explique comment charger et configurer le driver et présente comment tirer partie de plusieurs des fonctionnalités mentionnées avant. Cet article peut être consulté en ligne directement ici : https://msdn.microsoft.com/en-us/library/cc793139(SQL.90).aspx |
5 – Notre outil de développement Visual Studio 2008 grâce à VS.PHP
S’il y a bien une chose qui m’ait marqué ces derniers temps en côtoyant les développeurs PHP, c’est la multitude d’outils utilisés rarement bien intégrés les uns aux autres. Par ailleurs, certaines fonctions qui me paraissent aujourd’hui vitales ne sont pas toujours de la partie. C’est le cas de la complétion automatique nommée IntelliSense chez Microsoft ou alors également du debugging facile de son application.
De même, l’intégration continue, la gestion de tests unitaires ou de tests de montée en charge d’application Web sont des fonctionnalités intégrées de facto dans les versions Team de Visual Studio par exemple. Ce n’est pas toujours évident de mettre tout cela en place avec les outils gratuits pour gérer du PHP. Le couplage de Visual Studio avec TFS (Team Foundation Server) permet une gestion avancée du code source. On retrouve aussi des choses comme la génération de build basée sur des critères de qualité (build si uniquement couverture >80% des tests par exemple).
Pour être honnête, s’il y a bien quelque chose sur lequel on me titille jamais à la concurrence, c’est bien notre outil de développement Visual Studio.
Note: A ma grande surprise, j’ai actuellement rencontré peu de personnes développant avec Eclipse pour faire du PHP. Si j’ai rencontré le mauvais échantillon, n’hésitez pas à venir vers moi me vanter les mérites d’Eclipse pour faire du PHP! A mon sens, c’est en effet l’outil de développement qui fait clairement face à Visual Studio dans ma tête.
Alors je sais: chez Microsoft nos outils de développement ne sont pas gratuits (encore que… voir la gamme gratuite Express). Mais cela peut valoir le coup je pense de se poser la question: ne vaut-il mieux parfois investir dans ces outils plutôt que de galérer à mettre en place une 12aine d’outils gratuits finalement plus complexes à maitriser ? C’est un vaste débat que l’on ne pourra pas couvrir en quelques lignes ici…
Malgré tout, vous devriez jeter un coup d’œil au plug-in VS.PHP de la société JCX Software permettant le support de PHP directement au sein de Visual Studio. A vous le support abouti de l’IntelliSense, des points d’arrêt pour le debugging facile et de la gestion du source code par TFS !
Pour en savoir davantage, je vous conseille 2 pointeurs:
1 – la vidéo de notre plénière des TechDays 2009 (Plénière Jour 1) où mon collègue Pierre Lagarde vous faisait une démonstration du produit en action. C’est l’une des 1ères démonstrations.
2 – le coach MSDN VS.PHP : https://msdn.microsoft.com/fr-fr/vstudio/msdn.coach.vsphp.aspx où retrouverez un atelier accompagné d’une vidéo pour apprendre à maitriser l’ensemble.
Une offre commerciale sur VS.PHP en cours
Si cet outil vous intéresse, sachez qu’il existe actuellement une offre commerciale en cours. Voici comment cela se présente. La société STR propose la vente de ce plug-in en France: https://www.str.fr/
Le produit VS.PHP coute environ 100€ mais son achat ouvre le droit à la “competitive upgrade” vous permettant d’acheter la référence suivante:
Visual Studio Professional / Visual Studio Pro 2008 Win32 French UPG DVD / Developer Tools / C5E-00253
Prix constaté : ~630€
Au lieu de cette référence classique:
Visual Studio Professional / Visual Studio Pro 2008 Win32 French DVD / Developer Tools / C5E-00251
Prix constaté : ~920€
Soit VS+PHP à environ 730€ au lieu de VS nu à environ 920€ (attention, ce sont des prix en boite. Les prix en volume sont clairement inférieurs). Par ailleurs, ce sont des prix constatés sans aucun engagement de ma part. Contactez directement le revendeur pour avoir plus de détails si besoin.
Conclusion
Je pense que vous aurez compris que Microsoft ne prends pas à la légère la communauté PHP et l’immense expertise des développeurs PHP sur le marché. D’après ma brève expérience, ils existent de nombreux profiles différents de développeurs PHP, utilisant des framework différents, des outils différents, des méthodologies différentes avec des niveaux techniques différents. On retrouve en effet des développeurs “formés sur le tas” ou des passionnés faisant intensivement usage du copier/coller de code aux développeurs chevronnés adeptes du pattern MVC, de l’intégration continue, mettant en place de vrais projets industriels. On partage donc à ce niveau là une histoire commune! Dans la communauté du développement Microsoft, on passe également facilement du développeur de macros VBA formé sur le tas aux développeurs Web ASP.NET MVC adeptes du TDD (Test Driven Development), j’en passe et des meilleurs. Bref, il existe une mixité de profiles et de talents dans les 2 communautés. Pourquoi ne pas mixer l’ensemble un peu plus? :-)
Cependant, il serait mal venu de tenter de résumer l’intérêt que pourrait avoir le monde PHP à travailler avec des technologies Microsoft à travers ce simple billet. Il y a par exemple d’autres scénarios non encore traités qui sont également très intéressants comme l’utilisation de Silverlight 3 comme couche de présentation frontale à votre site Web PHP. J’espère que nous aurons l’occasion d’en rediscuter prochainement.
J’espère cependant avoir abordé certains sujets ayant attisé votre curiosité. J’attends maintenant vos retours!
A bientôt.
David
Comments
Anonymous
May 14, 2009
Vraiment génial que Microsoft essaye de se tourner vers la communauté PHP, mais franchement pourquoi ne pas aussi aider au développement de MONO, afin d'enfin pouvoir faire tourner correctement le Framework sous Unix. Parce qu'il y a peut être un intérêt à PHP de fonctionner sous IIS mais j'en vois un aussi grand a .NET de fonctionner sous unix ...Anonymous
June 24, 2009
Je partage cet avis car c'est exactement la situation dans laquelle je me trouve : ancien développeur PHP, j'ai migré sur le .NET afin de pouvoir développer des applications Desktop. Travaillant sur plate-forme Linux, il a été plus naturel de me tourner vers le projet Mono. Cela m'a permit de développer des applications multi-plateforme : .NET/WinForms pour Windows, Mono/Qt pour Linux. Cela m'a également ouverts de nouveaux horizons au niveau développement Web puisque depuis j'ai également développé quelques sites ASP.NET qui tournent sur un serveur LAMP. Le .NET sur Unix est déjà une réalité ! Je pense donc que Microsoft aurait tout intérêt à promouvoir des initiatives comme Phalanger (le "PHP.NET"), c'est à dire à inciter les développeurs à se tourner vers le .NET plutôt qu'à tenter de les faire migrer sur Windows. La majorité des développeurs PHP ne font pas tourner leurs sites Web sur Linux par choix mais plutôt par contraintes essentiellement financières (c'est le cas de la PME dans laquelle je travaille). Hors sujet : je fais partie des gens plutôt opposés à Microsoft d'ordinaire, mais je dois avouer que j'ai été plus que surpris et séduit par le .NET. C'est pour moi clairement la meilleure (la plus polyvalente) plate-forme de développement à l'heure actuelle... puisque ça marche également sur Linux ;o) Un grand bravo à toute l'équipe qui nous a pondu cette merveille.Anonymous
June 28, 2010
Salut à tous, pour le titre (introduction à l’utilisation de SQL Server depuis PHP ) quelqu'un peut me dire comment faire pour obtenir le lien vers les exemples de sql server. je sais qu'une fois je suis tombée dessus dans un dossier dans Program Files mais je ne le retrouve plus . je ne sais pas est ce qu'il existe aussi un lien vers les exemples!!!!!!!???? merciAnonymous
June 28, 2010
Salut à tous, pour le titre (introduction à l’utilisation de SQL Server depuis PHP ) quelqu'un peut me dire comment faire pour obtenir le lien vers les exemples de sql server. je sais qu'une fois je suis tombée dessus dans un dossier dans Program Files mais je ne le retrouve plus . je ne sais pas est ce qu'il existe aussi un lien vers les exemples!!!!!!!???? merciAnonymous
June 28, 2010
Salut à tous, pour le titre (introduction à l’utilisation de SQL Server depuis PHP ) quelqu'un peut me dire comment faire pour obtenir le lien vers les exemples de sql server. je sais qu'une fois je suis tombée dessus dans un dossier dans Program Files mais je ne le retrouve plus . je ne sais pas est ce qu'il existe aussi un lien vers les exemples!!!!!!!???? merciAnonymous
June 28, 2010
Salut à tous, pour le titre (introduction à l’utilisation de SQL Server depuis PHP ) quelqu'un peut me dire comment faire pour obtenir le lien vers les exemples de sql server. je sais qu'une fois je suis tombée dessus dans un dossier dans Program Files mais je ne le retrouve plus . je ne sais pas est ce qu'il existe aussi un lien vers les exemples!!!!!!!???? merciAnonymous
June 28, 2010
Salut à tous, pour le titre (introduction à l’utilisation de SQL Server depuis PHP ) quelqu'un peut me dire comment faire pour obtenir le lien vers les exemples de sql server. je sais qu'une fois je suis tombée dessus dans un dossier dans Program Files mais je ne le retrouve plus. je ne sais pas est ce qu'il existe aussi un lien vers les exemples!!!!!!!???? merciAnonymous
June 28, 2010
Salut à tous, pour le titre (introduction à l’utilisation de SQL Server depuis PHP ) quelqu'un peut me dire comment faire pour obtenir le lien vers les exemples de sql server. je sais qu'une fois je suis tombée dessus dans un dossier dans Program Files mais je ne le retrouve plus . je ne sais pas est ce qu'il existe aussi un lien vers les exemples!!!!!!!???? merciAnonymous
June 29, 2010
Salut c'est bon j'ai trouvé le lien je vous le passe: www.microsoft.com/.../details.aspx Bon courage à tousAnonymous
June 29, 2010
Salut c'est bon j'ai trouvé le lien je vous le passe: www.microsoft.com/.../details.aspx Bon courage à tous