SDK WP7 Mango : aucun template sous Visual Studio 2010 en français

Le 26 juin 2011 à 22:51

Sur un de mes postes de travail, j’ai Visual Studio 2010 Ultimate en français d’installé. Lorsque j’ai installé le SDK WP7 de Mango sur le PC (SDK disponible qu’en anglais donc), je me suis retrouvé avec un Visual Studio sans les templates WP7. Même si on peut ouvrir Blend créer le projet, puis revenir sur VS, ce n'est pas optimal.

image

Donc j’ai cherché sur internet s’il y avait une solution “officielle”, mais comme je n’ai rien trouvé, voici la solution que je propose ; il faut tout d’abord se rendre dans le dossier :

 

x:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\ProjectTemplates\
                                              CSharp\Silverlight for Windows Phone

 

Copier ou renommer le dossier nommé “1033” en “1036” (code français, 1033 représentant l’anglais).

Puis lancer en mode administrateur la commande suivante, celle-ci permettant à Visual Studio de remettre à jour la liste des templates :

devenv.exe /InstallVSTemplates /ResetSettings

 

image

 

Et voilà, vous allez de nouveau bénéficier des templates WP7 sous Visual Studio 2010 !

image

A bientôt !

[WP7] Présentation et utilisation des différentes Tasks

Le 4 mai 2011 à 09:55

Pour les tâches les plus courantes, comme choisir ou prendre des photos, envoyer des e-mails ou des SMS, il existe un ensemble de tâches qui sont disponibles dans l’espace de nom Microsoft.Phone.Tasks.

Les différentes tâches sont :

CameraCaptureTask

Permet à l’application courante de lancer l’application de l’appareil photo.
Cette option permet à l’utilisateur de prendre une photo.

EmailAddressChooserTask

Permet à l’application courante de lancer l’application Contacts.
Cette option permet d’obtenir l’adresse e-mail d’un contact sélectionné par l’utilisateur.

EmailComposeTask

Permet à l’application courante de lancer la création d’un nouvel e-mail dans Outlook.
Cette option permet aux utilisateurs d’envoyer des e-mails.

MarketplaceDetailTask

Permet à l’application courante de lancer l’application Marketplace et d’afficher la page des détails d’un produit spécifié.

MarketplaceHubTask

Permet à l’application courante de lancer l’application Marketplace.

MarketplaceReviewTask

Permet à l’application courante de lancer l’application Marketplace et d’afficher la page des avis d’un produit spécifié.

MarketplaceSearchTask

Permet à l’application courante de lancer l’application Marketplace et d’afficher les résultats d’une recherche spécifiée.

MediaPlayerLauncher

Permet à l’application courante de lancer Media Player.

PhoneCallTask

Permet à l’application de lancer l’application Téléphone.
Cette option permet de téléphoner à partir de l’application courante.

PhoneNumberChooserTask

Permet à l’application courante de lancer l’application Contacts.
Cette option permet d’obtenir le numéro de téléphone d’un contact sélectionné par l’utilisateur.

PhotoChooserTask

Permet à l’application courante de lancer la sélection photo.
Cette option permet d’obtenir une photo sélectionnée par l’utilisateur.

SaveEmailAddressTask

Permet à l’application courante de lancer l’application Contacts.
Cette option permet à l’utilisateur d’enregistrer une adresse e-mail de votre application sur un nouveau ou un contact existant.

SavePhoneNumberTask

Permet à l’application courante de lancer l’application Contacts.
Cette option permet à l’utilisateur d’enregistrer un numéro de téléphone de votre application à un nouveau ou un contact existant.

SearchTask

Permet à l’application courante de lancer la recherche web.

SmsComposeTask

Lance l’application SMS pour créer un nouveau message.

WebBrowserTask

Permet à l’application courante de lancer l’application Internet Explorer.

 

Maintenant on va mettre en pratique l’utilisation des Tasks !


CameraCaptureTask, cette tâche va nous permettre de récupérer la photo que l’utilisateur vient de prendre pour notre application :

public partial class MainPage : PhoneApplicationPage
{
    private CameraCaptureTask _cameraCaptureTask;

    public MainPage()
    {
        InitializeComponent();

        _cameraCaptureTask = new CameraCaptureTask();
        _cameraCaptureTask.Completed += 
                             new EventHandler<PhotoResult>(_cameraCaptureTask_Completed);
    }

    private void btnCamera_Click(object sender, RoutedEventArgs e)
    {
        _cameraCaptureTask.Show();
    }

