App Types

As part of our patterns & practices App Arch Guide 2.0 project, we've created a set of application archetypes ("app types" for short.)   You can see our app archetypes on our Application Types (Archetypes) Index page.  To keep it simple, we focused on a small set of common application types that customers identify with.  Here's the cool part ... for each application type, we're taking a principle-based approach, then showing relevant patterns, p&p solution assets, and Microsoft technologies.  Keep in mind we're still hashing it out.

Application Types

  • Mobile
  • Rich Client
  • Rich Internet Application
  • Service
  • Web Application

Mobile
A mobile application will normally be structured as a multi-layered application consisting of user experience, business and data layers.

AppTypeMobile

When developing a mobile application you may choose to develop a thin web-based client or a rich client. If you are building a rich client, the business and data layers are likely to be on the device itself. If you are building a thin client the business and data layers will be on the server.

See Mobile Application Type (CodePlex)

Rich Client
Rich client user interfaces can provide high performance, interactive, and rich user experiences for applications that must operate in stand-alone, connected, occasionally connected, and disconnected scenarios.

AppTypeRichClientApp

Windows Forms, WPF, and Office Business Application (OBA) development environments and tools are available that allow developers to quickly and easily build Rich Client applications. While these technologies can be used to create standalone applications, they can also be used to create applications that run on the client machine, but communicate with services exposed by other layers (both logical and physical) that expose operations the client requires. These operations may include data access, information retrieval, searching, sending information to other systems, backup, and related activities.

See Rich Client Archetype (CodePlex).

Rich Internet Application (RIA)
A Rich Internet Application (RIA) runs in the browser in a sandbox.  The benefits of a RIA application include richer user experience, better responsiveness and network efficiency over traditional Web applications.

AppTypeRIAApp

See Rich Internet Application Archetype (CodePlex).

Service
A service is a public interface that provides access to a unit of functionality. Services literally provide some programmatic ‘service’ to the caller who consumes them.

AppTypeServicesApp

Services are loosely coupled and can be combined from within a client or within other services to provide more complex functionality. Services are distributable and can be accessed from a remote machine as well as from the local machine on which they are running. Services are message oriented, meaning that service interfaces are defined by a WSDL file and operations are called using xml-based message schemas that are passed over a transport. Services support a heterogeneous environment by focusing interoperability at the message/interface definition. If components can understand the message and interface definition they can use the service regardless of their base technology.

See Service Application Archetype (CodePlex).

Web Application
The core of a Web application is its server-side logic.  The Web application layer itself can be comprised of many distinct layers.  The typical example is a three-layered architecture, comprised of presentation, business, and data layers.

AppTypeWebApp

See Web Application Archetype (CodePlex).

Template for Application Type Guidance
Here's the approach we're using to organize the guidance for each archetype:

  • Overview
  • Design considerations
  • Frame of Hot Spots / Categories
  • Category X
  • Category Y
  • Category Z
  • Presentation Layer Considerations
  • Business Layer Considerations
  • Data Layer Considerations
  • Services Layer Considerations
  • Performance Considerations
  • Security Considerations
  • Deployment Considerations
  • Pattern Map
  • Technology Considerations
  • patterns & practices Solution Assets
  • Additional Resources

You can walk the Web application example to see it in action.

Additional Resources

My Related Posts