Smart Client Software Factory and Its Application Blocks

24 Aug. 2011 Software Development

Smart Client Software Factory is an integrated set of patterns and practices to help develop complex and composite smart client applications. These patterns and practices help the developers to develop smart client applications without starting from scratch. It provides inbuilt patterns implemented to develop the smart client application. Utilizing smart client software factory helps developers to develop smart client applications that address the business need and concentrate on the business opportunities.

Application Blocks in Smart Client Software Factory

The Smart Client Software Factory provides its features using multiple application blocks. Application blocks are used to address the common issues that developers come across while executing an application. They are generally the reusable application components that implement application design patterns based on .NET application best practices. Following are the application blocks used by Smart Client Software Factory:

  1. Composite UI Application Block (CAB)
  2. Connection Monitor Application Block
  3. Endpoint Catalog Application Block
  4. Disconnected Service Agent Application Block

Composite UI Application Block

The Composite UI Application Block (CAB) is a GUI framework for creating complex, modularized smart client applications. It is used for creating user interfaces for Smart Client or Windows Forms applications. The advantage of CAB is that it provides a loose coupled architecture. It also separates “shell developers” (developers who works on the application UI like header, footer, menu, tab controls etc. in the application) from Functional team developers. While the “shell developers” can concentrate on developing the Global shell architecture, the functional team can continue developing the complex functional modules. By following these application blocks, the development process can be made faster and hence can increase productivity.

Key Components of Composite UI Application Block –

  • Application Shell
  • Modules Work Item
  • Work Item Extensions
  • Work Space
  • Smart Parts
  • Services
  • Commands

Connection Monitor Application Block

The Connection Monitor Application Block monitors the available connections and networks through which the Smart Client Application can connect to services. Developers need to define a logical network which represents a set of remote resources (for example, web services). The following are examples of logical networks:

  1. The Internet
  2. A Corporate or Home Network
  3. A Set of Public Web Services

To define a logical network, developers need to specify a name and address. While the name will specify the network name, representative address will determine the connectivity status for all network addresses in that collection. Developers can also use the Connection Monitor Block to monitor connectivity changes for physical network adapters.

Endpoint Catalog Application Block

The Endpoint Catalog Application Block provides features to expose the physical addresses and other details of remote services used by smart client applications. The Endpoint Catalog Application Block uses a dictionary to store all the individual endpoints. Each end point has associated credentials with it. Apart from that, the end point also contains a name, a default URL (address), and a series of child network items.

Disconnected Service Agent Application Block

The Disconnected Service Agent Application Block offers management features, for running web services from occasionally connected smart client applications. With Disconnected Service Agent Application Block, the application gets the capability to maintain a queue of web service requests when offline (disconnected) and then replay them when connection is established with the server application. Following are the features provided by the Disconnected Service Agent Application Block:

  • It queues up multiple web service requests and keeps track of the asynchronous callbacks that the application expects to receive when that web service responds.
  • It also includes a dispatcher that determines when to dispatch each call to a web service, depending on connectivity conditions.
  • On the correct conditions, the dispatcher makes the request, using the required credentials and addresses for the endpoint.

Contact us today or call 1-877-RISHABH (1-877-747-4224) and find out how Rishabh’s experience in Smart Client Software Factory can help you develop your next smart client project.

Follow Us
Subscribe to the Blog
Get a Free Consultation
Reach out to our team to get a free consultation for your next projectContact Us