    void _cameraCaptureTask_Completed(object sender, PhotoResult e)
    {
        if (e.TaskResult == TaskResult.OK)
        {
            BitmapImage bmp = new BitmapImage();
            bmp.SetSource(e.ChosenPhoto);
            // Affichage, enregistrement... etc
        }
    }
}

 

EmailChooserAddressTask, cette tâche va nous permettre de récupérer le mail que l’utilisateur va sélectionner :

public partial class MainPage : PhoneApplicationPage
{
    private EmailAddressChooserTask _emailAddressChooserTask;

    public MainPage()
    {
        InitializeComponent();

        _emailAddressChooserTask = new EmailAddressChooserTask();
        _emailAddressChooserTask.Completed += 
                        new EventHandler<EmailResult>(emailAddressChooserTask_Completed);
    }

    private void btnEmailChooser_Click(object sender, RoutedEventArgs e)
    {
         _emailAddressChooserTask.Show();
    }

    void emailAddressChooserTask_Completed(object sender, EmailResult e)
    {
        if (e.TaskResult == TaskResult.OK)
        {
            MessageBox.Show(e.Email);
        }
    }
}

 

image


EmailComposeTask, pour envoyer un nouveau mail via Outlook :

private void btnEmail_Click(object sender, RoutedEventArgs e)
{
    EmailComposeTask emailComposeTask = new EmailComposeTask();

    emailComposeTask.To = "destinataire@wp7";
    emailComposeTask.Cc = "encopie@wp7";
    emailComposeTask.Subject = "Object : Test mail";
    emailComposeTask.Body = "Hello... world";

    emailComposeTask.Show();
}

 

MarketplaceDetailTask, permet d’afficher la page d’une application spécifiée par un GUID :

MarketplaceDetailTask marketDetailTask = new MarketplaceDetailTask();
marketDetailTask.ContentType = MarketplaceContentType.Applications;
marketDetailTask.ContentIdentifier = "{votre_guid}";
marketDetailTask.Show();

 

Il est bien sur possible d’afficher de la musique avec MarketplaceContentType.Music;

 

image

 

MarketplaceHubTask, lance l’application Marketplace sur le téléphone. On peut spécifie le type de contenu à afficher avec la propriété ContentType avec une valeur de l’énumération MarketplaceContentType :

MarketplaceHubTask marketplaceHubTask = new MarketplaceHubTask();
marketplaceHubTask.ContentType = MarketplaceContentType.Music;
marketplaceHubTask.Show();

 

image

 

MarketplaceReviewTask lance l’application Marketplace et affiche les avis de l’application en cours :

MarketplaceReviewTask marketplaceReviewTask = new MarketplaceReviewTask();
marketplaceReviewTask.Show();

 

MarketplaceSearchTask lance l’application Marketplace et affiche le résultat d’une recherche basée sur les mots-clefs qu’on a définis :

MarketplaceSearchTask marketplaceSearchTask = new MarketplaceSearchTask();
marketplaceSearchTask.SearchTerms = "microsoft";
marketplaceSearchTask.Show();

 

image

 

MediaPlayerLauncher nous permet de lancer une vidéo :

MediaPlayerLauncher mediaPlayerLauncher = new MediaPlayerLauncher();
// La vidéo se trouve dans le répertoire de l'application 
mediaPlayerLauncher.Location = MediaLocationType.Install; 
mediaPlayerLauncher.Media = new Uri("lavideo.wmv", UriKind.Relative);
mediaPlayerLauncher.Controls = MediaPlaybackControls.Pause | 
                               MediaPlaybackControls.Rewind | 
                               MediaPlaybackControls.Stop; // boutons dispos
mediaPlayerLauncher.Show();

 

PhoneCallTask nous permet de lancer un appel au numéro qu’on va définir dans l’application :

PhoneCallTask phoneCallTask = new PhoneCallTask();
phoneCallTask.DisplayName = "Orange pro";
phoneCallTask.PhoneNumber = "3901";
phoneCallTask.Show();

 

image

 

PhoneNumberChooserTask permet à l’utilisateur de choisir un contact et que son numéro soit envoyé vers l’application courante:

public partial class MainPage : PhoneApplicationPage
{
    private PhoneNumberChooserTask _phoneNumberChooserTask;

    public MainPage()
    {
        InitializeComponent();

        _phoneNumberChooserTask = new PhoneNumberChooserTask();
        _phoneNumberChooserTask.Completed += 
                       new EventHandler<PhoneNumberResult>(phoneNumberChooserTask_Completed);
    }

    private void btnEmailChooser_Click(object sender, RoutedEventArgs e)
    {
        _phoneNumberChooserTask.Show();
    }

