<?xml version="1.0" encoding="utf-8"?>
<!-- -*- indent-tabs-mode: nil -*- -->
<chapter id="desktop-tech">
  <title>Desktop-Technologien</title>

<section id="applications-mime">
  <title>Registrieren von Anwendungen und Dateitypen</title>
  <para>Im Zusammenhang mit der Benutzerfreundlichkeit einer Anwendung muss der Benutzer diese auch finden und starten können. Benutzer des GNOME-Desktops starten Anwendungen aus dem Anwendungsmenü oder durch den Zugriff auf Dateien im Dateimanager. Der GNOME-Desktop ermöglicht es, beim Installieren Ihrer Anwendung die entsprechenden Anwendungstypen und Dateitypen hinzuzufügen. Der dafür verwendete Mechanismus ist durch <ulink url="http://www.freedesktop.org/">freedesktop.org</ulink> festgelegt, so dass Ihre Anwendung mit den gleichen Daten auch in anderen Arbeitsumgebungen funktioniert.</para>

  <para>Das Hinzufügen Ihrer Anwendung ist so einfach wie die Bereitstellung einer Dektop-Datei mit den nötigen Informationen. Desktop-Dateien verwenden eine einfache aus Schlüssel-Wert-Paaren aufgebaute Syntax, mit einigen Zusätzen für übersetzte Inhalte oder bestimmte Angaben. Die Desktop-Datei Ihrer Anwendung wird die folgenden Informationen enthalten:</para>

  <itemizedlist>
    <listitem><para>Einen Namen und einen Kommentar, jeweils übersetzt in so viele Sprachen, wie Ihre Anwendung unterstützt,</para></listitem>
    <listitem><para>Eine Liste von Kategorien aus einer festgelegten Liste, die für den Einbau Ihrer Anwendung in das Anwendungsmenü benutzt wird,</para></listitem>
    <listitem><para>Ein Symbol, entweder mit vollem Dateipfad oder einen Namen aus dem Symbolthemensystem,</para></listitem>
    <listitem><para>Eine Liste der Dateitypen, mit denen Ihre Anwendung umgehen kann, und</para></listitem>
    <listitem><para>Der Befehl zur Ausführung Ihrer Anwendung.</para></listitem>
  </itemizedlist>

  <para>Falls Ihre Anwendung mit bestimmten Dateitypen umgehen kann, die dem System noch nicht bekannt sind, ist es notwendig, diese Dateitypen zu registrieren. Auf alle Dateitypen wird über deren MIME-Typ zugegriffen. Beispielsweise haben OggVorbis-Audiodateien den MIME-Typ <literal>application/ogg</literal>. Um einen MIME-Typ hinzuzufügen, müssen Sie eine Beschreibung des Dateityps mittels einer MIME-XML-Informationsdatei erstellen. Diese Datei stellt sowohl einen übersetzten Namen für den Typ als auch Informationen darüber bereit, wie eine Datei diesem Typ richtig zugeordnet werden kann. Dies erfolgt entweder durch Übereinstimmungen des Dateinamens oder durch Untersuchen des Inhalts der Datei.</para>

  <para>Weitere Informationen über Anwendungen finden Sie in <ulink url="http://standards.freedesktop.org/desktop-entry-spec/latest/">The Desktop Entry Specification</ulink> und <ulink url="http://standards.freedesktop.org/menu-spec/latest/">The Desktop Menu Specification</ulink>. Informationen über Dateitypen sind in <ulink url="http://standards.freedesktop.org/shared-mime-info-spec/latest/">The Shared MIME Info Specification</ulink> erhältlich.</para>
</section>

