Propiedades de la licencia
La sección Propiedades de la licencia de una plantilla de Babel Licensing define los atributos y las limitaciones concretos de las licencias que se generan a partir de la plantilla. Esta sección se divide en cuatro categorías: Ensamblados, Componentes, Campos y Funciones. Cada categoría cumple una finalidad distinta al definir el alcance y las características de la licencia.
Ensamblados
La pestaña Ensamblados especifica qué ensamblados .NET cubre la licencia. Es fundamental en el software compuesto por varios ensamblados, porque permite controlar con precisión qué partes del software tienen licencia.
Propiedades de los ensamblados
Cada entrada de ensamblado de una plantilla de licencia incluye la información siguiente:
- Nombre: el nombre del ensamblado (por ejemplo, «MyCompany.ProductName»)
- Versión: el número de versión del ensamblado (por ejemplo, «1.0.0.0»)
- Configuración regional: la configuración regional del ensamblado (por ejemplo, «neutral» o códigos de configuración regional concretos)
- Token de clave pública: el token de clave pública que verifica la identidad del ensamblado
Comodines de versión
Babel Licensing admite expresiones con comodines en las versiones de los ensamblados, de modo que una sola licencia puede cubrir varias versiones del mismo ensamblado:
- Versión exacta:
1.0.0.0(cubre solo la versión 1.0.0.0) - Comodín de versión principal:
1.*(cubre todas las versiones 1.x.x.x) - Comodín de versión principal y secundaria:
1.2.*(cubre todas las versiones 1.2.x.x) - Intervalo de versiones:
[1.0.0.0-2.0.0.0](cubre las versiones de la 1.0.0.0 a la 2.0.0.0, ambas incluidas)
Ejemplos
-
Un solo ensamblado, versión exacta:
Name: MyCompany.Core Version: 1.5.2.0 Culture: neutral Public Key Token: a5d85ef2c81d0f8a -
Un solo ensamblado, todas las versiones de una versión principal:
Name: MyCompany.Core Version: 2.* Culture: neutral Public Key Token: a5d85ef2c81d0f8a -
Varios ensamblados con reglas de versión distintas:
Name: MyCompany.Core Version: 3.* Culture: neutral Public Key Token: a5d85ef2c81d0f8a Name: MyCompany.Extensions Version: [1.0.0.0-2.5.0.0] Culture: neutral Public Key Token: a5d85ef2c81d0f8a
Componentes
La pestaña Componentes permite licenciar componentes o módulos concretos de un ensamblado, lo que da un control más fino sobre las licencias. Los componentes se representan como identificadores de cadena que el código de su aplicación puede comprobar.
Uso de los componentes
Los componentes se suelen usar cuando:
- Su aplicación tiene módulos diferenciados que se pueden licenciar por separado
- Desea habilitar o deshabilitar una funcionalidad concreta según el nivel de la licencia
- Necesita implementar licencias basadas en funciones dentro de un único ensamblado
Propiedades
- Nombre: un identificador de cadena del componente (por ejemplo, «ReportingEngine», «AdvancedEditor»)
Ejemplos
-
Componentes por módulo:
Name: DataAnalysis Name: Reporting Name: Visualization -
Componentes por nivel de funciones:
Name: BasicFeatures Name: AdvancedFeatures Name: EnterpriseFeatures -
Componentes de integración:
Name: SqlServerConnector Name: SapIntegration Name: RestApiClient
En el código de su aplicación puede comprobar si un componente concreto tiene licencia mediante la API de Babel Licensing:
if (license.Components.Contains("AdvancedFeatures"))
{
// Enable advanced features
}Campos
La pestaña Campos permite añadir pares clave-valor personalizados a la plantilla de licencia. Estos campos pueden almacenar información adicional que resulte pertinente para la validación de la licencia, para el seguimiento o para fines comerciales.
Usos habituales
- Definir parámetros de licencia personalizados
- Almacenar contraseñas cifradas de funciones
- Incluir metadatos para la gestión de licencias
Propiedades
- Nombre: el identificador del campo (por ejemplo, «Metadata», «ContractNumber»)
- Valor: el valor asociado al campo
Ejemplos
-
Campos específicos de la aplicación:
Name: MaxConcurrentProjects Value: 10 Name: StorageQuota Value: 500GB -
Campos de configuración de funciones:
Name: EncryptionLevel Value: AES256 Name: ApiRateLimit Value: 1000
Su aplicación puede acceder a estos campos mediante la API de Babel Licensing:
string encryptionLevel = license.Fields["EncryptionLevel"].Value;
int apiRateLimit = int.Parse(license.Fields["ApiRateLimit"].Value);Funciones
La pestaña Funciones define las funciones o capacidades concretas que la licencia habilita en su aplicación. A diferencia de los componentes, que son simples identificadores de cadena, las funciones pueden incluir datos adicionales que sirven para configurar la función.
Propiedades
- Nombre: el identificador de la función (por ejemplo, «CloudSync», «BatchProcessing»)
- Datos: datos binarios opcionales asociados a la función, que pueden almacenar parámetros de configuración, claves específicas de la función u otros datos
Ejemplos
-
Habilitación básica de funciones:
Name: AdvancedReporting Name: DataExport Name: CustomBranding -
Funciones con datos de configuración:
Name: SecurityModule Data: [Encrypted configuration data] Name: DatabaseConnectors Data: [Serialized list of allowed connectors] -
Funciones por niveles:
Name: UserQuota Data: [Serialized value representing maximum users] Name: PerformanceTier Data: [Encoded performance settings]
Su aplicación puede comprobar si una función está disponible y recuperar los datos asociados:
if (license.Features.Any(f => f.Name == "AdvancedReporting"))
{
// Enable advanced reporting features
}
var securityConfig = license.Features
.FirstOrDefault(f => f.Name == "SecurityModule")?.Data;
if (securityConfig != null)
{
// Initialize security module with the provided configuration
}Estrategia de integración
Al diseñar sus plantillas de licencia, tenga en cuenta cómo se combinan estas cuatro categorías de propiedades:
- Los ensamblados definen el alcance de los componentes de software que tienen licencia
- Los componentes aportan modularidad dentro de esos ensamblados
- Los campos añaden información y parámetros personalizados
- Las funciones habilitan capacidades concretas, que pueden llevar datos de configuración
Si estructura estas propiedades con cuidado, puede crear esquemas de licencia flexibles que se adaptan a las distintas necesidades de los clientes, modelos de negocio y ediciones del producto, sin perder el control sobre el uso y la distribución de su software.
Este planteamiento integral de las propiedades de la licencia en Babel Licensing le proporciona las herramientas para implementar estrategias de licencia sofisticadas, que protegen su propiedad intelectual y ofrecen a sus clientes una experiencia fluida.