    void phoneNumberChooserTask_Completed(object sender, PhoneNumberResult e)
    {
        if (e.TaskResult == TaskResult.OK)
        {
            MessageBox.Show(e.PhoneNumber);
        }
    }
}

 

PhotoChooserTask permet à l’utilisateur de choisir une photo et de la renvoyer à l’application courante :

public partial class MainPage : PhoneApplicationPage
{
    private PhotoChooserTask _photoChooserTask;

    public MainPage()
    {
        InitializeComponent();

        _photoChooserTask = new PhotoChooserTask();
        _photoChooserTask.Completed +=
                        new EventHandler<PhotoResult>(photoChooserTask_Completed);
    }

    private void btnPhotoChooser_Click(object sender, RoutedEventArgs e)
    {
        _photoChooserTask.Show();
    }

    void photoChooserTask_Completed(object sender, PhotoResult e)
    {
        if (e.TaskResult == TaskResult.OK)
        {
            System.Windows.Media.Imaging.BitmapImage bmp =
                                 new System.Windows.Media.Imaging.BitmapImage();
            bmp.SetSource(e.ChosenPhoto);

            //traitement
        }
    }
}

 

image


SaveEmailAddressTask permet de sauvegarder une adresse e-mail :

public partial class MainPage : PhoneApplicationPage
{
    private SaveEmailAddressTask _saveEmailAddressTask;

    public MainPage()
    {
        InitializeComponent();

        _saveEmailAddressTask = new SaveEmailAddressTask();
        _saveEmailAddressTask.Completed += 
                       new EventHandler<TaskEventArgs>(saveEmailAddressTask_Completed);
    }

    private void btnSaveMail_Click(object sender, RoutedEventArgs e)
    {
        _saveEmailAddressTask.Email = "mail@localhost";
        _saveEmailAddressTask.Show();
    }
   
    void saveEmailAddressTask_Completed(object sender, TaskEventArgs e)
    {
        if (e.TaskResult == TaskResult.OK)
        {
            MessageBox.Show("Enregistrement OK");
        }
        else if (e.TaskResult == TaskResult.Cancel)
        {
            MessageBox.Show("Annulé");
        }
    }
}
 

image


SavePhoneNumberTask permet de sauvegarder un numéro de téléphone :

public partial class MainPage : PhoneApplicationPage
{
    private SavePhoneNumberTask _savePhoneNumberTask;

    public MainPage()
    {
        InitializeComponent();

        _savePhoneNumberTask = new SavePhoneNumberTask();
        _savePhoneNumberTask.Completed += 
                   new EventHandler<TaskEventArgs>(savePhoneNumberTask_Completed);
    }

    private void button1_Click(object sender, RoutedEventArgs e)
    {
        _savePhoneNumberTask.PhoneNumber = "3901";
        _savePhoneNumberTask.Show();

    }

    void savePhoneNumberTask_Completed(object sender, TaskEventArgs e)
    {
        if (e.TaskResult == TaskResult.OK)
        {
            MessageBox.Show("Enregistrement OK");
        }
        else if (e.TaskResult == TaskResult.Cancel)
        {
            MessageBox.Show("Annulé");
        }
    }
}

 

image


SearchTask permet de faire une recherche avec la fonction recherche du téléphone :

SearchTask searchTask = new SearchTask();
searchTask.SearchQuery = "Microsoft";
searchTask.Show();

 

image


SmsComposeTask permet d’envoyer des SMS depuis l’application courante :

SmsComposeTask smsComposeTask = new SmsComposeTask();
smsComposeTask.To = "3901";
smsComposeTask.Body = "Mon SMS";
smsComposeTask.Show();

 

image


WebBrowserTask permet de lancer une page internet dans le navigateur internet du téléphone :

WebBrowserTask webBrowserTask = new WebBrowserTask();
webBrowserTask.URL = "http://www.microsoft.com";
webBrowserTask.Show();

 

image

A bientôt !

[WP7] Créez votre compte Marketplace !

Le 22 novembre 2010 à 17:54

Vous développez sous Windows Phone 7 et vous souhaitez tester (et déployer) votre application ? L’étape d’inscription par Marketplace est donc obligatoire, et on peut dire que l’on peut être très vite déboussolé quand on éprouve quelques difficultés pour activer correctement son compte.

Cet article va cibler principalement les étudiants, mais il est valable également pour tout le monde.

Avant toute chose, si vous êtes étudiants, inscrivez-vous sur Dreamspark (si ce n’est pas déjà fait, n’oubliez pas de vous munir de votre carte ISIC ; au passage si vous ne connaissez pas Dreamspark, celui-ci vous permettra d’avoir des licences Microsoft gratuitement tels que Microsoft Windows Server 2008 R2 ou Visual Studio 2010 !). Dreamspark va vous permettre d’utiliser un compte Marketplace gratuit (sinon 99$).

