Implementierung von Lizenzmodellen in .NET
()
About this ebook
Related to Implementierung von Lizenzmodellen in .NET
Related ebooks
Softwarelizenzmanagement kompakt: Einsatz und Management des immateriellen Wirtschaftsgutes Software und hybrider Leistungsbündel (Public Cloud Services) Rating: 0 out of 5 stars0 ratingsCloud Computing: Rechtliche Grundlagen Rating: 0 out of 5 stars0 ratingsSharePoint Kompendium - Bd. 5: Dual Use Rating: 0 out of 5 stars0 ratingsSharePoint Kompendium - Bd. 20 Rating: 0 out of 5 stars0 ratingsZukunftssichere Architektur: So bauen Sie monolithische Anwendungen zu komponentenorientierten um Rating: 0 out of 5 stars0 ratingsIT-Aussichten für Verbände und Organisationen: In den nächsten zehn Jahren Rating: 0 out of 5 stars0 ratingsGrundlagen der Softwareentwicklung Rating: 0 out of 5 stars0 ratingsAuswahl von Low-Code und No-Code Software: digital business guides Rating: 0 out of 5 stars0 ratingsQuick Guide Legal Tech: Schritt für Schritt zur digitalen Kanzlei und Rechtsabteilung Rating: 0 out of 5 stars0 ratingsJavaScript Performance Rating: 0 out of 5 stars0 ratingsMicroservices: Grundlagen flexibler Softwarearchitekturen Rating: 0 out of 5 stars0 ratingsSoftware Due Diligence: Softwareentwicklung als Asset bewertet Rating: 0 out of 5 stars0 ratingsLanglebige Software-Architekturen: Technische Schulden analysieren, begrenzen und abbauen Rating: 0 out of 5 stars0 ratingsSharePoint Kompendium - Bd. 2: Design Rating: 0 out of 5 stars0 ratingsModerne Onlineshops: Case Study: Goodgame Studios Rating: 0 out of 5 stars0 ratingsREST und HTTP: Entwicklung und Integration nach dem Architekturstil des Web Rating: 5 out of 5 stars5/5Prinzipien des Softwaredesigns: Entwurfsstrategien für komplexe Systeme Rating: 0 out of 5 stars0 ratingsFunktionale Sicherheit in der Praxis: Anwendung von DIN EN 61508 und ISO/DIS 26262 bei der Entwicklung von Serienprodukten Rating: 0 out of 5 stars0 ratingsKubernetes Patterns: Wiederverwendbare Muster zum Erstellen von Cloud-nativen Anwendungen Rating: 0 out of 5 stars0 ratingsGraphQL: Eine Einführung in APIs mit GraphQL Rating: 0 out of 5 stars0 ratingsBPM in der Praxis Rating: 0 out of 5 stars0 ratingsPraxiswissen TYPO3 CMS 9 LTS Rating: 0 out of 5 stars0 ratingsExtensions für TYPO3: So entwickeln Sie maßgeschneiderte TYPO3-Erweiterungen Rating: 0 out of 5 stars0 ratingsQualitätssicherung mit JavaScript und PHP Rating: 0 out of 5 stars0 ratingsDocker: Software entwickeln und deployen mit Containern Rating: 0 out of 5 stars0 ratingsCloud-Transformation: Wie die Public Cloud Unternehmen verändert Rating: 0 out of 5 stars0 ratingsCloud Computing Rating: 0 out of 5 stars0 ratingsHTML5, JavaScript und jQuery: Der Crashkurs für Softwareentwickler Rating: 2 out of 5 stars2/5
Programming For You
Mikrocontroller in der Elektronik: Mikrocontroller programmieren und in der Praxis einsetzen Rating: 0 out of 5 stars0 ratingsDie ultimative FRITZ!Box Bibel - Das Praxisbuch 2. aktualisierte Auflage - mit vielen Insider Tipps und Tricks - komplett in Farbe Rating: 0 out of 5 stars0 ratingsPython-Grundlagen Rating: 0 out of 5 stars0 ratingsC++ – kurz & gut: Aktuell zu C++17 Rating: 4 out of 5 stars4/5Das große Python3 Workbook: Mit vielen Beispielen und Übungen - Programmieren leicht gemacht! Rating: 4 out of 5 stars4/5SQL – kurz & gut Rating: 0 out of 5 stars0 ratingsAndroid-Entwicklung für Einsteiger - 20.000 Zeilen unter dem Meer: 2. erweiterte Auflage Rating: 0 out of 5 stars0 ratingsPython kurz & gut: Für Python 3.x und 2.7 Rating: 3 out of 5 stars3/5Vue.js kurz & gut Rating: 0 out of 5 stars0 ratingsDie ultimative QNAP NAS Bibel - Das Praxisbuch - mit vielen Insider Tipps und Tricks - komplett in Farbe Rating: 0 out of 5 stars0 ratingsMicrocontroller für das IoT Rating: 0 out of 5 stars0 ratingsPraktisches Programmieren in C: Grundlagen und Tipps Rating: 0 out of 5 stars0 ratingsEigene Spiele programmieren – Python lernen: Der spielerische Weg zur Programmiersprache Rating: 0 out of 5 stars0 ratingsProgrammieren lernen mit Python 3: Schnelleinstieg für Beginner Rating: 0 out of 5 stars0 ratingsGames | Game Design | Game Studies: Eine Einführung (Deutschsprachige Ausgabe) Rating: 0 out of 5 stars0 ratingsProgrammieren von Kopf bis Fuß Rating: 4 out of 5 stars4/5Android-Programmierung kurz & gut Rating: 0 out of 5 stars0 ratingsProgrammieren für Einsteiger: Teil 1 Rating: 0 out of 5 stars0 ratingsPython programmieren lernen: Der spielerische Einstieg mit Minecraft Rating: 0 out of 5 stars0 ratings.NET-Praxis: Tipps und Tricks zu .NET und Visual Studio Rating: 0 out of 5 stars0 ratingsSQL von Kopf bis Fuß Rating: 4 out of 5 stars4/5JavaScript kinderleicht!: Einfach programmieren lernen mit der Sprache des Web Rating: 0 out of 5 stars0 ratingsRichtig einsteigen: Excel VBA-Programmierung: Für Microsoft Excel 2007 bis 2016 Rating: 0 out of 5 stars0 ratingsJavaScript kurz & gut Rating: 3 out of 5 stars3/5Softwareentwicklungsprozess: Von der ersten Idee bis zur Installation Rating: 0 out of 5 stars0 ratingsPython | Schritt für Schritt Programmieren lernen: Der ultimative Anfänger Guide für einen einfachen & schnellen Einstieg Rating: 0 out of 5 stars0 ratingsRaspberry Pi: Mach's einfach: Die kompakteste Gebrauchsanweisung mit 222 Anleitungen. Geeignet für Raspberry Pi 3 Modell B / B+ Rating: 0 out of 5 stars0 ratingsC von Kopf bis Fuß Rating: 3 out of 5 stars3/5C++: Kurzportträt einer zeitlosen Sprache Rating: 0 out of 5 stars0 ratingsAlgorithmen: Grundlagen und Implementierung Rating: 0 out of 5 stars0 ratings
Reviews for Implementierung von Lizenzmodellen in .NET
0 ratings0 reviews
Book preview
Implementierung von Lizenzmodellen in .NET - Fabian Deitelhoff
Inhaltsverzeichnis
Teil I: Einleitung
Über den Autor
Einleitung
Teil II: Was ist eine Lizenz?
1. Lizenzierung – das unterschätze Thema
2. Softwarelizenzen
3. Warum Lizenzierungen?
4. Eckpunkte einer Lizenzierung
5. Policy Patterns (inklusive den Xamarin-Teil)
6. Lizenzierungs-Attribute
7. Deployment von Lizenzen
8. Lizenzierungs-Prozedur (inkl. Vorsicht vor Änderungen)
9. Nützliche Methoden und Bibliotheken
10. Closed vs. Open Source
Teil III: Bibliotheken und Methoden
1. Das .NET Lizenzmodell
2. Lizenzschlüssel generieren
3. Eindeutiger Fingerabdruck
4. SKGL und Software Protector
5. Rhino Licensing
6. Portable.Licensing
Teil IV: Vergleich der Bibliotheken und Methoden
1. Vergleich für Policy Patterns
2. Vergleich für Lizenzierungs-Attribute
3. Vergleich beim Deployment
4. Vergleich der Lizenzierungs-Prozeduren
5. Vergleich beim Lizenzmanagement und Gegenüberstellung
6. Anwendungsfälle sowie Einsatzgebiete
Teil V: Ausblick und Fazit
1. Eckpunkte für eine eigene Implementierung
2. Lektionen
3. Ausblick und Fazit
Imprint
Über den Autor
Fabian Deitelhoff lebt und arbeitet in Dortmund, der Metropole des Ruhrgebiets. Er studiert derzeit den Masterstudiengang Informatik. Seine Schwerpunkte liegen in der Entwicklung von Visual Studio Erweiterungen, der Analyse und Beschreibung von Open Source Frameworks sowie im Rapid Prototyping. Beruflich ist er als freier Autor, Trainer, Sprecher und Softwareentwickler im .NET Umfeld tätig. Sie erreichen Ihn über seinen Blog www.fabiandeitelhoff.de, per E-Mail unter Fabian@FabianDeitelhoff.de oder auf Twitter als @FDeitelhoff.
Einleitung
Die beiden Themengebiete Lizenzen und Lizenzmodelle sind untrennbar mit der Softwareentwicklung verbunden. Und doch werden die Themen häufig ignoriert oder zu lange beiseitegeschoben. Im Umkehrschluss bedeutet das, dass sich jeder, der Software entwickeln möchte, mit den Themengebieten auseinander setzen muss. Ganz gleich, ob es sich um ein kommerzielles Produkt oder um Open-Source-Software handelt. In den vergangenen Jahren hat sich die Art und Weise, wie über Lizenzen und Lizenzmodelle nachgedacht wird, grundlegend verändert. Es ist nicht mehr notwendig, klobige Disketten zu kopieren, die zudem nur wenige Daten enthalten können. Auch der Kopierschutz von anderen Datenträgern, wie beispielsweise CDs und DVDs, konnte in der Vergangenheit einfacher als gedacht umgangen werden. Zudem fördert die Technologie des Internets den Austausch – auch von großen Datenmengen – in kurzer Zeit. Nie war es einfacher und schneller möglich, Software zu kopieren. Die Cloud, also die zentrale Bereitstellung von Software als Dienst, galt lange als der Heilsbringer schlechthin. Viele Unternehmen setzen verstärkt auf diesen Faktor, bei den Anwendern und Anwenderinnen ist das aber noch nicht vollständig angekommen. Datenskandale, Einbruchaktionen in digitale Systeme, sowie der damit verbundene, massenhafte Diebstahl von beispielsweise Zugangs- und Zahlungsdaten sorgen zusätzlich nicht gerade dafür, die Akzeptanz für Dienste im Internet weiter zu steigern. Alles Gründe, warum die klassische Lizenzierung von Desktop-Systemen noch nicht ausgestorben ist. Die Vergangenheit hat vieles im Bereich der Softwarelizenzen geändert. Kunden und potenziell interessierte Anwender verlangen nach immer flexibleren Möglichkeiten zur Lizenzierung der eingesetzten Software. Damit die Konzeption und Implementierung eines Lizenzmodells so reibungslos wie möglich abläuft, muss einigen Eckpunkten Beachtung geschenkt werden. Dazu gehören beispielsweise verschiedene Policy Patterns, Überlegungen zu Lizenzierungs-Attributen, Deployment und Automatisierung, sowie die Frage, wie die Implementierung technisch auf Basis von .NET und C# realisiert werden kann. Neben der konkreten Realisierung sind auch die Konzepte hinter verschiedenen Lizenzierungsmustern, die gelegentlich als UML-Diagramme visualisiert werden, Gegenstand dieses Buches. Ein durchdachtes Lizenzierungskonzept hört bei der Implementierung aber nicht auf. Lizenzmanagement betrifft immer das ganze Unternehmen, da viele weitere Abteilungen und Mitarbeiter mit den Lizenzen in Berührung kommen. Daher werden auch organisatorische Aspekte betrachtet. Die .NET Welt hat in der Vergangenheit interessante und nützliche Open-Source-Bibliotheken hervorgebracht, mit denen sich Lizenzmodelle einfacher realisieren lassen, als wenn die Implementierung manuell erfolgen würde. Dieses Buch behandelt Themen rund um Softwarelizenzen sowie Lizenzierungsmodelle und zeigt, wie beide erfolgreich dazu genutzt werden können, die eigene Anwendung zu schützen. Große Teile des Inhalts sind vor circa einem halben Jahr als Video-Training bei Pluralsight erschienen. In einigen Teilbereichen ist dieses Buch eine Weiterführung der behandelten Themengebiete und wird zusätzlich dem vielfach geäußerten Wunsch gerecht, die Inhalte auch in gedruckter Form zur Verfügung zu stellen. Neben theoretischen Aspekten wird auch die Implementierung von Methoden und Frameworks gezeigt und daraufhin untersucht, ob deren Einsatz lohnenswert ist. Einige dieser Methoden und Frameworks sind der Unique Finger Print, der Software Protector und Portable.Licensing. Schwerpunktmäßig werden die Themengebiete rund um die Implementierung von Lizenzmodellen für Desktop- oder Netzwerkanwendungen behandelt. Die Lizenzierung von Cloud- oder Web-Diensten gehört nicht zum Fokus dieses devbooks. Viele der Themen sind dennoch allgemeingültig oder übertragbar, da auch bei den genannten Anwendungsgebieten lokale oder verteilte Lizenzen nützlich sind.
Beginnen möchte ich gerne mit einer Aussage, die ich vor einiger Zeit gelesen habe. Leider ist mir die Quelle abhandengekommen. Dennoch lassen mich die Sätze nicht mehr los, weil sie eindrucksvoll beschreibt, warum so viel Software illegal kopiert wird.
„Ich finde es nicht überraschend, dass soviel Software geklaut wird. Wir sind eine Kultur von anonymen Dieben. Wir mogeln bei den Steuern, rippen Filme und kopieren Spiele. Warum sollte das in anderen Bereichen des Softwarebusiness anders sein? Ich kenne Menschen, die ihren Lebensunterhalt mit dem Schreiben von Software verdienen und trotzdem die Software anderer klauen, es aber nicht als Diebstahl begreifen. Sie haben eher den Begriff des ‚Teilens‘ im Hinterkopf. Wenn Personen eine Software umsonst bekommen können, werden es einige tun. Immer. Legal oder nicht."
Diese Aussage ist frei aus dem Englischen übersetzt und nicht von mir. Trotzdem kenne ich den beschriebenen Personenkreis. Vor allem diejenigen, die ihren Lebensunterhalt damit verdienen und dennoch kommerzielle Software von anderen stehlen. Es hat etwas Schizophrenes an sich, zu denken, sich so aus der Gleichung herausnehmen zu können.
Lizenzierung – das unterschätze Thema
Das Thema Lizenzen und Lizenzierungsmodelle treibt jeden Entwickler um. Nicht nur bei kommerzieller Software, sondern auch im Open-Source-Bereich. Wird ein Softwareprodukt verkauft, spielt der finanzielle Aspekt eine sehr große Rolle. Wer möchte schon, dass seine Software „einfach so" kopiert und genutzt wird? Zum Beispiel bei der einen Ideen, die einen Businessbereich oder einen bestimmten Markt aufrollen könnte. Investitionen wollen geschützt werden. Und das bitte nicht über Softwarepatente, insbesondere wenn sie trivial sind, sondern über eine ausgereifte, durchdachte und kundenfreundliche Lizenzierung sowie ein gutes Lizenzmodell.
Im Open-Source-Bereich ist es eher die Frage, wo der eigene Quelltext zum Einsatz kommen darf und wo nicht. Zusätzlich zu der Frage, ob der eigene Name genannt werden muss und ob eine Veränderung des Source-Codes erlaubt ist.
Schwerpunkt dieses devbooks ist der kommerzielle Einsatz von Software. Denn die Entwicklung eines ausgereiften Softwareprodukts ist teuer. Insbesondere bei der Entwicklung eines vollständig neuen Produktes. Aber auch mit der Zeit fließt immer mehr Aufwand in eine Software. Diese Kosten müssen wieder hereingespielt werden, um die weitere Entwicklung zu finanzieren.
Bei den beschriebenen Frameworks zur Unterstützung und Implementierung von Lizenzmodellen wurde allerdings darauf geachtet, Bibliotheken und Komponenten auszuwählen, die als Open-Source-Software zur Verfügung stehen. Geld einzusparen ist nicht der Hauptgrund. Es geht auch oder vor allem darum, Einblick in die Implementierung nehmen zu können. Im Hinblick auf die Sicherheit ist das nicht zu unterschätzen.
Aus den genannten Gründen gibt es immer einen Zeitpunkt, zu dem die Frage aufkommt, wie das Produkt geschützt werden soll. Welche Lizenzierungsstrategie ist die beste? Welche Möglichkeiten gibt es überhaupt, die eigene Software zu schützen? Diese Fragen sind essentiell, wenn es um den Verkauf von Software geht. Ganz gleich, ob ein Team hinter der Entwicklung steht oder eine einzelne Person.
Lizenzierung im Wandel der Zeit
Die ganze IT-Branche ist ständig im Umbruch. Was auf Technologie im Allgemeinen zutrifft, gilt für Software im Speziellen umso mehr. Denn Software lässt sich leicht beziehungsweise leichter anpassen als andere Komponenten wie beispielsweise Hardware.
Durch den schnellen Wandel hat sich die Frage, wie Softwareprodukte lizenziert werden können, grundlegend geändert.
Bei Disketten in den 70er Jahren war das Unterfangen noch kein so großes Problem. Natürlich wurden auch diese schon kopiert,