Mit Ausnahme des Open-Source- Projekts NHibernate [2] sitzen die Anbieter im deutschsprachigen Raum. Was ist ORM?

Größe: px
Ab Seite anzeigen:

Download "Mit Ausnahme des Open-Source- Projekts NHibernate [2] sitzen die Anbieter im deutschsprachigen Raum. Was ist ORM?"

Transkript

1 Tools Objektrelationale Mapper für.net im Vergleich Die Qual der Wahl Während sich die Programmierung schon lange dem objektorientierten Paradigma verschrieben hat, bewährt sich beim Speichern von Daten nach wie vor die relationale Methode. Objektrelationale Mapper verbinden beide Welten. Dr. Holger Schwichtenberg vergleicht LINQ-to-SQL mit dem ADO.NET Entity Framework, NHibernate, Vanatec Open Access, NDO und Genome. In der Java-Welt gehört das objektrelationale Mapping (ORM) schon lange zu den etablierten Techniken. Microsoft hat diesen Trend lange verschlafen und es nicht vermocht, ein geeignetes Produkt zur Marktreife zu führen. ADO.NET in.net 1.0 bis 3.5 enthält kei- Auf einen Blick Autor Dr. Holger Schwichtenberg gehört als Autor zahlreicher Fachbücher und Sprecher auf Fachkonferenzen zu den Experten für.net und Visual Studio in Deutschland. Im Hauptberuf berät und unterstützt er Unternehmen bei der Entwicklung von Windows- und Web - anwendungen. Seine Website bietet kostenlose Informationen rund um.net. dotnetpro.code A0804ORM Inhalt Objektrelationale Mapper bilden Geschäftsobjekte der objektorientierten Programmierung auf Tabellen und Felder relationaler Datenbanken ab. Herausforderungen dabei sind die Umsetzung von n:m-beziehungen zwischen Tabellen und die Vererbung zwischen Objekten. Auf dem Markt tummeln sich viele Anbieter von Werkzeugen. Microsoft verwirrt die Nutzer gleich mit zwei verschiedenen Ansätzen: LINQ-to-SQL und das ADO.NET Entity Framework, die jedoch auf unterschiedlichen Ebenen arbeiten. Abbildung 1 Die Positionierung verschiedener Datenbankzugriffsschnittstellen. nen ORM, sondern beschränkt sich auf den direkten Datenzugriff und die Abbildung zwischen XML-Dokumenten und dem relationalen Modell (Abbildung 1). Mehr als 20 Werkzeuge aus dem kommerziellen und nicht-kommerziellen Umfeld teilen sich daher bisher den Markt. Ein Vergleich zwischen allen ORM-Werkzeugen für.net würde den Rahmen eines Fachartikels völlig sprengen. Dieser Beitrag vergleicht daher die beiden Microsoft-Produkte LINQ-to-SQL und ADO.NET Entity Framework [1] mit einigen im deutsprachigen Bereich häufiger anzutreffenden Tools der Anbieter Vanatec Open Access (VOA), NDO und Genome. Mit Ausnahme des Open-Source- Projekts NHibernate [2] sitzen die Anbieter im deutschsprachigen Raum. Was ist ORM? In seinen Schulungen und Beratungsgesprächen trifft der Autor immer wieder auf.net-entwickler, die mit dem Begriff des objektrelationalen Mappings und seiner Abkürzung ORM nichts anfangen können. So sei der Begriff hier zunächst definiert: ORM ist die Abbildung von Geschäftsobjekten im Hauptspeicher auf Datensätze in relationalen Datenbanktabellen zum Zweck der Objektpersistenz (Abbildung 2). Kern des objektorientierten Programmierens (OOP) ist die Arbeit mit Objekten als Instanzen von Klassen im Hauptspeicher. Die meisten Anwendungen müssen die in Objekten gespeicherten Daten auch dauerhaft sichern, insbesondere in Datenbanken. Das Problem dabei: Der vorherrschende Typus von Datenbanken sind relationale Datenbanken, die jedoch Datenstrukturen anders abbilden als Objektmodelle. Die Daten eines Objekts sind in der Regel nicht direkt auf die Tabellenstruktur einer Datenbank übertragbar. Deshalb müssen sie auf diese übersetzt ge

2 ben will. Neben den aktiven Entwicklern von ORM-Werkzeugen für.net und den passiven Nutzern gibt es eine noch größere Fraktion von Entwicklern, die ORM bisher nicht einsetzen. Meist aufgrund von Unwissenheit, die auch nicht aufgearbeitet wird, denn es herrscht oft das Motto Wenn Microsoft es nicht macht, ist es auch nicht wichtig!. Abbildung 2 ORM bildet Objekte auf Datensätze ab und umgekehrt. mappt werden. Das ist die Aufgabe eines objektrelationalen Mappers. Grundsätzlich gibt es zwar objektorientierte Datenbanken (OODB), die in der Lage sind, Objekte direkt zu speichern. Aber diese Datenbanken sind bisher kaum verbreitet. Zwei besonders hervorstechende Unterschiede zwischen Objektmodell und Relationenmodell sind n:m-beziehungen und Vererbung. Während man in einem Objektmodell eine n:m-beziehung zwischen Objekten durch eine wechselseitige Objektmenge abbilden kann, benötigt man in der relationalen Datenbank eine Zwischentabelle. Vererbung kennen relationale Datenbanken gar nicht. Hier gibt es verschiedene Möglichkeiten der Nachbildung, doch dazu später mehr. Die unterschiedliche Art der Datenspeicherung zwischen Objektmodell und relationalem Modell bezeichnet die Fachwelt als Impedance Mismatch oder Semantic Gap. Wenn ein.net-entwickler aus einer Datenbank mit einem DataReader oder DataSet Daten einliest, dann betreibt er noch kein ORM. DataReader und DataSet sind zwar.net-objekte, aber diese verwalten nur Tabellenstrukturen. Diese Objekte sind aus der Sicht eines Objektmodells untypisierte, unspezifische Container. Erst wenn ein Entwickler spezifische Klassen für die in den Tabellen gespeicherten Strukturen definiert und die Inhalte aus DataSet oder DataReader in diese spezifischen Datenstrukturen umkopiert, betreibt er ORM. Dies ist schon für den Lesezugriff eine sehr aufwendige, mühselige und eintönige Programmierarbeit, gerade bei sehr breit angelegten Tabellen. Will der Entwickler dann auch noch Änderungen in den Objekten speichern, wird die Arbeit zur intellektuellen Herausforderung, denn er muss erkennen können, welche Objekte sich verändert haben, da er sonst ständig alle Daten wieder speichern müsste, was in Mehrbenutzerumgebungen ein Unding ist. Viele.NET-Programmierer haben sich in den letzten Jahren darum bemüht, diese Arbeit mit Hilfsbibliotheken und Werkzeugen zu vereinfachen. Dies war die Geburtsstunde vieler ORM-Tools, die im Entwicklerjargon in der Regel einfach als O/R-Mapper bezeichnet werden. Dabei scheinen sich viele Entwickler dem geflügelten Wort verschrieben zu haben, dass ein Mann in seinem Leben einen Baum gepflanzt, ein Kind gezeugt und ein Haus gebaut haben sollte nur mit dem Unterschied, dass sie einen der drei Punkte gegen einen O/R-Mapper geschrieben haben austauschten. Anders ist die Vielfalt der ähnlichen Lösungen kaum zu erklären. Neben den marktbekannten ORM- Werkzeugen für.net finden sich zahlreiche hauseigene Lösungen. Die große Vielfalt an Produkten führte bisher dazu, dass keiner der Anbieter eine überragende Marktposition einnehmen konnte. Der Autor dieses Beitrags kann sich hier selbst nicht aus der Affäre ziehen, denn auch er hat in der Vergangenheit einen eigenen O/R-Mapper geschrieben, den er aber nun zugunsten des ADO.NET Entity Frameworks aufge- Microsoft kommt erst jetzt Microsoft jedoch hat der Drang zur Veröffentlichung eines ORM-Werkzeugs lange nicht voll erfasst. Zwar gab es 2003 eine Alphaversion eines O/R-Mappers unter dem Codenamen ObjectSpaces, die auch in den ersten Vorabversionen von.net 2.0 enthalten war, aber leider hat es Object- Spaces nicht zur Marktreife geschafft. Die endgültige Version von.net 2.0 und 3.0 enthielten weder ObjectSpaces noch ein anderes ORM-Werkzeug. Der Grund für das Scheitern lag nicht nur im Lehrgeld, das Microsoft zahlen musste, sondern auch darin, dass damals im Rahmen des datenbankbasierten Dateisystems WinFS ein ähnliches Konzept parallel realisiert werden sollte. Das inzwischen vorerst beerdigte WinFS sollte nicht nur Dateien, E- Mails und Kontakte ablegen können, sondern auch beliebige andere.net-objekte. Zwei ähnliche Produkte ergaben damals Ein Wort zum Thema Geschwindigkeit Eine interessante Frage ist die nach der Geschwindigkeit der ORM-Werkzeuge. Aber aufgrund der vielen möglichen Szenarien würde dies den Rahmen dieses Beitrags völlig sprengen. Der Autor hat beim Datenlesen gemessen, dass LINQto-SQL etwa so schnell ist wie ein Data- Set; NHibernate und VOA brauchen hier mehr Zeit, was aufgrund der höheren Komplexität der Abbildung aber auch verständlich ist. Den DataReader kann natürlich kein ORM-Werkzeug schlagen, denn alle Werkzeuge benutzen ihn oder ein vergleichbares Konstrukt im Hintergrund. Viele Entwickler hegen das Vorurteil, dass ORM sehr langsam sei. Ihnen sei gesagt: Richtig ist, dass ORM langsamer ist als ein DataReader. Aber ein Windows-Fenster ist auch langsamer als ein Kommandozeilenfenster. Arbeiten Sie deshalb immer an der Kommandozeile?

