Technology Experience
.NET World

Una comoda libreria per gestire le trial delle nostre applicazioni WP7

Le applicazioni che noi developers possiamo scrivere per Windows Phone 7 sono fondamentalmente di tre tipi:

  1. gratuite
  2. a pagamento, con supporto della trail
  3. a pagamento, senza trial

Per quelle gratuite basta andare nel Marketplace, trovare l’applicazione e cliccare Installa quando richiesto. Per quelle a pagamento con trail, invece, potete decidere se acquistarle subito, oppure prima provarle. Dal nostro di punta di vista, ci affidiamo alla classe LicenseInformation:

LicenseInformation license = new LicenseInformation();

 

Questa classe espone un metodo IsTrial() che ci dice se la nostra applicazione sta girando in modalità trial oppure no. Qui c’è uno svantaggio: se eseguiamo la nostra applicazione da VS2010, il metodo IsTrial() ci darà sempre false, e quindi facciamo un po’ di fatica a testare l’applicazione con le limitazioni che abbiamo deciso di inserire (pause, banner pubblicitari, chiusura dopo un tot numero di minuti, etc.). Come probabilmente avrete letto da qualche altra parte, si tratta di wrappare la classe LicenseInformation, in modo tale possiamo impostare manualmente tramite un semplice booleano True/False la modalità trial oppure no.

Io ho trovato molto utile la libreria SlickThought.Phone.dll, spiegata a questo indirizzo.

Dopo averla aggiunta nei riferimento, è possibile specificare nello App.xaml:

<Application.ApplicationLifetimeObjects>
    <trial:TrialManager RunAsTrial="True" Expired="TrialManager_Expired" >
        <trial:TrialManager.ApplicationPolicy>
            <trial:UsageExpirationPolicy MaxUsage="5"/>
        </trial:TrialManager.ApplicationPolicy>
    </trial:TrialManager>
    <shell:PhoneApplicationService 
        Launching="Application_Launching" Closing="Application_Closing" 
        Activated="Application_Activated" Deactivated="Application_Deactivated"/>
</Application.ApplicationLifetimeObjects>

 

Il namespace trial è definito come

xmlns:trial="clr-namespace:SlickThought.Phone;assembly=SlickThought.Phone"

 

All’interno del nostro codice possiamo utilizzare la classe TrialManager in questo modo:

if (TrialManager.Current.IsTrial())
{
    // Fai qualcosa che solo la trail dovrebbe fare
}

 

Se il parametro RunAsTrial=”True”, entra in gioco la policy che inietta nella nostra applicazione un particolare comportamento, che fa scadere la trial secondo due diverse modalità: a tempo oppure a numero di avvii dell’applicazione stessa. Le policy sono solamente due: nell’App.xaml definito qui sopra diciamo che l’utente può avviare l’applicazione al massimo per cinque volte. Quando la trial scade, si scatena l’esecuzione dell’evento TrialManager_Expired, all’interno del quale possiamo fare quello che vogliamo (visualizzare un messaggio, chiudere l’app, etc.).

Un app.xaml definito in questo modo:

<trial:TrialManager RunAsTrial="False" Expired="TrialManager_Expired" TimerInterval="00:01:00">
    <trial:TrialManager.ApplicationPolicy>
        <trial:TimeExpirationPolicy TrialDuration="00:01:00" Mode="Lifetime" />
    </trial:TrialManager.ApplicationPolicy>
</trial:TrialManager>

 

scatena l’evento TrialManager_Expired dopo un minuto che l’applicazione è stata avviata, e così via.

Ultima precisazione: se il parametro RunAsTrial=”False”, la chiamata a IsTrial() viene reindirizzata alla classe LicenseInformation del .NET Framework. Ecco quindi trovato il nostro wrapper, che ci permettere di switchare da una modalità all’altra, e quindi di testare la nostra app nella modalità full e nella modalità trial attiva.

Send to Kindle

Igor Damiani

La sua passione per l'informatica nasce nella prima metà degli anni '80, quando suo padre acquistò un Texas Instruments TI-99. Da allora ha continuato a seguire l'evoluzione sia hardware che software avvenuta nel corso degli anni. E' un utente, un videogiocatore ed uno sviluppatore software a tempo pieno. Igor ha lavorato e lavora anche oggi con le più moderne tecnologie Microsoft per lo sviluppo di applicazioni: .NET Framework, XAML, Universal Windows Platform, su diverse piattaforme, tra cui spiccano Windows 10 piattaforme mobile. Numerose sono le app che Igor ha creato e pubblicato sul marketplace sotto il nome VivendoByte, suo personale marchio di fabbrica. Adora mantenere i contatti attraverso Twitter e soprattutto attraverso gli eventi delle community .NET.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.