<section id="panel-applets">
  <title>Panel-Applets</title>
  <para>Der GNOME-Desktop enthält flexible und mächtige Panels, zu denen Benutzer eine beliebige Anzahl kleiner Anwendungen hinzufügen können, genannt Panel-Applets. Panel-Applets bieten schnellen Zugriff auf alle Arten nützlicher Informationen und Funktionalitäten. Der GNOME-Desktop wird beispielsweise mit Panel-Applets geliefert, mit deren Hilfe der Benutzer zwischen Fenstern und Arbeitsflächen umschalten oder die gegenwärtigen Wetterbedingungen abrufen kann, und noch vieles mehr.</para>

  <para>Sie können ein Panel-Applet bereitstellen, um die Funktionalität Ihrer Anwendung zu verbessern, oder auch ein einfaches allein arbeitendes Applet anbieten. Wenn Sie einfach nur schnelle Benachrichtigungen anzeigen wollen, sollten Sie das Benachrichtigungsfeld dafür in Betracht ziehen, welches ebenfalls im Panel des Benutzers angezeigt wird. Panel-Applets sollten dann zum Einsatz kommen, wenn mehr Funktionalität geboten werden soll, als mit einem Symbol im Benachrichtigungsfeld möglich ist.</para>

  <para>Panel-Applets sind unabhängige Prozesse, die Bonobo zur Kommunikation mit dem Panel verwenden. Bonobo erlaubt den Applets die Integration im Panel, um ein konsistentes Benutzererlebnis zur Verfügung zu stellen. Beispielsweise enthält das Kontextmenü eines jeden Panel-Applets Einträge zum Entfernen, Verschieben und Sperren des Applets. Jedes Panel-Applet kann noch weitere Einträge zum Kontextmenü hinzufügen, um zusätzliche Aktionen auszuführen. Das <application>Wetterbericht</application>-Applet enthält beispielsweise Kontextmenü-Einträge für einen detaillierten Bericht sowie zum Aktualisieren der angezeigten Informationen.</para>

  <note><para>Beachten Sie, dass Bonobo als veraltet markiert und durch D-Bus und andere Technologien abgelöst wurde.</para></note>

  <para>Weitere Informationen über Panel-Applets finden Sie in der <ulink url="http://library.gnome.org/devel/panel-applet/stable/">Panel Applet Library</ulink>.</para>
</section>

<section id="nofication-area">
  <title>Benachrichtigungsfeld</title>
  <para>Zusätzlich zu Anwendungsstartern und Panel-Applets verfügt das GNOME-Panel auch über ein -Benachrichtigungsfeld, in dem Anwendungen die Benutzer auf Ereignisse hinweisen können. Benachrichtigungen können den Benutzer warnen, wenn neue E-Mails eingetroffen sind, bei verfügbaren Systemaktualisierungen, anstehenden Terminen oder jeder anderen Art von Ereignissen.</para>

  <para>Benachrichtigungen sind einfache Symbole, die Ihre Anwendung im Benachrichtigungsfeld des Panels des Benutzers erscheinen lässt. Ihre Anwendung kann weitere Aktionen ausführen, wenn der Benutzer das Symbol anklickt. Gegenwärtig basiert das Benachrichtigungssystem auf der exsperimentellen Egg-Bibliothek, jedoch wird die nächste Version von GTK+ die Benachrichtigungssymbole direkt unterstützen.</para>

  <para>Das Benachrichtigungsfeld ist eine <ulink url="http://www.freedesktop.org/">freedesktop.org</ulink>-Spezifikation, so dass Ihre Symbole auch in den Benachrichtigungsfeldern anderer Arbeitsumgebungen erscheinen. Weitere Informationen über das Benachrichtigungsfeld finden Sie in der <ulink url="http://standards.freedesktop.org/systemtray-spec/latest/">System Tray Protocol Specification</ulink>.</para>
</section>

