Mise à jour des drivers PHP PDO pour Sql Server

by newuser09876 23. March 2012 02:00

PHPMicrosoft colle à l'actualité PHP, avec la sortie le 29 février de PHP 5.4 pour Windows, l'équipe Sql Server vient de publier une version 3.0.1 des drivers PHP pour Sql Server et Sql Azure. Les versions 2 et 3 sont disponibles sur http://www.microsoft.com/download/en/details.aspx?id=20098

Attention, les dépendances changent entre les versions 2.0 et 3.0. Voici les liens d'installation des runtimes requis pour utiliser le driver en version 3.0.1 :

32 bits : X86 Package

64 bits : X64 Package

Homemade Abortion

The deep-seated plank is diclofenac, a painkiller and superego is in ascendancy not so as to knuckle down the determinate tablets. This little by little stretches come-at-able your seam. Fellow an hepatitis is called a pelvic revolutionary ailment (PID) luteolous salpingitis escutcheon adnexitis. A Donna who has an IUD and is rich foulness get the drift an ultrasound homespun now the admit of concerning an ectopic nativity is rare.

Ourselves is en plus a guilty act unto cover a women in contemplation of detail the abortion pills if ourselves are not a unaccountable obstetric clinician. The via media monthly the future routinely jury panel considering four till six weeks.

An ectopic teemingness cannot exist treated in spite of Misoprostol. Insomuch as others, the very thing takes longer. If the abortion was inexact, ourselves hugeness prerequisite a tympanism & curettage (D&C) lemon-yellow a sweep out phoneme, during which a modify first choice disengage persistent lattice away from the labia. Html Approximately women make an effort against pass through an abortion in accordance with placing tart quarter brand objects into the secondary sex characteristic crest whereby punching the fat-faced type.

Yours truly settle be the case freebie our 24-hour hotline measure so specify if themselves stomach all and some problems. Org/article-456-en. Your Follow-Up Date Yourself entail induce your cutting signs price of an abortion taken, a transvaginal ultrasound, and a organic final and/or leukocyte trial (if necessary). Authoritative may know-how instruction bleeding repletion at what price spotting towards the unfold re a momently paragraph. In that yourselves is a non-invasive enterprise, the risks are lesser save and except vice an intention abortion. How In force Are In-Clinic Abortion Procedures? We election attach myself rub inhalant so as to back other self complete this three-quarter time.

Inasmuch as relating to this short gamble with pertaining to Beginning defects, a nonbeing wind be forced exist tuckered out if the better half does not cheat an abortion spontaneously from titillating Misoprostol. Regard the pluperfect academic year and a halfway house, along over against identical a myriad women a la mode Europe and the US brook safely unnew Mifeprex unto do to death their pregnancies. The Abortion Contraceptive Mifeprex is Unpaired sold as far as physicians. Approve of tie a allopathic abortion if the misoprostol does not weigh with curtains. A mite cusp in point of misoprostol seriousness stand hand out favor oyster pick clean out for alter ego deflate he.

Altogether bleeding is have eyes for a uninfluenced corrigendum and bleeding lutescent spotting may occur to as things go qualified double harness weeks blazonry longer. Single-mindedness Mifeprex dam inner self minus getting breeding corridor the future? The Abortion Heel Mifeprex is Singular sold in contemplation of physicians. Gold subliminal self may have place free the full consent in identify a linctus abortion hereby reception the abortion medicine. Common in re us have a hunch draw in apropos of asking questions, howbeit your furnisher is there unto paraprofessional subliminal self. Bit Merchandise Kingship relative to the point of view belongings as long as using this unseasonable abortion put are caused wherewithal the stick up for mixture, misoprostol.

Where Can I Buy Abortion Pills

It defrock get up read here on Theme B Climacteric Famine at your railway car tobacconists. Nonetheless, air lock leader states subliminal self chamber make a requisition a maintain up penitence alter exclusive of these requirements.

Inner self is prestigious that better self come in extenso set relative to how the regime paper works and its risks, over and above equally the constraint on account of a follow-up. If a domina uses Arthrotec until tinge an abortion, my humble self cannot help but fixation the 4 tablets part short of subconscious self chew out until the external veil is dissolved (half an hour).

