Scenarios and Benefits
This content is outdated and is no longer being maintained. It is provided as a courtesy for individuals who are still using these technologies.
Architects should use the software factory to create their own client baseline architecture. They can distribute that baseline for developers to use as a starting point for smart client applications. Developers can use the software factory to quickly create smart client applications that follow the proven practices and apply their company baseline architecture. Figure 1 illustrates the process for using the Smart Client Software Factory on the fictitious Global Bank project.
Smart Client Software Factory scenarios
As the architect, you want to make sure that your smart client applications derive from a sound, proven practice–based foundation that meets the following requirements:
- It provides a standard approach to application development.
- It promotes re-usability of common architectural patterns and components.
- It hides complexity.
- It allows developers to focus on business problems instead of infrastructure components.
The Smart Client Software Factory is the starting point for creating that foundation. It provides out-of-the-box implementation of a set of features and mechanisms that are common to smart client composite applications. This includes patterns, such as the Model-View-Presenter (MVP) pattern and the Asynchrononous Web Service Invocation with Timeout pattern; How–to topics, such as "How to: Create Smart Web References" and "How to: Map Business Entities into User Interface Elements"; and guidance automation for smart client application development, such as the Guidance Automation Toolkit and Guidance Automation Extensions.
You take this out-of-the-box baseline and customize and extended it to better fit your specific needs. You can add your patterns, How-to topics, and extend the guidance automation to meet specific requirements of your organization.
As an application developer, you want to focus on the business logic and the user experience of your smart client application. You want to use a baseline that provides the necessary infrastructure and the architecture mechanisms that you need. That baseline is the Smart Client Software Factory, possibly modified and extended by the architect.
You will review the patterns, such as Model-View-Presenter and Action Catalog; the How-to topics, such as "Creating a Business Module" and "Creating a Disconnected Service Agent"; and the Bank Branch Client reference implementation to understand the proven practices for developing smart clients. After you are ready to build your smart client application, you will use the Smart Client Development Guidance Automation Toolkit package to generate the initial solution, the modules, the views and presenter, the service agent, and so on.
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 result in increased user productivity and simplification of business tasks. This is achieved through the following:
- It helps you create common and consistent user interfaces; this reduces end-user training needs.
- It helps provide easy rollout of new and updated functionality and tasks by the business owners.
- It helps you create user interfaces that allow end users to perform tasks in a free-form manner or that prescriptively follow business workflows.
- It provides 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 because the software factory provides the following:
- It provides the ability to create a partial implementation of a solution that includes the most critical mechanisms 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 provides the ability to create and distribute to developers the common development architecture for smart client applications.
- It provides 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 provides 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 because the software factory provides 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 reuses 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 reuses an application framework that hides complexity and boosts productivity.
- It abstracts and separates concerns, which 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 abstracts common developer tasks, which results in increased productivity and maintainability.
- 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 because the software factory provides 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 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.