Il se déroule en ce moment un concours Windows Phone 7 initié par Microsoft sur www.facebook.com/Developpeurs.net.
J’ai publié mon application SaveMe et je vous demande un petit vote en cliquant sur J’aime ici : http://www.facebook.com/video/video.php?v=144639878892375&oid=129459787073480
Le concept de SaveMe est d’utiliser tous les réseaux de communication possible sur un téléphone portable pour envoyer un SOS d’alertes à vos proches et connaissances tout en vous géolocalisant.
Pour cela, SaveMe utilisent plusieurs technologies :
- Silverlight pour l’interface graphique
- le gps intégré du téléphone pour vous géolocaliser
- Stockage isolé de votre téléphone pour sauvegarder vos informations localement
- Communication avec des webservices
- Utilisation du composant Bing Maps sur Windows Phone 7 permettant de vous montrer exactement votre emplacement sur une carte et envoie un lien correspondant à vos contacts
- Serveur de geotracking permettant d’envoyer chaque minute à un destinataire vos coordonnées géographiques exactes
- Une alarme pour vous localiser précisément lorsque vous n’êtes pas visibles directement
Les différents moyens de communication de SaveMe sont : les SMS, les appels téléphoniques, les emails, Twitter, GTalk, Nabaztag…
Si vous souhaitez plus de détails, n’hésitez pas à consulter la page suivante : http://www.facebook.com/video/video.php?v=144639878892375&oid=129459787073480 et à voter par un J’aime. Un commentaire est aussi agréable et pris en compte !
La tendance à l'heure actuelle dans les équipes de développement est de mettre en avant les tests unitaires.
Malheuresement souvent faute de temps, de budget, d'envie, les tests unitaires sont négligés, voire non créé ce qui est tout à fait dommageable. La solution :

