Smart Client software factory: Chapter 24 tutorials written by foreigners

Source: Internet
Author: User

Original page: http://richnewman.wordpress.com/intro-to-cab-toc/Table of contents: Introduction to CAB/scsf

Part 1 modules and shells

A Guide to these two core conceptsWithoutThe need to understand dependency injection or workitems. explains what a composite application is and why we might want one, and shows a naive application that uses the cab to run three separate projects simultaneously without them referencing each other. also explains some of the mysteries of how cab applications behave at start-up.

Part 2 workitems

A quick initial look at workitems, explaining their importance both as containers of code and as a hierarchy that allows us to control the scope of the Code.

Part 3 Introduction to dependency Injection

A Discussion of dependency injection and why it's useful in general, without reference to the Composite Application Block. A code example is given. the relationship to the Strategy pattern is examined, as well as the varous different types of dependency injection.

Part 4 an aside on Inversion of control, dependency inversion and dependency Injection

A discussion of the concepts of inversion of control and dependency inversion, and how they relate to dependency injection. Again these concepts are discussed without direct reference to the Composite Application Block.

Part 5 dependency injection and the Composite Application Block

This article finally revisits the Composite Application Block, showing how we can use dependency injection to get hold of workitems in projects that are not conventionally referenced, and hence access the objects in their containers. it discusses the various ways of doing dependency injection in the cab using the attributes componentdependency, servicedependency and createnew, and gives an example specified strating this. it further discusses the objectbuilder briefly, and explains how dependency injection works in the workitems hierarchy.

Part 6 constructor injection in the Composite Application Block

A brief article on how to use constructor injection with the cab, and why we might not want.

Part 7 Introduction to services in the Composite Application Block

Discusses what services are in general, what they are in the Composite Application Block, and how the services collection differs from the items collection. gives a basic example, and an example of splitting interface from implementation in a service.

Part 8 creating and using services in the Composite Application Block

Dives into services in much more detail, including an in-depth examination of the various ways of creating and retrieving services.

Part 9 the command Design Pattern

Another article looking at some theory without direct reference to the Composite Application Block: explains the Command pattern, how it relates to. net, and why its a good thing if you're re writing menus.

Part 10 commands in the Composite Application Block

Shows how to use commands in the Composite Application Block to hook up clicks on menus to their handlers. explains why we might want to do it this way rather than with the more usual. net approach using events. looks at how to handle status with commands, the parameters passed to a commandhandler, and discusses writing your own commandadapters to handle other invokers than menus. gives a commandadapter example.

Part 11 Introduction to events in the Composite Application Block

Recaps the usual events in. NET and explains why we might want something simpler. Gives a basic example of the Composite Application Block's alternative approach.

Part 12 events in the Composite Application Block

Goes into detail of what we can do with the Composite Application Block's events: examines the handling of scope, how the eventtopics collection works, use of the threadoption enumeration to ensure that our event executes on the GUI thread, more flexible event handling with addsub.pdf and removesub.pdf, hooking up. net events to cab events with addpublication, and how to disable cab events.

Part 13 Introduction to uiextensionsites

Explains what uiextensionsites are at a high level, and gives a basic example that shows how to use them to construct toolstrips in a composite application that have different buttons contributed by different modules.

Part 14 more on uiextensionsites

Gives more detail on how we can use uiextensionsites, but is sceptical as to their value. examines why this is. discusses the adapter design pattern and how we can use it to generate uiextensionsites for user interface elements other than the standard toolstrips, menustrips and statusstrips.

Part 15 introduction to smartparts and workspaces

Explains what smartparts and workspaces are at a high level. discusses the two smartparts collections and why this can be confusing. Looks at the usage of the smartpart attribute.

Part 16 more detail on workspaces and smartparts

Takes a closer look at workspaces. In particle This article examines the iworkspace interface, and explains the smartpartinfo class.

Part 17 workspace types

Looks at the varous types of workspace provided with the Composite Application Block (deckworkspace, zoneworkspace, tabworkspace, mdiworkspace, windowworkspace). Provides code examples of how to use all of these.

Part 18 Introduction to the Smart Client software factory

Discusses what 'Software factories 'are, and gives an overview of Microsoft's 'smart client software factory '. looks at the basic project structure generated when you generate a Smart Client solution using the factory.

Part 19 business modules and interfaces in the scsf Smart Client Solution

Explains what business modules are and how we are meant to use them. looks at how interface components for cab modules shoshould be used in an scsf Smart Client solution.

Part 20 scsf business modules: start up and the controlledworkitem

Discusses the load method of a business module, and how we should use workitems and controlledworkitems.

Part 21 foundational modules and names as constants

Explains what foundational modules are (as opposed to business modules), and looks at how constants are used to handle names in Smart Client software factory solutions.

Part 22 Model-View-Controller explained

A background article giving an explanation of the Model-View-controller pattern. an understanding of this pattern and the problems it is trying to solve helps to understand the Model-View-presenter pattern which the scsf can generate for us: this will be discussed in Part 23.

Part 23 Model-View-Presenter: Why we need it and the basic pattern

Examines some of the latest comings of Model-View-controller and looks at one version of a more modern alternative, Model-View-presenter.

Part 24 Model-View-Presenter: variations on the basic pattern

Looks at the Model-View-presenter pattern in more detail, including showing some variations and discussing advantages and disadvantages of the pattern.

Part 25 Model-View-presenter using the Smart Client software factory

Explains how to use the scsf to generate appropriate classes for the Model-View-presenter pattern. discusses some issues around this.

Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.