Professional Documents
Culture Documents
Distributed
Architectures
User Interface
Design
Applications
Internet Applications, ID1354
1 / 36
Introduction
Contents
Distributed
Architectures
User Interface
Design
Tools
Distributed Architectures
Tools
2 / 36
Introduction
Section
Distributed
Architectures
User Interface
Design
Tools
Distributed Architectures
User Interface Design
Tools
3 / 36
Introduction
Local Application
Distributed
Architectures
User Interface
Design
Tools
4 / 36
Introduction
Introducing a Server
Distributed
Architectures
(computers).
I A client that has the
view and a server that
has controller and
model.
5 / 36
Introduction
Introducing a Server
Distributed
Architectures
(computers).
I A client that has the
view and a server that
has controller and
model.
I The view is displayed in
a web browser.
5 / 36
Introduction
Introducing a Server
Distributed
Architectures
(computers).
I A client that has the
view and a server that
has controller and
model.
I The view is displayed in
a web browser.
This architecture is not good, we also need
layers for communication.
5 / 36
Introduction
Introducing a Server
Distributed
Architectures
(computers).
I A client that has the
view and a server that
has controller and
model.
I The view is displayed in
a web browser.
This architecture is not good, we also need
layers for communication.
5 / 36
Introduction
Server-Side Communication
Distributed
Architectures
I First, we add a server layer, User Interface
normally called view (a bit Design
Tools
confusing).
I However, the server side
view layer performs tasks
typical of a view:
6 / 36
Introduction
Server-Side Communication
Distributed
Architectures
I First, we add a server layer, User Interface
normally called view (a bit Design
Tools
confusing).
I However, the server side
view layer performs tasks
typical of a view:
I Creates views (HTML),
which are sent to the client.
6 / 36
Introduction
Server-Side Communication
Distributed
Architectures
I First, we add a server layer, User Interface
normally called view (a bit Design
Tools
confusing).
I However, the server side
view layer performs tasks
typical of a view:
I Creates views (HTML),
which are sent to the client.
I Interprets user gestures, a
click in a web page creates a
request to the server.
6 / 36
Introduction
Server-Side Communication
Distributed
Architectures
I First, we add a server layer, User Interface
normally called view (a bit Design
Tools
confusing).
I However, the server side
view layer performs tasks
typical of a view:
I Creates views (HTML),
which are sent to the client.
I Interprets user gestures, a
click in a web page creates a
request to the server.
It might seem that we need yet a layer, for
network handling. There is such a layer, but it is
in the web server. We don’t write it ourselves.
6 / 36
Introduction
Server-Side Communication
Distributed
Architectures
I First, we add a server layer, User Interface
normally called view (a bit Design
Tools
confusing).
I However, the server side
view layer performs tasks
typical of a view:
I Creates views (HTML),
which are sent to the client.
I Interprets user gestures, a
click in a web page creates a
request to the server.
It might seem that we need yet a layer, for
network handling. There is such a layer, but it is
in the web server. We don’t write it ourselves.
6 / 36
Introduction
Client-Side Communication
Distributed
Architectures
7 / 36
Introduction
Client-Side Communication
Distributed
Architectures
7 / 36
Introduction
Client-Side Communication
Distributed
Architectures
7 / 36
Introduction
client-side model.
I This reduces the network
communication, since we
do not need to resend
the entire view each time
the user does something.
8 / 36
Introduction
client-side model.
I This reduces the network
communication, since we
do not need to resend
the entire view each time
the user does something.
I Thereby, the application
becomes faster.
8 / 36
Introduction
client-side model.
I This reduces the network
communication, since we
do not need to resend
the entire view each time
the user does something.
I Thereby, the application
becomes faster.
I This is referred to as the MVVM,
model-view-viewmodel pattern.
8 / 36
Introduction
client-side model.
I This reduces the network
communication, since we
do not need to resend
the entire view each time
the user does something.
I Thereby, the application
becomes faster.
I This is referred to as the MVVM,
model-view-viewmodel pattern.
8 / 36
Introduction
Programming Languages
Distributed
Architectures
User Interface
I This is the architecture Design
Tools
we will normally use
during the course.
I The view is programmed
in HTML and CSS, client
side behavior is
programmed in
JavaScript and the entire
server side code is
written in PHP.
9 / 36
Introduction
Programming Languages
Distributed
Architectures
User Interface
I This is the architecture Design
Tools
we will normally use
during the course.
I The view is programmed
in HTML and CSS, client
side behavior is
programmed in
JavaScript and the entire
server side code is
written in PHP.
9 / 36
Introduction
Three-Tier Architecture
Distributed
Architectures
User Interface
Design
10 / 36
Introduction
Three-Tier Architecture
Distributed
Architectures
User Interface
Design
10 / 36
Introduction
User Interface
Design
Tools
User Interface
Design
Tools
Distributed
Architectures
User Interface
Design
Tools
Question 1
12 / 36
Introduction
Event-Driven Architecture
Distributed
Architectures
User Interface
Design
Tools
13 / 36
Introduction
Event-Driven Architecture
Distributed
Architectures
User Interface
Design
Tools
Event-Driven Architecture
Distributed
Architectures
User Interface
Design
Tools
Section
Distributed
Architectures
User Interface
Design
Tools
Distributed Architectures
User Interface Design
Tools
14 / 36
Introduction
Use UI Guidelines!
Distributed
I This is not a course in human-computer Architectures
15 / 36
Introduction
Use UI Guidelines!
Distributed
I This is not a course in human-computer Architectures
15 / 36
Introduction
Use UI Guidelines!
Distributed
I This is not a course in human-computer Architectures
15 / 36
Introduction
Use UI Guidelines!
Distributed
I This is not a course in human-computer Architectures
Use UI Guidelines!
Distributed
I This is not a course in human-computer Architectures
User Interface
Design
Tools
I The system should always keep users
informed about what is going on, through
appropriate feedback.
I The UI must change within one second
after a user action, or the user might think
nothing happened.
16 / 36
Introduction
User Interface
Design
Tools
I The system should always keep users
informed about what is going on, through
appropriate feedback.
I The UI must change within one second
after a user action, or the user might think
nothing happened.
I Good examples:
16 / 36
Introduction
User Interface
Design
I The system should always keep users Tools
16 / 36
Introduction
User Interface
J. Nielsen’s 10 Usability Heuristics Design
Tools
17 / 36
Introduction
User Interface
J. Nielsen’s 10 Usability Heuristics Design
User Interface
J. Nielsen’s 10 Usability Heuristics Design
17 / 36
Introduction
User Interface
Design
Tools
18 / 36
Introduction
User Interface
Design
Tools
I We often do things by mistake, and
therefore need a clearly marked
“emergency exit” to leave an unwanted
state without having to go through an
extended dialogue. Support undo and redo.
I Good examples:
18 / 36
Introduction
User Interface
Design
Tools
19 / 36
Introduction
User Interface
Design
Tools
I Users should not have to wonder whether
different words, situations, or actions mean
the same thing. Follow platform
conventions.
I Good example (Sign in at top right, logo
with link to index page at top left):
19 / 36
Introduction
5. Error prevention
J. Nielsen’s 10 Usability Heuristics Distributed
Architectures
User Interface
Design
Tools
20 / 36
Introduction
5. Error prevention
J. Nielsen’s 10 Usability Heuristics Distributed
Architectures
User Interface
Design
20 / 36
Introduction
User Interface
Design
I Minimize the user’s memory load by making objects, Tools
actions, and options visible. The user should not
have to remember information from one part of the
dialogue to another. Instructions for use of the
system should be visible or easily retrievable
whenever appropriate.
I Good example:
I Clear headline.
I No doubt where to click
to start the search.
21 / 36
Introduction
I Clear headline.
I No doubt where to click
to start the search.
21 / 36
Introduction
User Interface
Design
Tools
I Accelerators, unseen by the novice user,
may often speed up the interaction for the
expert user.
I Allow the user to change the accelerators.
22 / 36
Introduction
User Interface
Design
Tools
I Accelerators, unseen by the novice user,
may often speed up the interaction for the
expert user.
I Allow the user to change the accelerators.
I Examples are
I Saved searches
I Items you recently looked at
I Save query for later
22 / 36
Introduction
User Interface
Design
Tools
I Accelerators, unseen by the novice user,
may often speed up the interaction for the
expert user.
I Allow the user to change the accelerators.
I Examples are
I Saved searches
I Items you recently looked at
I Save query for later
22 / 36
Introduction
User Interface
Design
Tools
23 / 36
Introduction
23 / 36
Introduction
User Interface
J. Nielsen’s 10 Usability Heuristics Design
Tools
24 / 36
Introduction
User Interface
J. Nielsen’s 10 Usability Heuristics Design
Tools
24 / 36
Introduction
User Interface
J. Nielsen’s 10 Usability Heuristics Design
I Error messages should be expressed in plain Tools
24 / 36
Introduction
User Interface
Design
25 / 36
Introduction
25 / 36
Introduction
Distributed
Architectures
User Interface
Design
Tools
Question 2
26 / 36
Introduction
Section
Distributed
Architectures
User Interface
Design
Tools
Distributed Architectures
User Interface Design
Tools
27 / 36
Introduction
User Interface
Design
Tools
I There are many tools that facilitates
developing web applications.
I Browser support varies between tools, most
examples will be using Firefox.
28 / 36
Introduction
User Interface
Design
Tools
I There are many tools that facilitates
developing web applications.
I Browser support varies between tools, most
examples will be using Firefox.
I You are strongly advised to start using
some of the following tools, they will help
you a lot.
28 / 36
Introduction
User Interface
Design
Tools
I There are many tools that facilitates
developing web applications.
I Browser support varies between tools, most
examples will be using Firefox.
I You are strongly advised to start using
some of the following tools, they will help
you a lot.
28 / 36
Introduction
User Interface
built-in console. Design
Tools
I The console logs
information associated
with the web page, for
example errors and
warnings related to
JavaScript, CSS and
network requests.
29 / 36
Introduction
User Interface
built-in console. Design
Tools
I The console logs
information associated
with the web page, for
example errors and
warnings related to
JavaScript, CSS and
network requests.
29 / 36
Introduction
User Interface
built-in console. Design
Tools
I The console logs
information associated
with the web page, for
example errors and
warnings related to
JavaScript, CSS and
network requests.
User Interface
built-in console. Design
Tools
I The console logs
information associated
with the web page, for
example errors and
warnings related to
JavaScript, CSS and
network requests.
User Interface
Design
Tools
30 / 36
Introduction
Firebug
Distributed
Architectures
User Interface
Design
Tools
31 / 36
Introduction
Firebug
Distributed
Architectures
User Interface
Design
Tools
31 / 36
Introduction
Firebug
Distributed
Architectures
User Interface
Design
Tools
Firebug
Distributed
Architectures
User Interface
Design
Tools
Web Developer
Distributed
Architectures
I Web Developer is a powerful User Interface
plug-in to Firefox, which Design
32 / 36
Introduction
Web Developer
Distributed
Architectures
I Web Developer is a powerful User Interface
plug-in to Firefox, which Design
32 / 36
Introduction
Web Developer
Distributed
Architectures
I Web Developer is a powerful User Interface
plug-in to Firefox, which Design
32 / 36
Introduction
Web Developer
Distributed
Architectures
I Web Developer is a powerful User Interface
plug-in to Firefox, which Design
32 / 36
Introduction
Web Developer
Distributed
Architectures
I Web Developer is a powerful User Interface
plug-in to Firefox, which Design
32 / 36
Introduction
Web Developer
Distributed
Architectures
I Web Developer is a powerful User Interface
plug-in to Firefox, which Design
Web Developer
Distributed
Architectures
I Web Developer is a powerful User Interface
plug-in to Firefox, which Design
Validators
Distributed
Architectures
User Interface
Design
Tools
33 / 36
Introduction
Validators
Distributed
Architectures
User Interface
Design
Tools
33 / 36
Introduction
NetBeans
Distributed
Architectures
User Interface
Design
Tools
34 / 36
Introduction
NetBeans
Distributed
Architectures
User Interface
Design
Tools
NetBeans
Distributed
Architectures
User Interface
Design
Tools
34 / 36
Introduction
User Interface
Design
Tools
35 / 36
Introduction
User Interface
Design
Tools
35 / 36
Introduction
User Interface
Design
Tools
36 / 36
Introduction
User Interface
Design
Tools
36 / 36