Technical Challenges

Retired Content

This content is outdated and is no longer being maintained. It is provided as a courtesy for individuals who are still using these technologies.
This page may contain URLs that were valid when originally published, but now link to sites or pages that no longer exist.

The reference implementation is an executable sample. It demonstrates how the software factory addresses common technical challenges that you face when you build line-of-business Web sites with ASP.NET.

Table 1 describes some technical challenges that the reference implementation addresses.

Technical challenge

Description

How is this demonstrated in the reference implementation?

Modularity

Ability to build complex sites based on modules that can be independently developed, tested, versioned, and deployed

Web site solution structure.

Reports, Administration, and EFT modules that use the Composite Web Application Block.

Distributed Web.config files.

Layout management

Ability to create a common user experience across different independent modules, separating the responsibility of the UI design from the UI development

Application uses master pages for public site and for module Web pages.

Use of ASP.NET themes and skins.

Use of a site map provider to display module actions on the Web site.

Unit testing Web solutions

Ability to run unit tests against Web page logic

All views in the reference implementation use the View-Presenter patterns to isolate page logic.

All modules include unit test projects.

Communications with external services

Ability to interact and aggregate information and operations exposed by other systems as Web services

The EFT module interacts with external Web services that simulate a back-end payment system.

The Service Agent pattern is used to abstract common tasks, such as entity translation.

User profile based UIs

Ability to change the behavior of the UI based on the user identity and profile information

Site configured with two roles, Administrators and Operators.

Actions available in each module operate on different permissions sets for the available roles (for example, the Administrator role can view reports, but the Operator role cannot view reports).

Use the site map provider to display permission aware actions on the Web site.

Rule-based permissions using the Enterprise Library Security Application Block defined in configuration files.

Authentication

Ability to identify registered users of a site

Forms authentication for all protected pages.

Views are protected with settings in the modules' Web.config file that denies access to anonymous users.

Authorization

Ability to change permissions for different users

Each module operates with different permissions sets.

Application uses ASP.NET role manager.

Securing data

Secure user and site information

All exceptions are shielded using Enterprise Library and ASP.NET configuration to prevent information to be leaked to end users in the event of a runtime exception.

User input is validated for type, length, format, and range.

By using the Composite Web Application Block, untrusted content is encoded before displaying it on a browser.

System availability and scaling

Maximize uptime and minimize the time to diagnose problems

Application tested for scaling up and scaling out.

Logging exceptions using the Enterprise Library Logging Application Block for simplified management and diagnostics.

Easy deployment

Minimizing the complexity to deploy new or updated functionality on a site

XCopy deployment of modules.

Modules are deployed independently of each other.

Distributed Web.config files minimize configuration contention.