Microsoft a fait ce constat et est en train d'incuber dans ses laboratoires de recherche un outil nommé Pex. Cet outil couplé à Visual Studio 2010 permet de créer des passes de tests de code unitaire sur votre projet.
Pex est donc capable de :
- tester toutes vos méthodes en lui passant en paramètre différents valeurs pour vos variables afin de tester les cas limites (null, vide...) tout comme les cas habituelles sans toucher à votre solution (pas d'ajouts de projets, de classes).
- augmenter le taux de couverture de votre code.
- sauvegarder les différents tests unitaires pour les rejouer et les retravailler.
Pour tester Pex, rien de plus simple :
- en ligne : vous pouvez voir une démonstration sur http://www.pexforfun.com/
- téléchargez le et installez le. Ensuite dans Visual Studio 2010, sur votre classe à tester, faites clic droit puis Run Pex.
Pex compile ensuite votre projet, génére les tests et un compte rendu avec les valeurs des paramètres envoyés vous permettant d'analyser vos erreurs dans votre code. Pex propose également d'ajouter des conditions permettant d'éviter les erreurs rencontrés.
C'est donc un outil à forte valeur ajoutée qui peut soit tester directement votre code, soit vous aider à générer des tests.
Je pense que Pex a de l'avenir et est à surveiller pour voir son évolution. N'hésitez pas à tester pour vous faire une idée et me faire vos retours !
Pour ceux qui auraient installé Visual Studio 2010, l'installateur par défaut de VS vous a installé une base de données SQL Server 2008 Express.

Malheuresement SQL Server Management Studio 2008 n'est pas installé par défaut (SSMS pour les intimes comme nous l'appelerons) et SSMS 2005 ne peut se connecter à une base de données SQL Server 2008 (c'est beau la technologie).
Il faut donc installer SSMS 2008 mais à ce moment là, commence tous vos problèmes. L'installateur de cet outil n'est plus présent directement par un setup téléchargeable comme SSMS 2005.
Il faut suivre la mise en oeuvre suivante :
- Téléchargez SQLManagementStudio_x86_FRA ou SQLManagementStudio_x64_FRA suivant votre système d'exploitation
- Lancez le puis dans le menu gauche, choisissez "Installation"
- Choisir "New SQL Server stand-alone install or add features to an existing installation" même si votre base est déjà installé
- Validez l'écran suivant
- Cliquez ensuite sur "Install"
- Cliquez sur "Next" sur l'écran de test
- Attention sur ce nouvel écran, bien choisir "Perform a new installation of SQL Server 2008" et validez même si votre base est déjà présente car avec l'option d'ajouts de fonctionnalités, SSMS n'est pas présent !
- Validez l'écran de licence avec votre licence (si c'est une version express, vous n'avez rien à faire ;))
- Acceptez les conditions générales
- Dans la liste des fonctionnalités à installer, vous pouvez maintenant voir "Management Tools - Basic" qui est SSMS 2008 !
Terminez ensuite tranquillement votre installation :) Simple non ?!
VirtualPC 2007 est un bon outil gratuit (bien que propriété Microsoft) pour vous permettre d’émuler tout système d’exploitation. Ses concurrents sont VirtualBox (gratuits) ou encore VMWare Workstation. Si vous souhaitez télécharger Virtual PC 2007 (dernière version à ce jour), dirigez-vous ici et pour en apprendre plus par là.
Vous pouvez ensuite créer des machines virtuelles et les partager avec d’autres. Pour cela, il suffit de copier et donner les fichiers VHD. Mais dès lors que vous êtes sous le même réseau (par exemple, réseau d’entreprise), des conflits d’adresse MAC identiques peuvent apparaître.
Pour corriger les problèmes d’adresses MAC, il vous suffit d’éditer le fichier xxx.vmc lié à votre machine virtuelle éteinte (habituellement placé sous C:/Documents and Settings/XXXX/Application Data/Microsoft/VirtualPC/Virtual Machines).
A l’intérieur vous verrez une balise XML du type : <ethernet_card_address type=”XXXX”>00-11-43-X8-X3</ethernet_card_address>
Remplacez là par :
<ethernet_card_address type=”XXXX”></ethernet_card_address>
Redémarrez votre machine virtuelle :)
Il existe également des outils pour migrer vos images VirtualPC vers Hyper-V (hyperviseur) tel que VMC2HV tout en gardant la configuration.
De là même sorte, il existe l’outil Starwind Converter qui vous permettra de convertir les fichiers VMDK de VMWare Workstation vers VirtualPC et inversement ce qui vous permettra de tester différents outils d’émulation.
Si vous travaillez sur des fichiers XML ou des fichiers de schéma XSD, vous pouvez générer plusieurs fichiers intéressants grâce à l’outil xsd.exe du framework .Net (le framework étant installé sur la plupart des machines, mêmes les développeurs Java peuvent utiliser cette astuce ;)).
Cet outil se trouve à différentes endroits sur votre poste, par exemple :
- C:\Program Files\Microsoft SDKs\Windows\v7.0A\bin\xsd.exe
- C:\Windows\Microsoft.NET\Framework\v3.5\xsd.exe
Ou plus simplement faites :
Démarrer –> Tous les programmes –> Visual Studio 200X –> Visual Studio Tools –> Visual Studio 200X Command Prompt et tapez xsd.exe dans l’invité de commandes de Visual Studio.
Voici les différentes transformations que vous pouvez réaliser :
A partir d’un fichier XDR, vous pouvez générer un fichier XSD : génère un schéma XML à partir d'un fichier de schéma XDR. XDR est l'un des premiers formats de schéma XML.
- A partir d’un fichier XML, vous pouvez générer un fichier XSD : génère un schéma XML à partir d'un fichier XML.
-
- A partir d’un fichier XSD, vous pouvez générer un fichier DataSet : génère des classes DataSet de CLR à partir d'un fichier de schéma XSD. Les classes générées proposent un modèle objet riche aux données XML régulières.
-
- A partir d’un fichier XSD, vous pouvez générer les classes correspondantes : génère des classes de runtime à partir d'un fichier de schéma XSD. Les classes générées peuvent être associées à XmlSerializer pour lire et écrire du code XML conforme au schéma.
-
- A partir de classes, vous pouvez générer un fichier de validation XSD : génère un schéma XML à partir d'un ou de plusieurs types dans un fichier d'assembly de runtime. Le schéma généré définit le format XML utilisé par System.Xml.Serialization.XmlSerializer.
Voici quelques commandes avec cet outil :
- xsd.exe monschema.xsd /c : générera les classes C# correspondantes au schéma (/c est équivalent à /classes, /language vous permet de choisir le langage de génération, par défaut C#)
- xsd.exe fichier.xml : générera le fichier de validation XSD correspondant
Concernant toutes les options disponibles pour l’outil xsd.exe, reportez-vous à cette page.
ASTUCE : l’outil xsd.exe ne sait pas résoudre la balise schemaLocation des fichiers de validation lorsque vous voulez générer la classe correspondante. Pour pallier ce problème, vous devez récupérer chaque fichier correspondant à votre schemaLocation, indiquez dans votre fichier qu’ils sont en local et utilisez l’outil xsd.exe comme ceci : xsd.exe monschema.xsd schemalie.xsd autreschema.xsd /c.
La dernière étape est de pouvoir générer un fichier XML de démonstration à partir d’un fichier XSD par exemple. Malheureusement cet outil ne permet pas de le faire. Nous allons voir un autre outil permettant de le faire.
A partir d’un fichier XSD, vous pouvez générer un fichier XML grâce à l’outil XMLSpear. Pour cela faites Nouveau puis cochez la case utiliser un schéma et sélectionner votre schéma et validez ensuite vos différentes options. Sauvez ensuite le fichier obtenu au format XML. Le seul point négatif de cet outil est que le fichier XML généré n’a pas de valeurs d’exemples.
Si vous avez des astuces, n’hésitez pas à les partager dans les commentaires.
 |
