On m'en avait parlé plusieurs fois mais j'avais jamais essayé Mono.Options, pour faire des applis console paramétrables sans être un devin. Mono.Options est disponible dans NuGet (un petit clic droit dans les références de votre projet console, ou bien directement par un Install-Package Mono.Options).
Comment ça marche ? Voilà par exemple mon outil d'extraction du pfx à partir du fichier de publish settings Azure :
using System;
using System.Xml.Linq;
using Mono.Options;
namespace GetPfx
{
class Program
{
static void Main(string[] args)
{
bool help=false;
string publishFile="";
string outPfxFile = "";
OptionSet o = new OptionSet()
.Add("?|h", "help file", v => help = v != null)
.Add("in=|pub=", "{file} saved from https://windows.azure.com/download/publishprofile.aspx",
v => publishFile = v)
.Add("out=|outpfx=", "{file}name for the resulting pfx", v => outPfxFile = v);
o.Parse(args);
if (help || publishFile=="" || outPfxFile=="")
{
Console.WriteLine("Extracts a pfx file from the Azure publish profile");
Console.WriteLine("Options:");
o.WriteOptionDescriptions(Console.Out);
Environment.Exit(-1);
}
var x = XDocument.Load(publishFile);
string pfx = x.Element("PublishData")
.Element("PublishProfile")
.Attribute("ManagementCertificate").Value;
System.IO.File.WriteAllBytes(outPfxFile,Convert.FromBase64String(pfx));
}
}
}
Voilà la mise à jour du packager PHP pour le SDK 1.6.
Les petites nouveautés :
- Suppression de la mise à jour par FTP
- Passage par défaut sur des instances extra small
- Activation de la fonctionnalité d'upgrade
Ce package n'autorise pas la prise de contrôle à distance de l'instance, mais le prochain comblera ce petit manque.
Mode d'emploi :
- dézippez le squelette,
- déposez votre application PHP dans le répertoitre yourPHPApp
- lancez package.bat
- déployez sur Azure le contenu de DeployWhatsInThere

March 23, 2012 02:23 by
pierre
Petit cadeau pour les abonnés MSDN : une machine sur Azure, avec un disque en WebDAV (taille limitée à 10Go pour les abonnés Pro, et 200 pour les abonnés premium si vous cherchez un peu dans les fichiers de configuration...)
Les infos détaillées : http://www.microsoft.com/france/visual-studio/msdn/azurepowerpack.aspx
La doc d'install : http://azdocs.cloudapp.net/modules/blogengine/post/2012/03/02/Installation-du-paquet-Azure4Msdn.aspx
La petite vidéo d'utilisation du partage réseau :
Et l'utilisation de l'accès RDP à la machine Azure :

March 23, 2012 02:00 by
pierre
Microsoft 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
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)
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 :
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.
J'ai récupéré ce matin le code source de SharpSTS (un toolkit pour cardspace), et il m'a fallu quelques recherches pour réussir à récupérer le code source depuis CodePlex, voilà le résultat de mes pérégrinations.
1/ Installez un client SubVersion
Récupérez un client subversion. TortoiseSVN est simple d'emploi, maintenu, et en plus il a des icônes rigolotes.
http://tortoisesvn.net/
2/ Installez et lancez SvnBridge
CodePlex fonctionne en réalité sous Team Foundation Server, vous allez donc installer sur votre machine un petit proxy SVN <=> TFS
http://www.codeplex.com/SvnBridge/
Le port est ce que vous voulez de disponible sur votre machine, l'adresse du serveur TFS est indiquée sur la page du projet CodePlex qui vous intéresse :

3/ Récupérez le code source
Faites-vous un répertoire là où vous voulez une copie des sources, un clic droit, et c'est tout :
4/ Et pour les commits ?
Il vous faudra un compte avec les droits de mise à jour sur le projet. Attention, le compte n'est pas directement votre login CodePlex : c'est snd\votreusername_cp