Première étape : l’inscription au site App Hub
Il faut vous rendre sur ce site, App Hub, qui sera votre interface principale de gestion pour vos applications à déployer sur le Marketplace.

image

 

Ensuite, cliquez sur « Sign in » (utilisez le même LiveID que Dreamspark).
Il faudra à présent choisir le type de compte que vous souhaitez, ici nous allons choisir « Students » :

image

Ensuite, entrez vos informations personnelles :

image

Petite mise en garde : le Publisher Name (qui sera le nom utilisé sur chacune de vos applications sur le Marketplace) n’est pas modifiable ! Donc veillez bien à choisir un nom correct, idéalement votre nom/prénom :)

Il faut à présent créer un compte XBOX Live, qui est requis pour le développement. Un Gamertag vous est donc demandé.

image

Comme vous êtes étudiant, aucun paiement n’est requis. Par contre, si votre compte Dreamspark n’a pas été activé, vous serez bloqué : vous devrez donc vous rendre sur Dreamspark et débloquer votre inscription.

image

Vérifiez maintenant vos mails : vous devrez confirmer votre inscription.

image

image

Si vous vous rendez sur votre tableau de bord, vous pouvez constater que pour l’instant, seul votre e-mail a été vérifié, et il faut encore que votre identité le soit.

image

Même si cela n’est pas conseillé car le processus de validation doit normalement être enclenché automatiquement (personnellement j’ai craqué, car j’ai attendu presque 3 semaines) et comme vous avez un compte étudiant, vous pouvez tout d’abord envoyer une première application pour lancer le processus (certains envoi une vraie application, d’autre une fausse…) ! Je sais, ce n’est pas super pratique  mais c’est une étape indispensable pour valider votre compte (ceux par contre qui ont un compte pro ou Individual, pas besoin de faire ce « bidouillage ». Le processus de validation est enclenché rapidement dans votre cas)

image

Remplissez tous les champs nécessaires et validez votre « application ».

Maintenant, il va falloir attendre que GeoTrust vous contacte. Normalement ça devrait être assez rapide (environ 2-3h pour moi).

Vous devrez dans un premier temps, approuvez les données de contact de votre compte pour GeoTrust :

image

Ensuite, il va falloir (de nouveau) attendre que GeoTrust vous demande de compléter un formulaire et le renvoyer accompagné d’une photocopie d’une pièce d’identité (tout sera détaillé dans le mail). Si jamais, vous n’êtes pas contacté, n’hésitez pas à contacter le support de Microsoft, vous aurez une réponse assez rapidement (par contre n’oubliez pas qu’il y a un décalage horaire ! Une réponse à 1h00 du matin ça peut arriver ;)).
Une fois que GeoTrust vous aura (totalement !) approuvé, Microsoft vous activera votre compte dans les 24h.

A présent vous pouvez enfin tester vos applications sur votre téléphone ! Pour cela, connectez votre téléphone à votre ordinateur, déverrouillez l’écran et ouvrez l’utilitaire « Windows Phone Developper Registration ». Entrez vos données, et votre téléphone sera prêt pour vos développements :).

image

Mais tout n’est pas encore gagné pour autant : si vous voulez les poster sur le Marketplace des applications payantes, il faudra encore que vous entriez vos coordonnées bancaires, ce qui ne pose pas de problème mais un numéro de VAT (numéro de TVA intracommunautaire) vous sera demandé et ce champ est obligatoire.
Comme vous avez un compte étudiant, il est normal que vous ne disposez pas de ce numéro (aussi pour les personnes enregistré comme « Individual », et même si vous êtes auto-entrepreneur, vous ne pouvez pas disposer de ce numéro vu que vous êtes assujetti à la TVA), Microsoft en parle sur le forum App Hub et disent qu’il va bientôt y avoir un correctif d’App Hub pour remédier à ce problème.
(par contre, pour la petite histoire, je viens de le remarquer à l’instant où j’écris ces lignes, il y a deux jours il était encore demandé aux personnes ayant ce problème d’envoyer un mail à cette adresse : mkdevsup@microsoft.com et de respecter l’objet suivant : « RegID4 - VAT ID required when it should be optional » ; et ne pas oublier d’indiquer le Live ID associé).

 

[Mise à jour 24/07/2011] vous souhaitez vous faire payer votre application, il faut savoir qu’il faut remplir quelques formulaires :).