Pour les abonnés MSDN, Visual Studio 2010 est disponible depuis le 12 avril ! |
Malheureusement posséder un abonnement à MSDN n’est pas donné à tout le monde, mais si vous êtes étudiant votre établissement est peut être affilé à la MSDNAA …et Visual Studio 2010 en version professionnel et d’ores et déjà présent !!!
Ceci est une très bonne nouvelle pour pousser l’innovation car d’habitude les étudiants doivent attendre quelques mois avant d’obtenir une version.
MSDNAA : Visual Studio 2010 Professional (x86) - DVD (English) pour 3 GO à télécharger
Pour les chanceux de la MSDN, un rappel des téléchargements possible a été fait par Fabien Lavocat.
Alors let’s code :)
Nous allons reprendre tout à zéro pour commencer à coder sur Windows Phone 7. A noter que les outils sont en version CTP (Community Technology Preview) qui indique que ces outils sont en pré-version (avant une version bêta).
Ce qui intéressera tout le monde est évidemment l’émulateur Windows Phone, il vous faudra quelques détails matériels pour faire fonctionner l’ensemble :
- 3 Go d’espace disque
- Vista ou Windows 7
- Carte graphique compatible Direct X10
Une fois ces pré-requis remplis, dirigez-vous maintenant sur cette page et prenez Visual Studio 2010 Express for Windows Phone CTP uniquement disponible en anglais pour l’instant. Je tiens à rappeler que cet outil est gratuit pour tous et installera automatiquement grâce à un installateur web les éléments suivants sur votre ordinateur :
- Visual Studio 2010 Express pour Windows Phone CTP
- Windows Phone Emulator CTP
- Silverlight pour Windows Phone CTP
- XNA 4.0 Game Studio CTP.
L’installation terminée :


Vous arrivez ensuite sur le nouvel écran d’accueil de Visual Studio 2010 :

Créez ensuite un nouveau projet et vous avez deux possibilités de création de projets comme prévu Silverlight et XNA :


Choisissons un projet de type Silverlight puis Windows Phone Application.
L’arborescence de votre solution Silverlight ressemblera à :

Cliquez ensuite sur la page MainPage.xaml pour coller ce code :
<phoneNavigation:PhoneApplicationPage
x:Class="WindowsPhoneApplication1.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:phoneNavigation="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone.Controls.Navigation"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d" d:DesignWidth="480" d:DesignHeight="800"
FontFamily="{StaticResource PhoneFontFamilyNormal}"
FontSize="{StaticResource PhoneFontSizeNormal}"
Foreground="{StaticResource PhoneForegroundBrush}">
<Grid x:Name="LayoutRoot" Background="{StaticResource PhoneBackgroundBrush}">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Grid x:Name="TitleGrid" Grid.Row="0">
<TextBlock Text="HELLO WORD" x:Name="textBlockPageTitle" Style="{StaticResource PhoneTextPageTitle1Style}"/>
<TextBlock Text="FROM" x:Name="textBlockListTitle" Style="{StaticResource PhoneTextPageTitle2Style}"/>
<TextBlock Text="Windows P7" x:Name="textBlockListTitle2" Style="{StaticResource PhoneTextPageTitle3Style}"/>
<TextBlock Text="By Ludovic B." x:Name="textBlockListTitle3" Style="{StaticResource PhoneTextPageTitle4Style}" />
</Grid>
<Grid x:Name="ContentGrid" Grid.Row="1"></Grid>
</Grid>
</phoneNavigation:PhoneApplicationPage>
Cliquez ensuite sur la page App.xaml pour ajouter après <Style x:Key="PhoneTextPageTitle2Style"… :
<Style x:Key="PhoneTextPageTitle3Style" TargetType="TextBlock" BasedOn="{StaticResource PhoneTextTitle1Style}">
<Setter Property="Margin" Value="20,149,0,-106" />
</Style>
<Style x:Key="PhoneTextPageTitle4Style" TargetType="TextBlock" BasedOn="{StaticResource PhoneTextTitle1Style}">
<Setter Property="Margin" Value="4,280,-4,-280" />
</Style>
La partie design affichera ensuite :

Lancez ensuite votre projet en mode Debug (F5) et enfin l’émulateur Windows Phone se lance ! Le chargement de l’émulateur est assez long et demande beaucoup de ressources, patientez calmement ;) Arrive enfin l’application sans grand étonnement :
Cliquez ensuite sur la touche Windows de l’émulateur et vous obtenez normalement l’écran d’accueil constitué des hubs mais non présent dans cet émulateur, vous obtenez seulement :

Et dans les settings :

Malheureusement l’émulateur reste assez vide en contenu mais cela ne vous empêchera pas de programmer vos premières applications !
Il est d’ailleurs à noter plusieurs points très importants :
- Silverlight de Windows Phone correspond globalement à Silverlight 3, vous pouvez donc dès maintenant commencer la réutilisation de vos composants. Attention, cependant sur mobile le chargement de données et l’ergonomie des applications n’a rien à voir avec un ordinateur avec un écran de 20 pouces. Vous pourrez notamment retrouver toutes les différences sur cette page.
- Tester la gestuelle de vos applications mobiles grâce à votre écran multi-touch directement sur l’émulateur (une avancée significative mais il faut voir à l’utilisation) !
- On peut toujours faire appel au code XNA depuis un projet Silverlight et inversement (sauf pour le rendu visuel qui ne doit être réalisé que dans une technologie).
- Un service de localisation a été mis en place permettant d’accéder depuis des API de manière transparent aux éléments comme le GPS, la triangularisation par rapport aux antennes.
- Etant dans un contexte Silverlight, vous ne pourrez accéder qu’aux fichiers situés dans votre IsolatedStorage qui ne sera pas limité à 1mo mais à 2go sur le téléphone.
- Windows Phone 7 ne sera pas multi-tâche sauf pour les applications maisons (identique à l’Iphone actuel), il faudra donc gérer la mise en “pause” de votre application (lorsqu’elle passera en background en faite) et sauvegardez les données pour réafficher ensuite celles-ci lorsque l’utilisateur réveillera votre application !
Vous pouvez commencer dès maintenant à migrer vos applications mobiles et jeux. Pour publier ensuite vos applications, vous devrez passer les exigences du Windows MarketPlace.
Depuis le Word Mobile Congress de Barcelone, peu d’informations ont filtré sur les prochains terminaux sous Windows Phone 7. N’oubliez pas de consulter mon précédent article si vous l’avez loupé.
Mais avec le Mix 10 qui se déroule en ce moment du 15 au 17 mars à Las Vegas, Microsoft fait des annonces. Si vous voulez d’ailleurs voir le programme des sessions, c’est par ici.
On savait depuis le début que l’intégration entre Xbox Live et Windows Phone serait fort et il est confirmé. En effet, l’affichage du profil utilisateur ainsi que les sauvegardes de jeux compatibles multi-plateformes seront au cœur de cette nouvelle plateforme.
Les jeux sur Windows Phone 7 pourront être programmés à l’aide de XNA (une rumeur confirmée), plateforme de programmation de jeux vidéo qui permet à l’heure actuelle avec le même code de viser une cible PC et Xbox directement sans changement de codes. XNA permettrait donc de passer également à Windows Phone, ce qui avantage tous les studios de jeux vidéos et permettra d’imposer peut être plus XNA auprès de ceux-ci. Direct3D serait également compatible avec les Windows Phone permettant une ouverture vers le développement des jeux sur mobile en 3D, voici une image de ce que cela va donner avec le titre en cours de développement Battle Punks :

Mais aussi…Silverlight ! Il vient d’être annoncé au Mix que Silverlight sera également de la partie sur les Windows Phone et ceci est une bonne nouvelle pour les applications quotidiennes qui s’animeront !
N’attendez plus, essayez maintenant ! Microsoft vient tout juste de mettre à disposition gratuitement évidemment Visual Studio 2010 Express for Windows Phone qui contient :
 |
- Visual Studio 2010 Express for Windows Phone
- Windows Phone Emulator
- Silverlight for Windows Phone
- XNA Game Studio 4.0 CTP
|
Une vrai révolution. Evidemment un Getting Started sur la MSDN est également disponible ici ou encore des samples par là. Il ne manque plus que les terminaux physiques maintenant ! Apparemment ceux-ci sont attendus pour le mois de septembre :)
Pour ceux qui ne veulent pas attendre et désire dès maintenant un aperçu du skin Windows Phone sur leur Windows Mobile actuel, Jaxbot du forum XDA a créé un skin (attention cela a l’air de pas mal ramer et n’a strictement rien à voir avec Microsoft) !
Un nouveau site présentant les nouveautés en cours à venir de la plateforme Windows Phone est également disponible sur http://www.windowsphone7series.com/, allez y régulièrement ;)
Changement de cap, changement de nom !
En effet, Microsoft vient d’annoncer lundi 15 février au Mobile World Congress de Barcelone sa nouvelle mouture mobile. Le nouveau nom des plateformes Windows Mobile 6 devient Windows Phone 7 afin de marquer une rupture avec les anciens produits tant décriés. Microsoft compte donc rattraper son retard face à ses concurrents en tapant un gros coup. En effet, cette nouvelle mouture devrait être présente chez Orange et SFR dès cet automne, bravo pour la réactivité !
Microsoft ne compte pas également pour l’instant sortir de mobiles sous son nom comme Google mais impose une configuration minimum aux constructeurs de mobiles.
Le plus important : l’interface utilisateur

L’interface utilisateur choisie est fortement inspiré du Zune ! Pour les vidéos, la musique, la radio et les podcasts, le travail déjà réalisé sur le Zune sera bien intégré dans Windows Phone 7, produits bien accueillis par les critiques.
 |