<section id="nautilus">
  <title>Dateimanager</title>

  <para>GNOME wird mit <application>Nautilus</application> geleifert, einem intuitiv bedienbaren und mächtigen Dateimanager. Durch die Verwendung der fortgeschrittenen GVFS-Technologie ist <application>Nautilus</application> in der Lage, entfernte Ordner ebenso wie Ordner auf dem lokalen Dateisystem anzuzeigen. Das ermöglicht Benutzern den Zugriff auf alle ihre wo auch immer befindlichen Dateien über eine einheitliche Schnittstelle.</para>

  <para><application>Nautilus</application> verfügt über eine Plugin-Schnittstelle, die Entwickler zur Erweiterung der Funktionalität nutzen können, um weitere Informationen über die Dateien des Benutzers bereitzustellen. Das ermöglicht eine bessere und nachvollziehbarere Bedienbarkeit für Benutzer und macht zusätzliche Anwendungen für die Verwaltung der verschiedenen Dateitypen überflüssig.</para>

  <para><application>Nautilus</application>-Plugins können die Funktionalität des Dateimanagers auf verschiedene Weisen erweitern. Plugins können zusätzliche Informationen zum Eigenschaftsdialog hinzufügen und versorgen den Benutzer dadurch mit allem, was sie über ihre Dateien wissen wollen. GNOME wird beispielsweise bereits mit einem Plugin geliefert, das zusätzliche Informationen über Klang- und Videodateien bietet, wie den verwendeten Codec, die Abmessungen des Videos oder den Künstler und den Albumnamen von Musikdateien, die aus dem Inhalt einer Audio-CD erstellt wurden.</para>

  <para>Plugins können auch Spalten zu einer Listenansicht hinzufügen oder Dateien automatisch mit Emblemen versehen. Dadurch können dem Benutzer sachdienliche Informationen zusaätzlich zur Verfügung gestellt werden. Beispielsweise könnte ein <application>Nautilus</application>-Plugin eine Versionskontrolle für Ordner bereitstellen, die aus einem Versionsverwaltungssystem ausgecheckt worden sind. Benutzer sehen so im Dateimanager,  ob eine Datei aktuell ist oder ob lokale Änderungen vorgenommen wurden.</para>

  <para><application>Nautilus</application> erlaubt es auch Entwicklern, Einträge zum Kontextmenü von Dateien und Ordnern hinzuzufügen. Für die Einträge der Kontextmenüs kann angegeben werden, für welche Dateitypen sie angezeigt werden, so dass nur Einträge erscheinen, die für den betreffenden Dateityp relevant sind. Beispielsweise fügt der <application>Archivmanager</application>, das GNOME-Werkzeug zur Archivierung, einen Eintrag zum direkten Entpacken von Archivdateien hinzu. Zusätzliche Einträge im Kontextmenü bieten leichten Zugriff auf häufig erforderliche Operationen mit den verschiedenen Dateitypen.</para>

  <para>Zusätzlich zur flexiblen Plugin-Architektur kann <application>Nautilus</application> auch ein Vorschaubild für jeden Dateityp anzeigen, für den ein Thumbnailer bereitsteht. Vorschaubilder zeigen eine Vorschau der Datei und helfen Benutzern beim Auffinden einer gesuchten Datei. GNOME kann automatisch Vorschaubilder für die meisten Grafik- und Videodateien erzeugen. Die Einbindung zusätzlicher Thumbnailer-Programme für anwendungsspezifische Dateien ist möglich. Die Vorschaubilder-Verwaltung wird umfassend bei <ulink url="http://www.freedesktop.org/">freedesktop.org</ulink> beschrieben, so dass Ihre Thumbnailer von allen Anwendungen genutzt werden können.</para>
</section>

<section id="window-manager">
  <title>Fenstermanager</title>

  <para>Der Fenstermanager ist ein spezielles Programm, das für das Zeichnen der Rahmen und Titelleisten von Fenstern zuständig ist. Der Fenstermanager verarbeitet alle Operationen, die mit Fenstern ausgeführt werden, zum Beispiel Verschieben, Größenänderungen, Minimieren und Verschieben zwischen den verschiedenen Arbeitsflächen. Fenster werden ohne oder mit geringem Aufwand bei der Anwendungsentwicklung verwaltet. Falls es nötig sein sollte, dass Anwendungen den Fenstermanager beeinflussen sollen, dann kann dies über Funktionsaufrufe in GTK+ geschehen.</para>

  <para>Externe Programme können allerdings auch mit dem Fenstermanager zusammenarbeiten und dessen Verhalten beeinflussen. Mit der libwnck-Bibliothek von GNOME können Anwendungen über die Platzierung und den Status aller Fenster erfragen sowie den Fenstermanager anweisen, Aktionen mit diesen Fenstern auszuführen.</para>

  <para>Die libwnck-Bibliothek bezieht sich nicht speziell auf den GNOME-Fenstermanager. Sämtliche Funktionalität verwenden die »Extended Window Manager Hints« (EWMH). EWMH wurde in Zusammenarbeit mit <ulink url="http://www.freedesktop.org">freedesktop.org</ulink> entwickelt, um plattformübergreifende Interaktion mit dem Fenstermanager über mehrere Desktops hinweg zu ermöglichen.</para>

  <para>Die Interaktion mit dem Fenstermanager kann für einfache Aufgaben verwendet werden, wie die Anzeige der Arbeitsflächen- und Fensterlisten-Applets im GNOME-Panel. Auch komplexere Vorgänge sind möglich, zum Beispiel das automatische Ausführen von Aktionen mit neuen Fenstern aufgrund bestimmter Fenstereigenschaften.</para>
