CrAzY hOuSe
Locos por la programación
Creación de aplicaciones trial
.net

Syndication

Una de la mejores características en el desarrollo de Windows Phone es la facilidad para generar versiones trial de nuestras aplicaciones, pudiendo activar la aplicación completa sin tener que mantener 2 versiones de la misma y por ende, tener diferentes proyectos de una aplicación.

Para ello Microsoft.Phone.Marketplace nos provee de la clase LicenseInformation, la cual nos expone la propiedad IsTrial, la cual devolviendo un valor booleano, podemos saber si la aplicación funciona en modo en modo “demo” o completo.

Un pequeño ejemplo, crearemos una aplicación :

Imports Microsoft.Phone.Marketplace

Partial Public Class MainPage
    Inherits PhoneApplicationPage

    ' Constructor
    Public Sub New()
        InitializeComponent()

        Dim InfoLicencia As New LicenseInformation

        If InfoLicencia.IsTrial Then
            MessageBox.Show("Ejecutando la aplicación en modo DEMO")
        Else
            MessageBox.Show("Ejecutando la aplicación en modo COMPLETO")
        End If
    End Sub
End Class

Nota: Este ejemplo de concepto no es funcional en el emulador, ya que la propiedad IsTrial siempre devuelve False, ya que para que realmente funcione la aplicación debe estar firmado por el marketplace.

Esto esta bien para una aplicación de ejemplo, pero si queremos hacer una buena implementación deberemos hacer que, por lo menos para pruebas, nos pregunte si queremos entrar en modo demo o completo. Para ello vamos a aprovechar el evento Launching y Activated del fichero App.xaml.vb para comprobar en que modo queremos iniciar la aplicación.

    ' Código para ejecutar cuando la aplicación se inicia (p.ej. a partir de Inicio)
    ' Este código no se ejecutará cuando la aplicación se reactive
    Private Sub Application_Launching(ByVal sender As Object, ByVal e As LaunchingEventArgs)
        Comprobar_ModoInicio()
    End Sub

    ' Código para ejecutar cuando la aplicación se activa (se trae a primer plano)
    ' Este código no se ejecutará cuando la aplicación se inicie por primera vez
    Private Sub Application_Activated(ByVal sender As Object, ByVal e As ActivatedEventArgs)
        Comprobar_ModoInicio()
    End Sub

En la rutina de Comprobar_ModoInicio vamos a preguntar por el modo de inicio de nuestra aplicación y vamos a guardarlo en una variable para futuras consultas, esto también vamos a colocarlo en el fichero App.xaml.vb.

    Public _EsDemo As Boolean

    Sub Comprobar_ModoInicio()
        Dim InfoLicencia As New LicenseInformation

#If DEBUG Then
        ' En modo de depuración, preguntamos como deseamos arrancar la aplicación

        ' Si pulsa sobre el botón de Ok entramos en modo demo y sino en modo completo
        If MessageBox.Show("Pulse Aceptar para entrar en modo DEMO o Cancelar para entrar en modo COMPLETO",
                           "Modo Inicio", MessageBoxButton.OKCancel) = MessageBoxResult.OK Then
            _EsDemo = True
        Else
            _EsDemo = False
        End If
#Else
        ' Si no estamos en depuración obtenemos el valor del certificado de la aplicación
        _EsDemo = InfoLicencia.IsTrial
#End If
    End Sub

 

Ahora ya podemos desde cualquier punto de nuestra aplicación comprobar el modo de inicio y limitar por tiempo, número de arranques o cualquier otro método que queramos implementar.

Quedando nuestro primer ejemplo de la siguiente manera.

Partial Public Class MainPage
    Inherits PhoneApplicationPage

    ' Constructor
    Public Sub New()
        InitializeComponent()

        If TryCast(Application.Current, App)._EsDemo Then
            MessageBox.Show("Ejecutando la aplicación en modo DEMO")
        Else
            MessageBox.Show("Ejecutando la aplicación en modo COMPLETO")
        End If
    End Sub
End Class

Con este pequeño ejemplo podemos utilizar el emulador para probar como se comporta nuestra aplicación de un modo u otro.

Podéis descargar el proyecto de ejemplo desde http://descarga.e-mision.net/test_trial.zip


Posted mié, dic 7 2011 22:27 by Maverick
Filed under: , ,

Comments

Jorge Serrano - MVP Visual Developer - Visual Basic wrote Windows Phone 7–Recomendación de enlaces interesantes (I)
on jue, ene 5 2012 16:06

A continuación me gustaría reflejar aquí el primer conjunto de enlaces sobre Windows Phone 7 que encuentro

Add a Comment

(optional)  
(optional)
(required)  
Remember Me?
MavericK
Powered by Community Server (Non-Commercial Edition), by Telligent Systems