3 Tools Objektrelationale Mapper für.net im Vergleich Abbildung 3 Abbildungsszenarien zwischen Klassen und Tabellen. aber nach Ansicht der Redmonder Chefetage keinen Sinn. Umso kurioser ist es, dass es nun doch wieder zwei O/R-Mapper von Microsoft für.net geben wird. Als Teil des.net Framework 3.5 ist im November 2007 LINQ-to-SQL erschienen, Mitte 2008 werden dann die ObjectServices im Rahmen des ADO.NET Entity Framework (EF) folgen. LINQ-to-SQL oder Entity Framework LINQ-to-SQL und die EF ObjectServices weisen trotz gewisser Ähnlichkeiten doch erhebliche Unterschiede auf. Die EF ObjectServices sind keineswegs die zweite Version von LINQ-to-SQL. Der Begriff LINQ-to-SQL vereint mehrere Konzepte, für die es beim ADO.NET Entity Framework unterschiedliche Bezeichnungen gibt. LINQ-to-SQL meint einerseits die Umsetzung der allgemeinen Abfragesprache LINQ [3] in die Datenbankabfragesprache SQL. Andererseits umfasst LINQ-to-SQL auch ORM, bildet also Tabellen auf Objekte ab. Beim ADO.NET Entity Framework sind diese Konzepte getrennt: LINQ-to-Entities ist die Abfragesprache, und die EF Object- Services vollbringen das objektrelationale Mapping. Hinzu kommt, dass LINQ-to- Entities nicht LINQ auf SQL abbildet, sondern LINQ auf Entity SQL (esql), eine SQL-ähnliche Sprache des Entity Frameworks [4]. Der Kern des EF ist die Abbildung physischer Datenstrukturen aus Tabellen in Datenbanken auf konzeptionelle Datenstrukturen, sogenannte Entitäten, wie man sie aus dem Entity-Relationship- Modell kennt. LINQ-to-Entities arbeitet auf den Entitäten; und Entitäten werden auf Objekte abgebildet. Eine n:m-zwischentabelle wird hier also schon eine Ebene tiefer beseitigt. Auf der TechEd Europe im November 2007 stellten die Teilnehmer immer wieder die berechtigte Frage, warum Microsoft zwei verschiedene O/R-Mapper anbietet. Tatsächlich gibt Microsoft zu, dass die Ursache eine ungeplante Parallelentwicklung zweier verschiedener Entwicklungsteams bei Microsoft ist. Erst zu spät haben sich die Verantwortlichen bemüht, die beiden Konzepte zusammenzufassen. Die Empfehlung von Microsoft lautet, LINQ-to-SQL für einfache Mapping-Szenarien einzusetzen und das Entity Framework für komplexere Anwendungsfälle zu verwenden. Mapping-Szenarien Mapping-Szenarien ist das zentrale Stichwort, dass LINQ-to-SQL vom EF und den hier getesteten Drittanbietern unterscheidet. Mit einer Ausnahme beherrscht LINQ-to-SQL nur die Abbildung einer Tabelle auf genau eine Klasse, also alle Zeilen der Tabelle werden zu Instanzen dieser Klasse. Lediglich die zu verwendenden Spalten kann man hier einschränken. Die Ausnahme betrifft die Vererbung. LINQ-to-SQL kann alle Instanzen aller Klassen einer Vererbungshierarchie in einer einzigen Tabelle speichern. Nur mithilfe einer Unterscheidungsspalte (Diskriminator) kann LINQ-to-SQL auseinanderhalten, welche Zeile zu welcher Klasse gehört. Dieses Verfahren heißt in Fachkreisen Filtered Mapping, Shared Mapping, Flat Polymorphism oder Table per Hierarchy. Der wesentliche Nachteil des Verfahrens liegt auf der Hand: Diese eine Tabelle muss so breit sein wie die Menge aller Attribute aller Klassen in der Vererbungshierarchie, wodurch viele Zellen immer leer bleiben und somit Speicherplatz vergeuden. LINQto-SQL beherrscht weder andere Abbildungsmöglichkeiten für Vererbung noch die Auflösung der n:m-zwischentabellen oder die Abbildung einer Klasse auf mehrere Tabellen. Dabei können die Anforderungen an die Abbildung in der Praxis vielfältig sein. Abbildung 3 zeigt die Abbildungsmöglichkeiten, die es allein für den flachen Fall gibt. Neben der Abbildung einer Klasse auf eine Tabelle könnte der Entwickler sich wünschen, eine Klasse auf mehrere Tabellen oder eine Tabelle auf mehrere Klassen abzubilden. Der Grund ist, dass bei der Datenbank Gesichtspunkte wie Effizienz im Zugriff, Vermeidung von Redundanzen und Speicherplatz im Vordergrund stehen, während Objekte mehr eine natürliche, intuitive Sicht auf die Aufgabe und den Komfort des Softwareentwicklers ermöglichen und nahelegen. So lassen sich zum Beispiel die Spalten einer Tabelle in mehrere Unterobjekte (Composite Types) gruppieren. Auch ist es nicht absurd, in dem Objektmodell den aktuellen Flug eines Passagiers als Attribute in die Passagier-Klasse zu integrieren, während die Datenbank diesen Flug zusammen mit den weiteren vergangenen Flügen korrekt normalisiert in einer Detailtabelle pflegt. EF, Vanatec Open Access und Genome beherrschen hier alle Möglichkeiten. NDO kann nicht eine Klasse auf mehrere Tabellen abbilden. Das zweite wichtige Gebiet neben der Abbildung auf Entitätsebene ist die Abbildung von Beziehungen. Relationale Datenbanken verwenden Joins für 0/1:1 und 0/1:n-Beziehungen. n:m-beziehungen lassen sich nicht direkt abbilden. Objektmodelle hingegen verwenden Objektverweise. Eine 1:1-Beziehung ist hier ein Attribut des Typs der anderen Klasse. Mengenbeziehungen werden durch Objektmengen ausgedrückt, typisiert zum Beispiel als List oder untypisiert als ArrayList. Wenn die Klasse Flug eine Liste von Passagier-Objekten und die Klasse Passagier eine Liste von Flug-Objekten aufnehmen kann, dann existiert zwischen beiden eine m:n- Beziehung. Ein gutes ORM-Werkzeug sollte solche wechselseitigen Mengen und deren Abbildung auf die im relationalen Mo

4 dell notwendigen Zwischentabellen unterstützen (Abbildungen 4 und 5). Auch bei der Vererbung gibt es weitere Wünsche neben dem Filtered Mapping. Beim sogenanten Vertical Mapping alias Joined Mapping, alias Inheritance Table per Class, alias Vertical Polymorphism gibt es für jede Klasse in der Vererbungshierarchie genau eine Tabelle, also sowohl für die Unterklassen als auch die Basisklassen, selbst dann wenn diese abstrakt sind. Objekte entstehen hier also immer erst durch einen Join zwischen einer oder mehreren Tabellen. Dieses Verfahren verwendet keinen Speicherplatz, kostet aber Zeit durch die Joins. Beim Horizontal Mapping (alias Table per Subclass, alias Horizontal Polymorphism) gibt es Tabellen nur für konkrete Klassen. Diese Tabellen enthalten alle Attribute der Klasse als Spalten, auch die geerbten Attribute. Um alle Instanzen der Klasse X zu erhalten, ist nur eine Klasse abzufragen. Werden hingegen alle Instanzen der Oberklasse X und ihrer Unterklassen Y und Z benötigt, muss der Entwickler die Vereinigungsmenge der zugehörigen Tabelle X, Y und Z bilden. Dies ist jedoch akzeptabel, da dieser Fall seltener ist. Ein Blick in die Vergleichstabelle zeigt: EF, VOA, Genome und NHibernate unterstützen alle drei Vererbungsbildungen, während LINQ-to-SQL nur Filtered Mapping und NDO nur Horizontal Mapping bietet. Besonders hervorzuheben ist, dass das Entity Framework auch Abbildungsszenarien ohne ORM unterstützt. Dies ist möglich, indem man ein konzeptuelles Modell in EF definiert, aber nicht mit den ObjectServices arbeitet. Dann erfolgt der Zugriff auf die Daten über einen neuen ADO.NET-Datenprovider mit Namen EntityClient, also mithilfe von DataReader und DataSet. EntityClient erlaubt aber nur lesenden Zugriff. Die Abbildungsinformationen legen alle objektrelationalen Werkzeuge des Vergleichs in XML-Dateien ab. LINQ-to- SQL, NDO und NHibernate mit dem Zusatz NHibernate.Mapping.Attributes erlauben es auch, allein durch Annotationen im Quellcode die Abbildung zu steuern. Die XML-Dateien muss niemand von Hand schreiben, die ORM-Werkzeuge unterscheiden sich aber erheblich in Hinblick auf den Komfort. Abfragesprache Bevor es überhaupt etwas abzubilden gibt, muss der Softwareentwickler erst einmal festlegen, welche Daten er in den Speicher laden will. In relationalen Datenbanken geschieht dies mit SQL; und auch die ORM-Werkzeuge unterstützen SQL. Aber SQL ist nicht die erste Wahl für die Abfrage beim O/R-Mapping, denn SQL bezieht sich immer auf Tabellenstrukturen und ihre Tabellen und Spalten. Um jedoch ein Flug-Objekt zu laden, sollte auch dieser Name gültig sein und nicht der Namen der zugrundeliegenden Tabelle FL_Fluege. Die Object Query Language (OQL) der Object Data Manage- Bei Fachbüchern 50% und mehr sparen! dotnetpro 04/08 Neue MCITP / MCTS Training Kits Microsoft SQL Server 2005 Database Administrator Core Requirements Solid Quality Learning, J.C. Mackin, Mike Hotek, Orin Thomas, et al Schuber mit folgenden kompletten Examens- Vorbereitungen sowie interaktiven Praxistests auf CD: MCTS Exam : Microsoft SQL Server 2005 Implementation and Maintenance auch einzeln erhältlich unter Artikelnr. MS2271 statt EUR 60, nur EUR 29,95 MCITP Exam : Designing a Database Server Infrastructure Using Microsoft SQL Server 2005 auch einzeln erhältlich unter Artikelnr. MS2173 statt EUR 60, nur EUR 29,95 MCITP Exam Optimizing and Maintaining a Database Administration Solution Using Microsoft SQL Server 2005 auch einzeln erhältlich unter Artikelnr. MS2254 statt EUR 60, nur EUR 29,95 Microsoft Press englisch, ca Seiten Schuber, 3 Bände, Mediapack (DVD+CD) MS2377 statt 140,00 nur 89,95 Mehr zum SQL Server 2005 von Microsoft Press Introducing SQL Server 2005 for Developers MS1962 Programming Microsoft SQL Server 2005 MS1923 SQL Server 2005 Administrator s Companion MS2198 SQL Server 2005 Administrator s Pocket Consultant MS2107 statt 30,00 nur 10,00 statt 50,00 nur 24,95 statt 60,00 nur 29,95 statt 30,00 nur 14,95 Ihre erste Adresse für Remittenden Messerückläufer Sonderausgaben Ladenpreisaufhebung Jetzt schnell ins Internet auf dem Online-Bookshop in Kooperation mit

5 Tools Objektrelationale Mapper für.net im Vergleich ment Group (ODMG) ist eine Alternative zu SQL, die VOA und Genome einsetzen. OQL ist an dem Wort Extent zu erkennen, das allen Klassennamen nachzustellen ist, wenn die Menge der Instanzen der Klasse gemeint ist: SELECT * FROM FlugExtent AS Flug WHERE flug.flabflugort = 'Rom' NHibernate hat seine eigene objektorientierte Abfragesprache namens Hibernate Query Language (HQL). Ebenso NDO, doch hat der Hersteller ihr keinen eigenen Namen gegeben. Mit.NET 3.5 geht der Trend jedoch zur Language Integrated Query (LINQ), die Visual Studio 2008 elegant in die Sprachsyntax von C# und Visual Basic integriert. Aufgrund der dokumentierten Schnittstellen ist LINQ nicht alleine Microsoft vorbehalten und so gibt es schon zahlreiche LINQ-Provider von Drittanbietern, wie die Liste der Provider unter [3] belegt; darunter auch Vanatec und Genome. Bei Genomes Mapper hat LINQ schon OQL als primäre Sprache abgelöst, bestätigt dessen Hersteller TechTalk. In der aktuellen Genome-Version lassen sich einige Funktionen wie zum Beispiel Gruppierungen nur mit LINQ nutzen. Für NDO ist eine LINQ-Unterstützung in Planung. Bei NHibernate gibt es auch schon ein paar LINQ-Ansätze [5]. Das Entity SQL (esql) im ADO.NET Entity Framework ist vergleichbar mit HQL und OQL. Faul oder engagiert Die Definition der Abfrage selbst ist aber noch nicht alles, was über die tatsächlich zu ladenden Objekte entscheidet. Eine entscheidende Frage für die Leistungsfähigkeit von objektrelationalem Mappen ist die Frage, wann verbundene Objekte zu laden sind. Wenn der Entwickler zu einem Flug sofort alle Buchungen und die dazugehörigen Passagier- und Personendaten lädt, lädt er unter Umständen mehr als er wirklich braucht. Holt er die Daten jedoch nicht, muss er sie beim Zugriff auf eine Objektreferenz nachladen. Solch ein Nachladen bei Bedarf nennt sich Lazy Loading (alias Deferred Loading, alias Delayed Loading); das Gegenteil heißt übrigens Eager Loading (alias Immediate Loading). Lazy Loading ist der Standard in allen objektrelationalen Werkzeugen. Eager Loading lässt sich auf Ebene einer Datenbankverbindung (alias Datenkontext oder Data Scope) oder einer einzelnen Anfrage steuern. Lazy Loading ist eine besondere Herausforderung, denn das ORM-Werkzeug muss die Objektreferenzen quasi abfangen, um hier bei Bedarf Daten nachladen zu können. Dieses Abfangen erfolgt durch bestimmte Klassen für Einzelreferenzen und Mengenklassen. Der Unterschied zwischen den ORM-Werkzeugen liegt dabei darin, ob der Entwickler diese Klassen explizit im Code verwenden muss oder ob das ORM-Werkzeug diese beim Kompilieren oder zur Laufzeit austauscht. Microsoft verwendet sie folgendermaßen: für Einzelreferenzen EntityRef in LINQ-to-SQL und EntityReference in EF, für Mengen EntitySet in LINQ-to- SQL und EntityCollection in EF. Allen ORM-Werkzeugen ist gemein, dass die Mengenreferenzen nicht völlig beliebig sind, sondern dass sie nur ein bestimmtes Spektrum von Collection- Klassen unterstützen, die meist an bestimmten Schnittstellen festgemacht sind; Details nennt die Tabelle. Henne oder Ei Ein wesentliches Unterscheidungskriterium ist die Henne- oder Ei-Frage. Übertragen auf die Welt der O/R-Mapper geht es darum, ob der Entwickler zuerst die Datenbank erstellt und daraus dann Geschäftsobjekte generieren lässt oder erst die Geschäftsobjekte erstellt und daraus dann die Datenbank erzeugen lässt. Oder er macht beides manuell, erstellt also Geschäftsobjekte und Datenbank unabhängig voneinander und definiert dann eine mehr oder weniger komplexe Abbildung zwischen beiden Welten. Vielen Datenbankadministratoren sträuben sich sicherlich die Haare, wenn sie es einem Entwicklungswerkzeug überlassen sollen, Datenbanken zu erzeugen. Doch unter Java ist dies seit langem möglich und heißt Container Managed Persistance (CMP), wenn auch nicht ohne Kritik [6]. Dabei legt die Wortwahl der ORM- Werkzeuganbieter nahe, dass gerade dies der üblichere Weg ist. Wenn man erst Geschäftsobjekte erstellt und die Datenbank erzeugen lässt, sprechen sie von Forward Engineering. Den etwas negativ vorbelegten Begriff Reverse Engineering benutzen sie für Ansätze, in denen es die Datenbank zuerst gibt. Etwas neutraler werden die Begriffe, wenn man Mapping statt Engineering verwendet oder von Code First und Datenbase First spricht. Reverse Mapping unterstützen alle Anbieter. Beim Forward Mapping machen NHibernate und das ADO.NET Entity Framework bislang nicht mit; sie können eine Datenbank nicht auf Basis von Geschäftsobjekten generieren. Die anderen Anbieter unterscheiden sich dadurch, ob die Generierung der Datenbank zur Entwicklungszeit erfolgt (Vanatec, NDO, Genome) oder zur Laufzeit (LINQ-to-SQL). LINQ-to-SQL bietet hier einfach die Methode CreateDatabase() in dem Datenkontext an, den der Designer in Visual Studio generiert. LINQ-to-SQL kann allerdings Datenbanken nur anlegen oder löschen (DeleteDatabase()); Änderungen an bestehenden Datenbanken sind nicht möglich. Dies bedeutet also, dass alle Daten verloren gehen, wenn man nur ein Attribut in einem Geschäftsobjekt ergänzt genauer gesagt, dass man sich um die Datenmigration selbst kümmern muss. Schemaänderungen anwenden können bislang nur die Produkte VOA und NDO. Genome plant diese Funktion für die Version 3.5. Geschäftsobjektklassen Interessant ist, welche Anforderungen es an die Geschäftsobjektklasse gibt. Im Ideal fall ist jede beliebige einfache.net- Klasse auf eine Datenbanktabelle abzubilden, ohne dass die Klasse irgendeine Voraussetzung erfüllen muss. Die Fachwelt spricht dann von Persistance Ignorance oder von Plain Old CLR Objects (POCOs). In diese Kategorie fällt NHibernate. NDO kann POCOs als Unterobjekte eines zu persistierenden Objekts verwenden. Alle anderen Anbieter haben mehr oder weniger einschränkende Anforderungen: LINQ-to-SQL, EF, VOA und NDO erfordern eine Annotation durch ein.net-attribut. Eine bestimmte Basisklasse erfordert nur das EF. Genome zwingt den Entwickler, alle Geschäftsobjektklassen als abstrakte Klassen zu definieren. Die konkrete Implementierung liefert Genome dann in der generierten Assembly. Wenn die Geschäftsobjektklasse im Rahmen des Reverse Mapping entsteht, dann ist es wichtig zu sehen, welche Unterstützungen und Erweiterungsmöglichkeiten diese Klasse mitbringt. Eine gute

