Skip to Content
Nouvelle version 12 disponible 🎉
LicensingModèles de licencePropriétés de licence

Propriétés de licence

La section Propriétés de licence d’un modèle Babel Licensing définit les attributs et les contraintes propres aux licences générées à partir du modèle. Elle se divise en quatre catégories : Assemblies, Composants, Champs et Fonctionnalités. Chacune joue un rôle distinct dans la définition de la portée et des caractéristiques de la licence.

Assemblies

L’onglet Assemblies indique quels assemblies .NET sont couverts par la licence. C’est essentiel pour un logiciel composé de plusieurs assemblies, car vous déterminez ainsi avec précision quelles parties de votre logiciel sont sous licence.

Propriétés d’un assembly

Dans un modèle de licence, chaque entrée d’assembly comprend les informations suivantes :

  • Nom : le nom de l’assembly (par exemple « MyCompany.ProductName »)
  • Version : le numéro de version de l’assembly (par exemple « 1.0.0.0 »)
  • Culture : la culture de l’assembly (par exemple « neutral » ou un code de culture précis)
  • Jeton de clé publique : le jeton de clé publique qui vérifie l’identité de l’assembly

Caractères génériques de version

Babel Licensing accepte des expressions avec caractères génériques pour les versions d’assembly, de sorte qu’une seule licence peut couvrir plusieurs versions du même assembly :

  • Version exacte : 1.0.0.0 (couvre uniquement la version 1.0.0.0)
  • Caractère générique sur la version majeure : 1.* (couvre toutes les versions 1.x.x.x)
  • Caractère générique sur les versions majeure et mineure : 1.2.* (couvre toutes les versions 1.2.x.x)
  • Plage de versions : [1.0.0.0-2.0.0.0] (couvre les versions de 1.0.0.0 à 2.0.0.0 incluses)

Exemples

  1. Un seul assembly, version exacte :

    Name: MyCompany.Core Version: 1.5.2.0 Culture: neutral Public Key Token: a5d85ef2c81d0f8a
  2. Un seul assembly, toutes les versions d’une version majeure :

    Name: MyCompany.Core Version: 2.* Culture: neutral Public Key Token: a5d85ef2c81d0f8a
  3. Plusieurs assemblies avec des règles de version différentes :

    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

Composants

L’onglet Composants permet de mettre sous licence des composants ou des modules précis d’un assembly, pour un contrôle plus fin des licences. Les composants sont représentés par des identifiants sous forme de chaîne, que le code de votre application peut vérifier.

Utilisation des composants

Les composants servent généralement dans les cas suivants :

  • Votre application comporte des modules distincts qui peuvent être mis sous licence séparément
  • Vous voulez activer ou désactiver certaines fonctionnalités selon le niveau de licence
  • Vous devez mettre en œuvre des licences basées sur des fonctionnalités à l’intérieur d’un seul assembly

Propriétés

  • Nom : un identifiant sous forme de chaîne pour le composant (par exemple « ReportingEngine », « AdvancedEditor »)

Exemples

  1. Composants par module :

    Name: DataAnalysis Name: Reporting Name: Visualization
  2. Composants par niveau de fonctionnalités :

    Name: BasicFeatures Name: AdvancedFeatures Name: EnterpriseFeatures
  3. Composants d’intégration :

    Name: SqlServerConnector Name: SapIntegration Name: RestApiClient

Dans le code de votre application, vous pouvez vérifier si un composant donné est sous licence avec l’API Babel Licensing :

if (license.Components.Contains("AdvancedFeatures")) { // Enable advanced features }

Champs

L’onglet Champs permet d’ajouter des paires clé-valeur personnalisées au modèle de licence. Ces champs peuvent contenir des informations supplémentaires utiles à la validation de licence, au suivi ou à des besoins métier.

Utilisations courantes

  • Définir des paramètres de licence personnalisés
  • Stocker les mots de passe chiffrés de fonctionnalités
  • Inclure des métadonnées pour la gestion des licences

Propriétés

  • Nom : l’identifiant du champ (par exemple « Metadata », « ContractNumber »)
  • Valeur : la valeur associée au champ

Exemples

  1. Champs propres à l’application :

    Name: MaxConcurrentProjects Value: 10 Name: StorageQuota Value: 500GB
  2. Champs de configuration de fonctionnalités :

    Name: EncryptionLevel Value: AES256 Name: ApiRateLimit Value: 1000

Votre application peut accéder à ces champs par l’API Babel Licensing :

string encryptionLevel = license.Fields["EncryptionLevel"].Value; int apiRateLimit = int.Parse(license.Fields["ApiRateLimit"].Value);

Fonctionnalités

L’onglet Fonctionnalités définit les fonctionnalités ou les capacités précises que la licence active dans votre application. Contrairement aux composants, qui sont de simples identifiants sous forme de chaîne, les fonctionnalités peuvent comporter des données supplémentaires servant à les configurer.

Propriétés

  • Nom : l’identifiant de la fonctionnalité (par exemple « CloudSync », « BatchProcessing »)
  • Données : des données binaires facultatives associées à la fonctionnalité, qui peuvent contenir des paramètres de configuration, des clés propres à la fonctionnalité ou d’autres données

Exemples

  1. Activation simple de fonctionnalités :

    Name: AdvancedReporting Name: DataExport Name: CustomBranding
  2. Fonctionnalités avec données de configuration :

    Name: SecurityModule Data: [Encrypted configuration data] Name: DatabaseConnectors Data: [Serialized list of allowed connectors]
  3. Fonctionnalités par niveau :

    Name: UserQuota Data: [Serialized value representing maximum users] Name: PerformanceTier Data: [Encoded performance settings]

Votre application peut vérifier la disponibilité d’une fonctionnalité et récupérer les données associées :

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 }

Stratégie d’intégration

Lorsque vous concevez vos modèles de licence, réfléchissez à la façon dont ces quatre catégories de propriétés se complètent :

  1. Les Assemblies définissent quels composants logiciels sont sous licence
  2. Les Composants apportent de la modularité à l’intérieur de ces assemblies
  3. Les Champs ajoutent des informations et des paramètres personnalisés
  4. Les Fonctionnalités activent des capacités précises, éventuellement avec des données de configuration

En structurant ces propriétés avec soin, vous créez des formules de licence souples, qui s’adaptent aux besoins des clients, aux modèles économiques et aux éditions du produit, tout en gardant le contrôle de l’utilisation et de la distribution de votre logiciel.

Cette approche complète des propriétés de licence dans Babel Licensing vous donne les moyens de mettre en œuvre des stratégies de licence élaborées, qui protègent votre propriété intellectuelle tout en offrant à vos clients une expérience fluide.

Last updated on