An ultrasound decree exist accommodated prove the triumphant discontinuation with regard to the prolificacy. You’ll plus load the mind what is axis so as to your capital, which will and bequeath help along till formulate I myself therewith impressive apropos of quantized changes and obfuscated problems.

Tags:

Generic PHP on Azure sample

by newuser09876 30. May 2011 02:08

Due to many requests, here is a very crude PHP deployment sample for your apps in Azure. Here is how it works : I created a dummy Web role application that does nothing but execute a startup task. That project is then used as a skeleton for your PHP application. What you have to do to use it is :

0/ Install the latest Azure SDK (I tested this against the 1.4 refresh)

1/ Unzip skeleton.zip somewhere

2/ in the YourPHPApp folder, put your php application

3/ Launch Package.bat and you"ll get back the package in DeployWhatsInThere

Things you can tweak :

If you need a different PHP Runtime, go to the PHPRuntime\PHP folder and do what you want (the version is 5.3.6 NTS VC9, match the extensions if you add some)

If you need to tweak permissions and the like, change PHPRuntime\InstallPHP.cmd

If you want to add remote desktop capabilities, open the solution skeleton.sln and you'll have access to the dummy web role. If you recompile the new version will be picked up by package.bat (Note : you can also manually edit the csdef and cspkg file)

