Software Engineering, Project Management, and Effectiveness
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.
Mobile A mobile application will normally be structured as a multi-layered application consisting of user experience, business and data layers.
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.
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.
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.
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.
See Web Application Archetype (CodePlex).
Template for Application Type Guidance Here's the approach we're using to organize the guidance for each archetype:
You can walk the Web application example to see it in action.
My Related Posts
As part of our patterns & practices App Arch Guide 2.0 project , we've put together an arch frame.
A few people have asked me for an abstract on the patterns & practices Application Architecture Guide
Today we posted our Arch Frame to CodePlex.  Wednesdays are ship days (I don't ship on Fridays.)
I added a brief over deck of our patterns & practices App Arch Guide 2.0 project to codeplex: App
As part of our patterns & practices Application Architecture Guide 2.0 project , we've been hunting