Wednesday, October 27, 2010

Smart Client Software Factory (SCSF)

Architects and developers can quickly incorporate many of the proven practices and patterns of building composite smart client applications. These practices and patterns have been identified during the development of many smart client applications and their components.

By using the software factory, architects and developers can focus their efforts on business opportunities and create smart client applications that effectively address the needs of their organizations.

The Smart Client Software Factory provides an integrated set of guidance that assists architects and developers

create composite smart client applications. These applications have one or more of the following characteristics:

  • They have a rich user interface that takes advantage of the power of the Microsoft Windows desktop.
  • They connect to multiple back-end systems to exchange data with them.
  • They present information coming from multiple and diverse sources through an integrated user interface, so the data looks like it came from one back-end system.
  • They take advantage of local storage and processing resources to enable operation during periods of no network connectivity or intermittent network connectivity.
  • They are easily deployed and configured.

Benefits

The Smart Client Software Factory provides the following benefits for the business team, the architecture team, the developer team, and the operations team.

Value for Business

Applications built using the Smart Client Software Factory r

esult in increased user productivity and simplification of business tasks. Applications created with the software factory can be characterized by the following attributes:

  • The applications provide common and consistent user interfaces; this reduces end-user training needs.
  • The applications provide easy rollout of new and updated functionality and tasks by the business owners.
  • The applications provide user interfaces that allow end users to perform tasks in a free-form manner or that prescriptively follow business workflows.
  • The applications provide data quality improvements that remove the need for data exchange between application parts through the "ALT+TAB" and "copy and paste" techniques.

Value for Architecture Teams

Applications built using the Smart Client Software Factory result in improved quality and consistency. This is achieved through the following:

  • It has the ability to create a partial implementation of a solution that includes the most critical subsystems and shared elements. This partial implementation, known as the baseline architecture, addresses non-trivial design and development challenges, exposes the architectural decisions, and mitigates risks early in the development cycle.
  • It has the ability to create and distribute to developers the common development architecture for smart client applications.
  • It has the ability to create a consistent and predictable way of developing, packaging, rolling out, and updating business components to enforce architectural standards independent of business logic.
  • It has the ability to scale enterprise-wide guidance (such as patterns and Microsoft proven practices) when building enterprise smart client solutions.

Value for Developer Teams

Applications built using the Smart Client Software Factory result in increased productivity and faster ramp-up times for developer teams. This is achieved through the following:

  • It provides an effective way to create a high-quality starting point (baseline) for smart client applications. The baseline includes code and patterns typically discovered in Iteration 0, or the elaboration phases, of a project. This means that projects begin with a greater level of maturity than traditionally developed applications.
  • It provides reuse of assets, guidance, and examples that address common smart client scenarios and challenges.
  • It provides automation of common tasks in Visual Studio; with this, developers can easily apply guidance in consistent and repeatable ways.
  • It provides reuse of an application framework that hides complexity and boosts productivity.
  • It provides an abstraction and separation of concerns; this means that developers can focus solely on business logic, the UI, or the application services without requiring in-depth knowledge of the infrastructure and baseline services.
  • It provides increased reusability of infrastructure code.

Value for Operations Teams

Applications built using Smart Client Software Factory result in a consolidation of operational efforts. This is achieved through the following:

  • It consolidates shell applications, which results in only one executable file shipped and reduces the number of potential common language runtime (CLR) versioning issues.
  • It provides a way for easier rollout of common business elements and modules, which results in consistent configuration management and instrumentation implementations across a suite of applications.
  • It provides a pluggable architecture that allows operations teams to control the basic services (such as authentication and catalog provisioning) from server-side infrastructures; this enables smart client applications to be centrally managed, many at a time.
  • It uses ClickOnce, which enables a common mechanism for updates and versioning across modules.

Factory Contents

The Smart Client Software Factory is an integrated collection of tailored software assets that support composite client application development. The collection includes the following:

  • Application blocks and libraries. The Composite User Interface Application Block, the Disconnected Service Agent, the End Point Catalog, and the Connection Monitor are included in the software factory. The software factory also uses Enterprise Library application blocks for security, exception management, logging, and data access.
  • Recipes. The software factory includes the Add View (with presenter) recipe, Add WPF-View (with presenter) recipe, Add Disconnected Service Agent recipe, Add Event Publication recipe, and Add Event Subscription recipe. Recipes automate procedures in How-to topics, either entirely or selected steps. They help developers complete routine tasks with minimal input.
  • Template. The software factory includes the Solution template, Business Module template, and Foundational Module template. Templates are prefabricated application elements with placeholders for concrete arguments. They can be used for many purposes, including creating initial solution structures to creating individual solution artifacts, such as project items.
  • Patterns. The software factory includes patterns architects and developers frequently use when creating composite smart client applications.
  • QuickStarts. The software factory includes the following QuickStarts: EventBroker, ModuleLoader, SmartPart, Commands, BankTeller, Windows Presentation Foundation Integration, Connection Monitor, Endpoint Catalog, and Disconnected Service Agent. QuickStarts are brief, easy-to-understand illustrations of key software factory activities. QuickStarts are an ideal starting point if you want to gain an understanding of a software factory activity and are comfortable learning new techniques by examining source code.
  • How-to topics. The software factory includes How-to topics; these are documented step-by-step instructions that describe how to implement recommended practices in a specific domain.
  • Reference implementation. The software factory includes the Bank Branch Client reference implementation. A reference implementation provides an example of a realistic, finished product that the software factory helps developers build. The Bank Branch Client illustrates a multi-module, complex, and always connected client.








Factory Capabilities

The assets included in the Smart Client Software Factory help architects and developers solve the common challenging aspects of building smart client applications. Smart Client Software Factory assets, such as automated code generation, provide proven solutions for common challenges. The software factory assets can also be customized and extended for your specific requirements.

Figure 3 illustrates the Smart Client Software Factory demonstrated guidance.

No comments:

Post a Comment