BizTalk Server Roadmap the vNext: BizTalk Server 2010 R2

BizTalk Server Roadmap the vNext: BizTalk Server 2010 R2

Great news for the BizTalk community, after many speculations about the end of BizTalk after Tony Meleg session (here) and with the upcoming integration features of Azure, Microsoft just release today the announce of Microsoft BizTalk Server vNext (see roadmap) . For now this version is called: BizTalk Server 2010 R2 (you can see the […]
Blog Post by: Sandro Pereira

Learn Windows Azure for free with the Emulator and the training Kit | Apprendre Windows Azure gratuitement avec l’émulateur et le kit d’apprentissage

English Fran%u00e7ais
Once you’ve installed the Windows Azure SDK, you can use the local Emulator. This does not require a Windows Azure account at this stage. You can get one later. Une fois que vous avez install%u00e9 le Windows Azure SDK 1.6, vous pouvez utiliser l’%u00e9mulateur local. Cela ne n%u00e9cessite pas un compte Windows Azure tout de suite. Vous pourrez en demander un plus tard.
Here is a quick overview of what you can do, and how to download the training kit.
Let’s start and run an Hello Cloud in the Windows Azure emulator
Voici une vue d’ensemble rapide de ce qu’on peut faire, et comment t%u00e9l%u00e9charger le kit d’apprentissage.
Commen%u00e7ons en d%u00e9marrant un exemple Hello Cloud dans l’%u00e9mulateur

NB: In order to be able to run more than one instance in the emulator, you must also install Visual Studio 2010 SP1. NB: pour pouvoir lancer plus d’une instance dans l’%u00e9mulateur, on doit installer installer le SP1 de Visual Studio 2010

 

Run the sample by hitting CTRL-F5. Note that it is also possible to start and debug with F5, but starting without debugging is faster. Ex%u00e9cuter l’exemple en tapant sur CTRL-F5. Il est aussi possible de d%u00e9marrer en d%u00e9boguant avec F5, mais le d%u00e9marrage sans d%u00e9bogage est plus rapide.
During the first launch, the storage emulator initializes. It stores some of its data in SQL Server Express, locally. Lors du premier lancement, l’%u00e9mulateur s’initialise. Il stocke des donn%u00e9es dans SQL Server Express, localement.
Then project starts. Puis le projet d%u00e9marre.
The emulator has graphical user interfaces: L’%u00e9mulateur a des interfaces graphiques:

 

 

There is also a ton of great stuff to discover by downloading the Windows Azure training kit Il y aussi des tonnes de contenu int%u00e9ressant %u00e0 d%u00e9couvrir dans le kit d’apprentissage.
Here is an overview of its content. En voici une vue d’ensemble.

Have a great time reading, listening, practicing with the Windows Azure Platform! Bonne lecture, bon visionnage, bons exercices avec la plateforme Windows Azure!

Benjamin

Blog Post by: Benjamin GUINEBERTIERE

Install the Windows Azure SDK for PHP with Windows Azure SDK 1.6 | Installer le SDK Windows Azure pour PHP avec le SDK Windows Azure 1.6

Before using Windows Azure with PHP, you will need the SDK for PHP. Instructions to install it are available here: http://azurephp.interoperabilitybridges.com/articles/setup-the-windows-azure-sdk-for-php, but this post was written before SDK 1.6 was available. Avant d’utiliser Windows Azure avec PHP, il faut le SDK pour PHP. Les instructions pour l’installer sont dans ce billet: http://azurephp.interoperabilitybridges.com/articles/setup-the-windows-azure-sdk-for-php, mais le billet a %u00e9t%u00e9 %u00e9crit avant la sortie du SDK 1.6.
Here is an additional step to avoid errors like Voici donc un %u00e9tape compl%u00e9mentaire qui permet d’%u00e9viter une erreur telle que

Error: Source: WshShell.RegRead
Description: Invalid root in registry key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs\ServiceHosting\v1.0\Inst
allPath".

With the Windows Azure SDK 1.6, the install path is now in the following registry Avec le SDK 1.6, le chemin d’installation est maintenant dans la clef de registre suivante:
Go to the folder where you installed the Windows Azure SDK for PHP and change the following file: Aller dans le dossier o%u00f9 le SDK pour PHP a %u00e9t%u00e9 install%u00e9 et changer le fichier suivant:

()\AzurePhp\library\Microsoft\WindowsAzure\CommandLine\Package.php

replace remplacer

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs\ServiceHosting\v1.0\InstallPath

by par

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs\ServiceHosting\v1.6\InstallPath

Benjamin

Blog Post by: Benjamin GUINEBERTIERE

New kid on the block: My BizTalk Processing Monitor

New kid on the block: My BizTalk Processing Monitor

Since quite some time I am developing a BizTalk monitoring tool, called BizTalk Processing Monitor (or BPM). This tool is different from most other BizTalk monitoring tools in that it does not monitor end points, but it gives (near) realtime insight if messages flow through your BizTalk Group. If there are any interruptions, you get warned. To retrieve this kind of information, BPM uses the Tracking database.
%ufeff%ufeff%ufeff%ufeff

Diagram View – here you can add a picture from your system and define which information you want to see 

%ufeff%ufeff%ufeff%ufeff Wednesday December 7 I had the pleasure to demonstrate BizTalk Processing Monitor to Saravana Kumar, known from amongst others BizTalk247 and BizTalk360. During a one hour Skype session we discussed BizTalk monitoring in general and BizTalk 360, but most of the time was reserved for a demonstration of my BizTalk Processing Monitor.
%ufeff
For January my collegue Steef-Jan Wiggers, Saravana and me are planning a talk at Ordina, Nieuwegein in the Netherlands about BizTalk monitoring and the available tools. This talk will be part of Ordina’s ‘Innoveer jij mee’ series (Innovate wih us). For now I’ll just show you a couple of screen dumps from BPM, but for a live demonstration I hope to meet you in January! Details will follow when available.

In the mean time: if you are interested in the capabilities of this tool or just want to know how it works, please don’t hesitate to drop me a line!
%ufeff
%ufeff

Warning Levels legend – When, for example,  it took longer
than 60 minutes to receive a certain messagetype, the
so-called Tracker in the Diagram View will turn red

%ufeff%ufeff

Throttling View – Your Hosts and their instances are auto discovered. In case BizTalk is throttling, you get a warning.

%ufeff%ufeff

Performance Counters by Throttling State – this screen shows more information about the
throttling related performance counters

%ufeff %ufeff

BizTalk Server 2010 R2

BizTalk Server is Microsoft’s integration and connectivity server and is one of the most deployed integration server in the industry. BizTalk Server 2010 was released just over a year ago. Today we are happy to share details on what customers can expect from the next release: BizTalk Server 2010 R2.

BizTalk Server 2010 R2 will focus on three primary themes:

  • Platform Support – Supporting new and current server and development platforms
  • Improved B2B – Aligning with industry standards and continuing to invest in performance improvements
  • Ready for the Cloud – Enabling customers to take advantage of the benefits of cloud computing

BizTalk Server 2010 R2 will be delivered approximately 6 months following the release of Windows Server 8. Release timing for Windows Server 8 is yet to be announced and will be disclosed by the Windows Server team in the future.

In addition to the investments we are making in BizTalk Server 2010 R2, we will continue the tradition of providing regular cumulative updates on a quarterly basis. These include updates to comply with Line-Of-Business (LOB) systems, schema changes, accelerator certifications, and bug fixes.

We believe that with this release we continue to deliver a mature, reliable and stable integration server that honors the trust of the thousands of customers who run their mission critical business processes on BizTalk Server.

Below is the detailed view of the features we are releasing:

Platform Support

Improved B2B

Ready for the Cloud

New Platforms and Infrastructure

  • Windows Server 8*
  • SQL Server 2012*

Increased Developer and IT Productivity

  • Visual Studio 11* and Windows 8* to develop solutions
  • In-place migration from BizTalk Server 2010

Extended Platform Integration

  • DB2 client connectivity to SQL Server,
    conversion of commands to T-SQL,
    migration of packages to stored procedures
  • Adapter connectivity to new data sources, including IBM Informix V11 and IBM IMS/DB V11

Agile Alignment to Industry Standards

  • Regular updates to schemas, accelerators certifications and adapters. Highlights include:
  • Healthcare: HIPPA 5010 extensions: 2777CA, 999, HL7 2.5.1
  • Finance: SWIFT SRG 2011 support, SWIFT SRG 2012, SWIFTNet 7.0 (new messaging platform)

Improved Performance and Scalability

  • HL7 MLLP adapter performance improvements
  • Better performance with ordered send ports
  • Enhanced scale out configuration with multiple hosts
  • Expanded adapter options for faster batch processing

Extend on-premises solutions to the cloud

  • Easily extend your on-premises BizTalk Server solution to the cloud in a secure manner
  • Tighter integration of on-premises BizTalk Server applications with Windows Azure Service Bus

Improved Licensing

  • Adjustments to licensing that are geared towards cloud hosting, including:
  • Purchase from a hoster on a monthly basis (SPLA)
  • Register your existing license with a hoster (License Mobility)

* Release dates for these products have not been disclosed yet

 

For additional details on BizTalk Server and purchasing options please contact your local Microsoft Account Manager or visit our website.

 

The BizTalk Server Team.

Blog Post by: BizTalk Blog

Finally MCTS again!

Earlier this year Microsoft retired the old certification for BizTalk 2006 and so I was no longer a Technology Specialist.

Well I finally got around to it, took the test, and scored a healthy 91%.

I have received some questions as to how you should prepare for the exam and based on that I have a couple pointers:

If you are an experienced BizTalk developer you really don’t need to study.

This is not a bad thing. It just shows that the exam is made to show that you have working experience and if you do; you will pass.

Read an excellent book

The unequivocal one is of course BizTalk 2010 Unleashed. Use it to read up on things you feel you don’t know; like perhaps the BRE or Wcf-adapters or BAM or Orchestrations or EDI or

Based on what you have used the last year, you should skip those parts and read up on the parts you have not used. If you spent the better part of 2011 developing integrations using advanced maps and Wcf; read up on BAM and orchestrations.

See how others have prepared

The ever productive Steef-Jan Wiggers has written a TechNet Wiki called BizTalk Server 2010 Exam 70-595 Preparation. It is about resources that is available for free from Microsoft. It comes highly recommended.

Buy beer

Do you know someone that is a MCTS for BizTalk 2010? If so; you can invite him/her to some kind of “after work event”. Buy the person some good beers and then start asking nicely about the exam.

As an MCTS you get special training, and these special pills, so you can’t remember specifics about the exam. We can however talk generally about it: What skills are measured? How much is there about BRE compared to other topics? Is it hard?

Just saying

Blog Post by: Mikael Sand

Deploying Drupal 7 on Windows Azure | Déploiement de Drupal 7 sur Windows Azure

English Fran%u00e7ais
This article shows most of the steps decribed on the Interoperability Bridges web site. The main differences are that it shows more screen shots, it is tested against Windows Azure SDK 1.6 (Nov. 2011) with latest available package (Drupal 7.9), the package is slighty customized before uploading, and explanations are also in French . Cet article montre la plupart des %u00e9tapes qui sont d%u00e9crites sur le site Web Interoperability Bridges. Les diff%u00e9rences les plus importantes sont qu’il y a plus de copies d’%u00e9crans, il a %u00e9t%u00e9 test%u00e9 avec Windows Azure SDK 1.6 (Novembre 2011) avec le dernier package du moment (Drupal 7.9), le paquet est %u00e9galement modifi%u00e9 l%u00e9g%u00e8rement avant chargement sur Windows Azure. De plus, les explications sont aussi en fran%u00e7ais .
The starting point in this blog post are:
– a local Windows Server 2008 R2 development environment with Windows Azure SDK 1.6 installed.
– An active Windows Azure subscription. You may get one from http://windowsazure.fr for instance.
– An Azure SQL Server setup in a local region (North Europe in this example) with correct firewall rules (cf instructions here)
– Windows Azure SDK for PHP installed as described in this post.
Le point de d%u00e9part de ce billet est constitu%u00e9 des %u00e9l%u00e9ments suivants:
– un serveur local Windows Server 2008 R2
– un environnement de d%u00e9veloppement local avec le SDK 1.6 de Windows Azure install%u00e9
– un abonnement %u00e0 Windows Azure en cours de validit%u00e9. Il est possible de s’en procurer un  %u00e0 partir de http://windowsazure.fr par exemple.
– un serveur SQL Azure cr%u00e9%u00e9 dans une r%u00e9gion local (Europe du Nord dans cet exemple) avec les bonnes r%u00e8gles de pare-feu (voir instructions ici)
– Le SDK Windows Azure pour PHP install%u00e9 tel que d%u00e9crit dans ce billet.
The main steps are the following Les principales %u00e9tapes sont sch%u00e9matis%u00e9es ainsi
Then a few steps happen inside Drupal itself to configure it. D’autres %u00e9tapes sont %u00e9galement n%u00e9cessaires ensuite dans Drupal lui-m%u00eame pour le configurer.

 

Let’s get started. D%u00e9marrons.
Create a SQL Azure database Cr%u00e9er une base SQL Azure

In order to avoid using the sysadmin login to connect to this drupal database, create a drupal login which will be the owner of the database. This can be done from the SQL Server Management Studio (from the developmenet environment) or from the management portal De fa%u00e7on %u00e0 %u00e9viter d’utiliser un compte de connexion administrateur du serveur SQL Azure pour se connecter %u00e0 la base drupal, cr%u00e9ons un compte pour drupal qui sera propri%u00e9taire de la base. Cela peut %u00eatre fait depuis SQL Server Management Studio (depuis l’environnement de d%u00e9veloppement) ou depuis le portail de gestion

 

the code of the query is le code de la requ%u00eate est le suivant

CREATE LOGIN drupalLogin WITH PASSWORD = ‘BVvvgdjs65’

Connect to the drupal database now (instead of the master database) Se connecter maintenant sur la base drupal (%u00e0 la place de la base master)
(sames steps as before)
The script is the following:
(m%u00eames %u00e9tapes qu’avant)
Le script est le suivant:

CREATE USER drupalUser FOR LOGIN drupalLogin WITH DEFAULT_SCHEMA = dbo
GO
EXEC sp_addrolemember N’db_owner’, N’drupalUser’
GO

Let’s now create a strorage account from the Windows Azure Management portal Cr%u00e9ons maintenant un compte de stockage depuis le portail de gestion Windows Azure

NB: create the storage account in the same region as the SQL Azure Server (North Europe in this example). NB: cr%u00e9er le compte de stockage dans la m%u00eame r%u00e9gion que le serveur SQL Azure (Europe du Nord dans cet exemple)

At this stage, we have the following assets and credentials (NB: no need to try to use the passwords and keys, they have been changed since this post was written). A cette %u00e9tape, on dispose des cr%u00e9dentit%u00e9s suivantes (NB: n’essayez pas d’utiliser ces mots de passe et clefs, ils ont %u00e9t%u00e9 chang%u00e9s depuis l’%u00e9criture de ce billet)
  • SQL Azure:
    • server=j2f2uoqrmd.database.windows.net,
    • database=durpal
    • username=drupalLogin,
    • password=BVvvgdjs65
  • Windows Azure Storage:
    • drupal111205a
    • key= QQ9TTO5oCjnWZxcMW/pegWHJccKCOHW9WaeRZbNK5vGPAwbhle3AbQCynf6sVmWAuCqjWPL45d5iQWnyFvFUfg==
With a tool like Azure Storage Explorer, create a public container named drupalazurestorage Avec un outil tel que Azure Storage Explorer, cr%u00e9er un conteneur public appel%u00e9 drupalazurestorage

the following warning can be ignored le message d’avertissement suivant peut %u00eatre ignor%u00e9

Let’s now start the creation of the Windows Azure package that will contain Drupal engine.
Download the following file to the local hard drive.
D%u00e9marrons maintenant le cr%u00e9ation du package Windows Azure qui contiendra le moteur Drupal. T%u00e9l%u00e9charger le fichier suivant vers le disque local.

https://github.com/downloads/Interop-Bridges/Windows-Azure-PHP-Scaffolders/drupal.zip

Unblock the zip file before unzipping it (File Properties, Unblock) D%u00e9bloquer le fichier zip avant de le d%u00e9zipper (File Properties, Unblock)
Unzip its content (drupal.phar) file into C:\temp D%u00e9zipper le contenu (drupal.phar) de ce fichier dans C:\temp
NB: a .phar file is a PHP archive NB: un fichier .phar est une archive PHP
In the same folder (C:\temp), create a new text file (start, run, notepad, File, Save As) and name it Dans le m%u00eame r%u00e9pertoire (C:\temp), cr%u00e9er un nouveau fichier texte (start, run, notepad, File, Save As) et lui donner un nom

C:\Temp\scaffold-drupal.cmd

The content of the file should be the following (replace with your own names, keys and passwords): Le contenu du fichier doit %u00eatre le suivant (remplacer avec vos propres noms, clefs et mots de passes)

set here=%~dp0%

scaffolder run -s=”%here%Drupal.phar” -out=”C:\Temp\Drupal01″ -DiagnosticsConnectionString=”DefaultEndpointsProtocol=https;AccountName=drupal111205a;AccountKey=QQ9TTO5oCjnWZxcMW/pegWHJccKCOHW9WaeRZbNK5vGPAwbhle3AbQCynf6sVmWAuCqjWPL45d5iQWnyFvFUfg==” -sql_azure_database=drupal -sql_azure_username=drupalLogin@j2f2uoqrmd -sql_azure_password=BVvvgdjs65 -sql_azure_host=j2f2uoqrmd.database.windows.net -sync_account=drupal111205a -sync_key=QQ9TTO5oCjnWZxcMW/pegWHJccKCOHW9WaeRZbNK5vGPAwbhle3AbQCynf6sVmWAuCqjWPL45d5iQWnyFvFUfg==
pause

Then, double click on the cmd file in order to run it: Puis, double-cliquer sur le fichier cmd de fa%u00e7on %u00e0 le lancer
This created the following folder with the following content: Cela a cr%u00e9%u00e9 le r%u00e9pertoire suivant avec le contenu suivant
download the following file and save it in the c:\temp folder, and unblock it before unzipping it T%u00e9l%u00e9charger le fichier suivant et le sauvegarder dans le r%u00e9pertoire c:\temp, le d%u00e9bloquer avant de le d%u00e9zipper

https://github.com/downloads/Interop-Bridges/Windows-Azure-File-System-Durability-Plugin/FileSystemDurabilityPlugin-v1.1.zip

Extract content to the following folder Extraire le contenu dans le dossier suivant

C:\Program Files\Windows Azure SDK\v1.6\bin\plugins

Let’s now change the .cscfg and .csdef files. Modifions maintenant les fichiers .cscfg et .csdef.
NB: The .csdef file corresponds to what cannot be changed after packaging, while .cscfg file may be changed at runtime from the Windows Azure Portal or other means (API, ) NB: le fichier .csdef correspond %u00e0 ce qui ne peut pas %u00eatre chang%u00e9 apr%u00e8s avoir cr%u00e9er le paquet de d%u00e9ploiement, alors que le fichier .cscfg peut %u00eatre chang%u00e9 au moment de l’ex%u00e9cution depuis le portail de gestion Windows Azure ou d’autres moyens (API, )
In this example, this is done with notepad++, but this can also be done with any text editor, even notepad. The advantage of an editor that has XML syntax colorization is that it is less error prone, especially while dealing with XML comments. Dans cet exemple, cela est fait avec notepad++, mais cela peut aussi %u00eatre fait avec n’importe quel %u00e9diteur de texte, y compris notepad. L’avantage d’un %u00e9diteur qui dispose de coloration syntaxique XML est que cela peut %u00e9viter des erreurs, en particulier quand on est en train de supprimer des commentaires XML.
Optionally, if you want to enable remote desktop, i.e. being able to access to any server in the web farm once installed to Windows Azure, you may add the corresponding lines in the .csdef and .cscfg files. This is documented here. For instance: Optionnellement, si on veut autoriser l’accs%u00e8 au bureau %u00e0 distance, c’est-%u00e0-dire %u00eatre capcable de se connecter %u00e0 n’importe quel serveur de la ferme une fois install%u00e9e dans Windows Azure, il est possible d’ajouter les lignes correspondantes dans les fichiers .csdef et .cscfg. Cela est document%u00e9 ici. Par exemple:

Another important change is to choose the number of instances that the web farm will start with Un autre changement important est de choisir le nombre d’instances avec laquelle la ferme Web sera initialement d%u00e9ploy%u00e9e
You may also want to change the size of a Virtual Machine inside the web farm. This is a .csdef parameter (i.e. changing it requires re-packaging and re-deployment).
Possibles values for vmsize parameter are documented on MSDN web site.
On peut aussi vouloir changer la taille de chaque machine virtuelle dans la ferme Web. C’est un param%u00e8tre .csdef (et donc le modifier suppose de repackager et de red%u00e9ployer). Les valeurs possibles pour le param%u00e8tre vmsize sont document%u00e9es sur le site MSDN.
So here is what can end up with, as an example, for the 2 files Donc voici ce %u00e0 quoi on peut aboutir, par exemple, pour les 2 fichiers
<?xml version="1.0" encoding="utf-8"?>
<ServiceConfiguration serviceName="PhpOnAzure" xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceConfiguration" osFamily="2" osVersion="*">
  <Role name="WebRole">
    <Instances count="2" />
    <ConfigurationSettings>
      <Setting name="Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString" value="UseDevelopmentStorage=true" />

      <Setting name="sql_azure_database" value="drupal" />
      <Setting name="sql_azure_username" value="drupalLogin@j2f2uoqrmd" />
      <Setting name="sql_azure_password" value="BVvvgdjs65" />
      <Setting name="sql_azure_host" value="j2f2uoqrmd.database.windows.net" />
      <Setting name="db_prefix" value="" />
      <Setting name="update_free_access" value="FALSE" />
      <Setting name="drupal_hash_salt" value="Some unique value" />
      <Setting name="base_url" value="" />
      
      <!-- For RDP access. Commented by default -->
      <Setting name="Microsoft.WindowsAzure.Plugins.RemoteAccess.Enabled" value="true" />
      <Setting name="Microsoft.WindowsAzure.Plugins.RemoteAccess.AccountUsername" value="RDAdmin" />
      <Setting name="Microsoft.WindowsAzure.Plugins.RemoteAccess.AccountEncryptedPassword" value="MIIBnQYJKoZIhvcNAQcDoIIBjjCCAYoCAQAxggFOMIIBSgIBADAyMB4xHDAaBgNVBAMME1dpbmRvd3MgQXp1cmUgVG9vbHMCEDaxSocNGM2iRQtC8o1w9HwwDQYJKoZIhvcNAQEBBQAEggEAPQmdrnOVCRj6fgK8mHHep9AuuA7rCiFPPNPvai4YGX8FtML7SK0x5Op0SoqKhZhMgEFOFstpcHFxLkN/fnKwL2ojz8sFVDNjuLUddt2AzbuPwC5ELmF2uhKqu1kPxFZKb3m8sqvtMyM1buUd8g545bNhCeOLzlL1YTW/CiDmpwYwl+SzHovSPx+8ApX6TSmizgq6h4ScpiLFk5LWCcLP50jvaPNQPgf7Wbl+k8zs6t0popnEaZpefKjZc364B95Ko8PvQGZbrDTtYxYabSHIG/SOn+bUzYOmVd23y1cGkc4BJB2XM4+6q3jIfenbKgj1Hjcs2ocrRzAuW5Py6v5wfzAzBgkqhkiG9w0BBwEwFAYIKoZIhvcNAwcECPjMHCD1PGNRgBB6G4T5FNd86FGG/UCBqKKE" />
      <Setting name="Microsoft.WindowsAzure.Plugins.RemoteAccess.AccountExpiration" value="2012-12-07T23:59:59.0000000+01:00" />
      <Setting name="Microsoft.WindowsAzure.Plugins.RemoteForwarder.Enabled" value="true" />
      </ConfigurationSettings>
    <!-- Certificate for RDP access. Commented by default --> 
    <Certificates>
      <Certificate name="Microsoft.WindowsAzure.Plugins.RemoteAccess.PasswordEncryption" thumbprint="C9D6F3C6FFB37EE967244FC7BAC7E9C362DF70BE" thumbprintAlgorithm="sha1" />
    </Certificates>
  </Role>
</ServiceConfiguration>

<?xml version="1.0" encoding="utf-8"?>
<ServiceDefinition name="PhpOnAzure" xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceDefinition">
  <WebRole name="WebRole" enableNativeCodeExecution="true" vmsize="ExtraSmall">
    <Sites>
      <Site name="WebRole" physicalDirectory="./WebRole">
        <Bindings>
          <Binding name="Endpoint1" endpointName="HttpEndpoint" />
        </Bindings>
      </Site>
    </Sites>
    <Startup>
      <Task commandLine="install-php.cmd >> .\startup-tasks-log.txt 2>>.\startup-tasks-error-log.txt" executionContext="elevated" taskType="simple" /> 
    </Startup>
    <Endpoints>
      <InputEndpoint name="HttpEndpoint" protocol="http" port="80" />
    </Endpoints>
    <Imports>
      <Import moduleName="Diagnostics"/>

      <!-- For RDP access. Commented by default -->
      <Import moduleName="RemoteAccess"/>
      <Import moduleName="RemoteForwarder"/>
    </Imports>
    <ConfigurationSettings>
      <Setting name="sql_azure_database" />
      <Setting name="sql_azure_username" />
      <Setting name="sql_azure_password" />
      <Setting name="sql_azure_host" />
      <Setting name="db_prefix" />
      <Setting name="update_free_access" />
      <Setting name="drupal_hash_salt" />
      <Setting name="base_url" />
    </ConfigurationSettings>
  </WebRole>
</ServiceDefinition>
This is now a good time to also download a translation. In this example, we’ll donwload the French translation. Go to C’est maintenant %u00e9galement le bon moment pour t%u00e9l%u00e9charger une traduction. Dans cet exemple, nous allons prendre le fran%u00e7ais. Aller %u00e0

http://localize.drupal.org/translate/languages/fr

(http://ftp.drupal.org/files/translations/7.x/drupal/drupal-7.10.fr.po)

We also need to change a file in the package source. In the following file On doit %u00e9galement changer un fichier dans les sources du paquet de d%u00e9ploiement. Dans le fichier suivant

C:\Temp\Drupal01\WebRole\includes\database\sqlsrv\database.inc

replace the following function remplacer la fonction suivante
  /**
   * Internal function: prepare a query by calling PDO directly.
   *
   * This function has to be public because it is called by other parts of the
   * database layer, but do not call it directly, as you risk locking down the
   * PHP process.
   */
  public function PDOPrepare($query, array $options = array()) {
    if (!$this->bypassQueryPreprocess) {
      $query = $this->preprocessQuery($query);
    }
    // THIS FIX IS TEMPORARY UNTIL MICROSOFT MOVE THE IMPLEMENTATION
    // OF THIS ATTRIBUTE IN THE PDO DRIVER OPTIONS.
    // Let's emulate the attributes preparation because it costs a little
    // bit more to have it disabled than enabled and because we are not
    // leveraging the benefits of it.
    $options[PDO::ATTR_EMULATE_PREPARES] = TRUE;
    return parent::prepare($query, $options);
  }

by this one (the fix does not work with SQL Azure) par celle-ci (la correction ne fonctionne pas pour SQL Azure)
  /**
   * Internal function: prepare a query by calling PDO directly.
   *
   * This function has to be public because it is called by other parts of the
   * database layer, but do not call it directly, as you risk locking down the
   * PHP process.
   */
  public function PDOPrepare($query, array $options = array()) {
      $query = $this->preprocessQuery($query);
    return parent::prepare($query, $options);
  }

You may also want to add an SMTP Server. Windows Azure does not provide one, but it is possible to connect to an external one.
Like for other parameters, this can be done by updating the following file:
On peut aussi vouloir ajouter un serveur SMTP. Windows Azure n’en fournit pas, mais il est possible de se connecter %u00e0 un serveur externe.
Comme pour d’autres param%u00e8tres, cela peut se faire en modifiant le fichier suivant:

C:\Temp\Drupal01\WebRole\php\php.ini

 

Let’s now create the package from the package sources.
Go to C:\Temp and create a text file named package-drupal.cmd containing the following code:
Cr%u00e9ons maintenant le paquet de d%u00e9ploiement %u00e0 partir des sources du paquet de d%u00e9ploiement.
Aller %u00e0 C:\Temp et cr%u00e9er un fichier texte appel%u00e9 package-drupal.cmd contenant le code suivant:

set here=%~dp0%

package create -in=”%here%Drupal01″ -out=”%here%.” -dev=false
pause

Execute the script Ex%u00e9cuter le script
this created the Windows Azure Package (.cspkg), that goes with the .cscfg file. They will both be uploaded to Windows Azure. Cela a cr%u00e9e le paquet de d%u00e9ploiement pour Windows Azure (.cspkg), qui va avec le fichier .cscfg. Les deux devront %u00eatre d%u00e9ploy%u00e9s vers Windows Azure.
In order to deploy, go to the Windows Azure portal, Pour d%u00e9ployer, aller dans le portail Windows Azure
If you haven’t done so yet, create a hosted service. Si ce n’est d%u00e9j%u00e0 fait, cr%u00e9er un service h%u00e9berg%u00e9
Note that the choosen hosted service must be in the same region as SQL Azure and Windows Azure storage (North Europe) and it must be the same as the one used when optionally setting remote desktop. A noter: le service h%u00e9berg%u00e9 choisi doit %u00eatre dans la m%u00eame r%u00e9gion que SQL Azure et le stockage (Europe du Nord) et %u00eatre le m%u00eame que celui utilis%u00e9 lors de l’%u00e9ventuel ajout de l’acc%u00e8s au bureau %u00e0 distance.
Select the hosted service and choose to deploy Choisir le service h%u00e9berg%u00e9 et d%u00e9ployer
The two files to deploy are the ones in C:\Temp. The deployment name is whatever you choose. Les deux fichiers %u00e0 d%u00e9ployer sont ceux dans C:\temp. Le nom de d%u00e9ploiement peut %u00eatre choisi librement

After a few minutes, the application is available and can be reached at the URL shown in the portal Apr%u00e8s quelques minutes, l’application est disponible et peut %u00eatre atteinte par l’URL montr%u00e9e dans le portail
If you click on the URL you will get this error Si on clique sur l’URL, on a l’erreur suivante

PDOException: SQLSTATE[IMSSP]: An invalid statement option was specified.: SELECT SCHEMA_NAME(); Array ( ) in lock_may_be_available() (line 167 of E:\approot\includes\lock.inc).

This is because you firt need to initialize the database by running install.php. Add install.php to the URL. In our example, as the hosted service is named appazure, the URL is C’est parce qu’il faut d’abord initialiser la base en ex%u00e9cutant install.php. Ajouter install.php %u00e0 l’URL. Dans notre exemple, comme le service h%u00e9berg%u00e9 s’appelle appazure, l’URL est

http://appazure.cloudapp.net/install.php

which starts the installation wizard ce qui d%u00e9marre l’assistant d’installation

In the next page enter the drupalLogin password (BVvvgdjs65) Dans la page suivante, entrer le mot de passe du compte drupalLogin (BVvvgdjs65)

In next screen, a Drupal Admin password is created (LNdevikw03 in this example, do no try it, it is not the real one!) Dans l’%u00e9cran suivant, un mot de passe d’administrateur Drupal est cr%u00e9%u00e9 (LNdevikw03 dans cet exemple, mais l%u00e0 encore ce mot de passe n’est pas le vrai, ne pas l’essayer!)

The warning would not have happened if we had set an SMTP server in php.ini which was not done in this example.
Windows Azure does not provide an SMTP server so you need to bring one from your network provider for instance.
In this example, we ignore the warning, and we’ll receive no e-mail.
Le message d’avertissement ne serait pas apparu si on avant renseign%u00e9 plus haut le serveur SMTP dans le fichier php.ini, ce qui n’a pas %u00e9t%u00e9 fait dans cet exemple.
Windows Azure ne fournit pas de serveur SMTP donc il faut utiliser celui qu’on fournit depuis sont fournisseur d’acc%u00e8s %u00e0 Internet par exemple.
Dans cet exemple, on ignore le message d’avertissement, et l’on ne recevra pas de message.

Here is now where we give the credentials of the Windows Azure storage (drupal111205a) we created above. Voici maintenant o%u00f9 l’on entre les cr%u00e9dentit%u00e9s du compte de stockage Windows Azure (drupal111205a) que l’on avait cr%u00e9%u00e9 plus haut.

 

After publishing an article with an image, you can see that the image is stored in Windows Azure blob storage Apr%u00e8s avoir publi%u00e9 un article avec une image, on peut voir que cette image a %u00e9t%u00e9 stock%u00e9e dans un blob Windows Azure

 

Benjamin

Blog Post by: Benjamin GUINEBERTIERE

Create Windows Azure remote desktop configuration | créer une configuration Azure pour le bureau d’accès à distance

English Français

In this post, the goal is to have the configuration lines to set remote desktop in a Windows Azure Package.

14-DEC-2011 UPDATE: an alternative way is available at http://www.windowsazure.com/en-us/develop/other/common-tasks/enable-remote-desktop/

Dans ce billet, le but est d’obtenir les lignes de configuration pour mettre en place l’accès au bureau à distance Windows Azure.

MAJ du 14-DEC-2011: une autre façon de faire est disponible à http://www.windowsazure.com/en-us/develop/other/common-tasks/enable-remote-desktop/

Whether you need to use this from Visual Studio or other Windows packaging mechanism such as scaffolding, leveraging the new Windows Azure SDK 1.6 tools to avoid managing certificates might be a good choice. This is the easiest way now. Que vous ayez besoin d’utiliser cela depuis Visual Studio ou depuis un autre mode d’empaquetage tel que l’échaffaudage, utiliser les capacités du nouveau SDK Windows Azure 1.6 de façon à ne pas avoir à gérer les certificats peut être un bon choix. C’est a priori le plus simple aujourd’hui.
In this post, I assume you have no knowledge on Visual Studio, and you didn’t install it on your development machine. Dans ce billet, je pars du principe qu’on n’a aucune connaissance de Visual Studio, et qu’il n’est pas installé sur la machine de développement.
So let’s get started Démarrons donc sans plus attendre
First, install the Windows Azure SDK as explained in this post: Download and install Windows Azure SDK Premièrement, installer le SDK Windows Azure comme expliqué dans ce billet: Télécharger et installer Windows Azure SDK 1.6
Then start a Visual Studio Project and add a worker role only in it (the goal is to have the simplest Windows Azure project and use the tools inside Visual Studio which abstract away certificate management). Puis, démarrer un projet Visual Studio et y ajouter uniquement un worker role (le but est d’avoir le project Windows Azure le plus simple et utiliser les outils Visual Studio qui masquent la gestion sous-jacente des certificats).

Choose a username and password and enter them in the dialog box. In this example, username=RDAdmin, password=ULzikjcd81 (NB: not the actual one, no use trying to use it to connect to my assets!). Choisir un nom d’utilisateur et un mot de passe et les saisir dans la boîte de dialogue. Dans cet exemple, nom d’utilisateur=RDAdmin, mot de passe=ULzikjcd81 (NB: ce n’est pas le mot de passe réel, inutil d’essayer de vous connecter à mes ressources!).
This populated the .csfg and the .csdef files Cela a rempli les fichiers .csfg et .csdef
Here is the content of the two files (I ignore the ServiceConfiguration.Local.cscfg which is used only with the Emulator): Voici le contenu des deux fichiers (j’ignore ici le fichier ServiceConfiguration.Local.cscfg qui est utilisé avec l’émulateur uniquement)
<?xml version="1.0" encoding="utf-8"?>
<ServiceDefinition name="WindowsAzureProject1" xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceDefinition">
  <WorkerRole name="WorkerRole1" vmsize="Small">
    <Imports>
      <Import moduleName="Diagnostics" />
      <Import moduleName="RemoteAccess" />
      <Import moduleName="RemoteForwarder" />
    </Imports>
  </WorkerRole>
</ServiceDefinition>

 

<?xml version="1.0" encoding="utf-8"?>
<ServiceConfiguration serviceName="WindowsAzureProject1" xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceConfiguration" osFamily="1" osVersion="*">
  <Role name="WorkerRole1">
    <Instances count="1" />
    <ConfigurationSettings>
      <Setting name="Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString" value="UseDevelopmentStorage=true" />
      <Setting name="Microsoft.WindowsAzure.Plugins.RemoteAccess.Enabled" value="true" />
      <Setting name="Microsoft.WindowsAzure.Plugins.RemoteAccess.AccountUsername" value="RDAdmin" />
      <Setting name="Microsoft.WindowsAzure.Plugins.RemoteAccess.AccountEncryptedPassword" value="MIIBnQYJKoZIhvcNAQcDoIIBjjCCAYoCAQAxggFOMIIBSgIBADAyMB4xHDAaBgNVBAMME1dpbmRvd3MgQXp1cmUgVG9vbHMCEFmUr8LcQTGbRpiY5c+XiyowDQYJKoZIhvcNAQEBBQAEggEAOXUkCgGgaT/q6QET/mIc3vBm26kuKjGuRt6uYG4LTDXRORXqalBSGN3KMq3LcZu839h9fFoud9SwsHBeTRZJZUspn2aCg46oZRbUGXULZwfmy9DrXdWuNfUUf2pTZ9W8b4ycXuDwEhiMn2h7WUl6b7Wr/855Ig8zMgOEROVObjYSH4Y7cnAcN8LZBpCE5AhdoiB6+UX6gOMO9tB3vxEgF1O12MilpC0uceMtVvdMQKreBz4zFWlDtMOcx0snQ0LrHy67Lg5akyarkoarmV34yYmnW8zeC4tQI/Y2AJgO62JB69wcqOKcFUyLdWr4RcJ/qd1TFFPrbk1uxA8O8ZNWrDAzBgkqhkiG9w0BBwEwFAYIKoZIhvcNAwcECPTuBPW9liu/gBD//feGUjpCq4d09Uvvf2QV" />
      <Setting name="Microsoft.WindowsAzure.Plugins.RemoteAccess.AccountExpiration" value="2012-12-07T23:59:59.0000000+01:00" />
      <Setting name="Microsoft.WindowsAzure.Plugins.RemoteForwarder.Enabled" value="true" />
    </ConfigurationSettings>
    <Certificates>
      <Certificate name="Microsoft.WindowsAzure.Plugins.RemoteAccess.PasswordEncryption" thumbprint="224E9C052400EA028D0E9E369F3895437C71DC75" thumbprintAlgorithm="sha1" />
    </Certificates>
  </Role>
</ServiceConfiguration>
The lines containing RemoteAccess or RemoteForwarder in the configuration files may be merged into .csdef and .cscfg files generated outside Visual Studio in order to have Remote Desktop setup. Les lignes avec RemoteAccess ou RemoteForwarder dans les fichiers de configuration peuvent être incluses dans les fichiers .csdef et .cscfg générées en dehors de Visual Studio de façon à avoir l’accès au bureau à distance.

 

Important: an additional step is necessary to prepare your Windows Azure environment. This consists in starting a deployment and stop it, in order to upload a certificate (cf below). Important: une étape complémentaire est nécessaire pour préparer son environnement Windows Azure. Cela consiste à démarrer un déploiement et l’arrêter immédiatement, de façon à charger un certificat (voir plus bas).

Sign in with a Windows Live ID that has access to a valid Windows Azure Subscription. If you don’t have one, you can go to http://windowsazure.fr where you will be explained how to get one. Se connecter avec un compte Live ID qui a accès à un abonnement Windows Azure en cours de validité. Si vous n’en n’avez pas, vous pouvez aller à http://windowsazure.fr où on vous expliquera comment procéder.
Save the file locally Sauvegarder le fichier localement

go back to Visual Studio 2010, Click import and choose the file you just downloaded retourner à Visual Studio 2010, cliquer sur Import et choisir le fichier qui avait été téléchargé

make sure you choose the right hosted service (the one where the final app will eventually be deployed) Vérifier que le service hébergé est bien le bon (celui vers lequel on déploiera l’application au final)

That’s it. If you don’t need to change development machine or don’t want to have further explanations about the certificates, you can skip the rest of this post. Voilà. Si vous n’avez pas besoin de changer de machine de développement ou que vous ne souhaiter pas avoir les explications sur les certificats, vous pouvez terminer ici la lecture de ce billet.
NB: Under the hood, this created a certificate that will be used to encrypt the password (ULzikjcd81). If you change machines, you may have to copy the certificate with its private key thru a .pfx file. More details can be found here and here. Here is the certificate that was used in the above example: NB: En coulisses, tout cela a créé un certificat qui est utilisé pour chiffrer le mot de passe (ULzikjcd81). Si on doit changer de machine, il peut être nécessaire de copier le certificat avec sa clef privée via un fichier .pfx. On trouvera plus d’infos sur le sujet ici et ici. Voici le certificat qui a été utilisé dans l’exemple ci-dessus:
Starting a publish to Windows Azure uploaded that certificate to Windows Azure: Le démarrage de la publication vers Windows Azure et eu pour effet (recherché) de charger ce certificat:

Benjamin


(the goal of this post is to be referenced by others in order to avoid repeating how to do) (le but de ce billet est d’être référencé par d’autres de façon à ne pas répéter comment faire)

Blog Post by: Benjamin GUINEBERTIERE