CAB, SCSF, GAT, GAX…?

Seit einigen Tagen beschäftige ich mich geschäftlich intensiv mit den obigen Topics. Dieser Post soll kein weiteres Kochrezept für die Verwendung des CAB in Verbindung mit der Smart Client Software Factory werden. Hierfür bieten Rich Newman (Intro to cab) oder Martin Szpuszta (Designing Smart Clients Based on CAB and SCSF) ausreichend Material. Vielmehr soll dies eine Fragensammlung sein, die zur offenen Diskussion einlädt.

Zunächst einmal die Fakten

Gegeben ist eine Shell mit insgesammt 5 Arbeitsbereichen.

  1. Ribbon Bar als zentrale Navigation oben (Infragistics)
  2. Outlook Explorer Bar links, ebenfalls Infragisitcs und zur erweiterten Navigation
  3. Tabworkspace, zentrale Arbeitsfläche
  4. Deckworkspace, rechts als Infofläche
  5. Deckworkspace, unten als Infofläche

Die Bereiche 2 – 4 sind in SplitContainern verschachtelt.

Zu flexibel?

Im CAB sind Views einfache Ableitungen von UserControls. In den Collections werden SmartParts schlicht als Object behandelt. Um mit den SmartParts ein bisschen besser kommunizieren zu können haben wir die Templates der SCSF ein wenig angepasst und dafür gesorgt, dass alle neuen SmartParts ein eigenes Interface namens ISmartPart implementieren.

ISmartPart liegt in der Assembly Infrastructure.Interfaces und enthält bisher folgende Methoden:

void SmartPartActivated();
void SmartPartDeactivated();

Workspaces haben netterweise ein Event names SmartPartActivated das in den WorkspaceEventArgs auf das gerade aktivierte SmartPart verweist. Das Event fangen wir bei allen 3 Workspaces ab und lösen dann beim neuen SmartPart, sowie beim vorherigen die Methoden aus ISmartPart aus. Der Presenter der ShellLayoutView besitzt hierfür die Methode SetActiveSmartPart( Object SmartPart);

Tags:  , , ,

Schlagworte: , , ,

Kommentieren