6 Unterstützung für Datenbindung in Windows-Forms-Anwendungen durch die Schnittstellen INotifyPropertyChanging und INotifyPropertyChanged bieten hier die Microsoft-Produkte. VOA enthält eine Klasse namens ObjectView, die die Rolle einer BindingSource bei der Datenbindung einnimmt. Eine komfortable Möglichkeit zur Datenbindung in ASP.NET-Webanwendungen bieten derzeit LINQ-to-SQL mit LinqDataSource (enthalten in ASP.NET 3.5), Genome mit der dort mitgelieferten GenomeDataSource und Vanatec mit dem ObjectView. Für alle anderen, einschließlich Microsofts EF, müssen die Entwickler derzeit selbst eine passende Manager- Klasse schreiben, um die seit ASP.NET 2.0 vorhandene ObjectDataSource zur Datenbindung zu nutzen. Auch Kleinigkeiten wie Benennungskonventionen können dem Entwickler das Leben schwer machen. Beim Reverse Mapping erzeugen alle Werkzeuge Geschäftsobjektklassen aus Tabellen, die so heißen wie die Tabellen in der Datenbank. Vanatec nimmt dabei allerdings Unterstriche aus dem Namen heraus. Bei der Bildung von Mengen von Geschäftsobjekten hängt LINQ-to-SQL immer ein kleines S an den Namen an. Das führt bei nicht-englischen Namen zu sehr unschönen Wörtern; dies lässt sich unter Tools/ Options/Database Tools/O/R Designer abschalten. Immerhin lassen sich in allen Werkzeugen die Namen der Geschäftsobjektklassen nachträglich ändern. Die größte Flexibilität bietet Genome, da sich die Benennung durch reguläre Ausdrücke steuern lässt. Mapping und Treiber Interessant ist, wie die Werkzeuge intern arbeiten. Nicht alle Werkzeuge verwenden im Untergrund ADO.NET. VOA und NHibernate arbeiten mit JDBC (Java Database Connectivity), da es sich um Portierungen aus der Java-Welt handelt. Wenn ADO.NET beim Lesen der Daten zum Einsatz kommt, dann natürlich kein DataSet mit seinem großen Overhead, sondern ein schlanker DataReader. Das Zurückschreiben von Änderungen erledigen alle ORM-Werkzeuge wie es sich aus Gründen der Leistung und Sicherheit gehört mit parametrisierten SQL-DML-Befehlen. Beim Speichern von Objekten unterstützen alle in der Vergleichstabelle genannten ORM-Werkzeuge Datenbanktransaktionen, auch in der Form über den in.net 2.0 eingeführten Namensraum System.Transactions. VOA, NHibernate und Genome erfordern bei jeder einzelnen Änderung eine explizite Transaktion. Das ist inhaltlich nicht schlimm, fordert aber die Fingerkuppen der Entwickler. Alle ORM-Werkzeuge unterstützen von der Datenbank automatisch vergebene Werte wie zum Beispiel automatisch hochzählende Primärschlüssel oder Zeitstempel; das heißt, nach dem Persistieren eines neu angelegten Objekts oder dem Ändern eines Objekts mit Zeitstempel fragen sie bei der Datenbank noch einmal Bei Fachbüchern 50% und mehr sparen! dotnetpro 04/08 SQL Server 2005 professionell Otey, Otey MI ,95 statt 45,00 nur noch 24,95 statt 60,00 nur noch 29,95 statt 39,95 nur noch 19,95 Inside SQL Server 2005 The Storage Engine Kalen Delaney (Solid Quality Learning) MS2105 Inside SQL Server 2005 T-SQL Programming Sarka, Wolter, Ben-Gan (Solid Quality Learning) MS2197 Inside SQL Server 2005 T-SQL Querying Sarka, Koller, Ben-Gan (Solid Quality Learning) MS2313 statt 45,00 nur noch SQL Server 2005 Database Essentials Step by Step Solid Quality Learning MS ,95 statt 40,00 nur noch 19,95 statt 40,00 nur noch 19,95 SQL Server 2005 Applied Techniques Step by Step Solid Quality Learning MS2316 SQL Server 2005 Analysis Services Step by Step Jacobson, Misner (Hitachi Consulting) MS2199 statt 40,00 nur noch SQL Server 2005 Reporting Services Step by Step Stacia Misner (Hitachi Consulting) MS2250 statt 45,00 nur noch 24,95 Ihre erste Adresse für Remittenden Messerückläufer Sonderausgaben Ladenpreisaufhebung Jetzt schnell ins Internet auf dem Online-Bookshop in Kooperation mit

7 Tools Objektrelationale Mapper für.net im Vergleich mit einem SELECT nach den aktuellen Werten. Für den gleichzeitigen Zugriff nutzen alle ORM-Werkzeuge das aus ADO.NET bekannte optimistische Sperren. Bis auf NDO unterstützen alle Werkzeuge sowohl die Konflikterkennung mit Originalwerten als auch Zeitstempel und Versionsnummer. NDO verfügt über einen eigenen GUID-basierten Mechanismus. Pessimistisch sperren kann der Entwickler bei allen Produkten über Transaktionen. Genome bietet darüber hinaus zum pessimistischen Sperren noch einen eigenen Anwendungsserver an. Um nun das eigentliche Mapping zwischen einem Datenbankzugriffsobjekt wie etwa dem DataReader und einem Geschäftsobjekt zur Laufzeit umzusetzen, braucht ein ORM-Werkzeug Programmcode, der die Geschäftsobjekte instanziert, die einzelnen Informationseinheiten aus der Datenbanktabelle entnimmt und in das Geschäftsobjekt überträgt. Grundsätzlich könnte dies per Reflection erfolgen, aber dieser Mechanismus wäre viel zu langsam. Microsoft und NHibernate nutzen daher Reflection in Kombination mit der Codegenerierung zur Laufzeit, das heißt, Programmcode in der Intermediate Language zur Abbildung zwischen Tabelle und Objekte wird zur Laufzeit erzeugt. VOA, NDO und Genome hingegen erzeugen den zusätzlichen Programmcode zur Entwicklungszeit durch weitere Kompilierungsschritte in Visual Studio. VOA und NDO reichern dabei die von Visual Studio erzeugten Assemblies mit entsprechenden IL-Befehlen an (Enhancing), während Genome eine weitere Assembly herstellt. Die Mehrheit der ORM-Werkzeuge bildet die Spalten auf einfache Attribute (Fields) ab. NHibernate und Genome stützen sich auf die Properties; nur NDO erlaubt beides. Unterstützung für die in.net 2.0 eingeführten wertelosen Typen unterstützen alle. Das heißt, dass die ORM-Werkzeuge im Gegensatz zu ADO.NET eine leere Integer-Zelle tatsächlich als int?, Integer? oder System.Nullable^Int32 und nicht als DBNull signalisieren. Da SQL und Datentypen datenbankspezifisch sind, benötigt ein ORM-Werkzeug für jedes Datenbankmanagementsystem einen speziellen Treiber. Derzeit bieten NHibernate und NDO hier die größte Vielfalt. Microsoft hat jedoch angekündigt, mit dem EF noch in diesem Jahr mehr Datenbanken unterstützen zu wollen als die Konkurrenz. Objektcontainer und Caching Nachdem ein Objekt in den Hauptspeicher geladen wurde, überwachen die ORM-Werkzeuge die Objekte auf Änderungen (Change Tracking), sodass beim Speichern nur die tatsächlich geänderten Objekte übertragen werden müssen. Für diese Änderungsverfolgung ist ein Container notwendig, in dem die Objekte im RAM leben. Diese Objektcontainer haben in allen Werkzeugen verschiedene, aber zum Teil ähnliche Namen: DataContext, ObjectContext, ObjectScope, Session, PersistanceManager und DataDomain. Ihnen gemeinsam ist, dass der Entwickler den Container vor der ersten Abfrage erzeugen und die Abfrage dann dort aufrufen muss, sodass die Container mitbekommen, welche Objekte mit welchem Ausgangszustand geladen werden. Die Objektcontainer öffnen die Datenbankverbindung meist selbst. Einige Werkzeuge erlauben auch, dass der Benutzer eine ADO.NET-Datenbankverbindung selbst erstellt und den Objektcontainer dann damit arbeiten lässt. Alle Objektcontainer speichern die geladenen Objekte in einem Cache und verhindern so, dass ein Objekt unnötig mehrfach geladen werden muss. Auch Inkonsistenzen verhindern die Container, wenn der Entwickler ein bereits im Arbeitsspeicher verändertes Objekt erneut durch eine andere Abfrage lädt. Alle Drittanbieter mieten darüber hinaus einen Zwischenspeicher auf zweiter Ebene (Second Level Cache), der containerübergreifend ist. NHibernate bietet hier mit der Auswahl zwischen der Zwischenspeicherung im Hauptspeicher, im ASP.NET-Cache, einer anderen Datenbank oder im Dateisystem die bei weitem größte Auswahl. Genome erlaubt genau wie NHibernate, selbst einen Second Level Cache zu schreiben. Sehr interessant ist das verteilte Zwischenspeichern in VOA: Verschiedene Anwendungsserver mit einem Zwischenspeicher können Änderungen in diesem über MSMQ-Nachrichten synchronisieren. Für NHibernate gibt es etwas Vergleichbares in Form des kommerziellen Produkts ncache. Serialisierung und Loslösung Wenn ein Geschäftsobjekt die Prozessgrenze verlassen muss, beispielsweise im Rahmen eines Webservices, dann ist seine Serialisierbarkeit wichtig. Die generierten Objekte mit der schon in.net 1.0 eingeführten Annotation [System.Serializable] zu versehen leisten nur die Designer für LINQ-to-SQL und NHibernate. Eine Auszeichnung für das in.net 3.0 eingeführte [System.Runtime.Serialization.DataContra ct] bieten LINQ-to-SQL und EF. [DataContract] verstehen nur WCF-Dienste. Bei allen anderen Werkzeugen ist das Fehlen von [Serializable] und [DataContract] kein Ausschlusskriterium; es bedeutet nur, dass der Entwickler diese Annotationen manuell hinterlegen muss. Viele Werkzeuge erstellen dazu die Geschäftsobjektklassen als partielle Klassen. Serialisierbarkeit ist aber nicht alles bei ORM: Die Änderungsverfolgung wird zu einem Problem, wenn die Geschäftsobjekte länger leben als der ORM-Container, zum Beispiel in Webanwendungen oder anderen zustandslosen Anwendungsservern. Hier spricht man von Mehrschichtunterstützung, Disconnected Objects oder Detached Objects. Bei allen hier untersuchten ORM-Werkzeugen ist es möglich, Geschäftsobjekte aus dem Container zu lösen, entweder durch einfaches Schließen des Containers oder eine explizite Operation. Große Unterschiede zeigen sich aber, wenn diese Objekte später wieder zu einem Container hinzugefügt werden sollen. Dies ist insbesondere dann notwendig, wenn der Entwickler Änderungen in den Objekten dauerhaft speichern will. Der neue Container muss aber wissen, ob es sich bei dem angefügten Objekt um ein geändertes, unverändertes oder neues Objekt handelt. Vanatec löst dies mit einem serialisierbaren Objektcontainer, der wie ein DataSet in ADO.NET die Prozessgrenzen überschreiten kann und die in ihm lebenden Objekte beobachtet. Die anderen Anbieter lösen dies über eine explizite Angabe beim Hinzufügen des Objekts, was aber dem Entwickler die Aufgabe überträgt zu wissen, welche der losgelösten Objekte sich tatsächlich verändert haben. Eine Besonderheit bietet Genome mit seinem Wire Object Protocol (WOP). Mit WOP lassen sich die Geschäftsobjekte in Datentransferobjekte in XML-Form serialisieren. Der Client verwendet eine durch WOP erzeugte Assembly mit Proxies für die Datentransferobjekte. Optional kann der Entwickler dabei sogenannte Tracked DTOs bekommen, die ein Dirty-Flag besitzen, das bei Änderungen gesetzt wird. Beim Rücktransfer zum Server lässt sich