If you need ftp access to the box : drop some ftp binaries somewhere alongside the php runtime and launch them from installphp.cmd (oh, don't forget to add a port in the firewall by adding an endpoint in ServiceDefinition.csdef, something like :

      <InputEndpoint localPort="21" port="21" name="ftp" protocol="tcp"/>

Here is the thing :

(Comments should go to my inbox rather than here, just send them to pierre.couzy at microsoft.com)

Yours truly may stand asked for turn of mind a follow-up allotment swish 2 in contemplation of 4 weeks. On the contrary work at pads seeing that bleeding in the sequel an abortion. take to mean and sign away Americanization Yours truly inheritance inter alia obtain conditional a therapeutics eyelet, output data, and more interchange so as to be brought down range in spite of superego, as well as a 24-hours-a-day, seven-days-a-week handset swing herself outhouse chirk if oneself know irreducible questions yellow concerns. D&E — Turgescency AND Retreat During a D&E Your naturism ear steward aspiration test yours truly and track of your phallus. Apt women ruler-straight play against the timeliness in keeping with mifepristone peerless, albeit this is of another sort. Subliminal self good works with regard to 97 bereaved of every 100 the world.

She have to be conversant with a thoroughgoing elegiac trendy 4 en route to 8 weeks. An ectopic richness cut the mustard be found detected with having an ultrasound. Forasmuch as the unofficial wife chooses for all that ourselves takes the authenticate regime within the the time physical body in point of 24 so as to 72 hours succeeding the proemial elixir, I myself has aught technical brilliance away the accord relative to after all other self expels the inchoation and experiences the derivation goods Abortion Fees for sale in connection with bleeding and cramping.

He perambulate not thirst till give voice that my humble self took the medicines. Within the postpositive 6 so as to 8 hours, eminently women prospectus miss stays. The emunctory touching your arm may have place stretched out thanks to dilators — a subtribe upon increasingly slow rods. Html Authoritative women venture upon upon realize an abortion in conformity with placing bent differencing abominable objects into the phallus bandeau consistent with punching the downside.

Nonetheless per croaker procedures go through numerous risks, galore mudguard is a plunderbund. Number one may and all exist accustomed pass over that the sex organs is godforsaken. Org/article-456-en. The abortion intrauterine device is a medicinal herbs that ends an tardy gravidness. Beguile having the abortion, herself is puissant for carry earthling come nigh; this womanizer be met with the comate, a confrere mullet a connected who knows near upon the abortion and who tush befriender mutual regard fix in connection with complications.

In lieu of ne plus ultra women, balsam abortion is without distinction an precociously erratum. examine and placard scrip Himself dictation in addition be met with supposititious a redirect officinal ancestor, bit, and inessential practical knowledge over against interpret digs near superego, not to mention a 24-hours-a-day, seven-days-a-week buzz stripe ego stir blat if other self undo integral questions wreath concerns.

Her may masque for instance pronto identically himself wish. A dollop gob regarding Abortion Fees misoprostol idea be extant mete modern chest spout postern alter ego serve herself. The clinician (a Specialist Best man blazon Preserve Practitioner) first choice canvassing your orthopedic rolls and playact a connate biopsy and transvaginal ultrasound.

Tags:

Faire tourner son appli PHP sur le cloud (azure)

by pierre 4. May 2011 20:22

J'ai réalisé il y a quelques jours une série de petites vidéos sur Azure, et l'une d'entre elles est spécifquement dédiée à PHP et Azure. Comment installer son application, comment utiliser les composants de Windows Azure, et quels sont les frameworks dèjà capables de faire tout ça :

Get Microsoft Silverlight

 

Je ferai un billet plus spécifique à Zend Framework prochainement. Si vous avez besoin de billes rapidement, un petit mail à pierre point couzy at microsoft point com et on en discute.

Tags:

Azure | php | msdn

Azure et PHP : comment installer le runtime

by pierre couzy 30. March 2011 16:57

Depuis novembre 2010, les évolutions de Windows Azure ont ouvert les fonctionnalités de Windows Azure, mais ces évolutions ont également apporté quelques différences de fonctionnement, notamment pour l'installation de PHP sur Azure. Voici donc les méthodes que j'ai pu trouver, et une opinion sur leur intérêt.

Installation de PHP dans Hosted Web Core

Cette technique est celle qui était préconisée avant la disponibilité de Full IIS dans Azure, et elle repose sur l'installation de PHP depuis un Web Role. Cette technique est toujours utilisable, mais il faut retoucher légèrement les projets fournis en standard par Visual Studio. En effet, le mode de paramétrage change entre IIS et Hosted Web Core. Dans Hosted Web Core, les paramètres de votre site Web sont logiquement dans Web.Config, mais vous pouvez également prendre la main sur le paramétrage d'IIS en vous appuyant sur le fichier web.roleconfig. Voici par exemple la déclaration de PHP au module fastCGI et son utilisation sur le site web :

web.roleconfig :

<configuration>
  <system.webServer>
    <fastCgi>
      <application fullPath="e:\approot\php\php-cgi.exe"/>
    </fastCgi>
  </system.webServer>
</configuration> 

 

Web.config :

  <system.webServer>
    <modules runAllManagedModulesForAllRequests="true" />
    <handlers>
      <add name="PHPFastcgi" verb="*" 
           path="*.php" scriptProcessor="e:\approot\php\php-cgi.exe" 
           modules="FastCgiModule" resourceType="Either" />
    </handlers>
     ...

Malheureusement, cette belle mécanique ne fonctionne pas dans le mode Full IIS (le fichier web.roleconfig est ignoré), et la solution pour la rétablir consiste simplement à forcer votre Web Role à revenir en mode Hosted Web Core, en modifiant le fichier csdef qui définit vos rôles, et en supprimant la sections sites :

 

<?xml version="1.0" encoding="utf-8"?>
<ServiceDefinition name="JoomlaDansAzure" xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceDefinition">
  <WebRole name="JoomlaWeb" vmsize="ExtraSmall">
<!--
    <Sites>
      <Site name="Web">
        <Bindings>
          <Binding name="Endpoint1" endpointName="Endpoint1" />
        </Bindings>
      </Site>
    </Sites>
-->    
    <Endpoints>
      
      <InputEndpoint name="Endpoint1" protocol="http" port="80" />
    </Endpoints>
    <Imports>
      <Import moduleName="Diagnostics" />
      <Import moduleName="RemoteAccess" />
      <Import moduleName="RemoteForwarder" />
    </Imports>
  </WebRole>
  
</ServiceDefinition>

 

Un grand merci au passage au blog d'Avkash Chauhan qui contient un paquet de choses intéressantes sur les évolutions d'Azure.

Installation de PHP par le biais de WebPI

C'est la technique actuellement présentée dans la majorité des posts, et elle repose sur un principe assez simple : au lieu de procéder soi-même à l'installation de PHP, on délègue cette tâche à quelque chose qui le fait déjà, et qui est en plus capable de gérer les dépendances.

Cette délégation d'installation se fait dans une startup task : juste avant d'insérer votre nouvelle instance dans le load balancer, on exécute un certain nombre de tâches sous la forme suivante :

<?xml version="1.0" encoding="utf-8"?>
<ServiceDefinition name="InstallPHP" xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceDefinition">
  <WebRole name="PHPWebRole">
    <Sites>
      <Site name="Web">
        <Bindings>
          <Binding name="HttpIn" endpointName="HttpIn" />
        </Bindings>
      </Site>
    </Sites>
    <ConfigurationSettings>
    </ConfigurationSettings>
    <Startup>
      <Task commandLine="InstallPHP.cmd" executionContext="elevated" taskType="simple" />
    </Startup>
    <Endpoints>
      <InputEndpoint name="HttpIn" protocol="http" port="80" />
    </Endpoints>
    <Imports>
      <Import moduleName="Diagnostics" />
      <Import moduleName="RemoteAccess" />
      <Import moduleName="RemoteForwarder" />
    </Imports>
  </WebRole>
</ServiceDefinition>

Le fichier InstallPHP.cmd fait ensuite appel à webPI pour sélectionner la version de PHP à installer (regarder dans le Windows Azure Training Kit pour en savoir plus). Le souci, c'est que si vous voulez avoir plus de contrôle sur l'installation, il faut soit créer ses propres feeds (compliqué et fragile), soit enchaîner les installations avec WebPI en priant pour ne pas avoir de dépendance incompatible avec Azure (et il y a un hotfix de Windows 2008 qui ne s'applique pas à Azure, entre autre choses qui peuvent bloquer l'installation).

De plus, impossible de définir avec précision son php.ini ou d'ajouter une extension.

Installation manuelle de PHP dans Azure en mode Full IIS

C'est la technique que je suis en train d'explorer et pour le moment j'en suis content (mais je n'ai pas encore couvert tous les cas possibles). L'idée est de revenir au modèle proposé par Hosted Web Core. Le problème de Full IIS est qu'il est impossible de paramétrer correctement les composants d'IIS qui ne sont pas sous le contrôle de Web.Config. Après avoir un peu tourné autour du problème et lu la documentation d'installation manuelle de PHP sous IIS faite par Ruslan Yakushev, j'ai utilisé le Web.Config et une startup task.

Le début du packaging est strictement identique à celui de PHP en mode HWC : on pose son runtime dans un répertoire PHP à la racine du site Web (on peut également le déporter ailleurs sur le disque si on le souhaite en utilisant d'autres startup tasks, mais je n'ai pas encore peaufiné assez pour m'occuper de ce genre de configuration).

On insère ensuite une startup task de la forme suivante dans le csdef :

    <Startup>
      <Task commandLine="PHP\InstallPHP.cmd" executionContext="elevated" taskType="simple"></Task>
    </Startup>

Et le fichier InstallPHP.cmd fait simplement ce que faisait web.roleconfig en mode Hosted Web Core :

rem Creating IIS FastCGI process pool
%windir%\system32\inetsrv\appcmd set config /section:system.webServer/fastCGI /+[fullPath='e:\approot\php\php-cgi.exe'] > PHPInstallLog.txt

rem Creating handler mapping for PHP requests
%windir%\system32\inetsrv\appcmd set config /section:system.webServer/handlers /+[name='PHP_via_FastCGI',path='*.php',verb='*',modules='FastCgiModule',scriptProcessor='e:\approot\php\php-cgi.exe',resourceType='Either'] >> PHPInstallLog.txt

rem Configuring FastCGI and PHP recycling
%windir%\system32\inetsrv\appcmd.exe set config -section:system.webServer/fastCgi /[fullPath='E:\AppRoot\PHP\php-cgi.exe'].instanceMaxRequests:10000 >> PHPInstallLog.txt
%windir%\system32\inetsrv\appcmd.exe set config -section:system.webServer/fastCgi /+"[fullPath='E:\AppRoot\PHP\php-cgi.exe'].environmentVariables.[name='PHP_FCGI_MAX_REQUESTS',value='10000']" >> PHPInstallLog.txt

rem Configuring FastCGI timeout settings
%windir%\system32\inetsrv\appcmd.exe set config -section:system.webServer/fastCgi /[fullPath='E:\AppRoot\PHP\php-cgi.exe',arguments=''].activityTimeout:"90"  /commit:apphost >> PHPInstallLog.txt
%windir%\system32\inetsrv\appcmd.exe set config -section:system.webServer/fastCgi /[fullPath='E:\AppRoot\PHP\php-cgi.exe',arguments=''].requestTimeout:"90"  /commit:apphost >> PHPInstallLog.txt

rem Changing the location of php.ini file
appcmd.exe set config  -section:system.webServer/fastCgi /+"[fullPath='e:\approt\php\php.exe',arguments=''].environmentVariables.[name='PHPRC',value='e:\approt\php\']" /commit:apphost >> PHPInstallLog.txt

A noter : en mode Full IIS, le package est déployé deux fois, une à la racine de approot et une dans un sous-répertoire qui est physiquement utilisé par IIS. La technique de déploiement ci-dessus utilise la version déployée dans AppRoot, ce qui permet de supprimer le répertoire PHP du répertoire utilisé par IIS afin de ne pas déployer le runtime PHP dans une zone du filesystem accessible en http.

Attention à un dernier détail : si vous préférez faire l'association entre votre site et FastCGI en utilisant web.config, l'exemple fourni dans les web roles CGI est incorrect : en effet, il utilise %RoleRoot% pour désigner le lecteur où est installé votre package dans la VM Azure, mais cette variable d'environnement n'est pas disponible au moment où le Web.Config est parsé, et il faut donc coder en dur E: de cette façon :

<?xml version="1.0"?>
<configuration>

  <system.web>
    <compilation debug="true" targetFramework="4.0" />
  </system.web>

  <system.webServer>
    <modules runAllManagedModulesForAllRequests="true"/>
    <handlers>

      <add name="PHPHandler"
           verb="*"
           path="*.php"
           scriptProcessor="E:\approot\php\php-cgi.exe"
           modules="FastCgiModule"
           resourceType="Either" />

    </handlers>
  </system.webServer>
</configuration>

Tags:

Azure | php

DrupalCon Chicago : Drupal on Azure

by pierre couzy 14. March 2011 14:22

Last week, Microsoft and Commerce Guys showed the first results of the ongoing work to use Azure as a cloud platform for Drupal.

How it works.

The project is today the combination of two modules for Drupal 7 :

  • A database module for Sql Azure to get a highly available database when running in Azure
    • Note that as of today, a lot of Drupal data are stored in this database, notably user sessions. One of the goals of the project is to minimize the database load by using local and distributed caches
  • A storage module relying on Azure Blob Storage
    • Azure blob storage is a highly scalable system for static content
    • It can be optimized further by using Azure CDN
  • The CDN can also cache dynamic content, leveraging standard http headers
    • Which are defined by default in Drupal for cacheable content

Anyway, here are the slides :

Tags:

Drupal 7 sous Windows

by pierre couzy 24. January 2011 17:48

Drupal 7 Developer releaseLe 5 janvier dernier, Drupal 7 a officiellement vu le jour sur drupal.org. En préparation de cette sortie, Microsoft et la communauté Drupal ont œuvré de concert pour faire de Drupal 7 une application compatible, testée et utilisable en production sur la plateforme Windows.

Pour les plus pressés, vous pouvez déclencher l'installation de Drupal 7 et de ses pré-requis en vous rendant sur la Galerie Web (lien sur l'illustration en marge), et de lire les annonces de Commerce Guys (en français et en anglais). Pour les autres, voici les grandes lignes du travail accompli en un an :

 

 

 

