Le blog de la WP7Team est arrivé! :-)

14. March 2011 18:03 by Renaud in   //  Tags:   //   Comments (0)

Cela fait maintenant presque deux mois que j'ai découvert la plateforme Windows Phone 7. J'ai commencé à partir de rien (ou presque :-) j'avais évidemment déjà programmé, mais c'est ma première expérience avec Silverlight), et aujourd'hui j'y prends un réel plaisir!

Mes amis-collègues et moi-même nous sommes mis dans l'idée, il y a quelques jours, de créer une équipe francophone de développeurs axée sur WP7! L'idée est la suivante: mettre en commun nos expériences, nos découvertes et nos connaissances pour offrir du contenu à la communauté francophone et à tous les développeurs (en herbe ou confirmés) désireux de se lancer dans l'aventure Windows Phone 7!

Le temps d'aménager un peu notre nouveau blog ( je salue au passage le travail de Kévin et Matthieu ^^ ) et ça y est, on est là!

Je ne vais pas vous présenter toute l'équipe ici, mais j'vous invite à vous rendre directement sur notre blog: www.wp7team.com

[WP7] Développer une appli en mode trial pour Windows Phone 7

12. March 2011 11:03 by Renaud in   //  Tags:   //   Comments (3)

Le meilleur moyen de vendre vos applications, c'est bien sûr de permettre aux utilisateurs de la tester!

Note: Bien que vous puissiez modifier le prix de vente d'une application publiée, vous ne pouvez pas rendre gratuite une application payante, même lors de la publication d'une mise à jour. Par contre, vous pouvez tout à faire activer le mode Trial.

 

Qu'est-ce que le mode Trial?

Le mode trial consiste à fournir une application bridée aux utilisateurs, afin qu'ils puissent tester une partie des fonctionnalités, et de pouvoir ensuite leur proposer d'acheter la version complète. Les utilisateurs seront bien plus tentés d'acheter une application en connaissance de cause! En effet, il n'y a rien de pire que d'acheter une application et ne l'utiliser qu'une seule fois après s'être rendu compte qu'elle ne vaut rien.

 

Comment procéder:

Il y a deux façons pour savoir si l'application utilise une licence trial ou pas:

IsTrial() de LincenseInformation et Guide.IsTrialMode.

La première solution utilisant la classe LicenseInformation, ne fournit qu'une seule et unique méthode: IsTrial(). Il faut savoir que en phase de développement, cette méthode retournera toujours true.  Il vous faudra donc mettre au point des tests pour savoir si on est en débuggage ou pas.

Vous pouvez également utiliser la classe Guide du framework XNA. La propriété IsTrialMode vous indique l'état de la licence: true si licence Trial, false si licence complète.

L'avantage ici, c'est qu'on peut également utiliser la propriété SimulateTrialMode pour forcer le mode attendu pendant le développement de notre application.

Best Practices:

MSDN nous donne quelques conseils à suivre! Je vous les rappelle vite fait, et ensuite on regarde ce que donne le code :)

Premièrement, IsTrial() et IsTrialMode peuvent mettrent jusqu'à 200ms à retourner une valeur! Il est donc conseillé de mettre en cache cette valeur, surtout si vous comptez l'utiliser régulièrement. Même si cela ne se remarque pas beaucoup sur l'émulateur, les performances d'un vrai device pourraient en prendre un coup !

Deuxièmement, il est conseillé d'informer l'utilisateur de pourquoi il devrait acheter la version complète, et de le diriger vers le MarketPlace.

Troisièmement, utilisez les #if DEBUG/#endif couplés à Guide.SimulateTrialMode pour tester vos applications en debug :)

  Keskessadonne niveau code:

Pour faire les choses bien, on va commencer par ajouter une référence à Microsoft.Xna.Framework.GameServices.dll à notre projet!

Ensuite, on va signaler à notre application qu'on travail en mode trial. On va faire ça dans l'App.xaml.cs pour que ce soit fait le plus tôt possible. On va donc simplement rajouter ces quelques lignes dans le constructeur de App:

#if DEBUG
    Guide.SimulateTrialMode = true;
#endif

On peut maintenant créer une classe utilitaire dans notre application permettant de récupérer l'état de la licence en tenant compte des recommandations de Microsoft:

using Microsoft.Xna.Framework.GamerServices;

namespace TrialApplication.Tools
{
    public class LicenseInfo
    {
        private static bool? _IsTrial;

        public static bool IsTrial
        {
            get
            {
                if (!_IsTrial.HasValue)
                    _IsTrial = Guide.IsTrialMode;
                return _IsTrial.Value;
            }
        }
    }
}

Vous pouvez maintenant utiliser cette valeur où vous le voulez pour limiter l'accès à certaines fonctionnalités:

            if (LicenseInfo.IsTrial)
            {
                MessageBox.Show("You can't do this because you are using " +
                                "the trial version of this application. " +
                                "To purchase this application, take a look " +
                                "at the About page and follow the link.");
            }else{
                // Do something
            }

Effectivement, il faut maintenant permettre à l'utilisateur d'acheter votre application :) Ce qui est quand même le but principal du mode trial, faire en sorte que l'utilisateur ait envie d'acheter votre app!

Pour arriver directement sur la page de votre application dans le MarketPlace, vous pouvez le faire soit en XAML, soit en code-behind:

XAML:
<HyperlinkButton Content="Purchase full version!"
                 FontSize="{StaticResource PhoneFontSizeSmall}"
                 NavigateUri="marketplace:///" />
C#:
        private void PurchaseLink_Click(object sender, RoutedEventArgs e)
        {
                MarketplaceDetailTask marketplaceDetailTask = new MarketplaceDetailTask();
                marketplaceDetailTask.ContentType = MarketplaceContentType.Applications;
                marketplaceDetailTask.Show();
        }

La classe MarketplaceDetailTask possède une propriété ContentIdentifier. Cette propriété permet d'indiquer l'application que l'on souhaite afficher dans le MarketPlace. Si vous ne mettez rien, vous afficherez l'application courante !

marketplaceDetailTask.ContentIdentifier = "b6c0d723-3d34-e011-854c-00237de2db9e";

Et enfin pour terminer, vous aurez certainement envie que vos utilisateurs laissent une note à votre application:

       private void RateLink_Click(object sender, RoutedEventArgs e)
        {
            MarketplaceReviewTask marketplaceReviewTask = new MarketplaceReviewTask();
            marketplaceReviewTask.Show();
        }

Ce launcher vous emmènera directement sur l'écran des reviews.

Conclusion:

Vous avez maintenant tout ce qu'il faut pour développer votre propre application avec mode Trial. Pour la tester en version complète, passez simplement votre build en mode release !

J'espère que cet article aura été utile à quelques-uns ou quelques-unes d'entre vous!

N'hésitez pas à me donner votre feedback et à laisser un lien vers les applications que vous aurez développées en vous aidant de cet article :)

sources: MSDN, WindowsPhoneDev, DavidPoll.com

TextBox

About the author

I'm a developer, blog writer, and author, mainly focused on Microsoft technologies (but not only Smile). I'm Microsoft MVP Client Development since July 2013.

Microsoft Certified Professional

I'm currently working as an IT Evangelist with an awesome team at the Microsoft Innovation Center Belgique, where I spend time and energy helping people to develop their projects. I also give training to enthusiastic developers and organize afterworks with the help of the Belgian community.

MIC Belgique

Take a look at my first book (french only): Développez en HTML 5 pour Windows 8

Développez en HTML5 pour Windows 8

Membre de l'association Fier d'être développeur

TextBox

Month List