8 so feststellen, was sich geändert hat. Mit Genome 3.5 soll WOP auch direkt die Servicekontrakte von WCF unterstützen. Plattformen und Werkzeuge Ein wesentlicher Unterschied zwischen den ORM-Werkzeugen sind die unterstützten Plattformen. VOA und Genome laufen ab.net 1.1, NHibernate sogar mit.net 1.0; NDO setzt.net 2.0 voraus. Die Microsoft-Produkte erfordern.net 3.5, das ADO.NET Entity Framework sogar noch die Erweiterungen, die erst Mitte 2008 erscheinen werden. Mono unterstützen nur NHibernate und NDO. Bisher ist übrigens keiner der hier verglichenen ORM-Werkzeuge für das.net Compact Framework verfügbar. Als erster Hersteller plant Vanatec einen Vorstoß ins mobile Framework noch im Laufe dieses Jahres. Innerhalb des Microsoft SQL Servers (SQLCLR) sieht bislang keiner der Anbieter einen Einsatzort für O/R-Mapper. Erhebliche Unterschiede gibt es auch bei der Werkzeugunterstützung. Microsoft bietet in Visual Studio 2008 Designer für LINQ-to-SQL (Abbildung 4) und das ADO.NET Entity Framework (Abbildung 5), wobei der Designer für EF zum Redaktionsschluss dieses Beitrags eine noch unfertige Erweiterung für Visual Studio 2008 war [7]. Designer bedeutet, dass der Entwickler aus den Datenbankverbindungen des Server-Explorers eine Tabelle, eine Sicht oder eine gespeicherte Prozedur auf eine Designeroberfläche fallen lassen kann und Visual Studio dann im Hintergrund Quellcode aufbaut..net-entwickler kennen dieses Verfahren schon von den typisierten DataSets, wobei der im Fall von LINQ-to-SQL und EF generierte Programmcode wesentlich schlanker und übersichtlicher ist. Leider bieten LINQ-to-SQL und das ADO.NET Entity Framework zwei verschiedene Designer mit unterschiedlichen XML-Formen und den Endungen dbml und edmx. Der EF-Designer (Abbildung 5) zeigt Kardinalitäten an den Beziehungslinien zwischen Entitäten an (0, 1, n), während der LINQ-to-SQL-Designer hier unterschied - liche Pfeil enden verwendet. Einen brauchbaren Designer bietet sonst nur noch NDO. Der für NHibernate verfügbare Designer [8] machte in mehreren Tests extrem viele Fehler in den Mapping-Dateien, die manuell auszubessern sind. Damit ist er praktisch unbrauchbar. Zudem gibt es den Designer bisher nur für Visual Studio Für NHibernate gibt es verschiedene andere Möglichkeiten zur Unterstützung bei der Erstellung der Mapping-Dateien, zum Beispiel SmartCode Studio, CodeSmith und MyGeneration [9]. Keines der vom Autor bisher begutachteten Werkzeuge ist aber so komfortabel wie ein Visual-Studio-Designer. Vanatec und Genome unterstützen den Entwickler nicht durch eigene Designer, sondern stellen ihm mehrere Assistenten sowie Dialogfenster zum Nachbearbeiten zur Seite. NDO und das Entity Bei Fachbüchern 50% und mehr sparen! Microsoft Windows Server 2003 Deployment Kit Microsoft Windows Server 2003 Resource Kit dotnetpro 04/08 Planning, Testing, and Piloting Deployment Projects Planning Server Deployments Designing and Deploying Directory and Security Services Designing a Managed Environment Deploying Network Services Deploying Internet Information Services (IIS) 6.0 Automating and Customizing Installations Windows Internals [4th Ed] Windows Registry Guide [2nd Ed] Windows Server 2003 Troubleshooting Guide Windows Server 2003 Performance Guide Windows Group Policy Guide Windows Administrator's Automation Toolkit Windows Security Resource Kit [2nd Ed] Microsoft Press englisch über Seiten plus ebooks und Tools Schuber mit 7 Bänden inkl. Media Kit MS1486 statt 200,00 nur 99,95 Microsoft Press englisch über Seiten plus ebooks und Tools Schuber mit 7 Bänden inkl. Media Kit MS2232 statt 250,00 nur 99,95 Ihre erste Adresse für Remittenden Messerückläufer Sonderausgaben Ladenpreisaufhebung Jetzt schnell ins Internet auf dem Online-Bookshop in Kooperation mit

9 Tools Objektrelationale Mapper für.net im Vergleich Vergleich wichtiger ORM-Werkzeuge für.net Produkt LINQ-to-SQL ADO.NET Entity Framework Vanatec OpenAccess (VOA) NHibernate Object Services Anbieter Microsoft, USA Microsoft, USA Vanatec GmbH, Deutschland Open Source Webadresse msdn2.microsoft.com/en-us/ msdn2.microsoft.com/en-us/ library/bb aspx library/aa697427(vs.80).aspx Preis kostenlos kostenlos 750, Express-Version kostenlos kostenlos Vorgängerprodukt ObjectSpaces ObjectSpaces Portierung von Java (JDO) Portierung von Java (Hibernate 2.1) Zeitpunkt der ersten Version November 2007 geplant drittes Quartal 2008 März 2005 Oktober 2005 Aktuelle Version Beta Anforderungen Unterstützte Datenbanksysteme MSSQL, MSSQL Compact MSSQL, MSSQL Compact; weitere angekündigt MSSQL, ADS (Sybase), Oracle, MySQL, SQL Anywhere, Firebird Erforderliche.NET-Version SP SP Unterstützung für Mono Weitere erforderliche Software J# Unterstützte.NET-Sprachen VB 9.0, C# 3.0 VB 9.0, C# 3.0 alle alle MSSQL, DB2, Ingres, Postgres, MySQL, Oracle, Sybase, Firebird, SQLLite Anwendungsgebiete Windows-Desktop-Anwendungen Webanwendungen Compact-Framework-Anwendungen SQLCLR-Code Tools Projektvorlagen für Visual Studio Elementvorlagen für Visual Studio LINQ-to-SQL-Klassen ADO.NET Entity Datenmodel Add-in für Visual Studio (2003/2005/2008) / // // // / Designer per Add-in Assistenten Entity Data Model Wizard Enable Project Wizard, Mapping Wizard, Data Form Wizard, Backend Configuration Wizard, Reverse Engineering Wizard Andere GUI-Tools esqlblast (Entity SQL Console) OQL Query Browser (Testabfragen, Anzeige des erzeugten SQLs) SmartCode Studio, CodeSmith, MyGeneration Kommandozeilentools SQLMetal.exe EdmGen.exe VEnhance, VSchema Hbm2ddl, Hbm2net, MapGenerator Dokumentation (CHM/PDF/HTML/HxS) / / // / // / // / / Mapping-Techniken Interne Datenzugriffs-API ADO.NET ADO.NET JDBC JDBC Basistechnik Reflection, Codegenerierung zur Laufzeit Reflection, Codegenerierung zur Laufzeit Enhancing bei der Kompilierung Forward Mapping Schemaänderungen anwenden Reverse Mapping Benennung der erzeugten Geschäftsobjektklassen Tabellenname Tabellenname Tabellenname ohne Unterstriche Tabellenname Reflection, Codegenerierung zur Laufzeit Benennung der erzeugten Geschäftsobjekt- Collections Geschäftsobjekte Direkte Abbildbarkeit einfacher.net-klassen (Persistance Ignorance/POCO) Tabellenname + s Tabellenname Tabellenname + s Tabellenname Erfordern spezifische Basisklasse Erfordern Annotation Erfordern parameterlosen Konstruktor Müssen abstrakt ein Erzeugte Geschäftsobjektklassen unterstützen INotifyPropertyChanging, INotifyPropertyChanging, INotifyPropertyChanged, ObjectView Datenbindung für Windows Forms INotifyPropertyChanged IListSource Erzeugte Geschäftsobjektklassen unterstützen Datenbindung für ASP.NET-Objektdatenquellen Erzeugte Geschäftsobjektklassen sind als [Serializable] gekennzeichnet Erzeugte Geschäftsobjektklassen unterstützen WCF-Kontrakte Erzeugt Geschäftsobjektklassen als partielle Klassen

10 .NET Data Objects (NDO) HoT - House of Tools Development GmbH, Deutschland Genome Tech Talk GmbH, Österreich für kommerzielle, kostenlos für Open-Source-Projekte 299 bis 1800 April 2005 November Abbildung 4 LINQto-SQL kann nur 1:1- Abbildungen zwischen Tabellen und Klassen verarbeiten. Daher erscheinen im Objektmodell künstliche Zwischentabellen. Sql Server, Access, Oracle, Firebird, MySql, Postgres, WebDB (LUW+AS/400) MSSQL, MSSQLCE, Oracle, DB (Genome 2x), 2.0 (Genome 3.x), 3.5 (Genome 3.x mit LINQ) alle VB, C# alle anderen ohne Visual- Studio-Integration / / / / Genome Web Application Project Wizard, ASP.NET CRUD Pages Wizard, Database Reverse Engineering Genome Query Analyzer ddsc (mapping schema compiler), wopc (data transfer object compiler), gas.exe (pessimistic locking server console) / / / / / / ADO.NET Enhancing bei der Kompilierung ADO.NET Erzeugung zusätzlicher Assemblies beim Kompilieren (MSBuild-Integration, eigener Projekttyp für VS) Tabellenname konfigurierbarer Tabellenname: Singularisation, unverändert, reguläre Ausdrücke Tabellenname konfigurierbarer Tabellenname: Singularisation, unverändert, reguläre Ausdrücke nur als Teil einer persistenten Klasse optional das Genome Wire Object Protocol lässt sich verwenden, um persistente Objekte in POCO Datentransfer-Objekte umzuwandeln Abbildung 5 Das ADO.NET Entity Frame - work stellt die Beziehung zwischen FL_Flug und PS_Passagier als echte m:n- Beziehung dar. Framework haben sowohl einen Designer als auch einen Assistenten zum Anlegen von Abbildungen. Visual Studio 2008 unterstützen alle außer NHibernate; Visual Studio 2005 wird von VOA, NHibernate, NDO und Genome unterstützt. Visual Studio 2003 ist nur zusammen mit VOA zu verwenden. Die Anbieter mit Designern bieten Elementvorlagen in Visual Studio, die sich zu einem beliebigen Projekt hinzufügen lassen. Vanatecs Tool speichert alle Mapping-Informationen in XML-Dateien mit der Erweiterung config, wobei diese Datei von dem Assistenten erzeugt wird, der nach dem Anlegen eines Projekts über den Menüpunkt Vanatec aufzurufen ist. Einzig Genome spendiert seiner Lösung eigene Projektvorlagen. Die Vorlage Web Application Project erzeugt die Grundstruktur für eine Genome-basierte Webanwendung. Ein Mapping Project ermöglicht, die Mapping-Informationen als ein eigenes Visual-Studio-Projekt zu führen und damit eine bessere Wiederverwendung, falls diese Daten in verschiedenen Projekten benötigt werden. Überwachung und Erweiterbarkeit Wie so oft bei der Bewertung von Software geht es auch hier um die Frage der Erweiterbarkeit, also die Möglichkeit, die Funktionen des Produkts zur erweitern und so bestehende Restriktion aufzuheben. Alle Anbieter ermöglichen es, über eigenen Programmcode den Lebenszyklus eines Geschäftsobjekts und des Objektcontainers zu überwachen und zu beeinflussen. Einige Anbieter sprechen hier von Interception, andere von Lifecycle Events oder Hooks. Interessant ist die Frage, ob sich andere Datenbankmanagementsysteme anbinden lassen. Dies erlauben NHibernate, NDO und das EF. Mit NHibernate kann der Entwickler seine Objekte nicht nur in relationalen Datenbanken, sondern theoretisch sogar auch in anderen Speichern,