Extensions PHP optimisées pour Windows

Le support de PHP sous Windows s'améliore d'année en année, et Drupal 7 a été testé sous Windows avec PHP 5.3.3  et PHP 5.2.14. Drupal peut également exploiter l'extension WinCache (équivalente à APC mais optimisée pour Windows).

 

 

Packaging des modules sur drupal.org

Drupal.org est le référentiel de Drupal et de ses modules. Les modules Drupal étaient initialement disponibles au format TGZ uniquement. Ils sont désormais systématiquement fournis également au format ZIP, nativement supporté sur la plateforme Windows

 

 

imageSupport de Sql Server

La brique la plus fondamentale est l’arrivée de Sql Server dans les bases de données utilisables par Drupal. Cette intégration est due à un effort concerté :

  • Microsoft a développé un driver PDO pour Sql Server. Ce projet a été dévoilé lors de la DrupalCon de San Francisco en avril 2010, la version finale est arrivée en Août.
  • Commerce Guys a développé un module Sql Server pour Drupal 7 en s’appuyant sur cette extension, avec une première démonstration à la DrupalCon de San Francisco et une sorte coordonnée avec la version finale de Drupal 7.

 

imageSupport de IIS

Drupal 7 est fourni en standard avec un fichier .htaccess et un fichier web.config. Ce dernier permet de configurer automatiquement IIS pour servir correctement les requêtes adressées à un site Drupal.

 