Les réseaux sociaux prendront également une part importante de cette nouvelle version grâce à People. Cet outil permettra d’accéder à vos comptes Facebook, Windows Live, Yahoo et Exchange. Microsoft compte également intégrer vos informations Xbox Live dans votre téléphone, élément non central à mon humble avis (disposer d’une Xbox ainsi que jouer au Live n’est pas pour le plus commun de tous). L’interface d’accueil est découpée en sections permettant de retrouver rapidement les différents usages du téléphone.
|
Pour l’instant le flash n’est pas supporté nativement sur cette nouvelle version mais Microsoft n’a pas fermé cette porte (un bon moyen de se différencier de l’Iphone ?) aux développeurs d’Adobe.
Constituant la partie multitâche du système, des doutes subsistent sur ce point. Pourtant présent sur la version WM 6.5, cet attrait ne sera pas forcément retenu (rappelons que l’Iphone n’est pas multitâche et lui permet ainsi de gérer facilement les problèmes de ressources).
Vidéos Windows Phone 7 :
La compatibilité, le gros hic ?
Apparemment Silverlight devrait être compatible avec cette nouvelle version mobile mais les anciennes applications développés sur le Compact Framework ne devrait pas l’être. Ce qui va poser un énorme souci aux entreprises de développement sur les mobiles.
Que faire des anciennes versions tournant sous WM 6 ? Il faudra complètement retravailler l’interface graphique et certainement l’accès aux ressources pour effectuer une migration vers Windows Phone 7.
Que faire pour un nouveau développement sur WP7 ? Si l’on vise cette plateforme, la compatibilité avec les anciens terminaux n’est pas possible, vous privant d’une clientèle très (trop) importante.
L’arrivée de XNA est une bonne nouvelle, permettant aux développeurs de jeux vidéos XNA de s’installer sur cette nouvelle plateforme et espérons avoir des jeux plus évolués !
Le Marketplace, une faiblesse ?
Le nombre d’applications disponibles sur le Marketplace est actuellement relativement faible comparés aux marchés concurrents. Cette nouvelle version remettra donc les compteurs à zéro sur cette plateforme et le défi des applications reste entier.
Quand on voit que l’Iphone mise entièrement sa communication sur les applications disponibles sur leur Market, un énorme défi est à relever. Selon moi, l’enjeu majeur se trouve sur le prix d’entrée sur le marché qui est trop élevé et freine le développement notamment d’applications gratuites.
Vous pourrez retrouver d’autres informations techniques sur ce billet.
L’autre jour, on m’a demandé comment faire du Azure sans Visual Studio et avec d’autres langages. Voici une partie des réponses trouvés sur la forge Codeplex :
 | Windows Azure SDK for PHP |
PHPAzure est un projet open source visant à faciliter le développement PHP sur Windows Azure avec des apis pour utiliser les Blobs, tables et queues et Azure. Le SDK est actuellement disponible en version 1.0.1 et téléchargeable ici. Il est développé conjointement par REALDOMEN et Microsoft.
Mais comment tout cela marche ?
Azure étant appelé par des interfaces REST/XML, une surcouche a été développé et met à disposition du développeur une simple API, c’est le but de ce framework.
 | Windows Azure SDK for Java |
WindowsAzure4j est la réponse du monde Java ! Grâce à ce SDK, vous pourrez utiliser le couple Java/Azure pour tirer parti du Cloud Azure ainsi que des Blobs, tables et queues.
Ce SDK est édité par Soyatec et Microsoft et est actuellement en version 1.0.0. Si vous désirez plus d’informations sur l’installation, c’est par là.
Microsoft tape ainsi fort sur le marché en mettant à disposition ces SDK, couvrant les trois principaux langages de développement actuels.
Comment cela marche ?
Exactement comme le SDK PHP ! Le SDK encapsule les appels REST et vous n’avez plus qu’à utiliser l’api en Java.
Azure devient payant à partir du 1er février, mais quels sont les tarifs ?

On peut voir quatre différents type de compte sur Azure :
* Windows Azure Platform Introductory Special : gratuit mais limité à 25 heures d’instance
* Windows Azure Platform Development Accelerator Core : 60$ pour 750 heures d’instance
* Windows Azure Platform Development Accelerator Extended : 110$ pour 750 heures d’instance
* Windows Azure Platform Consumption : payez ce que vous consommez
Attention les comptes CTP devront être migré même pour le compte Introductory Special afin de continuer à fonctionner.
Pour plus de détails, n’hésitez pas à aller sur http://www.microsoft.com/windowsazure/offers/.