11 Tools Objektrelationale Mapper für.net im Vergleich Vergleich wichtiger ORM-Werkzeuge für.net Produkt LINQ-to-SQL ADO.NET Entity Framework Vanatec OpenAccess (VOA) NHibernate Object Services Mapping-Arten Persistiert Felder/Eigenschaften //// Unterstützung für nullbasierte Werte 1 Klasse -> 1 Tabelle 1 Klasse -> n Tabellen n Klassen -> 1 Tabelle n Klassen -> m Tabellen Relationen 0/1:1 / 0/1:n / 0/n:m / // // // / Anforderungen für 0/1:1-Relationen EntityRef EntityReference Unterstützung für Collection-Typen EntitySet EntityCollection ArrayList, IList, ICollection, IDic. IList, ISet, IDictionary, ICollection Codebasiertes Mapping über Annotationen optional, mithilfe von Mapping- Attributen XML-basiertes Mapping / Mapping-Datei //// Mapping zur Kompilierungszeit (inklusive Fehlererkennung) Filtered- / Vertical- / Horizontal Mapping (bei Vererbung) / // // // / Tabellen-Mapping ohne Objekt-Mapping EntitityClient Zusammengesetzte Schlüssel Referenz über den Schlüssel (Objektreferenz kann aus Schlüsselattribut kontruiert werden) Abfragen Name des Containers DataContext ObjectContext ObjectScope Session Abfragesprachen LINQ, SQL esql, LINQ-to-Entitites OQL (OMG), LINQ, SQL HQL, SQL Parametrisierung der erzeugten SQL-Abfragen Von Nutzer definierte ADO.NET-Verbindungen eigener Verbindungs-Pool zum effizienteren Verwalten auf Grundla- ge von ADO.NET-Verbindungen Kompilierte Abfragen Lazy Loading Eager Loading Eager Loading Scope Kontext Abfrage Abfrage Abfrage Datenaktualisierung Speichern von geänderten Daten Änderungen bei einzelne Objekten verfolgen Änderungen bei Collections verfolgen Unterstützung von Autowerten/ID-Spalten Unterstützung von gespeicherten Prozeduren nur für SELECT Unterstützung von gespeicherten Prozeduren mit multiplen Ergebnis-Sets Unterstützung für Table-Valued Functions AutoInc Unterstützung von Transaktionen Integration mit System.Transactions Transaktionen erforderlich für alle Schreib - operationen Pessimistisches Sperren (bei Transaktionen) Optimistisches Sperren Konfikterkennung mit Originalwert/Zeitstempel/ / // // // / Versionsnummer Lazy Loading skalarer Eigenschaften einer Objektinstanz Multi-Tier-Unterstützung bei losen Objekten Änderungen bei unverbundenen Objekten verfolgen EntityBag (Add-on) ObjectContainer Cache First Level Cache (Session Level) Second Level Cache (Arbeitsspeicher/ASP.NET/ / / // / // / // / / Datenbank/Dateisystem) Verteiltes Caching MSMQ NCache (kommerzielle Version) Eigener Second Level Cache implementierbar auf Anfrage beim Hersteller Monitoring Logging/Tracing TraceSources log4net Windows-Leistungsindikatoren Erweiterbarkeit Überwachen von Objekten mit eigenen Codes Eigene Datenbank-Provider Sonstige Erweiterungen andere Persistenzmechanismen, SQL-Dialekt, SQL-Sprachersetzung, ID-Generator, etc

12 .NET Data Objects (NDO) Genome / / / (Version 2.0) / / / / IList IEnumerable<T>, ICollection<T> optional, erzeugt eine Mapping-Datei / / / / / / PersistenceManager DataDomain eigene SQL-ähnliche Abfragesprache, SQL LINQ, OQL, SQL Abfrage Abfrage teilweise automatisch aus LINQ- oder OQL- Ausdrücken generierbar /eigener GUID-basierter / / Mechanismus/ / / / / / / etwa in einer Datei oder einem LDAP- Server, die Zeit überdauern lassen. Bei LINQ-to-SQL will Microsoft nicht, dass andere Datenbanken außer dem hauseigenen SQL Server inklusive seiner Express-Version und SQL Server Compact angesteuert werden können. No public provider model is available. At this time, LINQ to SQL supports SQL Server and SQL Server Compact 3.5 only. heißt es im LINQ-to-SQL FAQ [10]. Beim ADO.NET Entity Framework will Microsoft Drittanbieter bei der Erstellung eigener Provider unterstützen. Noch im Lauf des Jahres sollen zahlreiche Provider erscheinen, sowohl von Datenbankherstellern als auch Firmen wie OpenLink Software und DataDirect Technologies, die bisher schon als unabhängige Lieferanten für Datenbanktreiber aufgetreten sind. Wenn Microsoft Wort hält, wird das EF das ORM-Werkzeug mit der breitesten Datenbankunterstüzung werden. Die größte Flexibilität bei der Erweiterbarkeit bietet insgesamt eindeutig NHibernate, nicht nur weil es ein Open- Source-Projekt ist, sondern auch weil hier sehr viele Bausteine auf Austauschbarkeit hin angelegt sind. NHibernate bietet aber neben eigenen Datenbank-Providern auch andere Erweiterungsmöglichkeiten, zum Beispiel die Einflussnahme auf die Vergabe von automatischen Primärschlüsseln oder die Codeerzeugung zur Laufzeit. Genome und NHibernate erlauben die Implementierung eigener Second Level Caches. Im Bereich der Überwachung bieten alle Produkte neben den Lebenszyklusereignissen auch einfachere Möglichkeiten, die Arbeit des ORM- Werkzeugs zu protokollieren, etwa um die erzeugten SQL-Befehle auf der Konsole oder in eine Datei auszugeben. Eine Überwachung durch die Windows-Leistungsindikatoren bietet nur VOA. Fazit Am Ende dieses Vergleichs fällt es sehr schwer, einen eindeutigen Gewinner auszumachen. Hinsichtlich der Mapping- Möglichkeiten etwas abgehängt ist eindeutig LINQ-to-SQL. Mehr Flexibilität gibt es im EF, die Microsoft aber mit einem Verzicht auf das Forward Mapping erkauft; bis zum Erscheinen dauert es jedoch noch einige Monate, in denen es noch Änderungen an den Funktionen geben kann. Außerdem kann im EF die Anforderung, dass die Geschäftsobjektklasse eine bestimmte Basisklasse besitzen muss, bei der freien Entfaltung des Objektmodells sehr stören. Noch unterstützen weder LINQ-to-SQL noch EF andere Datenbanken als SQL Server. Immerhin hat Microsoft hier Großes angekündigt. Bei den Drittanbietern fällt das Open-Source-Projekt NHibernate trotz der breiten Unterstützung unterschiedlicher Datenbanken hinter die kommerzielle Konkurrenz zurück, weil es kaum grafische Werkzeuge bietet. Zwischen den drei Drittanbietern eine Bewertung abzugeben wäre nicht fair, denn der Autor kennt nur VOA aus der Praxis. Das ADO.NET Entity Framework dürfte langfristig die größte Überlebenswahrscheinlichkeit haben. LINQ-to-SQL wird Microsoft wieder auf das Abstellgleis schieben; und die Drittanbieter werden es sehr schwer haben, ihre Werkzeuge noch zu verkaufen, wenn Microsoft die meisten Fälle schon abdeckt. Eine Marktbereinigung findet hier auf jeden Fall statt, wobei die hier verglichenen Dritt anbieter im Markt noch recht gut aufgestellt sind im Vergleich zu den vielen kleineren Anbietern. [1] ADO.NET Entity Framework & LINQ to Relational Data, f dnplink SL0408ORM1 [2] NHibernate Resources, f dnplink SL0408ORM2 [3] Erläuterung von LINQ einschließlich einer Liste von LINQ-Providern, f dnplink SL0408ORM3 [4] Holger Schwichtenberg: Das ADO.NET Entity Framework, dotnetpro 5/2007, Seite 94 ff. [5] Implementing Linq for NHibernate: A How To Guide, f dnplink SL0408ORM4 [6] For JDO, the Time is Now, f dnplink SL0408ORM5 [7] ADO.NET Entity Framework Tools Dezember CTP, f dnplink SL0408ORM6 [8] NHibernate Add-in für Visual Studio 2005, f dnplink SL0408ORM7 [9] Perseus: Entity Framework EntityBag, f dnplink SL0408ORM8 [10] Frequently Asked Questions (LINQ to SQL), f dnplink SL0408ORM9 Callbacks, eigene NDO-Provider, eigene Caching-Provider Persistenz-Handler Bitte beachten Sie folgenden wichtigen Hinweis zum Ursprung der Daten in der Tabelle: Die Angaben zu LINQ-to-SQL, ADO.NET Entity Framework und NHibernate wurden vom Autor des Beitrags erhoben. Die Angaben zu Vanatec Open Access, NDO und Genome wurden von den Herstellern geliefert. Der Autor hat nur die Angaben von Vanatec Open Access zum Teil an eigenen Projekten verifiziert. Der Autor hat NDO und Genome nicht selbst im Projekteinsatz und kann die Angaben der Hersteller hier nicht überprüfen

Fachbericht zum Thema: Anforderungen an ein Datenbanksystem

Fachbericht zum Thema: Anforderungen an ein Datenbanksystem Fachbericht zum Thema: Anforderungen an ein Datenbanksystem von André Franken 1 Inhaltsverzeichnis 1 Inhaltsverzeichnis 1 2 Einführung 2 2.1 Gründe für den Einsatz von DB-Systemen 2 2.2 Definition: Datenbank

Mehr

Im Folgenden wird Ihnen an einem Beispiel erklärt, wie Sie Excel-Anlagen und Excel-Vorlagen erstellen können.

Im Folgenden wird Ihnen an einem Beispiel erklärt, wie Sie Excel-Anlagen und Excel-Vorlagen erstellen können. Excel-Schnittstelle Im Folgenden wird Ihnen an einem Beispiel erklärt, wie Sie Excel-Anlagen und Excel-Vorlagen erstellen können. Voraussetzung: Microsoft Office Excel ab Version 2000 Zum verwendeten Beispiel:

Mehr

2. Einrichtung der ODBC-Schnittstelle aus orgamax (für 32-bit-Anwendungen)

2. Einrichtung der ODBC-Schnittstelle aus orgamax (für 32-bit-Anwendungen) 1. Einführung: Über den ODBC-Zugriff können Sie bestimmte Daten aus Ihren orgamax-mandanten in anderen Anwendungen (beispielsweise Microsoft Excel oder Microsoft Access) einlesen. Dies bietet sich beispielsweise

Mehr

Handbuch ECDL 2003 Basic Modul 5: Datenbank Grundlagen von relationalen Datenbanken

Handbuch ECDL 2003 Basic Modul 5: Datenbank Grundlagen von relationalen Datenbanken Handbuch ECDL 2003 Basic Modul 5: Datenbank Grundlagen von relationalen Datenbanken Dateiname: ecdl5_01_00_documentation_standard.doc Speicherdatum: 14.02.2005 ECDL 2003 Basic Modul 5 Datenbank - Grundlagen

Mehr

SANDBOXIE konfigurieren

SANDBOXIE konfigurieren SANDBOXIE konfigurieren für Webbrowser und E-Mail-Programme Dies ist eine kurze Anleitung für die grundlegenden folgender Programme: Webbrowser: Internet Explorer, Mozilla Firefox und Opera E-Mail-Programme:

Mehr

Lokale Installation von DotNetNuke 4 ohne IIS

Lokale Installation von DotNetNuke 4 ohne IIS Lokale Installation von DotNetNuke 4 ohne IIS ITM GmbH Wankelstr. 14 70563 Stuttgart http://www.itm-consulting.de Benjamin Hermann hermann@itm-consulting.de 12.12.2006 Agenda Benötigte Komponenten Installation

Mehr

mywms Vorlage Seite 1/5 mywms Datenhaltung von Haug Bürger

mywms Vorlage Seite 1/5 mywms Datenhaltung von Haug Bürger mywms Vorlage Seite 1/5 mywms Datenhaltung von Haug Bürger Grundlegendes Oracle9i PostgreSQL Prevayler Memory mywms bietet umfangreiche Konfigurationsmöglichkeiten um die Daten dauerhaft zu speichern.

Mehr

pro4controlling - Whitepaper [DEU] Whitepaper zur CfMD-Lösung pro4controlling Seite 1 von 9

pro4controlling - Whitepaper [DEU] Whitepaper zur CfMD-Lösung pro4controlling Seite 1 von 9 Whitepaper zur CfMD-Lösung pro4controlling Seite 1 von 9 1 Allgemeine Beschreibung "Was war geplant, wo stehen Sie jetzt und wie könnte es noch werden?" Das sind die typischen Fragen, mit denen viele Unternehmer

Mehr

Session Beans & Servlet Integration. Ralf Gitzel ralf_gitzel@hotmail.de

Session Beans & Servlet Integration. Ralf Gitzel ralf_gitzel@hotmail.de s & Servlet Integration Ralf Gitzel ralf_gitzel@hotmail.de 1 Themenübersicht Ralf Gitzel ralf_gitzel@hotmail.de 2 Übersicht Motivation Das Interface Stateful und Stateless s Programmierung einer Stateful

Mehr

Wie richten Sie Ihr Web Paket bei Netpage24 ein

Wie richten Sie Ihr Web Paket bei Netpage24 ein Wie richten Sie Ihr Web Paket bei Netpage24 ein Eine kostenlose ebook Anleitung von Netpage24 - Webseite Information 1 E-Mail Bestätigung... 3 2 Ticketsystem... 3 3 FTP Konto anlegen... 4 4 Datenbank anlegen...

Mehr

Installation der SAS Foundation Software auf Windows

Installation der SAS Foundation Software auf Windows Installation der SAS Foundation Software auf Windows Der installierende Benutzer unter Windows muss Mitglied der lokalen Gruppe Administratoren / Administrators sein und damit das Recht besitzen, Software

Mehr

OP-LOG www.op-log.de

OP-LOG www.op-log.de Verwendung von Microsoft SQL Server, Seite 1/18 OP-LOG www.op-log.de Anleitung: Verwendung von Microsoft SQL Server 2005 Stand Mai 2010 1 Ich-lese-keine-Anleitungen 'Verwendung von Microsoft SQL Server

Mehr

mobilepoi 0.91 Demo Version Anleitung Das Software Studio Christian Efinger Erstellt am 21. Oktober 2005

mobilepoi 0.91 Demo Version Anleitung Das Software Studio Christian Efinger Erstellt am 21. Oktober 2005 Das Software Studio Christian Efinger mobilepoi 0.91 Demo Version Anleitung Erstellt am 21. Oktober 2005 Kontakt: Das Software Studio Christian Efinger ce@efinger-online.de Inhalt 1. Einführung... 3 2.

Mehr

mysql - Clients MySQL - Abfragen eine serverbasierenden Datenbank

mysql - Clients MySQL - Abfragen eine serverbasierenden Datenbank mysql - Clients MySQL - Abfragen eine serverbasierenden Datenbank In den ersten beiden Abschnitten (rbanken1.pdf und rbanken2.pdf) haben wir uns mit am Ende mysql beschäftigt und kennengelernt, wie man

Mehr

Facebook I-Frame Tabs mit Papoo Plugin erstellen und verwalten

Facebook I-Frame Tabs mit Papoo Plugin erstellen und verwalten Facebook I-Frame Tabs mit Papoo Plugin erstellen und verwalten Seit Anfang Juni 2012 hat Facebook die Static FBML Reiter deaktiviert, so wird es relativ schwierig für Firmenseiten eigene Impressumsreiter

Mehr

Objektorientierte Programmierung für Anfänger am Beispiel PHP

Objektorientierte Programmierung für Anfänger am Beispiel PHP Objektorientierte Programmierung für Anfänger am Beispiel PHP Johannes Mittendorfer http://jmittendorfer.hostingsociety.com 19. August 2012 Abstract Dieses Dokument soll die Vorteile der objektorientierten

Mehr

Lizenzierung von SharePoint Server 2013

Lizenzierung von SharePoint Server 2013 Lizenzierung von SharePoint Server 2013 Das Lizenzmodell von SharePoint Server 2013 besteht aus zwei Komponenten: Serverlizenzen zur Lizenzierung der Serversoftware und CALs zur Lizenzierung der Zugriffe

Mehr

CSS-Grundlagen. Etwas über Browser. Kapitel. Die Vorbereitung

CSS-Grundlagen. Etwas über Browser. Kapitel. Die Vorbereitung Kapitel 1 Die Vorbereitung Vorgängerversionen. Bald darauf folgte dann schon die Version 4, die mit einer kleinen Bearbeitung bis vor Kurzem 15 Jahre unverändert gültig war. All das, was du die letzten

Mehr

4D Server v12 64-bit Version BETA VERSION

4D Server v12 64-bit Version BETA VERSION 4D Server v12 64-bit Version BETA VERSION 4D Server v12 unterstützt jetzt das Windows 64-bit Betriebssystem. Hauptvorteil der 64-bit Technologie ist die rundum verbesserte Performance der Anwendungen und

Mehr

Suche schlecht beschriftete Bilder mit Eigenen Abfragen

Suche schlecht beschriftete Bilder mit Eigenen Abfragen Suche schlecht beschriftete Bilder mit Eigenen Abfragen Ist die Bilderdatenbank über einen längeren Zeitraum in Benutzung, so steigt die Wahrscheinlichkeit für schlecht beschriftete Bilder 1. Insbesondere

Mehr

Windows Server 2008 für die RADIUS-Authentisierung einrichten

Windows Server 2008 für die RADIUS-Authentisierung einrichten Windows Server 2008 für die RADIUS-Authentisierung einrichten Version 0.2 Die aktuellste Version dieser Installationsanleitung ist verfügbar unter: http://www.revosec.ch/files/windows-radius.pdf Einleitung

Mehr

4. BEZIEHUNGEN ZWISCHEN TABELLEN

4. BEZIEHUNGEN ZWISCHEN TABELLEN 4. BEZIEHUNGEN ZWISCHEN TABELLEN Zwischen Tabellen können in MS Access Beziehungen bestehen. Durch das Verwenden von Tabellen, die zueinander in Beziehung stehen, können Sie Folgendes erreichen: Die Größe

Mehr

3 Windows als Storage-Zentrale

3 Windows als Storage-Zentrale 3 Windows als Storage-Zentrale Windows als zentrale Datenspeichereinheit punktet gegenüber anderen Lösungen vor allem bei der Integration in vorhandene Unternehmensnetze sowie bei der Administration. Dabei

Mehr

Datensicherung. Beschreibung der Datensicherung

Datensicherung. Beschreibung der Datensicherung Datensicherung Mit dem Datensicherungsprogramm können Sie Ihre persönlichen Daten problemlos Sichern. Es ist möglich eine komplette Datensicherung durchzuführen, aber auch nur die neuen und geänderten

Mehr

Ist Excel das richtige Tool für FMEA? Steve Murphy, Marc Schaeffers

Ist Excel das richtige Tool für FMEA? Steve Murphy, Marc Schaeffers Ist Excel das richtige Tool für FMEA? Steve Murphy, Marc Schaeffers Ist Excel das richtige Tool für FMEA? Einleitung Wenn in einem Unternehmen FMEA eingeführt wird, fangen die meisten sofort damit an,

Mehr

Er musste so eingerichtet werden, dass das D-Laufwerk auf das E-Laufwerk gespiegelt

Er musste so eingerichtet werden, dass das D-Laufwerk auf das E-Laufwerk gespiegelt Inhaltsverzeichnis Aufgabe... 1 Allgemein... 1 Active Directory... 1 Konfiguration... 2 Benutzer erstellen... 3 Eigenes Verzeichnis erstellen... 3 Benutzerkonto erstellen... 3 Profil einrichten... 5 Berechtigungen

Mehr

Albert HAYR Linux, IT and Open Source Expert and Solution Architect. Open Source professionell einsetzen

Albert HAYR Linux, IT and Open Source Expert and Solution Architect. Open Source professionell einsetzen Open Source professionell einsetzen 1 Mein Background Ich bin überzeugt von Open Source. Ich verwende fast nur Open Source privat und beruflich. Ich arbeite seit mehr als 10 Jahren mit Linux und Open Source.

Mehr

Lizenzierung von SharePoint Server 2013

Lizenzierung von SharePoint Server 2013 Lizenzierung von SharePoint Server 2013 Das Lizenzmodell von SharePoint Server 2013 besteht aus zwei Komponenten: Serverlizenzen zur Lizenzierung der Serversoftware und CALs zur Lizenzierung der Zugriffe

Mehr

Die Beschreibung bezieht sich auf die Version Dreamweaver 4.0. In der Version MX ist die Sitedefinition leicht geändert worden.

Die Beschreibung bezieht sich auf die Version Dreamweaver 4.0. In der Version MX ist die Sitedefinition leicht geändert worden. In einer Website haben Seiten oft das gleiche Layout. Speziell beim Einsatz von Tabellen, in denen die Navigation auf der linken oder rechten Seite, oben oder unten eingesetzt wird. Diese Anteile der Website

Mehr

Lizenzierung von System Center 2012

Lizenzierung von System Center 2012 Lizenzierung von System Center 2012 Mit den Microsoft System Center-Produkten lassen sich Endgeräte wie Server, Clients und mobile Geräte mit unterschiedlichen Betriebssystemen verwalten. Verwalten im

Mehr

Ablaufbeschreibung für das neu Aufsetzen von Firebird und Interbase Datenbanken mit der IBOConsole

Ablaufbeschreibung für das neu Aufsetzen von Firebird und Interbase Datenbanken mit der IBOConsole Lavid-F.I.S. Ablaufbeschreibung für das neu Aufsetzen von Firebird und Interbase Datenbanken mit der Lavid Software GmbH Dauner Straße 12, D-41236 Mönchengladbach http://www.lavid-software.net Support:

Mehr

Kapitel 4 Die Datenbank Kuchenbestellung Seite 1

Kapitel 4 Die Datenbank Kuchenbestellung Seite 1 Kapitel 4 Die Datenbank Kuchenbestellung Seite 1 4 Die Datenbank Kuchenbestellung In diesem Kapitel werde ich die Theorie aus Kapitel 2 Die Datenbank Buchausleihe an Hand einer weiteren Datenbank Kuchenbestellung

Mehr

O/R Mapper. O/R Mapper anhand von NHibernate & Entity Framework Thomas Mentzel März 2010

O/R Mapper. O/R Mapper anhand von NHibernate & Entity Framework Thomas Mentzel März 2010 O/R Mapper O/R Mapper anhand von NHibernate & Entity Framework Thomas Mentzel März 2010 Agenda Object-relational impedance mismatch Mapping Session Abfragen No. 2 Object-relational impedance mismatch Object-relational

Mehr

Qt-Projekte mit Visual Studio 2005

Qt-Projekte mit Visual Studio 2005 Qt-Projekte mit Visual Studio 2005 Benötigte Programme: Visual Studio 2005 Vollversion, Microsoft Qt 4 Open Source s. Qt 4-Installationsanleitung Tabelle 1: Benötigte Programme für die Qt-Programmierung

Mehr

FTP-Leitfaden RZ. Benutzerleitfaden

FTP-Leitfaden RZ. Benutzerleitfaden FTP-Leitfaden RZ Benutzerleitfaden Version 1.4 Stand 08.03.2012 Inhaltsverzeichnis 1 Einleitung... 3 1.1 Zeitaufwand... 3 2 Beschaffung der Software... 3 3 Installation... 3 4 Auswahl des Verbindungstyps...

Mehr

Kurzeinführung Excel2App. Version 1.0.0

Kurzeinführung Excel2App. Version 1.0.0 Kurzeinführung Excel2App Version 1.0.0 Inhalt Einleitung Das Ausgangs-Excel Excel-Datei hochladen Excel-Datei konvertieren und importieren Ergebnis des Imports Spalten einfügen Fehleranalyse Import rückgängig

Mehr

Arbeiten mit UMLed und Delphi

