Unter dem Titel "Zeitgemäßes" fassen wir die Werkzeuge
und Techniken zusammen, mit denen wir nach Möglichkeit
arbeiten, wenn im Projekt keine Rücksicht auf bestehende
Altsysteme genommen werden muss.
Stand der Technik ist eine Programmierweise, die konsequent das Prinzip separation of concern befolgt. Damit ist eine klare Aufgabentrennung der Programm- und Systembestandteile gemeint.
Auf Programmebene heißt das, dass jedes Programmmodul (unter Java: Klasse) genau eine bestimmte Aufgabe hat. Damit ist es nicht nur vielseitig einsetzbar, sondern zeigt bei Änderungen keine unerwarteten Nebeneffekte. Auf Systemebene bedeutet es, dass Präsentationsschicht (die "Programmoberfläche"), die Geschäftslogik (das eigentliche "Programm") und die Datenebene (das Datenbanksystem mit den Nutzerdaten) klar voneinander abgegrenzt werden, um möglichst unabhängig voneinander zu sein.
Moderne verteilte Geschäftsapplikationen sind in der Regel webbasiert und nutzen einen handelsüblichen Internet-Browser für die Anzeige der Anwendungsoberfläche. Da der Browser zustandsfrei arbeitet, sich also zwischen zwei HTML-Seiten keinerlei Daten "merkt", muss zwischen der reinen Anzeige und der Programmlogik noch eine Instanz gesetzt werden, die zwischen beiden Seiten vermittelt und Nutzerdaten weitergibt bzw. in Empfang nimmt. Dieser Ansatz wird als Model-View-Controller (MVC) bezeichnet.
Auf der anderen Seite - Richtung Datenbank - steht dem Wunsch, Programmlogik und Datenbankebene möglichst sauber voneinander abzugrenzen, die Tatsache im Weg, dass moderne Datenbanksysteme (DBMS) zwar alle über SQL kommunizieren, aber jede einen eigenen Dialekt dieser Abfragesprache pflegt. Hier hilft eine zusätzliche Programmlogik, die als Dolmetscher fungiert. Sie "redet" mit der Programmlogik in einer bestimmten Sprache und spricht automatisch den passenden SQL-Dialekt mit den DBMS. Dadurch kann sich der Kunde das DBMS frei aussuchen und selbst Migrationsvorhaben, also das Austauschen des DBMS verlieren so weitgehend ihren Schrecken.
Dank einer überaus dynamischen OpenSource-Entwicklergemeinde muss nicht mehr alles "zu Fuß" programmiert werden. Für viele Aufgabenstellungen gibt es leistungsfähige Frameworks ("Baukästen"). Einige von ihnen sind so umfangreich und leistungsfähig, dass der Aufwand für ihre Beherrschung dem Erlernen einer Programmiersprache entspricht. Aber es lohnt sich.
Nachfolgend geben wir einen Überblick über unsere bevorzugten Werkzeuge.
Stand der Technik ist eine Programmierweise, die konsequent das Prinzip separation of concern befolgt. Damit ist eine klare Aufgabentrennung der Programm- und Systembestandteile gemeint.
Auf Programmebene heißt das, dass jedes Programmmodul (unter Java: Klasse) genau eine bestimmte Aufgabe hat. Damit ist es nicht nur vielseitig einsetzbar, sondern zeigt bei Änderungen keine unerwarteten Nebeneffekte. Auf Systemebene bedeutet es, dass Präsentationsschicht (die "Programmoberfläche"), die Geschäftslogik (das eigentliche "Programm") und die Datenebene (das Datenbanksystem mit den Nutzerdaten) klar voneinander abgegrenzt werden, um möglichst unabhängig voneinander zu sein.
Moderne verteilte Geschäftsapplikationen sind in der Regel webbasiert und nutzen einen handelsüblichen Internet-Browser für die Anzeige der Anwendungsoberfläche. Da der Browser zustandsfrei arbeitet, sich also zwischen zwei HTML-Seiten keinerlei Daten "merkt", muss zwischen der reinen Anzeige und der Programmlogik noch eine Instanz gesetzt werden, die zwischen beiden Seiten vermittelt und Nutzerdaten weitergibt bzw. in Empfang nimmt. Dieser Ansatz wird als Model-View-Controller (MVC) bezeichnet.
Auf der anderen Seite - Richtung Datenbank - steht dem Wunsch, Programmlogik und Datenbankebene möglichst sauber voneinander abzugrenzen, die Tatsache im Weg, dass moderne Datenbanksysteme (DBMS) zwar alle über SQL kommunizieren, aber jede einen eigenen Dialekt dieser Abfragesprache pflegt. Hier hilft eine zusätzliche Programmlogik, die als Dolmetscher fungiert. Sie "redet" mit der Programmlogik in einer bestimmten Sprache und spricht automatisch den passenden SQL-Dialekt mit den DBMS. Dadurch kann sich der Kunde das DBMS frei aussuchen und selbst Migrationsvorhaben, also das Austauschen des DBMS verlieren so weitgehend ihren Schrecken.
Dank einer überaus dynamischen OpenSource-Entwicklergemeinde muss nicht mehr alles "zu Fuß" programmiert werden. Für viele Aufgabenstellungen gibt es leistungsfähige Frameworks ("Baukästen"). Einige von ihnen sind so umfangreich und leistungsfähig, dass der Aufwand für ihre Beherrschung dem Erlernen einer Programmiersprache entspricht. Aber es lohnt sich.
Nachfolgend geben wir einen Überblick über unsere bevorzugten Werkzeuge.
Programmiersprachen
Java. Punkt.
Java ist einfach eine phantastische Sprache.
Java ist (weitgehend) plattformunabhängig, so dass Sie nicht festgelegt werden, mit welcher Hardware oder welchem Betriebssystem Sie zu arbeiten haben.
Java ist längst "erwachsen" geworden und hat die Kinderkrankheiten abgelegt. Auch Geschwindigkeit ist mit Java 5, vor allem aber mit Java 6 kein Thema mehr. Und Java ist robust.
Durch zahlreiche leistungsfähige Frameworks sind auch viele komplexe Anforderungen mit erschwinglichem Aufwand umsetzbar geworden.
Java ist einfach eine phantastische Sprache.
Java ist (weitgehend) plattformunabhängig, so dass Sie nicht festgelegt werden, mit welcher Hardware oder welchem Betriebssystem Sie zu arbeiten haben.
Java ist längst "erwachsen" geworden und hat die Kinderkrankheiten abgelegt. Auch Geschwindigkeit ist mit Java 5, vor allem aber mit Java 6 kein Thema mehr. Und Java ist robust.
Durch zahlreiche leistungsfähige Frameworks sind auch viele komplexe Anforderungen mit erschwinglichem Aufwand umsetzbar geworden.
Frameworks
Früher nannte man sie "Programmbibliotheken",
inzwischen ist bei vielen mehr der Begriff
"Zauberkasten" angebracht, so leistungsfähig sind sie
geworden.
Hier einige unserer "Lieblings-Frameworks".
Struts 2
Struts dient der Umsetzung des MVC-Prinzips, es übernimmt dabei formal die Rolle des Controllers. Dabei bietet Struts zum Model (der Programmlogik) hin spezielle Java-Klassen, mit denen die HTTP-Request bzw. -Responses mit ihren transportierten Informationen als Objekte gekapselt werden.
In Version 1 von Struts mussten diese Objekte in einer Art "Vermittler-Klasse", sog. actions, gefüllt bzw. ausgelesen werden. Funktionabel und formal sauber, aber spröde in der Handhabung. Für die Darstellung werden JavaServerPages (JSP) genutzt.
Mit Struts 2 entfallen diese Objekte für den Programmierer komplett; die Eigenschaften der actions können nun direkt in den JSPs angesprochen werden. Ein fantastischer Komfort und eine erstklassige Leistung seitens der Entwickler - Hut ab.
Die Steuerung des Ablaufs übernimmt eine spezielle XML-Datei. Die darin enthaltenen Steuerdaten legen fest, was bei den einzelnen Rückgabewerten der actions passieren soll. Es ist also möglich, den Programmablauf durch Anpassungen an diesen Steuerdaten zu verändern, ohne den Programmcode selbst zu editieren.
Tiles 2
Tiles sind eine Ergänzung zu Struts, können inzwischen aber auch unabhängig davon eingesetzt werden.
Sie erlauben ein dynamisches include von JSP-Fragmenten in standardisierte JSPs mit Platzhaltern für die jeweiligen Fragmente. Auf diese Weise müssen nicht sämtliche JSPs komplett definiert werden, was bei strukturellen Layout-Änderungen bedeutet, diese in allen JSPs nachvollziehen zu müssen. Stattdessen werden Schablonen-JSPs erstellt, in die kontextabhängig die passenden JSP-Fragmente mit den Inhalten eingeblendet werden. Strukturänderungen betreffen dann nur noch die Schablonen-JSPs.
Hibernate
Hibernate ist der "Datenbank-Dolmetscher", der oben erwähnt wurde. Mehr noch, es ist in vieler Hinsicht der stille Datenbank-Administrator, weil mit Hilfe von Steueranweisungen - entweder mit XML-Datei oder über annotations - die passenden Tabellen im DBMS aus den Objektklassen automatisch generiert und gepflegt werden.
Hibernate besitzt eine eigene SQL-ähnliche Abfragesprache, HQL genannt, deren Befehle in die passende Syntax des angekoppelten DBMS übersetzt werden. Die Verknüpfung mit einem DBMS erfolgt wiederum über Steuerinformationen in einer XML-Datei, so dass keinerlei DBMS-spezifische Informationen mehr im Programmcode enthalten sind.
Hibernate bietet sogar die Möglichkeit, Abfragen vollständig objektorientiert in einem Query by Example-Modus auszuführen, der komplett ohne HQL auskommt.
Hier einige unserer "Lieblings-Frameworks".
Struts 2
Struts dient der Umsetzung des MVC-Prinzips, es übernimmt dabei formal die Rolle des Controllers. Dabei bietet Struts zum Model (der Programmlogik) hin spezielle Java-Klassen, mit denen die HTTP-Request bzw. -Responses mit ihren transportierten Informationen als Objekte gekapselt werden.
In Version 1 von Struts mussten diese Objekte in einer Art "Vermittler-Klasse", sog. actions, gefüllt bzw. ausgelesen werden. Funktionabel und formal sauber, aber spröde in der Handhabung. Für die Darstellung werden JavaServerPages (JSP) genutzt.
Mit Struts 2 entfallen diese Objekte für den Programmierer komplett; die Eigenschaften der actions können nun direkt in den JSPs angesprochen werden. Ein fantastischer Komfort und eine erstklassige Leistung seitens der Entwickler - Hut ab.
Die Steuerung des Ablaufs übernimmt eine spezielle XML-Datei. Die darin enthaltenen Steuerdaten legen fest, was bei den einzelnen Rückgabewerten der actions passieren soll. Es ist also möglich, den Programmablauf durch Anpassungen an diesen Steuerdaten zu verändern, ohne den Programmcode selbst zu editieren.
Tiles 2
Tiles sind eine Ergänzung zu Struts, können inzwischen aber auch unabhängig davon eingesetzt werden.
Sie erlauben ein dynamisches include von JSP-Fragmenten in standardisierte JSPs mit Platzhaltern für die jeweiligen Fragmente. Auf diese Weise müssen nicht sämtliche JSPs komplett definiert werden, was bei strukturellen Layout-Änderungen bedeutet, diese in allen JSPs nachvollziehen zu müssen. Stattdessen werden Schablonen-JSPs erstellt, in die kontextabhängig die passenden JSP-Fragmente mit den Inhalten eingeblendet werden. Strukturänderungen betreffen dann nur noch die Schablonen-JSPs.
Hibernate
Hibernate ist der "Datenbank-Dolmetscher", der oben erwähnt wurde. Mehr noch, es ist in vieler Hinsicht der stille Datenbank-Administrator, weil mit Hilfe von Steueranweisungen - entweder mit XML-Datei oder über annotations - die passenden Tabellen im DBMS aus den Objektklassen automatisch generiert und gepflegt werden.
Hibernate besitzt eine eigene SQL-ähnliche Abfragesprache, HQL genannt, deren Befehle in die passende Syntax des angekoppelten DBMS übersetzt werden. Die Verknüpfung mit einem DBMS erfolgt wiederum über Steuerinformationen in einer XML-Datei, so dass keinerlei DBMS-spezifische Informationen mehr im Programmcode enthalten sind.
Hibernate bietet sogar die Möglichkeit, Abfragen vollständig objektorientiert in einem Query by Example-Modus auszuführen, der komplett ohne HQL auskommt.
Web-Techniken
Wie erwähnt, erfolgt die Darstellung der
Anwendungsoberfläche bei modernen verteilten
Geschäftsapplikationen über einen handelsüblichen
Internet-Browser.
Der Vorteil: keine Installation vor Ort, Plattformunabhängigkeit, keine Interferenz mit anderen installierten Programmen oder Treibern, keine veralteten Versionen an den Arbeitsplatzrechnern.
Die Geschäftsapplikation kommuniziert mit dem Browser (und damit dem Anwender) über einen Standard (HTML/CSS), der sich mittlerweile weltweit etabliert hat und akzeptiert ist.
Natürlich hat diese blendende Liste von Vorteilen ihren Haken: die Browserkompatibilität, oder vielmehr Inkompatibilität.
Nachfolgend werden die wichtigsten Web-Techniken vorgestellt.
Java Server Pages (JSP)
Java Server Pages wurden eingeführt, um dem MVC-Konzept Rechnung zu tragen. Dafür wurde ein Verfahren benötigt, mit dem außerhalb des eigentlichen Programmcodes (Model) die HTML-Seiten für den Browser (View) dynamisch generiert werden konnten. Außerdem sollte die Vermischung von HTML-Codeanteilen mit Java vermieden werden.
Java Server Pages ähneln äußerlich (X)HTML-Seiten; es sind sogar genau genommen welche, allerdings werden sie durch zusätzliche Markups (Tags) ergänzt. Diese bewirken das Einbetten von Daten aus der Applikation und die Festlegung des Antwortverhaltens (Response). Auch einfache Operationen und Berechnungen sowie Bedingungen sind möglich - ohne Java-Anteile.
Zur Laufzeit werden die JSPs in Servlets umgewandelt, also genau jene Java-Klassen mit HTML-Codeanteilen, die man eigentlich vermeiden wollte.
Also eine Mogelpackung? Nein - denn JSPs können tatsächlich auch im laufenden Betrieb geändert werden und werden von der Java-Engine automatisch in Servlets konvertiert. Damit sind sie tatsächlich unabhängig von der eigentlichen Programmlogik.
Cascading Style Sheets (CSS)
CSS sind so etwas wie Formatvorlagen für HTML. Während HTML vor allem den Zweck hat, Inhalte (Text) zu transportieren, dienen CSS der Darstellung - von Layout über Farben bis hin zur Typographie. Aktuell ist CSS 2.
Während viele moderne Browser den CSS 2-Standard recht ordentlich unterstützen, leistet sich selbst die aktuelle Version des Marktführers nach wie vor diverse Eigenmächtigkeiten in Sachen CSS-Interpretation.
Dennoch - mit CSS können heute schon vielfältige und ästhetisch angenehme Darstellungen in den Browser gezaubert werden und es gibt Anzeichen, dass auch der Marktführer in Zukunft auf den Standard einschwenken wird.
Der Vorteil: keine Installation vor Ort, Plattformunabhängigkeit, keine Interferenz mit anderen installierten Programmen oder Treibern, keine veralteten Versionen an den Arbeitsplatzrechnern.
Die Geschäftsapplikation kommuniziert mit dem Browser (und damit dem Anwender) über einen Standard (HTML/CSS), der sich mittlerweile weltweit etabliert hat und akzeptiert ist.
Natürlich hat diese blendende Liste von Vorteilen ihren Haken: die Browserkompatibilität, oder vielmehr Inkompatibilität.
Nachfolgend werden die wichtigsten Web-Techniken vorgestellt.
Java Server Pages (JSP)
Java Server Pages wurden eingeführt, um dem MVC-Konzept Rechnung zu tragen. Dafür wurde ein Verfahren benötigt, mit dem außerhalb des eigentlichen Programmcodes (Model) die HTML-Seiten für den Browser (View) dynamisch generiert werden konnten. Außerdem sollte die Vermischung von HTML-Codeanteilen mit Java vermieden werden.
Java Server Pages ähneln äußerlich (X)HTML-Seiten; es sind sogar genau genommen welche, allerdings werden sie durch zusätzliche Markups (Tags) ergänzt. Diese bewirken das Einbetten von Daten aus der Applikation und die Festlegung des Antwortverhaltens (Response). Auch einfache Operationen und Berechnungen sowie Bedingungen sind möglich - ohne Java-Anteile.
Zur Laufzeit werden die JSPs in Servlets umgewandelt, also genau jene Java-Klassen mit HTML-Codeanteilen, die man eigentlich vermeiden wollte.
Also eine Mogelpackung? Nein - denn JSPs können tatsächlich auch im laufenden Betrieb geändert werden und werden von der Java-Engine automatisch in Servlets konvertiert. Damit sind sie tatsächlich unabhängig von der eigentlichen Programmlogik.
Cascading Style Sheets (CSS)
CSS sind so etwas wie Formatvorlagen für HTML. Während HTML vor allem den Zweck hat, Inhalte (Text) zu transportieren, dienen CSS der Darstellung - von Layout über Farben bis hin zur Typographie. Aktuell ist CSS 2.
Während viele moderne Browser den CSS 2-Standard recht ordentlich unterstützen, leistet sich selbst die aktuelle Version des Marktführers nach wie vor diverse Eigenmächtigkeiten in Sachen CSS-Interpretation.
Dennoch - mit CSS können heute schon vielfältige und ästhetisch angenehme Darstellungen in den Browser gezaubert werden und es gibt Anzeichen, dass auch der Marktführer in Zukunft auf den Standard einschwenken wird.
X-Techniken
Neben den anderen
vorgestellten Werkzeugen treffen Sie zwischendurch
immer wieder auf das Akronym XML. Es steht für
eXtensible Markup Language und stellt so etwas wie
eine "Grammatik" für Markup-Sprachen dar.
XML wird durch Techniken ergänzt, die es zu einem sehr mächtigen Werkzeug machen und zusammenfassend als X-Techniken bezeichnet werden.
XML
Der Name Extensible Markup Language ist etwas irreführend, da es sich nicht wirklich um eine Sprache handelt, nicht einmal um einen Satz von Markups (Tags) wie bei HTML, dem der Name entlehnt ist. XML stellt eher ein Regelwerk für selbstgewählte Markups dar. Dadurch lassen sich Informationen mit beliebigen selbstgewählten Tags strukturieren. Und da Tags verschachtelt werden dürfen, können auch die Inhalte beliebig hierarchisch gegliedert werden. Tags können selber noch Attribute enthalten, die das Tag näher beschreiben oder Randbedingungen transportieren.
Die Regeln sorgen für die "strukturelle Integrität" der Gesamtdatei, ähnlich wie das von HTML bekannt ist. Das Stichwort ist "Wohlgeformtheit".
XML ist hervorragend für den Datenaustausch geeignet, da die Daten sich weitgehend selbst erklären, wenn die Tagbezeichnungen klug gewählt sind. Außerdem sind XML-Dateien reine Textdateien und damit keinem proprietären Binärformat unterworfen. Sie eignen sich damit auch gut für die Archivierung, weil kein spezielles Programm erforderlich ist, um sie zu lesen. Auch Konfigurationsdateien werden heute fast ausschließlich mit XML erstellt.
DTD/XSD
Ein wohlgeformtes XML-Dokument muss noch lange nicht korrekt sein. Auch wenn Tags konsequent falsch geschrieben werden, sind sie für XML formal gültig. Um den Sprachschatz (die Tag- und Attributnamen) festlegen zu können, gab es Document Type Definitions (DTD), in der die Regeln dafür hinterlegt wurden. Ein XML-Dokument, das mit einer DTD-Datei verknüpft ist und dessen Regeln einhält, heißt gültig.
DTD wurden schnell als zu kompliziert abgelehnt. Dazu ein Zitat von Steve Holzner aus seinem XML-Standardwerk: "Das W3C beauftragte ein Komitee mit der Bearbeitung dieses Problems und brachte eine Lösung hervor, die viel komplexer war, als es DTDs je waren: die XML-Schemata." ;-)
Dafür sind XML Schema Definitions (XSD) allerdings viel leistungsfähiger und genauer als DTDs. In Schemata nun auch Datentypen für die einzelnen Tags und Attribute festgelegt werden und vieles mehr.
XSL
Die Extensible Styles Language (XSL) ist eine mächtige Ergänzung zur Manipulation und Formatierung von XML-Daten und besteht aus zwei Teilen - einer Transformationssprache (XSLT) und einer Formatierungssprache (XSL-FO).
Mit XSLT wird ein Ausgangs-XML-Dokument in ein Ziel-XML-Dokument transformiert. Dabei kann das Zieldokument ein ganz anderes Format erhalten als das Ausgangsdokument; sogar ein komplett anderer Tag-Satz, also eine andere "XML-Sprache" ist möglich. Es können Teile eines Ausgangsdokuments extrahiert werden und andere Informationen ergänzt werden. Die Möglichkeiten sind vielfältig.
Damit ist XSLT hervorragend für den Datenaustausch geeignet, um Inhalte von einer Quellstruktur in eine Zielstruktur umzulesen. Natürlich müssen Quell- und Zielfelder inhaltlich übereinstimmen.
XSL-Formatierungsobjekte erlauben die Ergänzung der XML-Daten um Formatierungsinformationen. Die damit unterstützten Eigenschaften orientieren sich am CSS2-Standard. Auf diese Weise ist es z.B. möglich, ein XML-Dokument in das PDF-Format zu übertragen.
XML wird durch Techniken ergänzt, die es zu einem sehr mächtigen Werkzeug machen und zusammenfassend als X-Techniken bezeichnet werden.
XML
Der Name Extensible Markup Language ist etwas irreführend, da es sich nicht wirklich um eine Sprache handelt, nicht einmal um einen Satz von Markups (Tags) wie bei HTML, dem der Name entlehnt ist. XML stellt eher ein Regelwerk für selbstgewählte Markups dar. Dadurch lassen sich Informationen mit beliebigen selbstgewählten Tags strukturieren. Und da Tags verschachtelt werden dürfen, können auch die Inhalte beliebig hierarchisch gegliedert werden. Tags können selber noch Attribute enthalten, die das Tag näher beschreiben oder Randbedingungen transportieren.
Die Regeln sorgen für die "strukturelle Integrität" der Gesamtdatei, ähnlich wie das von HTML bekannt ist. Das Stichwort ist "Wohlgeformtheit".
XML ist hervorragend für den Datenaustausch geeignet, da die Daten sich weitgehend selbst erklären, wenn die Tagbezeichnungen klug gewählt sind. Außerdem sind XML-Dateien reine Textdateien und damit keinem proprietären Binärformat unterworfen. Sie eignen sich damit auch gut für die Archivierung, weil kein spezielles Programm erforderlich ist, um sie zu lesen. Auch Konfigurationsdateien werden heute fast ausschließlich mit XML erstellt.
DTD/XSD
Ein wohlgeformtes XML-Dokument muss noch lange nicht korrekt sein. Auch wenn Tags konsequent falsch geschrieben werden, sind sie für XML formal gültig. Um den Sprachschatz (die Tag- und Attributnamen) festlegen zu können, gab es Document Type Definitions (DTD), in der die Regeln dafür hinterlegt wurden. Ein XML-Dokument, das mit einer DTD-Datei verknüpft ist und dessen Regeln einhält, heißt gültig.
DTD wurden schnell als zu kompliziert abgelehnt. Dazu ein Zitat von Steve Holzner aus seinem XML-Standardwerk: "Das W3C beauftragte ein Komitee mit der Bearbeitung dieses Problems und brachte eine Lösung hervor, die viel komplexer war, als es DTDs je waren: die XML-Schemata." ;-)
Dafür sind XML Schema Definitions (XSD) allerdings viel leistungsfähiger und genauer als DTDs. In Schemata nun auch Datentypen für die einzelnen Tags und Attribute festgelegt werden und vieles mehr.
XSL
Die Extensible Styles Language (XSL) ist eine mächtige Ergänzung zur Manipulation und Formatierung von XML-Daten und besteht aus zwei Teilen - einer Transformationssprache (XSLT) und einer Formatierungssprache (XSL-FO).
Mit XSLT wird ein Ausgangs-XML-Dokument in ein Ziel-XML-Dokument transformiert. Dabei kann das Zieldokument ein ganz anderes Format erhalten als das Ausgangsdokument; sogar ein komplett anderer Tag-Satz, also eine andere "XML-Sprache" ist möglich. Es können Teile eines Ausgangsdokuments extrahiert werden und andere Informationen ergänzt werden. Die Möglichkeiten sind vielfältig.
Damit ist XSLT hervorragend für den Datenaustausch geeignet, um Inhalte von einer Quellstruktur in eine Zielstruktur umzulesen. Natürlich müssen Quell- und Zielfelder inhaltlich übereinstimmen.
XSL-Formatierungsobjekte erlauben die Ergänzung der XML-Daten um Formatierungsinformationen. Die damit unterstützten Eigenschaften orientieren sich am CSS2-Standard. Auf diese Weise ist es z.B. möglich, ein XML-Dokument in das PDF-Format zu übertragen.
Datenbanken
Datenbanken sind das
"Gedächtnis" einer Geschäftsapplikation. Die Wahl des
passenden Datenbanksystems und seine korrekte
Implementierung können sich entscheidend auf die
Leistungsfähigkeit der Gesamtapplikation auswirken.
Wir bieten langjährige Erfahrungen mit zwei Datenbanksystemen, die ein breites Feld von Anforderungen abdecken und beide in ihren jeweiligen Bereichen führend sind.
MySQL
Unter den webbasierten Anwendungen ist MySQL mit Abstand das beliebteste DBMS. Das liegt zum einen daran, das es als OpenSource-Produkt freigegeben wurde und bei kommerzieller Nutzung mit moderaten Lizenzgebühren auskommt. Es ist einfach aufzusetzen und ist auf vielen Linux-basierten Paketlösungen (Rootserver bzw. Virtual Server) bereits fester Bestandteil. Es ist mit dem Tool phpmyadmin leicht zu warten. Auch wenn es inzwischen viele zentrale Eigenschaften bietet, die von einem modernen relationalen DBMS erwartet werden, ist seine Stärke die Geschwindigkeit seiner einfachen ISAM-Tabellen. Diese unterstützen zwar keine Transaktionen, aber das kann bei weniger komplexen Anwendungen von der Programmlogik abgefangen werden. Frameworks wie Hibernate übernehmen diese Rolle zum großen Teil.
Oracle
Oracle ist ein klassisches relationales Datenbanksystem mit einer enormen Leistungsfähigkeit. Oracle ist Marktführer und lässt sich das entsprechend entlohnen. Allerdings wird dafür auch ein guter Service geboten. Das DBMS ist absolut robust, dafür aber recht komplex und das Aufsetzen einer Oracle-Datenbank erfordert schon tiefergehende Administratorkenntnisse.
Komfort sucht man in der Oracle-Welt vergeblich. Das DBMS erwartet einen erfahrenen Administrator und verhält sich entsprechend schörkellos. Die Administration erfolgt nach wie vor am besten per Skript, das zugleich auch die Dokumentation ist.
Windows-üblichen Überblick verschafft ein hervorragendes Tool von Quest, das auf den netten Namen Toad (Kröte) hört.
Wir bieten langjährige Erfahrungen mit zwei Datenbanksystemen, die ein breites Feld von Anforderungen abdecken und beide in ihren jeweiligen Bereichen führend sind.
MySQL
Unter den webbasierten Anwendungen ist MySQL mit Abstand das beliebteste DBMS. Das liegt zum einen daran, das es als OpenSource-Produkt freigegeben wurde und bei kommerzieller Nutzung mit moderaten Lizenzgebühren auskommt. Es ist einfach aufzusetzen und ist auf vielen Linux-basierten Paketlösungen (Rootserver bzw. Virtual Server) bereits fester Bestandteil. Es ist mit dem Tool phpmyadmin leicht zu warten. Auch wenn es inzwischen viele zentrale Eigenschaften bietet, die von einem modernen relationalen DBMS erwartet werden, ist seine Stärke die Geschwindigkeit seiner einfachen ISAM-Tabellen. Diese unterstützen zwar keine Transaktionen, aber das kann bei weniger komplexen Anwendungen von der Programmlogik abgefangen werden. Frameworks wie Hibernate übernehmen diese Rolle zum großen Teil.
Oracle
Oracle ist ein klassisches relationales Datenbanksystem mit einer enormen Leistungsfähigkeit. Oracle ist Marktführer und lässt sich das entsprechend entlohnen. Allerdings wird dafür auch ein guter Service geboten. Das DBMS ist absolut robust, dafür aber recht komplex und das Aufsetzen einer Oracle-Datenbank erfordert schon tiefergehende Administratorkenntnisse.
Komfort sucht man in der Oracle-Welt vergeblich. Das DBMS erwartet einen erfahrenen Administrator und verhält sich entsprechend schörkellos. Die Administration erfolgt nach wie vor am besten per Skript, das zugleich auch die Dokumentation ist.
Windows-üblichen Überblick verschafft ein hervorragendes Tool von Quest, das auf den netten Namen Toad (Kröte) hört.
Klicken Sie einfach die Überschriften an, um mehr Informationen zu erhalten.