UI-Elemente der Mausposition finden Speed ObservableCollection WP7-App als Trial anbieten (Teil 3)
Kommentare

Menü 3 für Windows Phone 7: WP7-App als Trial anbieten
Wer viel Arbeit in eine WP7-App investiert, sollte dafür auch belohnt werden. Darum soll die App auf dem Marketplace kommerziell für einen gewissen

Menü 3 für Windows Phone 7: WP7-App als Trial anbieten

Wer viel Arbeit in eine WP7-App investiert, sollte dafür auch belohnt werden. Darum soll die App auf dem Marketplace kommerziell für einen gewissen Geldbetrag zum Kauf erhältlich sein. Allerdings kauft niemand gern die Katze im Sack und möchte im Vorhinein die Vorteile der App testen können. Sehr angenehm bei WP7 ist, dass sich der Entwickler technologisch kaum um die Lizenzierung zur Vollversion kümmern muss. Es muss nur definiert werden, was bei der Testversion nicht funktionieren soll, damit die App im eingeschränkten Testmodus ausgeführt wird (Trial-Modus).

Dazu braucht der Entwickler nur eine Instanz von der Klasse LicenseInformation. Diese bietet eine Bool-Property mit IsTrial, die Informationen darüber bereitstellt, ob die Anwendung gekauft wurde oder nicht.

Etwas unangenehmer wäre dann allerdings das Testen der Trial-Version. Um dies zu umgehen, muss lediglich eine Facade (Entwurfsmuster) für die LicenseInformation-Klasse erzeugt werden. Alternativ wäre das Implementieren dazu auch direkt in der App.xaml.cs möglich, wie es in Listing 3 gezeigt wird.

Somit wird IsTrial automatisch auf True gesetzt, wenn in den Silverlight-Projekteigenschaften unter BUILD zusätzlich DEBUG_TRIAL hinzugefügt wurde. Als Tipp: Diese Build-Einstellung sollte fest als Trial-Build im Konfigurationsmanager angelegt werden. Somit lässt sich im Visual-Studio-Menü von Debug auf Debug-Trial und wieder zurück wechseln.

Listing 3: IsTrial testen

public partial class App : Application    
{
  public static bool IsTrial = true;

  private static void LoadIsTrial()
  {
    IsTrial = new LicenseInformation().IsTrial();

    #if DEBUG_TRIAL
    IsTrial = true;
    #endif
  }

  private void Application_Launching(object sender, LaunchingEventArgs e)
  {
    LoadIsTrial();
  }

  private void Application_Activated(object sender, ActivatedEventArgs e)
  {
    LoadIsTrial();
  }
}  

Gregor Biswanger ist Microsoft MVP für Client App Dev und arbeitet als Solution Architect und Silverlight-Experte der Firma impuls Informationsmanagement GmbH aus Nürnberg. Seine Schwerpunkte liegen im Bereich der .NET-Architektur, Silverlight und agiler Prozesse. Er veröffentlichte vor kurzem eine DVD mit Video-Trainings zum Thema „WPF 4 und Silverlight 4“ bei Addison-Wesley von video2brain. Biswanger ist auch freier Autor, Speaker und Microsoft CLIPler der INdotNET (Ingolstädter .NET Developers Group). Sie erreichen seinen Blog unter: www.dotnet-blog.net.

Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -