GUI designen oder Klassen erstellen - wie fangt ihr an?

dark_ghost

Erfahrenes Mitglied
Hallo zusammen,

nachdem ich mich seit einiger Zeit schon in der Webentwicklung bewege möchte ich etwas neues ausprobieren und "richtige" Desktop Anwendungen schreiben.
Ich habe mich dazu für C# entschieden und auch schon angefangen mich in die Sprache einzuarbeiten.

Eine Sache die mir nicht ganz klar ist, ist wie ich am besten in ein neues Projekt starte.

Ich sammle Ideen, mache mir Gedanken wie das ganze funktionieren soll usw. aber wird denn nun üblicherweise zuerst die GUI erstellt oder schreibt man zuerst den kompletten Code für die Programmlogik, designed dann die GUI und verknüpft beides?

Gibt es hier überhaupt eine Richtlinie?

Über Tipps und Anregungen freue ich mich
Grüße
 

ITiBoI

Mitglied
Das ist etwas, was ich mich auch schon öfters gefragt habt. Ich habe nie eine feste Richtlinie gefunden; mittlerweile bin ich durch diverse Bücher und Tutorials zu folgenden Gewohnheiten gekommen:
Ich programmiere das Programm nicht ausschließlich für eine GUI (Klar, ich stelle mir vor, wie ich das ganze in einer Oberfläche bediene), allerdings kümmere ich mich erst einmal ums interne. Du musst dir klar machen, was du programmieren willst und was das Programm alles können soll. Wenn ich soweit bin versuche ich das ganze in Klassen zu übertragen; das heißt ich gruppiere Funktionen und Eigenschaften. Dafür ist UML ganz nützlich; zur einfachen Erstellen von solchen Grafiken benutze ich ArgoUML (http://argouml.tigris.org/)
Ich setze mich dann hin und übertrage das ganze in Code (evtl kannst du auch die Export-Funktion des Programms benutzen, ich weiß nicht ob der C#-Code erstellen kann; ansonsten muss du das von Hand übertragen). Jetzt programmiere ich die eigentlichen Funktionen, bei komplexeren lohnt es sich Algorithmen aufzustellen und die immer weiter zu verfeinern (http://de.wikipedia.org/wiki/Algorithmus); du beginnst mit groben Anweisungen(umgangssprachlichen!) und ersetzt die dann immer weiter durch explizite und genauere, bis du am Ende einen hast, den du ziemlich einfach in Quellcode umwandeln kannst.
Am Ende nehm ich mir ein Blatt Papier und mal mir grobe Umrisse einer GUI vor, die ich dann wenn ich zufrieden bin mit Hilfe einer IDE übertrage; dann müssen nur noch Event mit Klassenfunktionen verknüpft werden und das Programm ist fertig...

Es gibt auch Leute, die benutzen andere Verfahrensweisen; es gibt viele Programme die direkt an die GUI geknüpft sind; man kann sie kaum trennen ohne sehr viel Code neu schreiben zu müssen. Aus dem Grund versuche ich diese so weit wie möglich von einander zu trennen, damit man sie später herauslösen könnte, wenn man es bräuchte (ich hatte schon mal solche Fälle; da hab ich das ganze noch eng an der GUI programmiert, und das kostet dann echt Zeit).
 

Enumerator

Mitglied Kamel
Hi!

Ich programmiere das Programm nicht ausschließlich für eine GUI (Klar, ich stelle mir vor, wie ich das ganze in einer Oberfläche bediene), allerdings kümmere ich mich erst einmal ums interne.

So gehe ich auch vor, allerdings erstelle ich Klassen wenn dann gleich. Grundsätzlich ziehe ich es vor, sämtliche Funktionalität über die Kommandozeile/Shell zur Verfügung zu stellen und mir erst wenn das funktioniert Gedanken über Layout und dergleichen zu machen. Sobald das sicher gestellt ist, lagere ich die eigentliche Funktionalität in eine Programmbibliothek aus und "wrappe" das ganze mit zwei Programmen - eines für die Shell das andere für die GUI.
Hin und wieder kann es auch von Vorteil sein, beide Wrapper in ein Programm zu packen und je nachdem unter welchem Namen das ganze aufgerufen wird (symbolischer Link) die GUI-Bibliothek zu laden oder nicht...

Gruß
Enum