Verschiedene Versionen

  • Hey,


    ich brauch mal einen Ratschlag.


    Und zwar möchte ich für verschiedene Kunden, verschiedene Versionen eine Anwendung implementieren.
    Dabei wird der meiste Code aber in jeder Version benötigt. Also bringt es jetzt nichts eine Änderung in alle Versionen zu Copy pasten, sondern die Änderung soll dann zwischen den Versionen geshared werden.


    Es soll aber auch die Möglichkeit Codeänderungen speziell für eine Version vorzunehmen, die dann nicht geshared wird.



    Jemand einen Ratschlag, wie man sowas umsetzen kann? (Erstmal nur auf technischer Ebene ohne spezielle IDE, etc.)


    Gruß

  • Als Grundlage ein (MVC-)Framework.
    Du hast also Model, Viewer und Controller Dateien. Der Controller ist dann das Herzstück einer Seite. Ich habe mir mal eine kleine Skizze aus dem Internet gesucht. Der Controller sendet eine Anfrage an die Model-Klasse. Diese holt aus oder ändert in der Datenbank bestimmte Daten(sätze). Ist dies getan sendet der Controller alles Benötigte an den Viewer. Wenn du nun im Viewer eine Form hast, kannst du natürlich auch sog. "Events" davon empfangen.


    Vorteil: Du kannst Klassen teilen, das heißt sie für jede Anwendung verwenden. Zusätzlich kannst du aber auch einzelne extra Klassen verwenden. Ich würde die MVC-Klassen getrennt machen, die ganzen restlichen Klassen teilen. Das Framework würde ich in einen extra Ordner legen und eine Ebene darunter einen Ordner "Projects" in dem die Projekte in einem jeweiligen Unterordner liegen und auf das Framework zugreifen. Hier hast du aber viel Handlungsspielraum, wie genau du das lösen möchtest.

    Moderator der Bereiche: Coding, Vorstellungsrunde und Handelsecke. Über Verwarnungen, falls du zu den Wenigen gehörst, die eine Verwarnung von mir erhalten haben, kannst du jederzeit mit mir reden, sofern der Umgangston stimmt.


    expect us. / unkompetent. Das neue dynamisch. / easy-stripping.net - coming soon! / "9§. the entire website bestands out of english." / Vollprofi in allem, wo gibt und noch mehr; kann auch OOP.
    Kleine Coding-Frage? Schau doch in #dev im IRC vorbei, wir können dir sicher helfen.


    Ich bin für Aufträge im Bereich der Webentwicklung (z.B. User Control Panel) zu haben. Kontaktiere mich diesbezüglich einfach in einer privaten Nachricht mit deinen, möglichst konkreten, Vorstellungen.


    lesen.denken.posten. - [22:54:14] <Goldkiller2> früher gabs immer so coole user da stand in der signatur "lesen.denken.posten."


    Mafia 2 Multiplayer (m2mp.de) - Eine kostenlose Modifikation für Mafia 2, die es, ähnlich wie SAMP, erlaubt über das Internet oder LAN mit bis zu 1000 anderen Spielern zu spielen.

  • Hi


    Wäre noch ratsam die grösstenteils (oder alleinige) verwendete Programmiersprache zu nennen. Wir haben bei uns im Betrieb eine Desktopapplikation für verschiedene Kunden (Logo auswechseln geht nicht, da das Programm enorm viel Textcontent beinhaltet, dieser aber recht variiert). Diese Desktopapplikation kannste dir als eine Art Hauptklasse vorstellen (Jedoch ist der Begriff Framework nicht sehr passend):


    • Diese Klasse wird beim Starten initalisiert und konfiguriert das System
    • Auf diese Klasse wird eine zweite Klasse drauf gesetzt, welche über gewisse Interfaces (Die in der Hauptklasse definiert/vorgegeben sind) kommuniziert.
    • Das eigentliche Programm (welches ja variiert, aber immer ähnlich ist), baut sich nun mit den vorgefertigten Funktionen selber auf (Da kannste zum Beispiel eine XML basierende Struktur zum Generieren verwenden)

    Jetzt wirste dich vielleicht fragen, warum haut man nicht alles in eine Klasse, nun da gibts ein paar Gründe

    • Vermeidung von Codeduplikation in verschiedenen Projekten - Je nach Plattform generieren wir aus der Klasse eine Bibliothek und lassen diese laden
    • Was immer gleich ist, braucht nur ein Interface - KEINE Sichtbarkeit nach aussen (Dies ist darum so, weil die Kernfunktionalitäten immer gleich sind und es auch in jedem Projekt sein sollen)
    • Modularisierung - Gewisse Funktionen in der Hauptklasse sind plattformgebunden, auf diese Art aber recht schnell anpassbar

    Du kannst aber auch gleich 3 Layer machen (GUI, Funktionalität und IO-Layer). Ich hab dir zu diesem Thema noch eine kleine Lektüre, welche dir eventuell die eine oder andere Idee liefern kann (Von unserer Uni):


    http://cs-wwwarchiv.cs.unibas.ch/lehre/ws06/cs203/se10.pdf


    Gruss