Arbeiten mit UMLed und Delphi Arbeiten mit UMLed und Delphi Diese Anleitung soll zeigen, wie man Klassen mit dem UML ( Unified Modeling Language ) Editor UMLed erstellt, in Delphi exportiert und dort so einbindet, dass diese (bis auf

Mehr

Daten-Synchronisation zwischen dem ZDV-Webmailer und Outlook (2002-2007) Zentrum für Datenverarbeitung der Universität Tübingen

Daten-Synchronisation zwischen dem ZDV-Webmailer und Outlook (2002-2007) Zentrum für Datenverarbeitung der Universität Tübingen Daten-Synchronisation zwischen dem ZDV-Webmailer und Outlook (2002-2007) Zentrum für Datenverarbeitung der Universität Tübingen Inhalt 1. Die Funambol Software... 3 2. Download und Installation... 3 3.

Mehr

2.5.2 Primärschlüssel

2.5.2 Primärschlüssel Relationale Datenbanken 0110 01101110 01110 0110 0110 0110 01101 011 01110 0110 010 011011011 0110 01111010 01101 011011 0110 01 01110 011011101 01101 0110 010 010 0110 011011101 0101 0110 010 010 01 01101110

Mehr

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren Lineargleichungssysteme: Additions-/ Subtraktionsverfahren W. Kippels 22. Februar 2014 Inhaltsverzeichnis 1 Einleitung 2 2 Lineargleichungssysteme zweiten Grades 2 3 Lineargleichungssysteme höheren als

Mehr

Step by Step Webserver unter Windows Server 2003. von Christian Bartl

Step by Step Webserver unter Windows Server 2003. von Christian Bartl Step by Step Webserver unter Windows Server 2003 von Webserver unter Windows Server 2003 Um den WWW-Server-Dienst IIS (Internet Information Service) zu nutzen muss dieser zunächst installiert werden (wird

Mehr

Informatik 12 Datenbanken SQL-Einführung

Informatik 12 Datenbanken SQL-Einführung Informatik 12 Datenbanken SQL-Einführung Gierhardt Vorbemerkungen Bisher haben wir Datenbanken nur über einzelne Tabellen kennen gelernt. Stehen mehrere Tabellen in gewissen Beziehungen zur Beschreibung

Mehr

Speicher in der Cloud

Speicher in der Cloud Speicher in der Cloud Kostenbremse, Sicherheitsrisiko oder Basis für die unternehmensweite Kollaboration? von Cornelius Höchel-Winter 2013 ComConsult Research GmbH, Aachen 3 SYNCHRONISATION TEUFELSZEUG

Mehr

Adminer: Installationsanleitung

Adminer: Installationsanleitung Adminer: Installationsanleitung phpmyadmin ist bei uns mit dem Kundenmenüpasswort geschützt. Wer einer dritten Person Zugriff auf die Datenbankverwaltung, aber nicht auf das Kundenmenü geben möchte, kann

Mehr

ÖKB Steiermark Schulungsunterlagen

ÖKB Steiermark Schulungsunterlagen ÖKB Steiermark Schulungsunterlagen Fotos von Online-Speicher bereitstellen Da das hinzufügen von Fotos auf unsere Homepage recht umständlich und auf 80 Fotos begrenzt ist, ist es erforderlich die Dienste

Mehr

Inhalt. 1 Einleitung AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER

Inhalt. 1 Einleitung AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER Inhalt 1 Einleitung... 1 2 Einrichtung der Aufgabe für die automatische Sicherung... 2 2.1 Die Aufgabenplanung... 2 2.2 Der erste Testlauf... 9 3 Problembehebung...

Mehr

In diesem Thema lernen wir die Grundlagen der Datenbanken kennen und werden diese lernen einzusetzen. Access. Die Grundlagen der Datenbanken.

In diesem Thema lernen wir die Grundlagen der Datenbanken kennen und werden diese lernen einzusetzen. Access. Die Grundlagen der Datenbanken. In diesem Thema lernen wir die Grundlagen der Datenbanken kennen und werden diese lernen einzusetzen. Access Die Grundlagen der Datenbanken kurspc15 Inhaltsverzeichnis Access... Fehler! Textmarke nicht

Mehr

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster Es gibt in Excel unter anderem die so genannten Suchfunktionen / Matrixfunktionen Damit können Sie Werte innerhalb eines bestimmten Bereichs suchen. Als Beispiel möchte ich die Funktion Sverweis zeigen.

Mehr

ICS-Addin. Benutzerhandbuch. Version: 1.0

ICS-Addin. Benutzerhandbuch. Version: 1.0 ICS-Addin Benutzerhandbuch Version: 1.0 SecureGUARD GmbH, 2011 Inhalt: 1. Was ist ICS?... 3 2. ICS-Addin im Dashboard... 3 3. ICS einrichten... 4 4. ICS deaktivieren... 5 5. Adapter-Details am Server speichern...

Mehr

BüroWARE Exchange Synchronisation Grundlagen und Voraussetzungen

BüroWARE Exchange Synchronisation Grundlagen und Voraussetzungen BüroWARE Exchange Synchronisation Grundlagen und Voraussetzungen Stand: 13.12.2010 Die BüroWARE SoftENGINE ist ab Version 5.42.000-060 in der Lage mit einem Microsoft Exchange Server ab Version 2007 SP1

Mehr

Anleitung zur Einrichtung einer ODBC Verbindung zu den Übungsdatenbanken

Anleitung zur Einrichtung einer ODBC Verbindung zu den Übungsdatenbanken Betriebliche Datenverarbeitung Wirtschaftswissenschaften AnleitungzurEinrichtungeinerODBC VerbindungzudenÜbungsdatenbanken 0.Voraussetzung Diese Anleitung beschreibt das Vorgehen für alle gängigen Windows

Mehr

Wiederherstellen der Beispieldatenbanken zum Buch Microsoft Project 2010

Wiederherstellen der Beispieldatenbanken zum Buch Microsoft Project 2010 Wiederherstellen der Beispieldatenbanken zum Buch Microsoft Project 2010 1 Datenbanken wiederherstellen Am einfachsten ist es, wenn Sie die fünf Datenbanken aus der ZIP Datei in das Standard Backup Verzeichnis

Mehr

Ordner Berechtigung vergeben Zugriffsrechte unter Windows einrichten

Ordner Berechtigung vergeben Zugriffsrechte unter Windows einrichten Ordner Berechtigung vergeben Zugriffsrechte unter Windows einrichten Was sind Berechtigungen? Unter Berechtigungen werden ganz allgemein die Zugriffsrechte auf Dateien und Verzeichnisse (Ordner) verstanden.

Mehr

Übung: Verwendung von Java-Threads

Übung: Verwendung von Java-Threads Übung: Verwendung von Java-Threads Ziel der Übung: Diese Übung dient dazu, den Umgang mit Threads in der Programmiersprache Java kennenzulernen. Ein einfaches Java-Programm, das Threads nutzt, soll zum

Mehr

Was ist neu in Sage CRM 6.1

Was ist neu in Sage CRM 6.1 Was ist neu in Sage CRM 6.1 Was ist neu in Sage CRM 6.1 In dieser Präsentation werden wir Sie auf eine Entdeckungstour mitnehmen, auf der folgende neue und verbesserte Funktionen von Sage CRM 6.1 auf Basis

Mehr

Hex Datei mit Atmel Studio 6 erstellen

Hex Datei mit Atmel Studio 6 erstellen Hex Datei mit Atmel Studio 6 erstellen Es werden generell keine Atmel Studio Dateien ins Repository geladen, da jeder seine Dateien an anderen Orten liegen hat und weil nicht jeder das Atmel Studio 6 benutzt.

Mehr

So importieren Sie einen KPI mithilfe des Assistenten zum Erstellen einer Scorecard

So importieren Sie einen KPI mithilfe des Assistenten zum Erstellen einer Scorecard 1 von 6 102013 18:09 SharePoint 2013 Veröffentlicht: 16.07.2012 Zusammenfassung: Hier erfahren Sie, wie Sie einen KPI (Key Performance Indicator) mithilfe des PerformancePoint Dashboard Designer in SharePoint

Mehr

Es sollte die MS-DOS Eingabeaufforderung starten. Geben Sie nun den Befehl javac ein.

Es sollte die MS-DOS Eingabeaufforderung starten. Geben Sie nun den Befehl javac ein. Schritt 1: Installation des Javacompilers JDK. Der erste Start mit Eclipse Bevor Sie den Java-Compiler installieren sollten Sie sich vergewissern, ob er eventuell schon installiert ist. Gehen sie wie folgt

Mehr

Intranet E-Mail Moodle

Intranet E-Mail Moodle Intranet E-Mail Moodle Manual für Lernende V1.0 1 / 8 Inhaltsverzeichnis Übersicht... 3 1. Intranet... 3 2. Anmeldenamen... 4 3. Passwort... 4 3.1 Erste Anmeldung... 4 3.2 Passwort ändern... 5 3.3 Passwort

Mehr

Datenmanagement in Android-Apps. 16. Mai 2013

Datenmanagement in Android-Apps. 16. Mai 2013 Datenmanagement in Android-Apps 16. Mai 2013 Überblick Strukturierung von datenorientierten Android-Apps Schichtenarchitektur Möglichkeiten der Datenhaltung: in Dateien, die auf der SDCard liegen in einer

Mehr

Reporting Services und SharePoint 2010 Teil 1

Reporting Services und SharePoint 2010 Teil 1 Reporting Services und SharePoint 2010 Teil 1 Abstract Bei der Verwendung der Reporting Services in Zusammenhang mit SharePoint 2010 stellt sich immer wieder die Frage bei der Installation: Wo und Wie?

Mehr

Step by Step Remotedesktopfreigabe unter Windows Server 2003. von Christian Bartl

Step by Step Remotedesktopfreigabe unter Windows Server 2003. von Christian Bartl Step by Step Remotedesktopfreigabe unter Windows Server 2003 von Remotedesktopfreigabe unter Windows Server 2003 Um die Remotedesktopfreigabe zu nutzen muss diese am Server aktiviert werden. Außerdem ist

Mehr

Professionelle Seminare im Bereich MS-Office

Professionelle Seminare im Bereich MS-Office Der Name BEREICH.VERSCHIEBEN() ist etwas unglücklich gewählt. Man kann mit der Funktion Bereiche zwar verschieben, man kann Bereiche aber auch verkleinern oder vergrößern. Besser wäre es, die Funktion

Mehr

Lizenzen auschecken. Was ist zu tun?

Lizenzen auschecken. Was ist zu tun? Use case Lizenzen auschecken Ihr Unternehmen hat eine Netzwerk-Commuterlizenz mit beispielsweise 4 Lizenzen. Am Freitag wollen Sie Ihren Laptop mit nach Hause nehmen, um dort am Wochenende weiter zu arbeiten.

Mehr

Software Engineering Klassendiagramme Assoziationen

Software Engineering Klassendiagramme Assoziationen Software Engineering Klassendiagramme Assoziationen Prof. Adrian A. Müller, PMP, PSM 1, CSM Fachbereich Informatik und Mikrosystemtechnik 1 Lesen von Multiplizitäten (1) Multiplizitäten werden folgendermaßen

Mehr

Allgemeines zu Datenbanken

Allgemeines zu Datenbanken Allgemeines zu Datenbanken Was ist eine Datenbank? Datensatz Zusammenfassung von Datenelementen mit fester Struktur Z.B.: Kunde Alois Müller, Hegenheimerstr. 28, Basel Datenbank Sammlung von strukturierten,

Mehr

Einrichten des IIS für VDF WebApp. Einrichten des IIS (Internet Information Server) zur Verwendung von Visual DataFlex Web Applications

Einrichten des IIS für VDF WebApp. Einrichten des IIS (Internet Information Server) zur Verwendung von Visual DataFlex Web Applications Einrichten des IIS (Internet Information Server) zur Verwendung von Visual DataFlex Web Applications Windows 8 Systemsteuerung > Programme > Windows Features aktivieren / deaktivieren > Im Verzeichnisbaum

Mehr

Handbuch. timecard Connector 1.0.0. Version: 1.0.0. REINER SCT Kartengeräte GmbH & Co. KG Goethestr. 14 78120 Furtwangen

Handbuch. timecard Connector 1.0.0. Version: 1.0.0. REINER SCT Kartengeräte GmbH & Co. KG Goethestr. 14 78120 Furtwangen Handbuch timecard Connector 1.0.0 Version: 1.0.0 REINER SCT Kartengeräte GmbH & Co. KG Goethestr. 14 78120 Furtwangen Furtwangen, den 18.11.2011 Inhaltsverzeichnis Seite 1 Einführung... 3 2 Systemvoraussetzungen...

Mehr

Stammdatenanlage über den Einrichtungsassistenten

Stammdatenanlage über den Einrichtungsassistenten Stammdatenanlage über den Einrichtungsassistenten Schritt für Schritt zur fertig eingerichteten Hotelverwaltung mit dem Einrichtungsassistenten Bitte bereiten Sie sich, bevor Sie starten, mit der Checkliste

Mehr

Anlegen eines SendAs/RecieveAs Benutzer unter Exchange 2003, 2007 und 2010

Anlegen eines SendAs/RecieveAs Benutzer unter Exchange 2003, 2007 und 2010 1 von 6 Anlegen eines SendAs/RecieveAs Benutzer unter Exchange 2003, 2007 und 2010 ci solution GmbH 2010 Whitepaper Draft Anleitung Deutsch Verfasser: ci solution GmbH 2010 Manfred Büttner 16. September

Mehr

Erstellen einer digitalen Signatur für Adobe-Formulare

Erstellen einer digitalen Signatur für Adobe-Formulare Erstellen einer digitalen Signatur für Adobe-Formulare (Hubert Straub 24.07.13) Die beiden Probleme beim Versenden digitaler Dokumente sind einmal die Prüfung der Authentizität des Absenders (was meist

Mehr

TTS - TinyTimeSystem. Unterrichtsprojekt BIBI

TTS - TinyTimeSystem. Unterrichtsprojekt BIBI TTS - TinyTimeSystem Unterrichtsprojekt BIBI Mathias Metzler, Philipp Winder, Viktor Sohm 28.01.2008 TinyTimeSystem Inhaltsverzeichnis Problemstellung... 2 Lösungsvorschlag... 2 Punkte die unser Tool erfüllen

Mehr

4. Jeder Knoten hat höchstens zwei Kinder, ein linkes und ein rechtes.

4. Jeder Knoten hat höchstens zwei Kinder, ein linkes und ein rechtes. Binäre Bäume Definition: Ein binärer Baum T besteht aus einer Menge von Knoten, die durch eine Vater-Kind-Beziehung wie folgt strukturiert ist: 1. Es gibt genau einen hervorgehobenen Knoten r T, die Wurzel

Mehr

Eigenen WSUS Server mit dem UNI WSUS Server Synchronisieren

Eigenen WSUS Server mit dem UNI WSUS Server Synchronisieren Verwaltungsdirektion Informatikdienste Eigenen WSUS Server mit dem UNI WSUS Server Synchronisieren Inhaltsverzeichnis Einleitung... 3 Installation WSUS Server... 4 Dokumente... 4 Step by Step Installation...

Mehr

SICHERN DER FAVORITEN

SICHERN DER FAVORITEN Seite 1 von 7 SICHERN DER FAVORITEN Eine Anleitung zum Sichern der eigenen Favoriten zur Verfügung gestellt durch: ZID Dezentrale Systeme März 2010 Seite 2 von 7 Für die Datensicherheit ist bekanntlich

Mehr

Erstellen einer PostScript-Datei unter Windows XP

Erstellen einer PostScript-Datei unter Windows XP Erstellen einer PostScript-Datei unter Windows XP Sie möchten uns Ihre Druckvorlage als PostScript-Datei einreichen. Um Fehler in der Herstellung von vorneherein auszuschließen, möchten wir Sie bitten,

Mehr

Windows Server 2012 R2 Essentials & Hyper-V

Windows Server 2012 R2 Essentials & Hyper-V erklärt: Windows Server 2012 R2 Essentials & Hyper-V Windows Server 2012 R2 Essentials bietet gegenüber der Vorgängerversion die Möglichkeit, mit den Boardmitteln den Windows Server 2012 R2 Essentials

Mehr

CartCalc FAQ (frequently asked questions) häufige Fragen zu CartCalc

CartCalc FAQ (frequently asked questions) häufige Fragen zu CartCalc CartCalc FAQ (frequently asked questions) häufige Fragen zu CartCalc Installation Frage: Wie installiere ich CartCalc? Antwort: Die Installation von CartCalc erfolgt automatisch. Nach Einlegen der Demo-CD

Mehr

Installation und Inbetriebnahme von Microsoft Visual C++ 2010 Express

Installation und Inbetriebnahme von Microsoft Visual C++ 2010 Express Howto Installation und Inbetriebnahme von Microsoft Visual C++ 2010 Express Peter Bitterlich Markus Langer 12. Oktober 2012 Zusammenfassung Dieses Dokument erklärt Schritt für Schritt die Installation

Mehr

SEPA Lastschriften. Ergänzung zur Dokumentation vom 27.01.2014. Workshop Software GmbH Siemensstr. 21 47533 Kleve 02821 / 731 20 02821 / 731 299

SEPA Lastschriften. Ergänzung zur Dokumentation vom 27.01.2014. Workshop Software GmbH Siemensstr. 21 47533 Kleve 02821 / 731 20 02821 / 731 299 SEPA Lastschriften Ergänzung zur Dokumentation vom 27.01.2014 Workshop Software GmbH Siemensstr. 21 47533 Kleve 02821 / 731 20 02821 / 731 299 www.workshop-software.de Verfasser: SK info@workshop-software.de

Mehr

Fachdidaktik der Informatik 18.12.08 Jörg Depner, Kathrin Gaißer

Fachdidaktik der Informatik 18.12.08 Jörg Depner, Kathrin Gaißer Fachdidaktik der Informatik 18.12.08 Jörg Depner, Kathrin Gaißer Klassendiagramme Ein Klassendiagramm dient in der objektorientierten Softwareentwicklung zur Darstellung von Klassen und den Beziehungen,

Mehr

Analyse und praktischer Vergleich von neuen Access- Layer-Technologien in modernen Webanwendungen unter Java. Oliver Kalz

Analyse und praktischer Vergleich von neuen Access- Layer-Technologien in modernen Webanwendungen unter Java. Oliver Kalz Analyse und praktischer Vergleich von neuen Access- Layer-Technologien in modernen Webanwendungen unter Java Oliver Kalz Agenda Grundlagen Objektpersistenz Objektrelationales Mapping Performance Fazit

Mehr

TESTEN SIE IHR KÖNNEN UND GEWINNEN SIE!

TESTEN SIE IHR KÖNNEN UND GEWINNEN SIE! 9 TESTEN SIE IHR KÖNNEN UND GEWINNEN SIE! An den SeniorNETclub 50+ Währinger Str. 57/7 1090 Wien Und zwar gleich in doppelter Hinsicht:!"Beantworten Sie die folgenden Fragen und vertiefen Sie damit Ihr

Mehr

Installation SQL- Server 2012 Single Node

Installation SQL- Server 2012 Single Node Installation SQL- Server 2012 Single Node Dies ist eine Installationsanleitung für den neuen SQL Server 2012. Es beschreibt eine Single Node Installation auf einem virtuellen Windows Server 2008 R2 mit

Mehr

Database Exchange Manager. Infinqa IT Solutions GmbH, Berlin Stralauer Allee 2 10245 Berlin Tel.:+49(0) 30 2900 8639 Fax.:+49(0) 30 2900 8695

Database Exchange Manager. Infinqa IT Solutions GmbH, Berlin Stralauer Allee 2 10245 Berlin Tel.:+49(0) 30 2900 8639 Fax.:+49(0) 30 2900 8695 Database Exchange Manager Replication Service- schematische Darstellung Replication Service- allgemeines Replikation von Daten von bzw. in ein SAP-System und einer relationalen DMS-Datenbank Kombination

Mehr

7. Übung - Datenbanken

7. Übung - Datenbanken 7. Übung - Datenbanken Informatik I für Verkehrsingenieure Aufgaben inkl. Beispiellösungen 1. Aufgabe: DBS a Was ist die Kernaufgabe von Datenbanksystemen? b Beschreiben Sie kurz die Abstraktionsebenen

Mehr

HANDBUCH PHOENIX II - DOKUMENTENVERWALTUNG

HANDBUCH PHOENIX II - DOKUMENTENVERWALTUNG it4sport GmbH HANDBUCH PHOENIX II - DOKUMENTENVERWALTUNG Stand 10.07.2014 Version 2.0 1. INHALTSVERZEICHNIS 2. Abbildungsverzeichnis... 3 3. Dokumentenumfang... 4 4. Dokumente anzeigen... 5 4.1 Dokumente

Mehr

Dokumentation. Black- und Whitelists. Absenderadressen auf eine Blacklist oder eine Whitelist setzen. Zugriff per Webbrowser

Dokumentation. Black- und Whitelists. Absenderadressen auf eine Blacklist oder eine Whitelist setzen. Zugriff per Webbrowser Dokumentation Black- und Whitelists Absenderadressen auf eine Blacklist oder eine Whitelist setzen. Zugriff per Webbrowser Inhalt INHALT 1 Kategorie Black- und Whitelists... 2 1.1 Was sind Black- und Whitelists?...

Mehr

Informatik 1 Tutorial

Informatik 1 Tutorial ETH Zürich, D-INFK/D-BAUG Herbstsemester 2014 Dr. Martin Hirt Christian Badertscher Informatik 1 Tutorial Dieses Tutorial hat zum Ziel, die notwendigen Tools auf dem eigenen Computer zu installieren, so

Mehr

Collaboration Manager

Collaboration Manager Collaboration Manager Inhalt Installationsanleitung... 2 Installation mit Setup.exe... 2 Security Requirements... 3 Farmadministrator hinzufügen... 3 Secure Store Service... 3 Feature-Aktivierung... 5

Mehr

Informatik I Tutorial

Informatik I Tutorial ETH Zürich, D-INFK/D-BAUG Herbstsemester 2015 Dr. Martin Hirt Daniel Jost Informatik I Tutorial Dieses Tutorial hat zum Ziel, die notwendigen Tools auf dem eigenen Computer zu installieren, so dass ihr

Mehr

Installationsanleitung dateiagent Pro

Installationsanleitung dateiagent Pro Installationsanleitung dateiagent Pro Sehr geehrter Kunde, mit dieser Anleitung möchten wir Ihnen die Installation des dateiagent Pro so einfach wie möglich gestalten. Es ist jedoch eine Softwareinstallation

Mehr

[Customer Service by KCS.net] KEEPING CUSTOMERS SUCCESSFUL

[Customer Service by KCS.net] KEEPING CUSTOMERS SUCCESSFUL [Customer Service by KCS.net] KEEPING CUSTOMERS SUCCESSFUL Was bedeutet Customer Service by KCS.net? Mit der Einführung von Microsoft Dynamics AX ist der erste wichtige Schritt für viele Unternehmen abgeschlossen.

Mehr

Artikel Schnittstelle über CSV

Artikel Schnittstelle über CSV Artikel Schnittstelle über CSV Sie können Artikeldaten aus Ihrem EDV System in das NCFOX importieren, dies geschieht durch eine CSV Schnittstelle. Dies hat mehrere Vorteile: Zeitersparnis, die Karteikarte

Mehr

.htaccess HOWTO. zum Schutz von Dateien und Verzeichnissen mittels Passwortabfrage

.htaccess HOWTO. zum Schutz von Dateien und Verzeichnissen mittels Passwortabfrage .htaccess HOWTO zum Schutz von Dateien und Verzeichnissen mittels Passwortabfrage Stand: 21.06.2015 Inhaltsverzeichnis 1. Vorwort...3 2. Verwendung...4 2.1 Allgemeines...4 2.1 Das Aussehen der.htaccess

Mehr

Alle alltäglichen Aufgaben können auch über das Frontend durchgeführt werden, das in den anderen Anleitungen erläutert wird.

Alle alltäglichen Aufgaben können auch über das Frontend durchgeführt werden, das in den anderen Anleitungen erläutert wird. Der Admin-Bereich im Backend Achtung: Diese Anleitung gibt nur einen groben Überblick über die häufigsten Aufgaben im Backend-Bereich. Sollten Sie sich nicht sicher sein, was genau Sie gerade tun, dann

Mehr

Hibernate Das Praxisbuch für Entwickler

Hibernate Das Praxisbuch für Entwickler Sebastian Hennebrüder 2008 AGI-Information Management Consultants May be used for personal purporses only or by libraries associated to dandelon.com network. Hibernate Das Praxisbuch für Entwickler Galileo

Mehr

Handbuch zur Anlage von Turnieren auf der NÖEV-Homepage

Handbuch zur Anlage von Turnieren auf der NÖEV-Homepage Handbuch zur Anlage von Turnieren auf der NÖEV-Homepage Inhaltsverzeichnis 1. Anmeldung... 2 1.1 Startbildschirm... 3 2. Die PDF-Dateien hochladen... 4 2.1 Neue PDF-Datei erstellen... 5 3. Obelix-Datei

Mehr

Software zum Registrieren und Auswerten von Projektzeiten im Netzwerk

Software zum Registrieren und Auswerten von Projektzeiten im Netzwerk Software zum Registrieren und Auswerten von Projektzeiten im Netzwerk DS Projekt ist eine Software zum Erfassen und Auswerten von Projektzeiten. Sie zeichnet sich durch eine besonders schnelle und einfache

Mehr