Site Announcements

Liebe Gäste des Forums, wir freuen uns, dass ihr zu uns gelangt seid.
Windev ist eine sehr umfangreiche und starke Entwicklerumgebung für Anwendungen unter Windows, Linux und Internetapplikationen inkl. Mobile.
Hier sind Antworten und Anregungen dazu zu finden!
Möchtest du aktiv mitschreiben? Dann melde dich durch Klick auf den Text "Registrieren" hier rechts oberhalb an.

Verständnisfrage: Wechsel zwischen Test- und Produktivdaten

Alles was nicht in ein Thema zuordnungsbar ist

Verständnisfrage: Wechsel zwischen Test- und Produktivdaten

Beitragvon Magic » 15. August 2013, 12:55

Hi,

bei uns wurde bereits ein Projekt mit WinDev realisiert, das ich bald etwas anpassen muss.
Ich selbst, habe noch nichts Produktives mit WinDev realisiert, bisher nur ein wenig gestöbert, etc.

Mir stellt sich folgende, grundsätzliche Frage:

Bisher wurde mit Xbase++ entwickelt. Für die Entwicklung und Tests nutze ich einen Entwicklungsserver, mit nahezu identischem Aufbau (DB, Server) wie das Produktive System.
Somit habe ich relativ wenig (bis keinen) Aufwand um zwischen Test- und Produktivsystem zu wechseln.
I.d.R. halte ich es so, dass ich, solange ich in der Entwicklung- und Testphase bin, einen Schalten im Programm gesetzt habe der beim Start abgefragt wird und je nach dem wie er gesetzt ist, eine Verbindung zum Entwicklung- oder Produktivsystem aufgebaut wird. Hierfür muss ich eben nur beim Aufbau der DacSession() Verbindung den entsprechenden Parameter ändern. Das war’s.
Ist die Entwicklung abgeschlossen wird der Schalter umgelegt und das Programm baut standardmäßig eine Verbindung zum Produktivsystem.
Dieses Konstrukt habe ich mit der Zeit so weit angepasst, dass ich jetzt Jederzeit in der Lage bin das bereits ausgelieferte Programm mit einem Parameter zu starten, so dass dann auch ohne ein weiteres Eingreifen ich direkt auf dem Testsystem arbeiten kann.
Das ist vor allem dann praktisch, wenn jem. einen Fehler meldet. Die Produktivdaten sind im nu auf dem Testsystem aktualisiert und dann kann ich ohne Gefahr Identisches nachspielen, etc.

Diese würde ich gerne in ähnlicher Weise in der WinDev Entwicklung nachbilden.
Da die WinDev Entwicklungsumgebung aber weitaus mächtiger ist, als dass was ich von Xbase++ kenne, stellt sich die Frage nach der Notwendigkeit. Oder bietet WinDev hierfür ein anderes Konstrukt?

Was ich jedenfalls vermeiden will, ist das manuelle Wechseln in der Analysis und dann das neu Kompilieren. Und was mich auf jeden Fall reizt, ist die Möglichkeit ein fertiges Programm z.B. mit einen Parameter zu starten um so zwischen Test- und Produktivdaten zu wechseln.

Welche Lösungen habt / nutzt ihr? Und ist das was ich beschrieben habe überhaupt so in WinDev machbar bzw. sinnvoll?
Gruß,
Magic
Magic
Member
 
Beiträge: 51
Registriert: 2. September 2011, 13:48
Has thanked: 0 time
Have thanks: 0 time

Re: Verständnisfrage: Wechsel zwischen Test- und Produktivda

Beitragvon Herbert » 17. August 2013, 08:32

Fallsdu beim Kunden mt Testdaten arbeiten willst, musst du ohnehin irgendwo einen Wechsel des Datenstammes einbauen. Bei meinen Programmen kann der Kunde selber in eine Testumgebung wechseln, nicht um Neues im Programm zu testen, sondern um mit den Daten zu spielen.
In Windev selber kannst du fertige Testtabläufe definieren. Schau mal die Rubrik "Automatic Tests" an.

Das Wechseln der Daten geht ganz einfach. Der Alias bleibt ja erhalten, also muss die Datei geschlossen werden, anschliessend der neue Speicherort bestimmt und letztendlich wieder geöffnet werden.
Code: Alles auswählen
spath=CompleteDir(NoSpace(Mandanten.PFAD1))
HChangeDir(ZLAD,spath)
HOpen(ZLAD)


Das Umwandeln des Codes mache ich so, dass ich im externen Editor, den ich für Xbasee verwende eine Temporärdatei öffne, das zu Umwandelnde hinenkopiere und mit Replace die verschiedenen Dinge umwandle (endif zu end, next zu end, dei := zu = die .or. zu or, die alias-> zu alias. usw. So kann ich in Windev recht schnell den Code feritgmachen.
Herbert
Site Admin
 
Beiträge: 348
Registriert: 23. Februar 2010, 08:06
Wohnort: Langenthal, Schweiz
Has thanked: 5 times
Have thanks: 3 times

Re: Verständnisfrage: Wechsel zwischen Test- und Produktivda

Beitragvon Lewi » 17. August 2013, 12:46

Hallo Magic,
ich gehe davon aus, das es um C/S Applikationen mit Nutzung eines Hyperfile-Servers handelt.

In diesem Zusammenhang empfehle ich folgendes Vorgehen:

1. Dupliziere die Produktiv-Datenbank ( z.B. "CRM_PRODUKTIV") über das HyperFileSQL-Control-Center (die Datenbank "CRM_PRODKTIV" auswählen, rechte Mouse-Taste, Eintrag "Duplicate the selected Database") unter einem anderen Database-Namen (z.B. "CRM_TEST"). Nun werden alle Tabellen samt deren Inhalte aus Produktiv-Datenbank in die Test-Datenbak übertragen.

2. Um nun mit einer Applikation mit den Testdaten oder Produktivdaten zu arbeiten, gibt es 2 Möglichkeiten: entweder über eine Ini-Datei ( wenn die Test-Applikation in einem anderen Verzeichnis liegt) oder über einen Auswahlwahl-Dialog innerhalb der Anwendung.

Die Ini-Datei hat dann folgendende Einträge:
Code: Alles auswählen
[CONNECT]
Server=HFSERVER:4900              // <Name des Servers>:<PORT>
DB=CRM_PRODUKTIV                  // Angabe der zu verbindenen Datenbank
oder
DB=CRM_TEST


Im Zusammenhang mit einer Ini-Datei folgender Beispielcode für die Server-Verbindung

Code: Alles auswählen
Procedure ConnectToHFServer()
_EXE_INI  is string  = "Connect.ini"
gsDB_User  is string = "ANWENDER"
gsDB_Server  is string = INIRead("CONNECT","SERVER","",_EXE_INI)
gsDB_DatabaseName is string = INIRead("CONNECT","DB","",_EXE_INI)
gsDB_Password  is string = "passwort"
gcntConnection  is connection

gcntConnection..Provider       = hAccessHFClientServer
gcntConnection..User       = gsDB_User 
gcntConnection..Password       = gsDB_Password
gcntConnection..Server       = gsDB_Server
gcntConnection..Database      = gsDB_DatabaseName gcntConnection..CryptMethod      = hCryptNo
gcntConnection..Provider      = hAccessHFClientServer
gcntConnection..Access       = hOReadWrite
gcntConnection..ExtendedInfo     = "Extended information"
gcntConnection..CursorOptions     = hClientCursor

// Open connection
IF NOT HOpenConnection(gcntConnection) THEN
        Info("Es konnte keine Verbindung zum HF-Server hergestellt werden!")
   EndProgram("Die Anwendung wird beendet")
END

HChangeConnection("*",gcntConnection)
RETURN



Die Funktion ConnectToHFServer() muss entsprechend angepasst werden, wenn die Datenbankauswahl über einen Dialog innerhalb der Applikation erfolgen soll.
Ich habe Anwendungen für Test-Umgebungen grundsätzlich in separaten Verzeichnissen, in denen dann auch die Updates getestet werden, bevor sie in produktiv gehen.

Viele Grüße
Olaf
Lewi
Member
 
Beiträge: 74
Registriert: 3. September 2010, 14:45
Wohnort: Hamburg
Has thanked: 0 time
Have thanks: 1 time

Re: Verständnisfrage: Wechsel zwischen Test- und Produktivda

Beitragvon Magic » 20. August 2013, 10:57

Lewi hat geschrieben:ich gehe davon aus, das es um C/S Applikationen mit Nutzung eines Hyperfile-Servers handelt.

Es handelt sich um C/S Applikationen, aber momentan wird der HyperfileServer lediglich für die Verwaltung der Groupware verwendet.
Hauptsächlich wird über ODBC / OLEDB auf eine MS SQL und unsere ADS DB zugegriffen.
Alle drei DB Server (MS SQL, ADS, HyperFile) habe ich doppelt. Eben auf einem Entwicklung- und Produktiv-Server.
Daher brauche ich nicht den DB Namen zu ändern um zwischen zwei DB auf der gleichen Maschine zu wechseln
Lewi hat geschrieben:Dupliziere die Produktiv-Datenbank ( z.B. "CRM_PRODUKTIV") über das HyperFileSQL-Control-Center (die Datenbank "CRM_PRODKTIV" auswählen, rechte Mouse-Taste, Eintrag "Duplicate the selected Database") unter einem anderen Database-Namen (z.B. "CRM_TEST"). Nun werden alle Tabellen samt deren Inhalte aus Produktiv-Datenbank in die Test-Datenbank übertragen.
, sondern muss den Maschinennamen ändern können (Produktivmaschine <-> Entwicklungsmaschine).

Ich habe es jetzt noch nicht ausprobiert, könnte evtl. aber mit Euren bisherigen Infos klappen.
Mir ist dann nur noch nicht klar ab ich dann weiterhin die Analysis benutzen kann?
Gruß,
Magic
Magic
Member
 
Beiträge: 51
Registriert: 2. September 2011, 13:48
Has thanked: 0 time
Have thanks: 0 time

Re: Verständnisfrage: Wechsel zwischen Test- und Produktivda

Beitragvon Lewi » 20. August 2013, 19:37

Ob nun der Maschinen-Name oder eine DB gewechselt werden mus, der Aufwand bleibt in dieser Hinsicht gleich.
Allerdings ist die Wartung von 2 Servern einschleßlich der Daten m.E. aufwändiger.
Lewi
Member
 
Beiträge: 74
Registriert: 3. September 2010, 14:45
Wohnort: Hamburg
Has thanked: 0 time
Have thanks: 1 time

Re: Verständnisfrage: Wechsel zwischen Test- und Produktivda

Beitragvon Magic » 22. August 2013, 06:51

Lewi hat geschrieben:Allerdings ist die Wartung von 2 Servern einschleßlich der Daten m.E. aufwändiger.

… aber sicherer :exclamation:

Das ist natürlich Ansichtsache. Und auch eine Grundsatzfrage.

Ich selbst, komme ursprünglich aus einem großen Unternehmen in dem meine berufliche Laufbahn begann, habe sogar eine Dreiteilung kennengelernt und als etwas ganz normales empfunden. Entwicklungssystem für das reine Entwickeln, Migrationssystem hauptsächlich für allerlei Tests (Funktionstest seitens der Entwickler und Kunden) und ein reines Produktivsystem.

Als ich dann vor einiger Zeit hier angefangen habe gab es nur eins, das Produktivsystem. Fand ich immer etwas heikel, direkt auf einem Produktivsystem parallel zu entwickeln. Echtes Testen irgendwie unmöglich. Und als es dann mal ordentlich gekracht hat, weil man ein Mal nicht 100% aufgepasst hat, habe ich angefangen das Produktivsystem zu duplizieren. Fahre damit bisher sehr gut, und kann auch ruhigen Gewissen Auszubildende auf das System lassen ohne ständig zu kontrollieren. Wenn was passiert, hat es eben auf dem Entwicklungssystem keine schlimmen Folgen, etc.

Ich finden, dass ist wirklich ein Thema über das man seitenweise schreiben könnte …
Gruß,
Magic
Magic
Member
 
Beiträge: 51
Registriert: 2. September 2011, 13:48
Has thanked: 0 time
Have thanks: 0 time

Re: Verständnisfrage: Wechsel zwischen Test- und Produktivda

Beitragvon Lewi » 23. August 2013, 01:57

Natürlich sollte die Entwicklung und der Test nicht auf Produkt-Datenbanken erfolgen. Aber deshalb gleich n-Datenbank-Server zu installieren und zu warten?
Ein Datenbank-Server verwaltet x-Datenbanken, die wiederum aus n-Tabellen bestehen können. Mit einem Datenbank-Server-System lassen sich alle Aspekte von Test- und Produktiv-System abbilden.
Lewi
Member
 
Beiträge: 74
Registriert: 3. September 2010, 14:45
Wohnort: Hamburg
Has thanked: 0 time
Have thanks: 1 time


Zurück zu Verschiedenes

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast

cron