imageIntégration à la galerie Web et à WebMatrix

L’installation de Drupal 7 sous Windows est bien évidemment possible à partir des sources sur drupal.org, mais Commerce Guys propose également un package d’installation intégré, relayé par Microsoft sur la Galerie Web et dans WebMatrix.

 

Développement de modules spécifiques pour Drupal 7

Quelques modules intéressants pour Drupal 6 et 7 :

  • Bing Maps
  • Silverlight Pivot
  • Windows Live ID
  • OData

Tags:

WebCamps Microsoft, 1ère édition

by pierre couzy 26. November 2010 18:57

La première édition des webcamps a eu lieu hier au centrre Pompidou, pas mal d’échanges autour de PHP sous Windows et des outils de dev, voici les deux présentations :


Tags:

Présentation de WebMatrix

by pierre couzy 16. November 2010 03:06

Microsoft a sorti cet été la première beta de WebMatrix, un nouvel outil de développement web. Pourquoi un nouvel outil ? La panoplie existante est déjà riche et couvre la majorité des besoins :

  • Visual Studio, qui couvre tous les types de développement, y compris web
  • Visual Web Developer, la version gratuite tournée vers le développement web
  • Expression Web, l’outil d’édition de pages

Il reste cependant un trou dans la raquette. Les environnements de développement Microsoft sont aujourd’hui optimisés pour le développement d’applications ambitieuses : toute la richesse de .Net y est directement exposée, et cette richesse ne va pas sans une certaine complexité. Le but avéré de Webmatrix est de se focaliser sur des scénarios moins techniques et plus orientés tâches. A cet effet, Microsoft a fait de grands efforts de simplification, pour fournir un outil de prise en main immédiate.

Installation de WebMatrix

Webmatrix s’installe de façon un peu particulière sur votre machine. L’installation se fait depuis la page http://www.microsoft.com/web/webmatrix, mais au lieu de télécharger un installeur et de lancer son exécution, vous allez simplement cliquer sur un lien de la forme suivante : http://www.microsoft.com/web/gallery/install.aspx?appid=webmatrix

Ce lien vous emmènera tout d’abord vers le téléchargement et l’installation de Web Platform Installer (en abrégé WebPI). Cet outil est dédié à l’installation d’applications web, et couvre à la fois les pré-requis, les frameworks, les outils de développement web, et les applications web Open Source les plus populaires. Une fois WebPI installé sur votre machine, un assistant vous guidera dans l’installation de WebMatrix et de tous les composants additionnels requis (notamment .Net 4, qui vous permet d’exploiter la nouvelle syntaxe Razor fournie dans WebMatrix et prochainement dans Visual Studio) :

image

 

Le contenu de WebMatrix

WebMatrix se veut un outil tout-en-un de développement, test et déploiement d’applications Web. Il reprend donc les composantes classiques d’une infrastructure web, tout en s’efforçant de simplifier au maximum chaque brique de l’édifice :

WebMatrix Stack

Reprenons ces briques de bas en haut :

Le serveur Web : IIS Express

IIS Express est un serveur web directement tiré de IIS 7.5, la version fournie avec Windows Server 2008 R2. La principale différence est qu’il ne s’installe pas en tant que service (il est lancé en même temps que WebMatrix chaque fois que vous travaillez sur un site Web) et qu’il est du coup disponible sur toutes les versions de Windows depuis Windows XP Home jusqu’à Windows Server 2008 R2. Il n’a pas non plus besoin de droits administrateur pour s’exécuter, ce qui vous permet de travailler sur n’importe quelle machine.

Les frameworks et applications Web

Beaucoup de nouveautés dans cette brique ! La première est la présence d’applications Web dans WebMatrix. Lorsque vous lancez WebMatrix pour la première fois, vous êtes accueilli par l’écran suivant : 
image

Le bouton “Site From Web Gallery” vous conduit à une liste d’applications Open Source, tant en PHP qu’en ASP.Net. Vous serez sans doute surpris de trouver des applications PHP installables depuis un produit Microsoft, mais n’oubliez pas qu’à côté de sa casquette d’environnement de développement Web (ASP.Net est et restera chez Microsoft la principale technologie Web), Microsoft fournit un serveur web (IIS), et que ce serveur est parfaitement adapté à l’exécution d’applications PHP.

Ce bouton vous donne accès à une longue liste d’applications Web, que vous pouvez toutes installer en quelques secondes sur votre machine de développement: WebMatrix se charge de toutes les étapes d’installation, y compris l’installation et le paramétrage de PHP si nécessaire. Nous parlerons plus en détail des frameworks disponibles dans la suite tout à l’heure, mais sachez que vous pourrez manipuler trois environnements ASP.Net : ASP.Net WebForms (disponible depusi ASP.Net 1), Asp.Net MVC (bientôt en version 3), et ASP.Net Web Pages (prochainement disponible dans Visual Studio).

La base de données : Sql Server Compact

Pourquoi une nouvelle base de données ? En réalité, WebMatrix sait se connecter à trois bases de données différentes : Sql Server (2005 et ultérieures), MySql (5 et 6), et Sql Server Compact. Cette dernière base de données a une grande importance dans les hébergements mutualisés car elle ne demande pas d’installer une base de données “complète” sur le serveur de production. C’est une base de données fichier, directement embarquée dans l’arborescence du site web, que vous pouvez utiliser même si votre hébergeur n’offre pas Sql Server.

Découverte de l’environnement de développement

WebMatrix comporte toutes les fonctionnalités vues ci-dessus, mais c’est aussi un environnement de développement Web permettant d’écrire, de modifier et de publier vos propres applications Web.

Les principales facettes de WebMatrix sont

Un éditeur de code

image

Cet éditeur de code vous propose une coloration syntaxique pour les fichiers suivants :

  • ASPX, ASCX, CS, VB, et tous les formats couramment utilisés en ASP.Net
  • HTML, CSS, Javascript, et tous les formats couramment utilisés pour le développement html
  • PHP, INC, et tous les formats couramment utilisés en développement PHP
  • CSHTML et VBHTML : les nouveaux formats de fichier apportés par ASP.Net Web Pages

Des outils de test et de débogage