</section>

<section id="control-center">
  <title>Kontrollzentrum</title>
  <para>Der GNOME-Desktop stellt ein Menü für alle auf den Desktop bezogenen Einstellungen und Einstellungen der Systemverwaltung bereit. Einstellungsdialoge können in dieses Menü gesetzt werden, um leichter darauf zugreifen zu können. Sie können Dialoge dort platzieren, indem Sie zur Anwendungsregistrierung in der Kategorie »Settings« hinzufügen. Dialoge erscheinen im Systemverwaltungsmenü, wenn Sie sie sowohl der Kategorie <literal>Settings</literal> als auch <literal>System</literal> zuordnen.</para>

  <para>Wenn Sie einen Dialog anbieten, der Systemverwaltern ermöglicht, Desktop-Systeme zu konfigurieren, so sollten Sie diesen Dialog in das Menü »System« einbinden. Ein Dialog, der Benutzern die Anpassung der Einstellungen für mehrere Anwendungen ermöglicht, findet dagegen seinen Platz im Menü »Einstellungen«. Bitte verwenden Sie diese globalen Menüs nicht für individuelle Einstellungen Ihrer Anwendung.</para>
</section>

<section id="keyring">
  <title>Speichern von Passwörtern</title>

  <para>GNOME stellt eine moderne und sichere Schlüsselbundverwaltung zum Speichern von Benutzerpasswörtern und anderen sicherheitsrelevanten Daten bereit. Anwendungen können die Bibliothek der Schlüsselbundverwaltung zum Speichern und Zugreifen auf Passwörter verwenden. Benutzer können ihre Passwörter in der GNOME-Anwendung <application>Schlüsselbundverwaltung</application> verwalten.</para>

  <para>Die Schlüsselbundverwaltung kann mit mehreren Schlüsselbünden umgehen, wobei jeder Schlüsselbund wiederum eine beliebige Anzahl von Einträgen enthalten kann. Ein Eintrag im Schlüsselbund enthält Daten, zumeist ein Passwort. Jeder Schlüsselbund ist individuell gesperrt, so dass die Benutzer ein Passwort zur Entsperrung bereitstellen müssen. Sobald ein Schlüsselbund entsperrt ist, hat der Benutzer Zugriff auf alle enthaltenen Einträge.</para>

  <para>Die Schlüsselbundverwaltung bietet Zugriffskontrolllisten für jedes Schlüsselbundobjekt, über die Anwendungen Zugriff auf das jeweilige Objekt erhalten können. Falls eine unbekannte Anwendung versucht, Zugriff auf das Schlüsselbundobjekt zu erlangen, fragt die Schlüsselbundverwaltung den Benutzer, ob der Zugriff gewährt oder verweigert werden soll. Das verhindert, dass böswillige oder dürftig programmierte Anwendungen Zugriff auf die sicherheitskritischen Daten des Benutzers erlangen.</para>

  <para>Die im Dateisystem gespeicherten Daten des Schlüsselbundes werden mit »AES block cipher« gespeichert, wobei SHA1 zur Ermittlung der Prüfsumme der Attribute des Objektes verwendet wird. Aufgrund der Prüfsummen der Attribute ist die Schlüsselbundverwaltung in der Lage, nach den von Anwendungen angefragten Daten zu suchen, ohne den eigentlichen Schlüsselbund entsperren zu müssen. Der Schlüsselbund muss erst dann entsperrt werden, wenn tatsächlich ein passendes Objekt gefunden wurde und darauf zugegriffen wird.</para>

  <para>Die Schlüsselbundverwaltung stellt auch einen sitzungsgebundenen Schlüsselbund zur Verfügung. Die Einträge in diesem Schlüsselbund werden niemals dauerhaft gespeichert und gehen verloren, sobald die Sitzung des Benutzers beendet ist. Der Sitzungs-Schhlüsselbund kann zum Speichern von Passwörtern genutzt werden, die nur für die aktuelle Sitzung nötig sind.</para>

  <para>Falls sie GIO zum Zugriff auf entfernte Server verwenden, nutzen Sie automatisch den Vorteil der Schlüsselbundbverwaltung. Wann immer es für GVFS erforderlich ist, den Benutzer zu legitimieren, wird die Option zur Speicherung des Passworts angeboten, entweder im Standard-Schlüsselbund oder im sintzungsgebundenen Schlüsselbund.</para>

  <para>Sie sollten die Schlüsselbundverwaltung immer dann einsetzen, wenn Ihre Anwendung Passwörter oder andere sicherheitsrelevante Daten des Benutzers speichern soll. Die Schlüsselbundverwaltung bietet eine hohe Bedienerfreundlichkeit und hält die Benutzerdaten doch sicher in Verwahrung.</para>

  <para>Weitere Informationen über API-Referenzen finden sie im <ulink url="http://library.gnome.org/devel/gnome-keyring/stable/">gnome-keyring Reference Manual</ulink> und dem <ulink url="http://library.gnome.org/devel/libseahorse/stable/">libseahorse Reference Manual</ulink>.</para>
