Laden...

Applikation mit Outlook-like Layout

Letzter Beitrag vor 18 Jahren 10 Posts 2.020 Views
Applikation mit Outlook-like Layout

Hi!

Ich bräuchte konzeptionelle Hilfe...

Ich möchte gerne eine Applikation entwickeln die aus mehreren Teilbereichen
("Modulen") besteht. Deshalb auch der Gedanke an das Outlook-UI da es
wirklich passen würde.

Ich möchte aber für die Applikation nur eine Hauptform haben. Darum hab ich
mir folgendes gedacht: Die Navigation und die "Platzhalter" (Panels) wo die
anderen Controls (Toolbar, Statusbar, Datagrid, Tree,...) hin sollen sind im MainForm
vorgegeben. Wenn ich in der Navigation auf einen Eintrag klicke
werden die für diesen Bereich notwendigen Usercontrols in die jeweiligen Panels
geladen.

Soweit könnte ich es mir noch vorstellen. Wie können aber nun diese einzelnen
Controls untereinander "kommunizieren". Also wenn ich auf ein Symbol in der Toolbar
klicke muss die Methode dahinter ja irgendwie "wissen" ob und welches Element im Datagrid
markiert ist. Das selbe mit Treeview und Datagrid....

Bin ich generell mit meinen Überlegungen am richtigen Weg oder ist das komplett für den Müll?
Bitte um ein paar Anregungen wie ichs angehen soll...

thx

hallo,

schau' Dir doch mal das Beispiel von Rainbird zu MVC an. Er hat zum Thema hierzu eine kleine Beispielanwendug geschrieben. Du findest sie hier:

Tree(Node) Collection als Zwischenschicht bauen

-yellow

Selbst ein Weg von tausend Meilen beginnt mit einem Schritt (chinesisches Sprichwort).

Mein Blog: Yellow's Blog auf sqlgut.de

Wenn es was kosten darf ... es gibt auch ganze Frameworks die genau diesen Style verwenden...

http://www.devigus.com/Produkte/vdx.aspx

Früher war ich unentschlossen, heute bin ich mir da nicht mehr so sicher...

Auch wenns interessant aussieht ist es nicht wirklich zum Einsetzen:

Wir bieten VDX 2.0 ausschliesslich im Zusammenhang mit Projektarbeiten und Weiterbildungen / Coaching an.

Ups sorry das war nicht immer so....

Früher wurde das Teil auch einfach so verscherbelt.

Früher war ich unentschlossen, heute bin ich mir da nicht mehr so sicher...

Wenns gleich Outlook 2007 Style sein soll und auch was kosten darf: DotNetBar

Gruß
DCoder

[EDIT] 😁 😁 😁 Oh mann, ich hätte mir vielleicht mal den Beitrag durchlesen sollen 8) - hab nur den Titel gesehen und dachte halt gleich an Designs 😉[/EDIT]

Also empfehle dir wenn das vorrhast auf keinen Fall nur die Objektorientierte Programmierung anzugehen. Der Quellcode explodiert und wird unübersichtlich.

Schau dir mal Design Pattern Programming an. Es kostet zu beginn Zeit und war zumindest für mich sehr verwirrend. Aber es spart später unglaublich viel Zeit und erleichtert das Kommunizieren ungemein von Controls oder Formularen. Ein Kollege zeigte mir zum Glück wie so etwas geht.

Ich habe leider kein kleines Beispielprojekt dazu, aber in zwei Wochen gäbe es die Möglichkeit mal eines reinzustellen. In der Suche wird man sicher über ‚Design Pattern’ etwas finden.

Der Grobe Ansatz davon: Du brauchst ein Interface für deine Commands die du den controls mitgeben möchtest. Das Control selbst braucht ein Objekt das ein solches Interface kapseln oder sich merken kann (daher leider eigene Controls oder solche Sachen wie den Tag vom MenuStripItem nutzen). Jede deiner Klassen die eine Action ausführen muss braucht die Ableitung von diesen Interface. Es empfiehlt sich aber eine abstrakten Klasse zu erstellen die das Inetrface beinhaltet. Nun kann man wie folgt vorgehen, jede der Klassen welche Actions ausführen soll beinhaltet als Ableitung die abstrakte Klasse. Das heißt dass alle vom selben Typ sind. Mit einen eigenen Delegate kannst dann das Command transportieren und sich selbst über eine methode die eben im Interface von Command definiert ist die Kalsse sich selbst ausführen lassen. Es geht noch schöner wenn man die Methode dann überladet und sie als DelegateTarget für zum Beispiel ein Klick Event nimmt.

Das Lustige dran, deine Formulare bekommen die Informationen mit Sender aber müssen sie nicht mal verarbeiten 🙂

/ps
Klasse ist es dann noch einen Eventhandler einzubauen in der Hauptaplication in dem man dann via Consolenausgabe dann die einzelnen Commands ausgibt. Sieht klasse aus da man immer weis, was wurde grade gemacht und das bei jeder Action.

Wie vernichtet stand Andreas unter den flammenden Augen seiner Kunden.
Ihm war's, als stünde des Schicksals dunkle Wetterwolke über seinem Haupte X(

@ Dcoder:

Es geht mir eigentlich nicht um das Design von Outlook (Farben,..) sondern
um das Layout oder auch Layout-Struktur. Wie die Komponenten aussehen ist mir im Moment noch egal. Trotzdem Danke für Deinen Hinweis auch wenn ich DotnetBar schon hab 😉

@Andreas.May:

Ein kleines Beispielprojekt wäre sicherlich recht hilfreich...

Ich hab in letzter Zeit ettliches über die Möglichkeiten die ich hab gelesen
und irgendwie versteh ich nur noch Bahnhof.

Wird leider ein bisschen dauern.
Mache aber ein kleines Demo-Projekt.

Wie vernichtet stand Andreas unter den flammenden Augen seiner Kunden.
Ihm war's, als stünde des Schicksals dunkle Wetterwolke über seinem Haupte X(

Mvc

Hallo M@TUK,

was Du machen willst, löst man am besten mit dem MVC-Entwurfsmuster. Yellow hat ober bereits einen Link zu einer kompletten Beispielanwendung gepostet. In diesem Beispiel werden Forms und Controls dynamisch erzeugt und kommunizieren über Events. Die Anzeigeelemente sind entkoppelt und ermöglichen damit automatisch eine Plugin-Architektur.