views:

70

answers:

4

What is the difference between a presentation layer and an user-interface?

A: 

The presentation layer delivers information to the application layer for display.

The presentation layer, in some cases, handles data translation to allow use on a particular system.

The user interface shows you the data once the presentation layer has done any translations it needs to.

More here: http://en.wikipedia.org/wiki/Presentation_Layer

John at CashCommons
A: 

Here's my own interpretation:

Presentation layer loosely refers to the layer which is responsible for somehow displaying the data for the users. It is often spoken of in the context of a software architecture along with other layers such persistence layer, business logic layer, etc, and rarely by itself.

User interface simply refers to the point of interfacing between the users and some software programs. User interface do not always have to have a nice graphical windows capabilities. A console program, one which runs on the prompt, is also said to have a user interface, just not a graphical one.

Khnle
A: 

The link in the John's answer refers to the OSI model, which is not the term intended here IMHO.

I think presentation layer and UI are overlapping concepts, though not 100% overlapping.

Form one angle: The term presentation layer suggests a layered structure in the application, while the term UI does not suggest anything about the inner structure of the application.

From another angle: The term UI might only include the collection of controls and their event handlers, while the term presentation layer could include some deeper non visual parts of the application like ViewModels or Presenters.

Dave
+1  A: 

They are close in execution, but they come from different directions. They aren't well defined, depending on the specific context, they may be almost identical or overlap only slightly.

Presentation layer is term in the taxonomy of code and associated resources.

User Interface is the implementation of the intended User Experience in terms of page layout, page transitions and page control elements. (I am using "page" loosely here - you can replace it with "form" or "window").


The distinction is important when you consider how a user interface gets created. If you come from the code, you are basically working with the needs and mechanisms of the code - what data is there to show?, and in what ways your code can change that? If you come from the user, the questions are rather what data the does the user need? and what changes does the user need to make to this?

(The first one isn't necessarily worse - it's perfect for people who have a good idea of the inner workings of the application, and it makes it often easier to make use of the full capabilities of the code.)

peterchen