Software architecture-to study different presentation layers technologies in microsoft .net framework
Project: PCMS, Pegasus Cargo Management System
Date: 2nd May 2010
Subject: To study different presentation layers technologies in Microsoft .Net framework
Suppose you are planning to develop a new application, so the most difficult elements are
architectural and strategic decisions that are related to technology selection from a large
stack of available Group.
Each technology and product has is own pro and corns. So detailed analysis of all aspects
of technology, is must.
Microsoft .Net provide a wide set of technologies and tools for presentation Layer
creation, so right decision to select a tech is very critical for success of a project.
List of Presentation layer technologies are as:
Windows forms are Fat client applications. ASP .Net is thin client application. WPF and
Sliverlight are smart client Applications.
Let differentiate b/w definition of Fat , thin and smart client.
Fat Client, according to Wiki:
A fat client is a computer or computer program in client–server architecture networks
which typically provides rich functionality independently of the central server.
So Windows form application don’t have depency to central server a lot. That is
application runs on client end and uses most of resources from client machine in a client
Fat Client is also called Rich Client or Thick client.
Thin Client according to Wiki:
A thin client (sometimes also called a lean or slim client) is a computer or a computer
program which depends heavily on some other computer (its server) to fulfill its
traditional computational roles.
So ASP .Net application heavy depends on central Server. Actually ASP .Net application
reside on server (IIS), IIS processes all the application logic and throws only HTML on
client end. Communication between client and server is handled by Request (from
Browser on client end to IIS at Server end) and Response (from IIS at Server end to
Browser on client end).
Smart Client according to Wiki:
Smart Client is a term used to describe an application environment which:
• delivers applications over a web http connection
• does not require installation (or provide automated installation and updates)
• automatically updates without user action
• has the look and feel of desktop applications
So,The term "Smart Client" is meant to refer to simultaneously capturing the benefits of
a "thin client" (zero-install, auto-update) and a "fat client" (high performance, high
Mainly there are four platforms for building Smart client applications :
Flex : from Adobe.
JavaFX : from SUN.
Windows Presentation Foundation (WPF)/SliverLight : for Microsoft
DataSnap/WebServices : from CodeGear.
WPF and SL both provide look and feel of desktop applications, but still runs on browser.
So they combine the features of Thick client and Thin Client , thus called Smart client.
Smart Client is also called "Rich Internet Application" (RIA) and "rich web
SilverLight Vs WPF
1. Silverlight is simply a subset of WPF.
2. Silverlight is meant to be used online, while WPF is for local use.
3. You can use Silverlight applications regardless of the operating system you use, while
WPF applications are restricted to later versions of the Windows operating system.
4. Silverlight lacks access to local resources, while WPF can utilize local resources.
5. Silverlight only has perspective 3D support, while WPF is capable of full 3D images.
WPF standalone Vs XBAP Application:
Feature Standalone XBAP
Installed Installed on users computer. Not installed on the client’s
Start Menu Appears in Start Menu. Does not appear in the Start
Control Panel: Appears in the Add/Remove Does not appear in the
Add/Remove Programs Programs. Add/Remove Programs.
Installment methods Installed via XCopy, Windows Are automatically deployed via
Installer (MSI) or ClickOnce. ClickOnce.
YourApp.xbap is really a
Code Access Security Runs in Full Trust unless Runs in Internet Zone .
modified by Administrator.
Sandbox restrictions N/A if run as Full Trust. See list below.
Process Runs in its own standard OS Runs in PresentationHost.exe
window. Presentation host is registered
as the shell and MIME handler
for *.xbap files.
Automatic Updates Standalone apps are not Newer version on server is
automatically updated. always used.
Developer must write auto
updating framework or use the
Microsoft ClickOnce system.
Offline access Application works if offline. Cannot run XBAP application
unless user can navigate to the
Requirements .NET 3.0 or later installed on .NET 3.0 or later installed on
user computer. user computer.
Internet Explorer(6.0 or later)
Firefox (2.0 or later).
ASP .Net Web Forms vs MVC
OK, Now ASP .Net has been selected, but still there are 2 options to go with ASP .Net
namely, Web forms and MVC.
Advantages of Web Form Model
1. Powerfull Tooling/designer support
2. Provides RAD development.
3. Decarative Syntax
4. Strong Third party controls support.
5. Easy development model for heavy data-driven LOB applications.
6. Event Driven programming Model.
7. Similar model for windows form developers.
8. BuildinViewState Support
9. Buildin PostBack Support.
Advantages of MVC Model
1. Enable clean separation of concerns (SoC) .
2. Enable full control over the rendered HTML.
3. Enable Test Driven Development (TDD) (built with TDD in mind).
4. SEO and REST friendly URL.
6. Support third-party view engines such as NVelocity, Brail, NHaml.
7. No ViewState and PostBack events.
8. Follows the stateless nature of web.
9. Extensible and Pluggable framework.
Project Future Guidelines:
1. As PCMS, Pegasus Cargo Management System, release 6 is implemented as
Smart Client application in Windows Presentation Foundation So there is no need
for a version in Sliver Light which is also a smart client technology.
2. However there is a need for thin client implementation of PCMS as Release 7,
which will be implemented in ASP .Net.
3. As there are two development patterns of ASP .Net, namely Web forms and
MVC. So read the feature set for each method in section and lets decide the which
pattern to adopt.
4. As MVC implementation in ASP .Net is new, so a POC is required to explore the
complete feature set in terms of programming for MVC.
1. Differentiate between Thick client, Think client and smart Client with examples?
2. Differentiate between ASP .Net Web forms and MVC?
3. Differentiate between Windows Presentation Foundation and Silver Light of
4. Differentiate between WPF standalone and XBAP Application?