Cheat Sheet: Presentation Technology Matrix

J.D. Meier, Alex Homer, David Hill, Jason Taylor, Prashant Bansode, Lonnie Wall, Rob Boucher Jr, Akshay Bogawat

Objectives

  • Understand the tradeoffs for each presentation technology choice.
  • Understand the design impact of choosing a presentation technology.
  • Understand all presentation technologies across application types.
  • Choose a presentation technology for your scenario and application type.

Overview

Use this cheat sheet to understand your technology choices for the presentation layer. Your choice of presentation technology will be related to both the application type you are developing and the type of user experience you plan to deliver. Use the Presentation Layer Technology Summary to review each technology and its description. Use the Benefits and Considerations Matrix to make an informed choice of presentation technology based on the advantages and considerations of each one. Use the Common Scenarios and Solutions to map your application scenario to common presentation technology solutions.

Presentation Technologies Summary

Mobile Applications

The following presentation technologies are suitable for use in mobile applications:
  • Microsoft .NET Compact Framework. This is a subset of the Microsoft .NET Framework designed specifically for mobile devices. Use this technology for mobile applications that must run on the device without guaranteed network connectivity.
  • ASP.NET Mobile. This is a subset of ASP.NET, designed specifically for mobile devices. ASP.NET Mobile applications can be hosted on a normal ASP.NET server. Use this technology for mobile Web applications when you need to support a large number of mobile devices and browsers that can rely on a guaranteed network connection.
  • Microsoft® Silverlight® Mobile. This subset of the Silverlight client requires the Silverlight plug-in to be installed on the mobile device. Use this technology to port existing Silverlight applications to mobile devices, or if you want to create a richer user interface (UI) than is possible using other technologies.

Note: At the time this guide was published, Silverlight for Mobile was an announced product under development, but not yet released.

Rich Client Applications

The following presentation technologies are suitable for use in rich client applications:
  • Windows Forms.** This is the standard UI design technology for the .NET Framework. Even with the availability of Windows Presentation Foundation (WPF), Windows Forms is still a good choice for UI design if your team already has technical expertise with Windows Forms, and the application does not have any specific rich UI requirements.
  • Windows Forms with WPF user controls.** This technology allows you to take advantage of the more powerful UI capabilities provided by WPF controls. You can add WPF to your existing Windows Forms application. Keep in mind that WPF controls tend to work best on higher-powered client machines.
  • WPF application. WPF applications support more advanced graphics capabilities, such as 2-D and 3-D graphics, display resolution independence, advanced document and typography support, animation with timelines, streaming audio and video, and vector-based graphics. WPF uses Extensible Application Markup Language (XAML) to improve the UI, data binding, and event definitions. WPF also includes advanced data binding and template capabilities. WPF applications can be deployed to the desktop or within a browser using XBAP. WPF applications support developer-designer interaction—developers can focus on the business logic, while designers can control the look and feel.
  • XAML Browser Application (XBAP) using WPF.** This technology hosts a sandboxed WPF application in Microsoft Internet Explorer or Mozilla Firefox on Microsoft Windows®. Unlike Silverlight, you can use most of the WPF framework, but there are some limitations related to accessing system resources from the partial-trust sandbox. XBAP requires Microsoft Windows Vista® or both .NET Framework 3.5 and the XBAP browser plug-in on the client desktop. XBAP is a good choice when the required features are not available in Silverlight, and you can specify the client platform and trust requirements.
  • WPF with Windows Forms User Controls. This technology allows you to supplement WPF with controls that are not provided with WPF. You can use the WindowsFormsHost control provided in the WindowsFormsIntegration assembly to add Windows Forms controls. However, there are some restrictions or inconsistencies related to overlapping controls, interface focus, and rendering techniques used by the different technologies.

Rich Internet Applications (RIA)

The following presentation technologies are suitable for use in RIAs:
  • Silverlight. This is a browser-optimized subset of WPF that works cross-platform and cross-browser. Compared to XBAP, Silverlight is a smaller, faster install but does not support 3-D graphics and text-flowable documents. Due to its small footprint and cross-platform support, Silverlight is a good choice for WPF applications that do not require premium WPF graphics support.
  • Silverlight with AJAX. Silverlight natively supports Asynchronous JavaScript and XML (AJAX) and exposes its object model to JavaScript located in the Web page. You can use this capability to allow interaction between your page components and the Silverlight application.

Web Applications

The following presentation technologies are suitable for use in Web applications:
  • ASP.NET Web Forms. This is the standard UI design and implementation technology for .NET Web applications. An ASP.NET Web Forms application only needs to be installed on the Web server, with no components required on the client desktop.
  • ASP.NET Web Forms with AJAX. Use AJAX with ASP.NET Web Forms to process requests between the server and client asynchronously to improve responsiveness, provide richer experience to the client, and reduce the number of postbacks to the server. AJAX is an integral part of ASP.NET in.NET Framework 3.5 and later.
  • ASP.NET Web Forms with Silverlight Controls. If you have an existing ASP.NET application, you can use Silverlight controls to improve the user experience and avoid the requirement to write a whole new Silverlight application. This is a good approach for creating islands of Silverlight content in an existing application.
  • ASP.NET MVC. This technology allows you to use ASP.NET to build applications based on the Model-View-Controller (MVC) pattern. ASP.NET MVC supports test-driven development and clear separation of concerns between UI processing and UI rendering. This approach helps to create clean HTML and avoid mixing presentation information with logic code.
  • ASP.NET Dynamic Data. This technology allows you to create data-driven ASP.NET applications that leverage Language-Integrated Query (LINQ) to Entities functionality. It provides a rapid development model for line-of-business (LOB)-style data-driven applications, allowing simple scaffolding to full customization.

Benefits and Considerations Matrix

Mobile Applications

Technology Benefits Considerations
.NET Compact Framework Runs on the client machine for improved performance and responsiveness Has a limited API compared to a desktop Windows Forms application.
Does not require 100-percent network connectivity. Requires more client-side resources than an ASP.NET Mobile application.
Has a familiar programming model if you are used to Windows Forms. Is not as easy to deploy over the Web as an ASP.NET Mobile application.
Has Microsoft Visual Studio® Designer support.
Is usually installed in ROM on the device.
ASP.NET Mobile Supports a wide range of devices, including anything that has a Web browser. Design support has been removed from Visual Studio 2008, but the controls will still render on devices.
Does not have a footprint on the device because no application must be installed. Requires 100-percent network connectivity to run.
Has a familiar programming model if you are used to ASP.NET Web Forms. Performance and responsiveness are dependent on network bandwidth and latency.
Templates can be downloaded off the Web for designer support with Visual Studio. Many devices now support full HTML and ASP.NET, so ASP.NET Mobile may not be required.
Silverlight Mobile Offers rich UI and visualization, including 2-D graphics, vector graphics, and animation. Is an announced product in development, but not yet released at the time this document was published.
Silverlight code running on desktops can run on Silverlight Mobile. Uses more device resources than a Web application.
Isolated storage is available to maintain objects outside the browser cache. Desktop Silverlight applications running on mobile may require optimization to account for reduced memory and slower hardware.
Requires the Silverlight plug-in to be installed.
May not run on as many types of devices as Web applications because of plug-in install requirement.

Rich Client Applications

Technology Benefits Considerations
Windows Forms Has a familiar programming model. Does not support 3-D graphics, streaming media, flowable text, and other advanced UI features in WPF such as UI styling and templates.
Has Visual Studio Designer support. Must be installed on the client.
Offers good performance on a wide range of client hardware.
Windows Forms with WPF User Controls Allows you to add rich UI to existing Windows Forms applications. Depending on the complexity of your UI, it may require higher-powered graphics hardware.
Provides a transition strategy to full WPF applications. You cannot overlay Windows Forms and WPF controls, reducing visual design flexibility.
WPF application Provides rich UI and visualization including 2-D and 3-D graphics, display resolution independence, vector graphics, flowable text, and animation. Depending on the complexity of your UI, it may require higher-powered graphics hardware.
Supports variable-bandwidth streaming media (Adaptive Media Streaming). Your team may be less familiar with Expression Blend compared to Visual Studio.
XAML makes it easier to define the UI, data-binding, and events. WPF ships with fewer built-in controls than Windows Forms.
Supports separate developer/graphic designer integration.
WPF with Windows Forms Controls Allows you to supplement WPF with controls that are not provided by WFP; for example, WPF does not provide a grid control. Requires a WindowsFormsHost.
It may be difficult to get focus and input to transition across boundaries.
You cannot overlap WPF and Windows Forms controls.
WPF and Windows Forms controls use different rendering techniques, which can cause inconsistencies in how they look on different platforms.
XAML Browser Application (XBAP) using WPF Allows you to deploy a WPF application to the Web. Only works on Vista or on a client with .NET Framework 3.5 and the XBAP browser plug-in installed.
Provides all the rich visualization and UI benefits of WPF. Only works in Internet Explorer and Mozilla Firefox browsers.
Is easier to deploy and update than a WPF or Windows Forms application.

Rich Internet Applications (RIA)

Technology Benefits Considerations
Silverlight Provides a lightweight install for client machines. Requires a Silverlight plug-in to be installed on the client.
Provides most of the UI and visualization power of WPF, such as media streaming, 2-D graphics, vector graphics, animation, and resolution independence. Your team may be less familiar with Expression Blend compared to Visual Studio.
Isolated storage provides an application cache independent from the browser cache. Lacks the advanced 3-D graphics and flowable text support of WPF.
Supports high-definition (HD) video. Currently cannot make direct use of graphics acceleration on the client.
Client-side processing provides improved user experience and responsiveness compared to a Web application. Is not easy to transition from WPF or XBAP due to differences in the XAML and controls.
Supports a wide variety of languages such as C#, VB.NET, Ruby, and Python.
Supports windowless background processing as a replacement for JavaScript.
Provides cross-platform support, including Mac and Linux.
Provides cross-browser support, including Firefox and Safari.
Silverlight with AJAX Allows you to use existing AJAX libraries and routines from your Silverlight application. May be an unfamiliar programming model if your team is used to pure ASP.NET or Silverlight.
Allows Silverlight objects to be dynamically created and destroyed through communication with the server as the user interacts with the application.

Web Application

Technology Benefits Considerations
ASP.NET Web Forms Brings a development experience similar to Windows Forms to the Web. UI is limited to HTML and Dynamic HTML (DHTML) support.
Has no client dependency. Client-side storage is limited to cookies and view-state.
Requires no installation on the client. Updating page contents requires a full postback and page refresh.
Provides cross-platform and cross-browser support. Has limited UI responsiveness because all processing occurs on the server.
Provides Visual Studio design support.
Makes a large number of controls available.
ASP.NET Web Forms with AJAX Provides a richer look and feel than a traditional Web Forms application. May be an unfamiliar programming model if your team is used to pure ASP.NET.
Provides improved UI responsiveness and a richer experience. Does not work if JavaScript is disabled on the client.
Supports lazy loading.
Allows partial page refreshes.
An integral part of ASP.NET 3.5.
ASP.NET Web Forms with Silverlight Controls Allows you to add Silverlight rich visualization and UI to existing ASP.NET applications. Requires the Silverlight plug-in to be installed on the client.
Provides a strategy for transition to full Silverlight applications. Your team may be less familiar with Expression Blend compared to Visual Studio.
ASP.NET MVC Supports test-driven development. Does not support View state.
Enforces separation between UI processing and UI rendering. No support for control events.
Allows you to create user-friendly and search engine–friendly URLs.
Provides full control over markup.
Provides full control over how content is rendered.
Navigation is controlled by configuration to greatly reduce the amount of code required.
ASP.NET Dynamic Data Allows the creation of fully data-driven sites that render automatically. Currently there are only a few controls that support the technology.
* Has built-in support for LINQ querying languages
* Has built-in support for the ADO.NET Entity Framework
LINQ allows you to model your database to create object

Common Scenarios and Solutions

Mobile Applications

.NET Compact Framework
Consider using the .NET Compact Framework if:
  • You are building a mobile application that must support occasionally connected or offline scenarios.
  • You are building a mobile application that will run on the client to maximize performance and responsiveness.

ASP.NET for Mobile
Consider using ASP.NET for Mobile if:
  • Your team has ASP.NET expertise and you want to target a wide range of mobile devices.
  • You are building an application that must have no client-side installation or plug-in dependencies.
  • You are building an application that can rely on 100-percent network connectivity.
  • You want to support the widest possible range of devices.
  • You want to use as few device resources as possible.

Silverlight for Mobile
Consider using Silverlight for Mobile if:
  • You are building a Web application and want to leverage the rich visualization and UI capabilities of Silverlight.
  • The devices you are targeting have easy access to or already have the Silverlight plug-in installed.

Rich Client Applications

Windows Forms
Consider using Windows Forms if:
  • Your team already has experience building Windows Forms applications and you cannot afford to change to another technology.
  • You are extending or modifying an existing Windows Forms application.
  • You do not require rich media or animation support.

Windows Forms with WPF User Controls
Consider using Windows Forms with WPF user controls if:
  • You already have a Windows Forms application and want to take advantage of WPF capabilities such as advanced graphics, flowable text, streaming media, and animations.

WPF
Consider using WPF if:
  • You are building a rich client application and want to leverage the rich visualization and UI capabilities of WPF.
  • You are building a rich client application that you may want to deploy to the Web using XBAP.
  • You want to use XAML to define your UI design, data binding, and events.
  • You want to integrate the development process with graphic designers to specify the look and feel.

WPF with Windows Forms Controls
Consider using WPF with Windows Forms controls if:
  • You are building a rich client application using WPF and want to use a control not provided by WPF.
  • You are building a WPF application to leverage its rich visualization and UI capabilities.
  • You want to use XAML to define your UI design, data binding, and events.

XBAP Using WPF
Consider using an XBAP that uses WPF if:
  • You already have a WPF application that you want to deploy to the Web.
  • You want to leverage the rich visualization and UI capabilities of WPF that are not available in Silverlight.
  • You are building a Web application for clients running Internet Explorer or Firefox that are guaranteed to have Windows Vista or .NET Framework 3.5 with the XBAP browser plug-in installed.

Rich Internet Applications

Silverlight
Consider using Silverlight if:
  • You are building an Internet-facing Web application or an internal application that requires seamless deployment.
  • You want to leverage the rich visualization and UI capabilities of Silverlight.
  • You want to leverage the streaming-media capabilities of Silverlight.
  • You want a browser-optimized subset of WPF and XAML; or, more generally, a subset of .NET.
  • You are targeting cross-platform and cross-browser clients.

Silverlight with AJAX
Consider using Silverlight with AJAX if:
  • You want direct access to the Silverlight object model from your Web page.
  • You want to manipulate Silverlight controls based on user interaction with your Web page.

Web Applications

ASP.NET Web Forms
Consider using ASP.NET Web Forms if:
  • Your team already has experience building ASP.NET Web Forms.
  • You have an existing ASP.NET Web Forms application that you want to extend or modify.
  • You want to run on the widest possible range of client machines.
  • You do not want to install anything on the client.
  • You want to design simple functionality such as Create-Read-Update-Delete (CRUD) operations without a rich UI or animation.

ASP. NET Web Forms with AJAX
Consider using ASP. NET Web Forms with AJAX if:
  • You want to create ASP.NET Web Forms with a more responsive and richer user experience.
  • You want to support lazy loading and partial page refreshes.

ASP. NET Web Forms with Silverlight Controls
Consider using ASP. NET Web Forms with Silverlight Controls if:
  • You already have an ASP.NET Web Forms application and want to leverage the rich visualization and UI capabilities of Silverlight.
  • You are planning to transition your Web application to Silverlight.

ASP.NET MVC
Consider using ASP. NET MVC if:
  • You want to implement the Model-View-Controller (MVC) pattern.
  • You want full control over your markup.
  • You want to implement a clear separation of concerns between UI processing and UI rendering.
  • You want to follow test-driven development.

ASP.NET Dynamic Data
Consider using ASP.NET Dynamic Data if:
  • You want to rapidly build a data-driven application.
  • You want to use the LINQ query language or the Entity Framework data model.
  • You want to use the built-in modeling capabilities of LINQ to more easily map your objects to data.

Additional Resources

Last edited Dec 19, 2008 at 3:42 AM by prashantbansode, version 2

Comments

No comments yet.