</section>

<section id="session">
  <title>Sitzungsverwaltung</title>
  <para>GNOME bietet Werkzeuge, die Ihre Anwendung sitzungsübergreifend laufen lassen. Benutzer können sich mit laufenden Anwendungen abmelden und finden bei der nächsten Anmeldung diese Anwendungen völlig wieder hergestellt wieder vor. Um diese Funktionalität bereitzustellen, muss Ihre Anwendung mit der Sitzungsverwaltung verbunden sein und ihren Status speichern, wenn sich der Benutzer abmeldet.</para>

  <note><para>Beachten Sie, dass dieser Abschnitt veraltet ist, da sowohl GnomeClient als auch Libgnomeui als veraltet markiert wurden. Neu geschriebener Code sollte stattdessen <ulink url="http://live.gnome.org/SessionManagement/EggSMClient">EggSMClient</ulink> verwenden. Derzeit wird daran gearbeitet, EggSMClient direkt in GTK+ zu integrieren. Die API- und ABI-Stabilitätsgarantien stellen sicher, dass GnomeClient weiterhin während des Lebenszyklus von GNOME 2 funktioniert und unterstützt wird.</para></note>

  <para>GNOME bietet eine einfache API für die Sitzungsverwaltung in der GNOME-Benutzerschnittstellen-Bibliothek. Im Abschnitt <ulink url="http://library.gnome.org/devel/libgnomeui/stable/GnomeClient.html">GnomeClient</ulink> im <ulink url="http://library.gnome.org/devel/libgnomeui/stable/">GNOME UI Library Reference Manual</ulink> finden Sie weitere Informationen über den Umgang mit der Sitzungsverwaltung.</para>
</section>

<section id="address-book-calendar">
  <title>Adressbuch und Kalender</title>
  <para>Mit dem »Evolution Data Server« bietet GNOME ein Adressbuch und einen Kalender, den alle Anwendungen zum Speichern und Abfragen von Informationen verwenden können. Benutzer brauchen dadurch nicht mehr separate Kontaktlisten in den verschiedenen Anwendungen zu verwalten oder per Hand Ereignisse in .den Kalender zu kopieren</para>

  <para>Leute, die Computer benutzen, wollen in immer mehr zunehmendem Maße mit Freunden oder Kollegen in Verbindung treten. Anwendungen wie E-Mail-Programme, Sofortnachrichtendienste oder Videokonferenzen werden zur Kommunikation mit anderen benutzt. Diese Anwendungen stellen oft Kontaktlisten bereit, um den Benutzer zu unterstützen. Bei der Verwendung von »Evolution Data Server« können Anwendungen jegliche Kontaktinformationen an einem zentralen Ort speichern, was allen Anwendungen die für Kontakt relevanten Daten zur Verfügung stellt.</para>

  <para>Anwendungen können den »Evolution Data Server« ebenfalls dazu verwenden, Einträge des Benutzerkalenders zu speichern oder abzufragen. Beispielsweise zeigt die Uhr im Panel beim Anklicken einen einfachen Kalender an. Falls der Benutzer Termine eingetragen hat, werden diese im Kalender angezeigt. Dadurch wird die Anzeige von Terminen erleichtert, da das Öffnen einer kompletten Kalender-Anwendung nicht nötig ist.</para>

  <para>Weitere Informationen über das Adressbuch finden Sie in der <ulink url="http://gnome.org/projects/evolution/developer-doc/libebook/ch01.html"> Evolution API Reference: libebook</ulink>. Informationen über den Kalender sind in der <ulink url="http://gnome.org/projects/evolution/developer-doc/libecal/index.html"> Evolution API Reference: libecal</ulink> verfügbar.</para>
