![]() |
Eine Demoversion erstellen - Welche von vielen Möglichkeiten?
Hallo!
Da ich immer noch ein Freund davon bin von seiner Software eine Demoversion bereitzustellen, habe ich mir nun schon länger Gedanken gemacht wie man dies am besten Umsetzt. Hierbei sind mir bisher drei Möglichkeiten eingefallen, zu denen ich gerne eure Meinung / Erfahrung hören würde. Gerne nehme ich auch weitere Möglichkeiten an. Vorab eine kleine Information zur Aktivierung in der Vollversion: Grundsätzlich prüft das Programm bei jedem Start ob es eine gültige Aktivierung gibt. Sollte keine Internetverbindung bestehen so kann das Programm maximal 30 Tage ohne Internetverbindung ausgeführt werden. Danach muss zwingend eine Aktivierungsüberprüfung statt finden. 1. Möglichkeit: Einfacher Boolean Wert Bei der Aktivierung kann gewählt werden "Als Demoversion starten". Intern wird eine Boolean Variable auf Demoversion gesetzt und an allen relevanten Punkten wird mittels
Code:
geprüft ob das Programm im Demo oder Vollmodus läuft.
if (flgDemo) then begin
Vorteile:
Nachteile:
2. Möglichkeit: Compiler Schalter und Projektgruppe Es wird eine Projektdatei "Program_Full" und eine "Program_Demo" angelegt und als Projektgruppe gespeichert. Beide Projekte greifen auf die selben Units zu. In den Units wird dann anhand eines Compiler Schalters (welche bei "Program_Demo" gesetzt und bei "Program_Full" nicht gesetzt ist) gesteuert welche Punkte zur Verfügung stehen. Vorteile:
Nachteile:
3. Möglichkeit: Zwei komplett getrennte Projekte Es werden zwei komplett eigene Projekte erzeugt welche in eine Projektgruppe zusammengefasst werden. Jedes Projekt hat seine eigenen Units. Vorteile:
Nachteile:
|
AW: Eine Demoversion erstellen - Welche von vielen Möglichkeiten?
Bei Fall 2 sind keine zwei einzelne Projekte notwendig, die Compiler-Schalter kannst du auch über Build-Konfigurationen in einem Projekt (wie Release/Debug) einstellen.
|
AW: Eine Demoversion erstellen - Welche von vielen Möglichkeiten?
Von deinen vorgeschlagenen Lösung wäre ich für Lösung 2. Allerdings musst du dann natürlich mit deinen
Delphi-Quellcode:
s höllisch aufpassen, dass du da nicht irgendwo ein wichtiges Feature aussparst und somit die ganze Anwendung (zumindest in der Demo) nicht richtig funktioniert.
{$IFDEF}
In der Exe sollten auch nur die durch den Compilerschalter erfassten Codeteile enthalten sein. Aber das wissen andere bestimmt besser. |
AW: Eine Demoversion erstellen - Welche von vielen Möglichkeiten?
Habe mal als Machbarkeitsstudie das ganze in die DB verlagert ... die wichtigste Tabelle mit einem Trigger versehen, welcher maximal X Einträge in der DB für diese Tabelle zugelassen hat. Da die DB mit Benutzerverwaltung durch die normalen Benutzer nicht zugänglich war, funktionierte das hervorragend.
Man kann sich auch überlegen, dass man ein Ablaufdatum in einer Konfig-Tabelle hinterlegt und in den Triggern gegen dieses Datum testet (Exception innerhalb der DB bei überschreiten). Dann kann der Kd die Software zwar neu aufsetzen, hat aber alle Einträge von vorher weg, also nicht mehr sinnvoll benutzbar. |
AW: Eine Demoversion erstellen - Welche von vielen Möglichkeiten?
Weiß den jemand ob das mit den Compiler Schaltern so ist? Also dass der Quellcode zwischen einem IFDEF bei nicht erfüllter Bedingung nicht mitkompiliert wird?
Weil ansonsten kann man auch direkt die 1. Option nehmen. |
AW: Eine Demoversion erstellen - Welche von vielen Möglichkeiten?
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:01 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz