Trial Helper для wp7

Долго ли, коротко ли, решил я написать свою собственную игрушечку для WP7. И, так как я человек относительно корыстный, решил подумать, а как на ей можно заработать. В общем-то вариантов немного. Написать супер классное приложение и продавать его за большие деньги в одного вряд ли получится. Значит продавать надо за малые или использовать рекламу.

Решил я так, кто не хочет платить за мое приложение, пусть смотрит рекламу, а кому надоест, заплатит и ее не увидит. Да и еще каких-нибудь заманух добавить для честных покупателей.

А как сделать триал? Как, наверное, большинство русскоязычных разработчиков, отправился я в гости к Сергею Пугачеву, там как всегда просто и понятно все написано. Да вот незадача, получается что управлять доступностью функций в триале можно только через код. Совершенно н понравилась мне эта идея, ведь во многих ситуациях достаточно только скрыть/показать элемент управления, или деактивировать его в пробной версии.

Что ж, почесал я репу, да вспомнил про Resouces да DataBindings и решил написать класс-помощник. Надо мне чтоб класс помогал элементу управления понять видел ли он сейчас, и активен ли он.

Создал я класс TrialHelper добавил в него поле LicenseInformation, да написал три свойства:  VisibleOnTrial, CollapsedOnTrial да DisabledOnTrial. Красота, добавляешь сласс в ресурсы:

<Application.Resources>
<my:TrialHelper x:Key="TrialHelper"/>
</Application.Resources>

* This source code was highlighted with Source Code Highlighter.

и теперь только добавляй привязки в нужных местах:

<HyperlinkButton Content="Buy full version" Visibility="{Binding Source={StaticResource TrialHelper}, Path=VisibleOnTrial}" />
* This source code was highlighted with Source Code Highlighter.

И все бы хорошо, да только в эмуляторе ведь не проверишь, извечный русский вопрос: “Что делать?” (кто виноват и так понятноПодмигивающая рожица ). У Сергея Пугачева есть конечно вариант, но он мне совсем не нравится.

Тут я вспомнил про еще один замечательный механизм, как команды прекомпилятору. Создал я новую конфигурацию для этого зашел в Configuration Manager:

Снимок

Безымянный

Конфигурацию унаследовал от Debug.

После этого в свойствах проекта определил константу TRIAL:

Снимок2

Все после этого осталось немного модифицировать код хелпера.

Вот и сказочке конец, а кто слушал — тому исходный код:

  1. using System;
  2. using System.Net;
  3. using System.Windows;
  4. using System.Windows.Controls;
  5. using System.Windows.Documents;
  6. using System.Windows.Ink;
  7. using System.Windows.Input;
  8. using System.Windows.Media;
  9. using System.Windows.Media.Animation;
  10. using System.Windows.Shapes;
  11. using Microsoft.Phone.Marketplace;
  12. namespace MyApp
  13. {
  14.   public class TrialHelper
  15.   {
  16.     LicenseInformation li = new LicenseInformation();
  17.     public Visibility VisibleOnTrial
  18.     {
  19.       get
  20.       {
  21. #if TRIAL
  22.         return Visibility.Visible;
  23. #else
  24.         return li.IsTrial() ? Visibility.Visible : Visibility.Collapsed;
  25. #endif
  26.       }
  27.     }
  28.     public Visibility CollapsedOnTrial
  29.     {
  30.       get
  31.       {
  32. #if TRIAL
  33.         return Visibility.Collapsed;
  34. #else
  35.         return li.IsTrial() ? Visibility.Collapsed : Visibility.Visible;
  36. #endif
  37.       }
  38.     }
  39.     public bool DisabledOnTrial
  40.     {
  41.       get
  42.       {
  43. #if TRIAL
  44.         return false;
  45. #else
  46.         return !li.IsTrial();
  47. #endif
  48.       }
  49.     }
  50.   }
  51. }


* This source code was highlighted with Source Code Highlighter.

Реклама
Comments
2 комментария to “Trial Helper для wp7”
  1. Anonymous:

    Вроде бы всю жизнь Unenabled называлось как Disabled 🙂

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s

%d такие блоггеры, как: