Smart Client Application has major six components.
- Application Shell
- Workspace
- Work Item
- Smart Parts
- Modules
- ProfileCatalog.xml
We will discuss above component in the details.
Application Shell
• The main user interface common to all the dynamically loaded modules is the Shell. Typically a form, it always hosts a root WorkItem, which is the root access to all the services, modules, and WorkItems registered by the modules.
• Derives from the class “FormShellApplication” in the namespace “Microsoft.Practices.CompositeUI.WinForms”.
public class MyApplication : FormShellApplication{}
Workspace
• A workspace is a control that is primarily responsible for holding and displaying Views.
• The Composite UI Application Block includes the following types of workspaces:
- WindowWorkspace
- MdiWorkspace
- TabWorkspace
- DeckWorkspace
- ZoneWorkspace
• The Workspace class has functions for :
- Displaying a View
- Hiding a View
- Activating a View
- Closing a View
WorkItem
• A WorkItem is a class encapsulating all the logic required for a use case.
• Technically, it's a container that contains all the required objects such as views and their presenters or controllers, state and commands.
• A CAB application has a tree of WorkItems. The Application Shell contains a reference to the root WorkItem. Given a WorkItem, you can go up one level to its ParentWorkItem, or down to the next level by accessing the workItem.WorkItems collection.
• A WorkItem also contains various other collections. It has collections of:
- Workspaces
- SmartParts
- Commands
- EventTopics
- Services
- Items
Smart Part
• SmartParts are the visual components of the application. They are hosted by a Workspace.
• You can create SmartParts by simply customizing a standard user control. All you have to do to make a control a SmartPart is to mark the class with the [SmartPart] attribute.
[SmartPart]
public partial class MySmartPart : UserControl
• They are designed to be pluggable and reusable within the same or other applications.
SmartsParts communicate and cooperate between themselves by publishing and subscribing to events.
Modules
• A module is a collection of components (Work Items, services, and so forth) that are needed when performing a certain task.
• You can separate areas of your application into different modules to be able to deploy them to different users or applications.
• When one module has a dependency on another module, you express the dependency with the ModuleDependency attribute.
The CAB will load modules based on the contents of the ProfileCatalog.xml file.
Profile Catalog.xml
• Tells CAB what modules your app has
• Your application will not load a module that is not listed!
<solutionprofile xmlns="http://schemas.microsoft.com/pag/cab-profile">
<modules>
<moduleinfo assemblyfile="CABDemo.Inbox.dll">
<moduleinfo assemblyfile="CABDemo.Calendar.dll">
</modules>
</solutionprofile>
Smart Client Application Components
Thursday, September 24, 2009
Posted by Chirag at Thursday, September 24, 2009
Labels: Application Shell, Module, ProfileCatalog, Smart Client Component, Smart Part, WorkItem, Workspace
Subscribe to:
Post Comments (Atom)
0 comments:
Post a Comment