14.01.2015 Views

Application Architecture Guide 2.0 BETA 1 - Willy .Net

Application Architecture Guide 2.0 BETA 1 - Willy .Net

Application Architecture Guide 2.0 BETA 1 - Willy .Net

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

applications over the Internet or intranet, consider building a service. If you do not require a<br />

rich interactive UI, you want to deploy over the Internet, and you want to maximize<br />

platform and browser independence, consider building a Web application.<br />

• How to design a mobile application<br />

<strong>Application</strong>s for mobile devices fall into two categories: Web applications and rich client<br />

applications. The decision on the type of application you design can be based on the<br />

connection requirements, resource requirements, and UI requirements. If your users do not<br />

need to work disconnected, and your performance requirements can be met with regard to<br />

the network bandwidth constraints of your users, consider a Web-based mobile client.<br />

Another option for a connected scenario, where a rich interface is required, is a Rich<br />

Internet <strong>Application</strong>. If your users must work in a disconnected or occasionally connected<br />

way, or if you require direct access to the device hardware resources, consider a mobile rich<br />

client. Consider screen size and format, CPU performance characteristics, memory and<br />

storage space, development tool and environment support, as well as user requirements<br />

and organizational constraints, when choosing which device types to support. Mobile<br />

devices require a simpler architecture, simpler UI, and other design decisions to work within<br />

the constraints imposed by the device hardware. Keep these constraints in mind and design<br />

specifically for the device instead of trying to reuse the architecture or UI from a desktop<br />

application or a Web application. Every design decision should take into account the limited<br />

CPU, memory, storage and battery life of mobile devices. In addition, most mobile<br />

applications must work when a network connection is intermittent or not available. Design<br />

your caching, state management, and data access mechanisms with intermittent network<br />

connectivity in mind.<br />

• How to design a rich client application<br />

Rich client applications offer complex data visualization, superb text flow content rendering,<br />

access to local resources and devices, and a rich and dynamic interactive experience. Rich<br />

Client applications range from thin interfaces that overlay business layers and service layers,<br />

to complex applications that perform most of the processes themselves and just<br />

communicate with other layers to consume or send back information. Various technologies<br />

are available to design rich client applications. These technologies include Windows Forms,<br />

Windows Presentation Foundation (WPF), XAML Browser <strong>Application</strong>s (XBAP), and Office<br />

Business <strong>Application</strong>s (OBA). A typical rich client application design focuses on the<br />

separation of UI from processing, on the user interface, on the handling of business rules,<br />

and on communication between layers. Separate the presentation logic from the interface<br />

implementation using design patterns such as MVC and Supervising Controller. Separating<br />

UI rendering from UI processing eases maintenance, promotes reusability, and improves<br />

testability. Design to provide a suitable and usable interface. Take into account features<br />

such as layout, navigation, choice of controls, and localization to maximize accessibility and<br />

usability. Extract business rules and other tasks not related to the user interface. A separate<br />

business layer should handle tasks not directly related to presentation, or related to<br />

collecting and handling user input. Loosely couple your client to any remote services it uses.<br />

Use a message-based interface to communicate with services on separate physical tiers.<br />

14

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!