Smart Client Software Factory: Programming Microsoft Composite Ui Application Block And

Desktop (Shell.exe) ├── ShellForm.cs ├── RootWorkItem ├── ShellApplication (Program.cs)

[SmartPart] public partial class OrderView : UserControl, IOrderView

Infrastructure.Module.dll ├── Interfaces (services, views) ├── Constants (topic names, command names) ModuleA.dll ├── Views (IView, View) ├── Presenters (Presenter) ├── Services (concrete) ├── ModuleController.cs └── ModuleA.cs (CAB Module) Desktop (Shell

:

string CustomerName set; event EventHandler SaveClicked; views) ├── Constants (topic names

public interface IOrderView

[EventPublication("topic/Save")] public event EventHandler SaveClicked; command names) ModuleA.dll ├── Views (IView

: The WorkItem scans all objects (views, presenters, services) for [EventPublication] and [EventSubscription] using reflection at registration time. It wires them via an internal EventTopic cache.

// fetch customer details