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
- ASP .Net
- Sliver light
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 server Arcchitecture.
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 productivity).
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 application“.
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:
|Installed||Installed on users computer.||Not installed on the client’s computer.|
|Start Menu||Appears in Start Menu.||Does not appear in the Start Menu.|
|Control Panel: Add/Remove Programs||Appears in the Add/Remove Programs.||Does not appear in the Add/Remove Programs.|
|Installment methods||Installed via XCopy, Windows Installer (MSI) or ClickOnce.||Are automatically deployed via ClickOnce.
YourApp.xbap is really a ClickOnce deployment manifest.
|Code Access Security||Runs in Full Trust unless modified by Administrator.||Runs in Internet Zone .|
|Sandbox restrictions||N/A if run as Full Trust.||See list below.|
|Process||Runs in its own standard OS window.||Runs in PresentationHost.exe
Presentation host is registered as the shell and MIME handler for *.xbap files.
|Automatic Updates||Standalone apps are not automatically updated. Developer must write auto updating framework or use the Microsoft ClickOnce system.||Newer version on server is always used.|
|Offline access||Application works if offline.||Cannot run XBAP application unless user can navigate to the XBAP URL.|
|Requirements||.NET 3.0 or later installed on user computer.||.NET 3.0 or later installed on 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
- Powerfull Tooling/designer support
- Provides RAD development.
- Decarative Syntax
- Strong Third party controls support.
- Easy development model for heavy data-driven LOB applications.
- Event Driven programming Model.
- Similar model for windows form developers.
- BuildinViewState Support
- Buildin PostBack Support.
Advantages of MVC Model
- Enable clean separation of concerns (SoC) .
- Enable full control over the rendered HTML.
- Enable Test Driven Development (TDD) (built with TDD in mind).
- SEO and REST friendly URL.
- Support third-party view engines such as NVelocity, Brail, NHaml.
- No ViewState and PostBack events.
- Follows the stateless nature of web.
- Extensible and Pluggable framework.
Project Future Guidelines:
- 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.
- However there is a need for thin client implementation of PCMS as Release 7, which will be implemented in ASP .Net.
- 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.
- 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.
- Differentiate between Thick client, Think client and smart Client with examples?
- Differentiate between ASP .Net Web forms and MVC?
- Differentiate between Windows Presentation Foundation and Silver Light of Microsoft .Net?
- Differentiate between WPF standalone and XBAP Application?