Lizenzeigenschaften
Der Abschnitt mit den Lizenzeigenschaften einer Vorlage von Babel Licensing legt die Attribute und Bedingungen der Lizenzen fest, die aus der Vorlage erzeugt werden. Er gliedert sich in vier Kategorien: Assemblys, Komponenten, Felder und Funktionen. Jede Kategorie hat eine eigene Aufgabe bei der Festlegung von Umfang und Merkmalen der Lizenz.
Assemblys
Die Registerkarte „Assemblys“ gibt an, welche .NET-Assemblys die Lizenz abdeckt. Das ist bei Software aus mehreren Assemblys entscheidend, denn so steuern Sie genau, welche Teile Ihrer Software lizenziert sind.
Eigenschaften der Assembly
Jeder Assembly-Eintrag in einer Lizenzvorlage enthält folgende Angaben:
- Name: Der Name der Assembly (zum Beispiel „MyCompany.ProductName“)
- Version: Die Versionsnummer der Assembly (zum Beispiel „1.0.0.0“)
- Gebietsschema: Das Gebietsschema der Assembly (zum Beispiel „neutral“ oder ein bestimmter Gebietsschemacode)
- Token des öffentlichen Schlüssels: Das Token des öffentlichen Schlüssels, das die Identität der Assembly bestätigt
Platzhalter für Versionen
Babel Licensing unterstützt Platzhalterausdrücke für Assembly-Versionen, sodass eine einzige Lizenz mehrere Versionen derselben Assembly abdecken kann:
- Genaue Version:
1.0.0.0(deckt nur die Version 1.0.0.0 ab) - Platzhalter für die Hauptversion:
1.*(deckt alle Versionen 1.x.x.x ab) - Platzhalter für Haupt- und Nebenversion:
1.2.*(deckt alle Versionen 1.2.x.x ab) - Versionsbereich:
[1.0.0.0-2.0.0.0](deckt die Versionen von 1.0.0.0 bis einschließlich 2.0.0.0 ab)
Beispiele
-
Eine Assembly, genaue Version:
Name: MyCompany.Core Version: 1.5.2.0 Culture: neutral Public Key Token: a5d85ef2c81d0f8a -
Eine Assembly, alle Versionen einer Hauptversion:
Name: MyCompany.Core Version: 2.* Culture: neutral Public Key Token: a5d85ef2c81d0f8a -
Mehrere Assemblys mit unterschiedlichen Versionsregeln:
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
Komponenten
Auf der Registerkarte „Komponenten“ lizenzieren Sie einzelne Komponenten oder Module innerhalb einer Assembly und steuern die Lizenzierung damit feiner. Komponenten sind Bezeichner in Form von Zeichenfolgen, die der Code Ihrer Anwendung abfragen kann.
Verwendung von Komponenten
Komponenten werden typischerweise in diesen Fällen verwendet:
- Ihre Anwendung hat klar getrennte Module, die sich einzeln lizenzieren lassen
- Sie möchten bestimmte Funktionen je nach Lizenzstufe ein- oder ausschalten
- Sie müssen eine funktionsbasierte Lizenzierung innerhalb einer einzigen Assembly umsetzen
Eigenschaften
- Name: Ein Bezeichner der Komponente als Zeichenfolge (zum Beispiel „ReportingEngine“, „AdvancedEditor“)
Beispiele
-
Komponenten nach Modul:
Name: DataAnalysis Name: Reporting Name: Visualization -
Komponenten nach Funktionsstufe:
Name: BasicFeatures Name: AdvancedFeatures Name: EnterpriseFeatures -
Komponenten für Integrationen:
Name: SqlServerConnector Name: SapIntegration Name: RestApiClient
Im Code Ihrer Anwendung prüfen Sie mit der API von Babel Licensing, ob eine bestimmte Komponente lizenziert ist:
if (license.Components.Contains("AdvancedFeatures"))
{
// Enable advanced features
}Felder
Auf der Registerkarte „Felder“ fügen Sie der Lizenzvorlage benutzerdefinierte Schlüssel-Wert-Paare hinzu. Diese Felder können zusätzliche Informationen aufnehmen, die für die Validierung der Lizenz, für die Erfassung oder für geschäftliche Zwecke von Bedeutung sind.
Häufige Verwendungen
- Benutzerdefinierte Lizenzparameter festlegen
- Verschlüsselte Passwörter für Funktionen speichern
- Metadaten für die Lizenzverwaltung aufnehmen
Eigenschaften
- Name: Der Bezeichner des Felds (zum Beispiel „Metadata“, „ContractNumber“)
- Wert: Der zugehörige Wert des Felds
Beispiele
-
Anwendungsspezifische Felder:
Name: MaxConcurrentProjects Value: 10 Name: StorageQuota Value: 500GB -
Felder zur Konfiguration von Funktionen:
Name: EncryptionLevel Value: AES256 Name: ApiRateLimit Value: 1000
Ihre Anwendung greift über die API von Babel Licensing auf diese Felder zu:
string encryptionLevel = license.Fields["EncryptionLevel"].Value;
int apiRateLimit = int.Parse(license.Fields["ApiRateLimit"].Value);Funktionen
Die Registerkarte „Funktionen“ legt fest, welche Funktionen oder Fähigkeiten die Lizenz in Ihrer Anwendung freischaltet. Anders als Komponenten, die einfache Bezeichner in Form von Zeichenfolgen sind, können Funktionen zusätzliche Daten enthalten, mit denen sich die Funktion konfigurieren lässt.
Eigenschaften
- Name: Der Bezeichner der Funktion (zum Beispiel „CloudSync“, „BatchProcessing“)
- Daten: Optionale Binärdaten zur Funktion, die Konfigurationsparameter, funktionsspezifische Schlüssel oder andere Daten aufnehmen können
Beispiele
-
Einfaches Freischalten von Funktionen:
Name: AdvancedReporting Name: DataExport Name: CustomBranding -
Funktionen mit Konfigurationsdaten:
Name: SecurityModule Data: [Encrypted configuration data] Name: DatabaseConnectors Data: [Serialized list of allowed connectors] -
Gestaffelte Funktionen:
Name: UserQuota Data: [Serialized value representing maximum users] Name: PerformanceTier Data: [Encoded performance settings]
Ihre Anwendung kann prüfen, ob eine Funktion verfügbar ist, und die zugehörigen Daten abrufen:
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
}Integrationsstrategie
Bedenken Sie beim Entwurf Ihrer Lizenzvorlagen, wie diese vier Kategorien von Eigenschaften zusammenwirken:
- Assemblys legen fest, welche Softwarekomponenten lizenziert sind
- Komponenten sorgen für Modularität innerhalb dieser Assemblys
- Felder fügen benutzerdefinierte Informationen und Parameter hinzu
- Funktionen schalten bestimmte Fähigkeiten frei, bei Bedarf mit Konfigurationsdaten
Wenn Sie diese Eigenschaften sorgfältig strukturieren, entstehen flexible Lizenzierungsschemata, die sich an unterschiedliche Kundenanforderungen, Geschäftsmodelle und Produkteditionen anpassen. Die Kontrolle über Nutzung und Verteilung Ihrer Software behalten Sie dabei.
Mit diesem umfassenden Ansatz für die Lizenzeigenschaften gibt Ihnen Babel Licensing die Mittel für anspruchsvolle Lizenzierungsstrategien an die Hand, die Ihr geistiges Eigentum schützen und für Ihre Kunden reibungslos funktionieren.