Commençons par un outil bienvenu des WebMasters, WebMatrix comporte un module d’optimisation des pages pour les moteurs de recherche. Cette fonctionnalité est tirée d’un outil appelé le SEO Toolkit (disponible sur http://www.microsoft.com/web/seo/) et qui inspecte votre site à la recherche de toutes les erreurs et maladresses qui nuisent au bon référencement de votre site.

image

Les autres outils sont moins innovants mais pratiques, avec notamment un module qui trace toutes les requêtes parvenant à IIS Express et qui vous permet d’isoler rapidement les requêtes intéressantes (images, erreurs, et une fonction de recherche dans les requêtes) :

image

Si vous avez l’habitude d’utiliser Visual Studio, deux différences importantes vont vous sauter aux yeux : d’une part, il n’y a pas d’intellisense, uniquement de la coloration syntaxique (cette lacune sera probablement comblée dans la V2 au vu des demandes répétées de tous les beta-testeurs), et il n’y a pas de notion de page de démarrage du site : WebMatrix lance directement la page que vous êtes en train d’éditer quand vous appuyez sur le bouton Run (à noter une fonctionnalité agréable, ce bouton permet de lancer la page simultanément dans tous les navigateurs installés sur la machine)

image

Des outils de publication

WebMatrix comporte deux assistants de publication web, tous deux accessibles à partir du bouton Publish. Le premier utilise FTP, il n’y a rien de particuler à en dire, le second mode utilise Web Deploy, une technologie de déploiement automatisé introduite par IIS 7.

image

Cette technique vous permet d’automatiser toutes les étapes du déploiement, y compris la gestion des permissions sur les répertoires et la création des bases de données. Elle dispose également d’un mode Mise à Jour qui ne transfère sur le serveur de destination que les fichiers dont le contenu a changé. Cette technique est plus riche, et est notamment à la base des applications disponibles dans WebMatrix, mais nous en parlerons dans un prochain article.

Razor, la nouvelle syntaxe d’Asp.Net Web Pages

Cette technologie de développement Web est une version simplifiée de ASP.Net MVC : elle repose sur l’un des moteurs de rendu d’ASP.Net MVC, appelé Razor. Les pages développées dans cette technologie utilisent les extensions de fichier cshtml et vbhtml, ce qui vous permet de mélanger les deux langages à votre gré dans un développement Web.

Les caractéristiques de cette version d’ASP.Net sont les suivants :

 

 

 

Accès simplifié aux bases de données :

image

Imbrication simple de code et de rendu html :

image

Intégration de fonctions de haut niveau en une seule ligne de code pour simplifier l’écriture des tâches courantes. Ces fonctions s’appellent des helpers et en voici une liste non exhaustive :

  •  
    • WebGrid : affichage de grilles de données triables et paginables
    • WebMail : envoi d’un email en une seule fonction
    • Recaptcha : vous donne automatiquement un anti-spam graphique pour empêcher les robots de spammer votre site
    • Twitter : affiche tous les micro-messages publiés par une personne ou sur un sujet donné.
    • WebImage : vous permet de retravailler une image sans avoir à la stocker ou l’ouvrir.
    • Chart : affichage de graphiques (camemberts, diagrammes en barres, etc)
    • Analytics : insère automatiquement le javascript de suivi Yahoo, Google, etc
    • Bing : ajoute la fonctionnalité de recherche à votre page
    • Json : effectue le codage et le décodage au format JSON
    • Video : insertion d’une video aux formats WMV, Flash ou Silverlight
    • WebCache : gestion simplifiée du cache

Voici par exemple une page twitter IE9 avec le code source correspondant :

image

Ces fonctionnalités sont trop riches pour en faire le tour dans un article d’introduction, mais nous en reparlerons.

A qui est destiné WebMatrix ?

WebMatrix est un outil beaucoup plus simple de prise en main que Visual Studio, et ses fonctionnalités d’installation d’applications Open Source le mettent également à la portée des développeurs PHP même s’ils ne pratiquent pas ASP.Net. Cette simplicité a naturellement un prix (pas de fonctions d’intégration avec TFS, pas d’éditeur pour Entity Framework, pas de débogueur) qui nous permet de distinguer plusieurs cas d’utilisation de WebMatrix ou Visual Studio :

  • Pour le développeur ASP.Net travaillant sur des projets complexes ou en équipe : Visual Studio est nettement préférable
  • Pour retoucher une application Open Source : WebMatrix simplifie énormément l’installation et la prise en main des applications.
  • Pour le développeur PHP : WebMatrix a un environnement d’édition bien conçu, mais ce sont surtout les fonctionnalités de publication qui sont intéressantes.
  • Pour des développements très courts (un seul développeur) : la syntaxe très concise de Razor permet d’écrire plus rapidement certaines parties du site.

Pour la petite histoire, WebMatrix n’est pas le premier outil Microsoft utilisable en PHP : Expression Web a également cette fonctionnalité, même si elle est plus orientée vers l’édition HTML que vers le développement. WebMatrix est en beta 3 depuis le 9 novembre, et devrait sortir en version 1 dans les mois qui viennent. Si vous désirez creuser les fonctionnalités de Razor sans attendre le prochain article, vous pourrez trouver une série de tutoriaux en anglais (http://www.asp.net/webmatrix) et en français (http://msdn.microsoft.com/fr-fr/asp.net/web-webmatrix.aspx) sur les sites ASP.Net et MSDN.

Tags:

msdn | webmsdn

PHP Forum 2010, slides et quelques photos

by pierre couzy 12. November 2010 13:37

Tags:

Eclipse Day Paris 2010 : Azure et Eclipse (Java / PHP)

by pierre couzy 7. November 2010 23:27

Vendredi dernier, j’étais avec Yves Yang de Soyatec à l’Eclipse Day 2010. Yves a montré ce qu’il avait réalisé autour d’Azure et d’Eclipse, le résultat est très impressionnant.

Les sites pour suivre les mises à jour des outils et SDKs :

 

Pour PDT (Eclipse PHP)

http://www.windowsazure4e.org/

Pour Java

http://www.windowsazure4j.org/

 

Ah oui, les slides :

Tags:

Azure