</section>

<section id="usability">
  <title>Bedienbarkeit</title>
  <para>Der GNOME-Desktop wurde auf Benutzerfreundlichkeit entworfen, um ein konsistentes und einfaches Benutzererlebnis zu ermöglichen. Leute, die Computer benutzen, wollen damit arbeiten (oder spielen!) und nicht hochkomplizierte Benutzeroberflächen-Puzzles erkunden. Bei der Entwicklung Ihrer Anwendung sollten Sie berücksichtigen, wie gut bekannte Benutzerschnittstellen-Muster umgesetzt werden, wie schnell Benutzer den Umgang mit den speziellen Elementen Ihrer Anwendung erlernen können und wie effizient nach diesem Lernprozess Aufgaben ausgeführt werden können.</para>

  <para>GNOME verfügt über hochentwickelte »Human Interface Guidelines«, die Ihnen die Entwicklung attraktiver und benutzerfreundlicher Anwendungen ermöglichen. Zwar wird es keine Richlinien geben, die eine allgemeingültige Antwort auf alle Fragen zur Benutzerfreundlichkeit  geben können. Doch kann es das Verstehen der »Human Interface Guidelines« einfacher machen, eine einfach benutzbare Anwendung zu erstellen. Weitere Informationen finden Sie in den <ulink url="http://library.gnome.org/devel/hig-book/stable/">GNOME Human Interface Guidelines</ulink>. </para>
</section>

<section id="documentation">
  <title>Dokumentation</title>
  <para>Alle Anwendungen sollten Dokumentation zur Verfügung stellen, um Ihren Benutzern beim Verstehen der Anwendung zu helfen und sie bei der Lösung von Problemen zu unterstützen. Zwar erfordert eine Anwendung nicht unbedingt das Lesen der Dokumentation vor der Benutzung, aber eine Dokumentation kann doch ein bedeutsames Werzeug für Benutzer sein, insbesondere für sehr komplexe Anwendungen.</para>

  <para>GNOME bietet eine vereinheitlichte Umgebung zur Bereitstellung von Benutzerdokumentation. Sie können Dokumentation im als Industriestandard üblichen DocBook-Format anbieten. Die Verwendung von DocBook vermeidet, dass Sie sich mit Formatierungsdetails befassen müssen. Ihre Dokumentation wird automatisch formatiert, mit den gleichen konsistenten Konventionen wie die übrige Systemdokumentation.</para>

  <para><application>Yelp</application>, der Hilfebetrachter von GNOME, zeigt Dokumentationen an und ermöglicht Ihnen auch, diese auszudrucken. Eine Auflistung aller Dokumentationen des Systems wird zur Verfügung gestellt, die die Volltextsuche innerhalb der gesamten Dokumentation ermöglicht. Das GNOME-Hilfesystem bietet alle diese Funktionsmerkmale frei verfügbar an.</para>

  <para>Weitere Informationen über das Schreiben von Dokumentation für Ihre Anwendung finden Sie im <ulink url="http://library.gnome.org/devel/gdp-handbook/stable/">GNOME Handbook of Writing Software Documentation</ulink>, <ulink url="http://www.docbook.org/tdg/en/html/docbook.html">DocBook: The Definitive Guide</ulink>, und dem <ulink url="http://library.gnome.org/devel/gdp-style-guide/stable/">GNOME Documentation Style Guide</ulink>.</para>
</section>

</chapter>