Le premier formulaire que vous devrez renvoyer à Microsoft : W8-BEN (PDF du formulaire) . Ce formulaire est indispensable mais vous fera payer une double taxe : 30% pour les impôts Américains (IRS) et 30% pour Microsoft.

Pour être exonéré de l’IRS, il faut falloir avoir un numéro ITIN pour les particuliers ou EID pour les entreprises.

Mais pour pouvoir remplir le formulaire W8-BEN et le renvoyer à Microsoft, il va falloir avoir en premier lieu son numéro ITIN ou EID (ici je vais m’attarder sur ITIN).

Pour demander à avoir un ITIN, il faut remplir le formulaire W7 et le renvoyer à l’IRS en attendant une réponse de leur part (pour trouver ce formulaire, c’est ici). Au passage, il vous sera demander d’avoir une copie d’identité conforme, c’est à dire à faire en mairie.

Une fois votre numéro ITIN acquis, vous n’avez plus qu’à remplir le formulaire W8-BEN et à le renvoyer à Microsoft :) (pour l’envoi du formulaire W7, l’adresse est indiqué dans le formulaire, et pour le formulaire W8-BEN, il est indiqué sur ce lien).

Une fois tout ce processus accompli, vous pourrez être payé tout en étant allégé des impôts américains !

Cet article pourra être modifié selon les informations que j’ai et que je reçois. N’hésitez pas à revenir de temps en temps :).

 

Mise à jour du 10/12/2010 : vous pouvez à présent entrer vos informations bancaire normalement, le numéro VAT est maintenant facultatif ! :)

Mais j’avoues que je n’avais pas prêté attention au formulaire W-8BEN form qu’il faut remplir et envoyer à Microsoft. Je vais le faire sous peu, et je modifierai à nouveau cet article pour des informations complémentaires !

Mise à jour du 24/07/2011 : processus pour être payer via formulaire W7 et W8-BEN et à présent la validation Geotrust n’est plus obligatoire pour les étudiants et les particuliers !

 

A bientôt !

Les rendez-vous en direct avec Steve Ballmer le 7 octobre prochain

Le 4 octobre 2010 à 21:00
Intervention de Steve Ballmer lors des Microsoft Days Paris
 

A 9h30, suivez en direct sur le web, l'intervention de Steve Ballmer lors des Microsoft Days Paris.

BallmerL’édition de cette année porte une attention spéciale à Windows Phone, Office 2010, Windows Azure et Microsoft Online Services. Que vous soyez, développeurs, professionnels de l’informatique, partenaires ou encore décideurs informatique, ne manquez pas cette occasion exceptionnelle de découvrir en live, les grandes innovations et orientations stratégiques de Microsoft !

Un rendez-vous incontournable pour les professionnels des technologies Microsoft.

Cette session live sera également commentée et suivie sur Facebook & Twitter !

 

La Grande Finale de la Compétition d'applications mobiles Windows® Phone 7

A 11h40, en direct également la Grande Finale de la Compétition d'applications mobiles Windows® Phone 7 qui récompensera la competwp "KILLER-APP" de demain !

Les 7 meilleurs développeurs de la Compétition devront ainsi présenter leurs créations en 2 minutes chacun devant Steve Ballmer, CEO de Microsoft, et un jury composé d’entrepreneurs et d’investisseurs à l’origine de quelques-unes des plus belles « success stories » de l’Internet et du logiciel en France.

Un événement prestigieux et une compétition au sommet à ne pas manquer.

Cette finale sera également commentée et suivie sur Facebook & Twitter !

[WP7] Windows Phone Developer Tools RTM disponible !

Le 16 septembre 2010 à 18:25

Vu sur le blog de la team WP7, les Windows Phone Developer Tools en RTM viennent de sortir !
Pour rappel, la version RTM apporte plusieurs nouveautés, comme les contrôles Panorama, Pivot et Bing Maps.

windows-phone-logo-305x46-trans

Pour télécharger la version “web” (téléchargement des fichiers pendant l’installation), rendez-vous sur cette page. Pour la version ISO, c’est ici !

A bientôt !

A propos de l'auteur

Mathieu Perrein - Software Solutions Manager, Software Architect, Trainer MCT, MSP de 2010 à 2012.

 

MSP

 

MSP

MSP

 MSPD

MCT

 

Facebook

 

Ce blog est strictement personnel et les opinions exprimées ici n'engagent donc que moi, et pas mon employeur.

Tags

Vous avez désactivé JavaScript ou bien vous possédez une ancienne version d'Adobe Flash Player. Téléchargez la dernière version de Flash Player.