old-www/HOWTO/HighQuality-Apps-HOWTO/gui.html

250 lines
6.8 KiB
HTML

<HTML
><HEAD
><TITLE
>Graphical User Interface</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
"><LINK
REL="HOME"
TITLE="Designing Integrated High Quality Linux Applications"
HREF="index.html"><LINK
REL="PREVIOUS"
TITLE="Security: The Omnipresent Concept"
HREF="security.html"><LINK
REL="NEXT"
TITLE="Starting Your Software Automatically on Boot"
HREF="boot.html"></HEAD
><BODY
CLASS="section"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
SUMMARY="Header navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>Designing Integrated High Quality Linux Applications</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="security.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
></TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="boot.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="section"
><H1
CLASS="section"
><A
NAME="gui">8. Graphical User Interface</H1
><P
>Everybody loves graphical interfaces. Many times they make our life easyer, and this way helps to popularize a Software, because the learning curve get smaller. But for the everyday use, a command with many options and a good manual becomes much more practical, making scripts easy, remote access, etc. So the suggestion is, whenever is possible, to provide both interfaces: graphical for the beginners, and the powerfull command line for the expert.</P
><DIV
CLASS="section"
><H2
CLASS="section"
><A
NAME="kdegnome">8.1. KDE, GNOME, Java or Motif?</H2
><P
>Better then a simple graphical interface is a <EM
>consistent integrated desktop</EM
>. So developer, please do not reinvent the wheel using proprietary libraries. Today's Linux desktop is full-featured, complete <SPAN
CLASS="acronym"
>API</SPAN
>s that makes your life easier.</P
><P
>The desktops today in Linuxland are <SPAN
CLASS="acronym"
>KDE</SPAN
> and <SPAN
CLASS="acronym"
>GNOME</SPAN
>. Try to allways use one of them, or both.</P
><P
><A
HREF="http://www.kde.org/"
TARGET="_top"
>KDE</A
> is the most outstanding, offering a true consistent desktop, flexible, with an extremely elegant architecture, using components (like Microsoft's COM and COM+), intercommunication, performance etc. It is constantly evolving, and is developed in C++. Its applications have an familiar integrated look-and-feel, is light and mature. People say that KDE 3 is shiny diamond, ready to be used, and is my first suggestion to you.</P
><P
><A
HREF="http://www.gnome.org/"
TARGET="_top"
>GNOME</A
> also brings the integrated desktop proposal, but it is far from the maturity and ease-of-use of KDE. From the other side, is very well supported by the comunity, and good improvements are appearing.</P
><P
>Motif isn't an integrated desktop. It is a widgets library (button, scrollbar etc), plus a window-manager. It was born commercial, is mature and popular in commercial applications. But is considered obsolete in front of KDE and GNOME, that integrates the desktop. Motif source code was opened by the <A
HREF="http://www.opengroup.org/"
TARGET="_top"
>OpenGroup</A
> and because that was renamed to <A
HREF="http://www.openmotif.org/"
TARGET="_top"
>OpenMotif</A
>.</P
><P
><A
HREF="http://java.sun.com/"
TARGET="_top"
>Java</A
> is being used more and more for graphical interfaces, specially in server Software, where the graphics are only helpers to configuration and administration. </P
></DIV
><DIV
CLASS="section"
><H2
CLASS="section"
><A
NAME="webgui">8.2. Web Interface: Access from Anywhere</H2
><P
>Nowadays every desktop has a browser, and if your Product is a server application, the Web Interface is the right choice, because it lets a user administer it from anywhere. But keep in mind the security and organization of your CGIs, because they use to be front doors for crackers. Web interface (CGI) is completely different programming paradigm. Try to understand it conceptually first, starting from "how a web-server works", "what is a URL", etc, to get on this without compromising your Product's security.</P
></DIV
><DIV
CLASS="section"
><H2
CLASS="section"
><A
NAME="wizard">8.3. Wizards and Graphical Installers</H2
><P
>Specially for a commercial Product, your Software must provide a graphical installer. Believe me, they are impressive in a demonstration, and CIOs love them.</P
><P
>More then just installation, a wizard helps in the initial configuration of your Product, collects info like activation key etc, and shows the developer license.</P
><P
>A wizard should not do more than this:</P
><P
></P
><OL
TYPE="1"
><LI
><P
>Ask which modules to install, experienced by the user as checkboxes.</P
></LI
><LI
><P
>Get the necessary info to build an initial <A
HREF="software.html#software.soul"
>configuration (the soul)</A
> for the Software.</P
></LI
><LI
><P
>Install the selected modules, that are in fact RPM files. Each checkbox must represent one or more RPMs, because each RPM is a indivisible (atomic) portion of a Software.</P
></LI
><LI
><P
>After RPMs installation, change the <A
HREF="software.html#software.soul"
>configuration (soul)</A
> files (marked this way in the RPMs), or create some <A
HREF="software.html#software.content"
>content</A
>, based on the data the user gave to the wizard.</P
></LI
></OL
><P
>So the wizard hides the RPM installation and writes initial personalization. RPM is still responsable for putting all your software files in the correct places. This role should never be of your installer. Think that an experienced user (there are a lot of them in the Linux world) should be able to reproduce your Product installation without the graphical help, using only RPM commands. In fact, in big data centers, where people make mass installations, a graphical installer only disturbs.</P
><P
>RPM provides tools that help your graphical installer interact with them, like installation percentage viewer. Documentation for use are allways in the RPM manual (<B
CLASS="command"
>man rpm</B
>) and in the <A
HREF="http://www.rpm.org/max-rpm/"
TARGET="_top"
>Maximum RPM</A
> book.</P
></DIV
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
SUMMARY="Footer navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="security.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
ACCESSKEY="H"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="boot.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>Security: The Omnipresent Concept</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
>&nbsp;</TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>Starting Your Software Automatically on Boot</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>