Timo Wagner & Sebastian Kühn Entwurf einer Multi-Tier Anwendung in ASP.NET
|
|
- Kristian Rosenberg
- vor 8 Jahren
- Abrufe
Transkript
1 Timo Wagner & Sebastian Kühn Entwurf einer Multi-Tier Anwendung in ASP.NET
2 Überblick 1.Einfürung in die Multi-Tier Architektur 2.Ausgangspunkt und Probleme 3.Rundgang durch die Architektur 4.Architektur in der Praxis und Fazit Architektur einer Multi-Tier Anwendung 2
3 Multi-Tier Architektur Anwendung wird in mehrere Schichten aufgeteilt Eine Schicht enthält logisch zusammengehörige Funktionalität Diese sind weitgehend unabhängig voneinander Architektur einer Multi-Tier Anwendung 3
4 Multi-Tier Architektur Schicht 4 Präsentation Schicht 3 - Sicht Schicht 2 - Modell Schicht 1 Datenzugriff Schicht 0 - Datenbank Architektur einer Multi-Tier Anwendung 4
5 Bewertung der Architektur Bessere Testbarkeit Möglichkeit die Schichten unabhängig voneinander zu Programmieren Gute Änder-, Erweiter- und Wartbarkeit Probleme mit RAD-Entwicklungsumgebungen Anfängliche Komplexität Architektur einer Multi-Tier Anwendung 5
6 Überblick 1.Einfürung in die Multi-Tier Architektur 2.Ausgangspunkt und Probleme 1.Ausgangspunkt 2.Gefundene Antipattern 1.Copy & Paste Programmierung 2.The Blob 3.Poltergeist 3.Rundgang durch die Architektur 4.Architektur in der Praxis und Fazit Architektur einer Multi-Tier Anwendung 6
7 Ausgangspunkt Ursprüngliche Aufgabe: Erstellen von "Komponenten" für eine Liegenschaftsverwaltung Bereits begonnene Anwendung in C# mit ASP.Net und MS SQL-Server Nach Codereview Entscheidung für ein großes Refactoring Architektur einer Multi-Tier Anwendung 7
8 Probleme der vorhandenen Anwendung (1) Entstandenes Anti-Pattern: Copy-and- Paste Programmierung Code der durch Kopieren und Einfügen von Anweisungen mit dem Editor wiederverwendet wird, führt zu signifikanten Wartungsproblemen. [1] Architektur einer Multi-Tier Anwendung 8
9 Folgen des Copy & Paste Anti- Patterns (1) Ein an einer Stelle behobener Fehler taucht an anderen Stellen immer wieder auf Es wird schwierig alle Instanzen eines Fehlers zu finden und zu beseitigen Der Codeumfang nimmt zu ohne das die Produktivität steigt [1] Architektur einer Multi-Tier Anwendung 9
10 Folgen des Copy & Paste Anti- Patterns (2) Führt zu einem Anstieg der Softwarewartungskosten Wiederverwendbare Elemente werden nicht in eine leicht wiederzuverwendende, dokumentierte Form gebracht. [1] Architektur einer Multi-Tier Anwendung 10
11 Copy & Paste - Beispiel Architektur einer Multi-Tier Anwendung 11
12 Probleme der vorhandenen Anwendung (2) Entstandenes Anti-Pattern The Blob Prozedurales Design führt zu einem riesigen Objekt mit einem Löwenanteil an den Verantwortlichkeiten, während die meisten anderen Objekte nur Daten enthalten. [1] Architektur einer Multi-Tier Anwendung 12
13 Folgen des The Blob Anti- Patterns (1) Der Blob beeinträchtigt die inherhärenten Vorteile eines objektorientierten Designs. Die Blob-Klasse ist typischerweise zu komplex für die Wiederverwendung und für Tests. Es kann [...] ausufernde komplexität mit sich bringen, wenn der Blob für Untergruppen seiner Funktionalität wiederverwendet wird. [1] Architektur einer Multi-Tier Anwendung 13
14 Schicht 2 Folgen des The Blob Anti-Patterns (2) Verständlichkeit des Codes leidet. Für die Verwendung des Blobs ist ein tiefes Verständnis des Codes notwendig (Kenntnis der genauen Verwendungsschritte) Architektur einer Multi-Tier Anwendung 14
15 The Blob - Beispiel steuerung::pagehelper +ReadDataFromBusinessObjectAndDisplayThem() +SetDataFromBusinessObject() +ValidatePageAndSetValuesToBusinessObject() +ExtractDataFromBusinessObjectAndDisplayThem() +AddValuesToTable() +AddRowsToTableWeiterPersonen() +AddRowsToTableChildren() +GenerateDataGrid() +SetBoundedColumns() +AddDateTimeBoundedColumns() +AddDecimalBoundedColumns() +GenerateModalColumn() +GetDataSource() +AddSumsToDatagrid() +BindDataGridWithoutBusinessObjects() +SetBoundedColumns2() +RenameLabelsAndBindDataToDropDownList() +GetTableFromDataBase() +SetBusinessObjNotActive() +CheckRegularExpression() +SaveMandant() +GetTabStripsItemFromNode() +BuildXmlNodeForTabStrip() Architektur einer Multi-Tier Anwendung 15
16 Probleme der vorhandenen Anwendung (3) Entstandenes Anti-Pattern: Poltergeist Poltergeister sind Klassen mit sehr beschränkten Aufgaben und Lebenszyklen. Sie starten oft Prozesse für andere Objekte. [1] Architektur einer Multi-Tier Anwendung 16
17 Folgen des Poltergeist Anti- Patterns Zustandslose Objekte Temporäre Objekte mit kurzer Lebensdauer Klassen mit einer Operation, die nur vorhanden ist um andere Klassen über andere Verbindungen aufzurufen Zu jeder neuen Klasse muss eine weitere Klasse erstellt werden Architektur einer Multi-Tier Anwendung 17
18 Poltergeist - Beispiel BusinessFramework::BusinessObjectManager +BusinessDataObject : BusinessDataBase #createbusinessobject() : BusinessObject BusinessFramework::BusinessDataBase +Tabelle : string <ConcreteObjectManager> daten_objekte::dataaccess BusinessFramework::BusinessObject <ConcretetObject> Architektur einer Multi-Tier Anwendung 18
19 Überblick 1.Einfürung in die Multi-Tier Architektur 2.Ausgangspunkt und Probleme 3.Rundgang durch die Architektur 1.Datenzugriffsebene 2.Modellebene 3.Darstellungsebene 4.Architektur in der Praxis und Fazit Architektur einer Multi-Tier Anwendung 19
20 Architektur Überblick Strukturierung der Anwendung in Ebenen (MVP-Pattern) Präsentationsebene Browser Viewebene Web-Komponenten Modellebene Serviceebene Logikebene Datenzugriffsebene Architektur einer Multi-Tier Anwendung 20
21 Multi-Tier Architektur Schicht 4 Browser (Präsentation) Schicht 3 - Sicht Schicht 2 - Modell Schicht 1 Datenzugriff Schicht 0 - Datenbank Architektur einer Multi-Tier Anwendung 21
22 Verzeichnisstruktur (1) Spiegelt Schichten wieder Eine Schicht bildet einen eigene Namespace und ein Verzeichnis (so wie es in Java erzwungen wird) Zwei getrennte Bäume für Code und Unit Tests Architektur einer Multi-Tier Anwendung 22
23 Verzeichnisstruktur (2) src test DataAccess DataAcess SqlServer MockDao Modell Modell Liegenschaften Bauwerke Service Liegenschaften Bauwerke View Architektur einer Multi-Tier Anwendung 23
24 Multi-Tier Architektur Schicht 4 Browser (Präsentation) Schicht 3 - Sicht Schicht 2 - Modell Schicht 1 Datenzugriff Schicht 0 - Datenbank Architektur einer Multi-Tier Anwendung 24
25 Datenzugriffsebene (1) Sorgt für den Datenbank unabhängigen Zugriff auf die Daten Die Schnittstelle wird über Interfaces definiert Eine konkrete Implementierung für eine Datenbank implementiert diese Schnittstellen Architektur einer Multi-Tier Anwendung 25
26 Datenzugriffsebene (2) src/dataaccess src/data.../sqlserver IAdresseDao AdresseDao IGrundbuchDao GrundbuchDao ILanguageDao LanguageDao ILiegenschaftDao LiegenschaftDao ConnectionFactory Architektur einer Multi-Tier Anwendung 26
27 Multi-Tier Architektur Schicht 4 Browser (Präsentation) Schicht 3 - Sicht Schicht 2 - Modell Schicht 1 Datenzugriff Schicht 0 - Datenbank Architektur einer Multi-Tier Anwendung 27
28 Modellebene Modelliert die Beziehungen der Daten untereinander Kapselt Konsistenzprüfungen und Berechnungen Architektur einer Multi-Tier Anwendung 28
29 Beispiel Person namespace Liegenschaften.Modell { public class Person { public string Name { get{ return name; } set { name = value; } } public DateTime Geburtsdatum {... } private string name; private DateTime geburtsdatum; Architektur einer Multi-Tier Anwendung 29
30 ... public int Alter { get{ DateTime today = DateTime.Today; int offset = 0; if ((geburtsdatum.month > today.month) (geburtsdatum.month == today.month && geburtsdatum.day > today.day)) { offset = 1; } return (today.year - geburtsdatum.year) - offset; } } Architektur einer Multi-Tier Anwendung 30
31 [TestFixture] public class PersonTests { [Test] public void BerechnungAlter() { Person p = new Person("", ""); p.geburtsdatum = DateTime.Today.AddYears(-3); Assert.AreEqual(3, p.alter);... } p.geburtsdatum = DateTime.Today.AddYears(-42).AddDays(1); Assert.AreEqual(41, p.alter); p.geburtsdatum = DateTime.Today.AddYears(-42).AddDays(-1); Assert.AreEqual(42, p.alter); Architektur einer Multi-Tier Anwendung 31
32 Multi-Tier Architektur Schicht 4 Browser (Präsentation) Schicht 3 - Sicht Schicht 2 - Modell Schicht 1 Datenzugriff Schicht 0 - Datenbank Architektur einer Multi-Tier Anwendung 32
33 Darstellungsebene Stellt die Daten der Modellebene dar Ermöglicht Interaktion mit dem Nutzer Durch Austausch dieser Ebene kann die Anwendung z.b. sowohl im Web als auch als Client-Anwendung verwendet werden Enthält keine Geschäftlsogik sondern nur Anzeigelogik Architektur einer Multi-Tier Anwendung 33
34 Darstellung einer Seite - 1.Wenn Postback Theorie 1.Postback-Daten auslesen und im Modell speichern 2.Seite mittels der Modelldaten erzeugen Architektur einer Multi-Tier Anwendung 34
35 Darstellung einer Seite 1.Wenn Postback ASP.Net Praxis 1.Postback-Daten auslesen und im Modell speichern 2.Seite erzeugen 3.Bearbeiten der Ereignisse 1.ggf. Modellebene anpassen 4.Modelldaten darstellen Architektur einer Multi-Tier Anwendung 35
36 Überblick 1.Einfürung in die Multi-Tier Architektur 2.Ausgangspunkt und Probleme 3.Rundgang durch die Architektur 4.Architektur in der Praxis und Fazit Architektur einer Multi-Tier Anwendung 36
37 Multi-Tier in der Praxis Absolute Trennung der Schichten ist nicht immer möglich oder praktikabel Teilweise großer Overhead Einführung einer Service-Schicht Service-Schicht hält Anwendung zusammen Beispiel: Übersetzung in Darstellungsschicht mittles ILanguageDao Architektur einer Multi-Tier Anwendung 37
38 Architektur in der Praxis Schicht 4 Präsentation Schicht 3 - Sicht Schicht 2 - Modell Schicht 1 Datenzugriff Service Schicht Schicht 0 - Datenbank Architektur einer Multi-Tier Anwendung 38
39 Zusammenfassung Leichtere Erweiterbarkeit Maximierung der Wiederverwendbarkeit Bessere Verteilungsmöglichkeiten der Entwicklungsarbeit Leichter verständliches Design durch allgemein bekannte Entwurfsmuster und "Best Practices" Minimierung des Wartungsaufwandes Architektur einer Multi-Tier Anwendung 39
40 Literatur [1] Brown et.al. AntiPatterns Entwurfsfehler erkennen und vermeiden, mitp Verlag, 1. Auflage, 2004 [2] Gamma et.al. Entwurfsmuster Elemente wiederverwendbarer Software, Addison-Wesley, 1. Auflage 1996 Architektur einer Multi-Tier Anwendung 40
41 Vielen Dank für Ihre Aufmerksamkeit Fragen? Architektur einer Multi-Tier Anwendung 41
Klassenentwurf. Wie schreiben wir Klassen, die leicht zu verstehen, wartbar und wiederverwendbar sind? Objektorientierte Programmierung mit Java
Objektorientierte Programmierung mit Java Eine praxisnahe Einführung mit BlueJ Klassenentwurf Wie schreiben wir Klassen, die leicht zu verstehen, wartbar und wiederverwendbar sind? 1.0 Zentrale Konzepte
MehrDaniel Warneke warneke@upb.de 08.05.2006. Ein Vortrag im Rahmen des Proseminars Software Pioneers
Design Patterns Daniel Warneke warneke@upb.de 08.05.2006 Ein Vortrag im Rahmen des Proseminars Software Pioneers Design Patterns 1/23 Übersicht Einleitung / Motivation Design Patterns Beispiele Rolle des
MehrBIF/SWE - Übungsbeispiel
BIF/SWE - Übungsbeispiel Arthur Zaczek Feb 2015 1 Allgemein 1.1 Ziele Ziele dieses Übungsbeispieles ist es: GUI: Implementierung einer grafischen Oberfläche mit JavaFX oder WPF UI-Komponente: Implementierung
MehrObjektorientierte Programmierung
Objektorientierte Programmierung 1 Geschichte Dahl, Nygaard: Simula 67 (Algol 60 + Objektorientierung) Kay et al.: Smalltalk (erste rein-objektorientierte Sprache) Object Pascal, Objective C, C++ (wiederum
MehrProgrammieren in Java
Programmieren in Java objektorientierte Programmierung 2 2 Zusammenhang Klasse-Datei In jeder *.java Datei kann es genau eine public-klasse geben wobei Klassen- und Dateiname übereinstimmen. Es können
MehrFassade. Objektbasiertes Strukturmuster. C. Restorff & M. Rohlfing
Fassade Objektbasiertes Strukturmuster C. Restorff & M. Rohlfing Übersicht Motivation Anwendbarkeit Struktur Teilnehmer Interaktion Konsequenz Implementierung Beispiel Bekannte Verwendung Verwandte Muster
MehrDesign Pattern - Strukturmuster. CAS SWE - OOAD Marco Hunziker Klaus Imfeld Frédéric Bächler Marcel Lüthi
Design Pattern - Strukturmuster CAS SWE - OOAD Marco Hunziker Klaus Imfeld Frédéric Bächler Marcel Lüthi Agenda Einleitung Strukturmuster Fassade Model View Controller Vergleich 2 Einleitung Strukturmuster
MehrObjektorientierte 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
MehrSoftware Engineering. Zur Architektur der Applikation Data Repository. Franz-Josef Elmer, Universität Basel, HS 2015
Software Engineering Zur Architektur der Applikation Data Repository Franz-Josef Elmer, Universität Basel, HS 2015 Software Engineering: Mit acht bewährten Praktiken zu gutem Code 2 Schichtarchitektur
MehrObjektorientierte Programmierung OOP
Objektorientierte Programmierung OOP Objektorientierte Programmierung OOP Ronja Düffel WS2012/13 08. Oktober 2013 Objektorientierte Programmierung OOP Objektorientierte Programmierung Objektorientierte
MehrFachbericht 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
MehrEinführung in die Informatik Tools
Einführung in die Informatik Tools Werkzeuge zur Erstellung von Softwareprojekten Wolfram Burgard 8.1 Motivation Große Softwareprojekte werden schnell unübersichtlich. Änderungen im Code können leicht
MehrPHP Kurs Online Kurs Analysten Programmierer Web PHP
PHP Kurs Online Kurs Analysten Programmierer Web PHP Akademie Domani info@akademiedomani.de Allgemeines Programm des Kurses PHP Modul 1 - Einführung und Installation PHP-Umgebung Erste Lerneinheit Introduzione
MehrJava Kurs für Anfänger Einheit 4 Klassen und Objekte
Java Kurs für Anfänger Einheit 4 Klassen und Ludwig-Maximilians-Universität München (Institut für Informatik: Programmierung und Softwaretechnik von Prof.Wirsing) 13. Juni 2009 Inhaltsverzeichnis klasse
MehrTISIS - Industrie 4.0. Ereignis, Ort, Datum
- Industrie 4.0 Ereignis, Ort, Datum TISIS Software Die vollständige Maschinen- Software wird als Option für die gesamte Tornos Produktpalette angeboten Sie ermöglicht es Ihnen, Ihre Maschine zu programmieren
MehrSEP 114. Design by Contract
Design by Contract SEP 114 Design by Contract Teile das zu entwickelnde Programm in kleine Einheiten (Klassen, Methoden), die unabhängig voneinander entwickelt und überprüft werden können. Einheiten mit
MehrDatenübernahme von HKO 5.9 zur. Advolux Kanzleisoftware
Datenübernahme von HKO 5.9 zur Advolux Kanzleisoftware Die Datenübernahme (DÜ) von HKO 5.9 zu Advolux Kanzleisoftware ist aufgrund der von Update zu Update veränderten Datenbank (DB)-Strukturen in HKO
MehrSDD System Design Document
SDD Software Konstruktion WS01/02 Gruppe 4 1. Einleitung Das vorliegende Dokument richtet sich vor allem an die Entwickler, aber auch an den Kunden, der das enstehende System verwenden wird. Es soll einen
MehrDrei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 16: 3-Schichten-Architektur 1 Fachkonzept - GUI
Universität Osnabrück Drei-Schichten-Architektur 3 - Objektorientierte Programmierung in Java Vorlesung 6: 3-Schichten-Architektur Fachkonzept - GUI SS 2005 Prof. Dr. F.M. Thiesing, FH Dortmund Ein großer
MehrÜbung 6: Feinentwurf. Prof. Dr. Dr. h.c. Manfred Broy Dr. Herbert Ehler, Martin Feilkas 6. Juli 2006 Bernd Spanfelner, Sebastian Winter
Prof. Dr. Dr. h.c. Manfred Broy Sommersemester Dr. Herbert Ehler, Martin Feilkas 6. Juli 2006 Bernd Spanfelner, Sebastian Winter Einführung in die Softwaretechnik Übung 6: Feinentwurf Aufgabe 17: Entwurfsmuster
MehrStudentische Lösung zum Übungsblatt Nr. 7
Studentische Lösung zum Übungsblatt Nr. 7 Aufgabe 1) Dynamische Warteschlange public class UltimateOrderQueue private Order[] inhalt; private int hinten; // zeigt auf erstes freies Element private int
MehrCode wiederverwenden: Objektorientierte Programmierung (OOP) sinnvoll nutzen Roland Wagner Automatisierungstreff IT & Automation 2015
Code wiederverwenden: Objektorientierte Programmierung (OOP) sinnvoll nutzen Roland Wagner Automatisierungstreff IT & Automation 2015 CODESYS a trademark of 3S-Smart Software Solutions GmbH Agenda 1 Warum
MehrSoftwaretechnik (Allgemeine Informatik) Überblick
Softwaretechnik (Allgemeine Informatik) Überblick 1 Einführung und Überblick 2 Abstraktion 3 Objektorientiertes Vorgehensmodell 4 Methoden der Anforderungs- und Problembereichsanalyse 5 UML-Diagramme 6
MehrEinführung in die objektorientierte Programmierung mit Java. Klausur am 19. Oktober 2005
Einführung in die objektorientierte Programmierung mit Java Klausur am 19. Oktober 2005 Matrikelnummer: Nachname: Vorname: Semesteranzahl: Die Klausur besteht aus drei Frageblöcken zu den Inhalten der
MehrC# im Vergleich zu Java
C# im Vergleich zu Java Serhad Ilgün Seminar Universität Dortmund SS 03 Gliederung Entstehung von C# und Java Überblick von C# und Java Unterschiede und Gemeinsamkeiten Zusammenfassung und Ausblick Entstehung
MehrDesign Patterns 2. Model-View-Controller in der Praxis
Design Patterns 2 Model-View-Controller in der Praxis Design Patterns Oft Schablonen für eine Klassenstruktur... aber nicht immer! Dahinterliegende Konzepte wichtiger als wörtliche Umsetzung Pattern werden
MehrAgiles Design. Dr.-Ing. Uwe Doetzkies Gesellschaft für Informatik mail: gi@uwe.doetzkies.de
Agiles Design Dr.-Ing. Uwe Doetzkies Dr.-Ing. Uwe Doetzkies Gesellschaft für Informatik mail: gi@uwe.doetzkies.de startupcamp berlin 15.3.2013 Regionalgruppe Berlin/Brandenburg Arbeitskreis Freiberufler
MehrInternet Explorer Version 6
Internet Explorer Version 6 Java Runtime Ist Java Runtime nicht installiert, öffnet sich ein PopUp-Fenster, welches auf das benötigte Plugin aufmerksam macht. Nach Klicken auf die OK-Taste im PopUp-Fenster
MehrJava Einführung Umsetzung von Beziehungen zwischen Klassen. Kapitel 7
Java Einführung Umsetzung von Beziehungen zwischen Klassen Kapitel 7 Inhalt Wiederholung: Klassendiagramm in UML Java-Umsetzung von Generalisierung Komposition Assoziationen 2 Das Klassendiagramm Zweck
MehrKlausur zur Einführung in die objektorientierte Programmierung mit Java
Klausur zur Einführung in die objektorientierte Programmierung mit Java im Studiengang Informationswissenschaft Prof. Dr. Christian Wolff Professur für Medieninformatik Institut für Medien-, Informations-
MehrEinführung in die Java- Programmierung
Einführung in die Java- Programmierung Dr. Volker Riediger Tassilo Horn riediger horn@uni-koblenz.de WiSe 2012/13 1 Wichtig... Mittags keine Pommes... Praktikum A 230 C 207 (Madeleine + Esma) F 112 F 113
MehrSoftware-Entwurfsmuster
Software-Entwurfsmuster Prinzip von Entwurfsmustern und einige elementare Beispiele Malte Spiess malte@mathematik.uni-ulm.de Seminar Bildanalyse und Simulation mit Java im WS 2003/2004 Universität Ulm
MehrJava: Vererbung. Teil 3: super() www.informatikzentrale.de
Java: Vererbung Teil 3: super() Konstruktor und Vererbung Kindklasse ruft SELBSTSTÄNDIG und IMMER zuerst den Konstruktor der Elternklasse auf! Konstruktor und Vererbung Kindklasse ruft SELBSTSTÄNDIG und
MehrMit der Maus im Menü links auf den Menüpunkt 'Seiten' gehen und auf 'Erstellen klicken.
Seite erstellen Mit der Maus im Menü links auf den Menüpunkt 'Seiten' gehen und auf 'Erstellen klicken. Es öffnet sich die Eingabe Seite um eine neue Seite zu erstellen. Seiten Titel festlegen Den neuen
MehrWPF Steuerelemente Listbox, ComboBox, ListView,
WPF Steuerelemente Listbox, ComboBox, ListView, Dr. Beatrice Amrhein Überblick Einführung Listen ComboBox Tabellen 2 Einführung 3 Listen- und Tabellen-Elemente Listen und Tabellen-Elemente sind Steuerelemente,
Mehr5.2 Neue Projekte erstellen
5.2 Neue Projekte erstellen Das Bearbeiten von bestehenden Projekten und Objekten ist ja nicht schlecht wie aber können Sie neue Objekte hinzufügen oder gar völlig neue Projekte erstellen? Die Antwort
MehrDrei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 17: 3-Schichten-Architektur 2
Universität Osnabrück 1 3 - Objektorientierte Programmierung in Java Zur Erinnerung: Aufteilung der Schichten GUI Vorlesung 17: 3-Schichten-Architektur 2 Fachkonzept Fachkonzept - Datenhaltung Datenhaltung
Mehrpro4controlling - 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
MehrPrinzipien Objektorientierter Programmierung
Prinzipien Objektorientierter Programmierung Valerian Wintner Inhaltsverzeichnis 1 Vorwort 1 2 Kapselung 1 3 Polymorphie 2 3.1 Dynamische Polymorphie...................... 2 3.2 Statische Polymorphie........................
MehrVermeiden Sie es sich bei einer deutlich erfahreneren Person "dranzuhängen", Sie sind persönlich verantwortlich für Ihren Lernerfolg.
1 2 3 4 Vermeiden Sie es sich bei einer deutlich erfahreneren Person "dranzuhängen", Sie sind persönlich verantwortlich für Ihren Lernerfolg. Gerade beim Einstig in der Programmierung muss kontinuierlich
MehrEinführung in PHP. (mit Aufgaben)
Einführung in PHP (mit Aufgaben) Dynamische Inhalte mit PHP? 2 Aus der Wikipedia (verkürzt): PHP wird auf etwa 244 Millionen Websites eingesetzt (Stand: Januar 2013) und wird auf etwa 80 % aller Websites
Mehrcrm-now/ps Webforms Webdesigner Handbuch Erste Ausgabe
crm-now/ps Webforms Webdesigner Handbuch Erste Ausgabe crm-now/ps Webforms: Webdesigner Handbuch Copyright 2006 crm-now Versionsgeschichte Version 01 2006-08-21 Release Version crm-now c/o im-netz Neue
MehrSharePoint Demonstration
SharePoint Demonstration Was zeigt die Demonstration? Diese Demonstration soll den modernen Zugriff auf Daten und Informationen veranschaulichen und zeigen welche Vorteile sich dadurch in der Zusammenarbeit
MehrFortgeschrittenes Programmieren mit Java. Test Driven Development
Fortgeschrittenes Programmieren mit Java Test Driven Development Test getriebene Programmierung Benedikt Boeck Hochschule für Angewandte Wissenschaften Hamburg 6. November 2009 B. Boeck (HAW Hamburg) Test
MehrDiplomarbeit. Konzeption und Implementierung einer automatisierten Testumgebung. Thomas Wehrspann. 10. Dezember 2008
Konzeption und Implementierung einer automatisierten Testumgebung, 10. Dezember 2008 1 Gliederung Einleitung Softwaretests Beispiel Konzeption Zusammenfassung 2 Einleitung Komplexität von Softwaresystemen
MehrFachdidaktik 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,
MehrAcceptor-Connector. Acceptor-Connector
Acceptor-Connector Das Acceptor-Connector Pattern trennt den Verbindungsaufbau zwischen zwei Peer-Services und der Verarbeitung, welche bei bestehender Verbindung durchgeführt wird. Kontext Ein Netzwerksystem
MehrJava Kurs für Anfänger Einheit 5 Methoden
Java Kurs für Anfänger Einheit 5 Methoden Ludwig-Maximilians-Universität München (Institut für Informatik: Programmierung und Softwaretechnik von Prof.Wirsing) 22. Juni 2009 Inhaltsverzeichnis Methoden
MehrJava Enterprise Architekturen Willkommen in der Realität
Java Enterprise Architekturen Willkommen in der Realität Ralf Degner (Ralf.Degner@tk-online.de), Dr. Frank Griffel (Dr.Frank.Griffel@tk-online.de) Techniker Krankenkasse Häufig werden Mehrschichtarchitekturen
MehrProgrammieren I. Strategie zum Entwurf von Klassen. Beispiele. Design von Klassen. Dr. Klaus Höppner. Beispiel: Bibliothek
Programmieren I Dr. Klaus Höppner Hochschule Darmstadt Wintersemester 2008/2009 1 / 22 2 / 22 Strategie zum Entwurf von Klassen Beispiele Objektorientierte Sichtweise: Mit welchen Objekten habe ich es
MehrXcode/Cocoa/Objective-C Crashkurs Programmieren unter Mac OS X
Xcode/Cocoa/Objective-C Crashkurs Programmieren unter Mac OS X SwissMacMeeting #1 26. Juni 2004 Messeturm Basel http://mac.naepflin.com Was ist das Ziel dieses Kurses? Starthilfe Einblick in die Möglichkeiten,
MehrGrundlagen von Python
Einführung in Python Grundlagen von Python Felix Döring, Felix Wittwer November 17, 2015 Scriptcharakter Programmierparadigmen Imperatives Programmieren Das Scoping Problem Objektorientiertes Programmieren
MehrRobot Karol für Delphi
Robot Karol für Delphi Reinhard Nitzsche, OSZ Handel I Version 0.1 vom 24. Januar 2003 Zusammenfassung Nach der Einführung in die (variablenfreie) Programmierung mit Robot Karol von Freiberger und Krško
MehrAlgorithmik II. a) Fügen Sie in einen anfangs leeren binären Baum die Schlüsselfolge 20, 28, 35, 31, 9, 4, 13, 17, 37, 25 ein.
Aufgabe 10 Binäre Bäume a) Fügen Sie in einen anfangs leeren binären Baum die Schlüsselfolge, 28, 35, 31, 9, 4,, 17, 37, 25 ein. 1. Einfügen von : 3. Einfugen von 35: 2. Einfügen von 28: 28 28 10. Einfügen
MehrKurzanleitung So geht s
Kurzanleitung So geht s MDT IP Interface SCN IP000.01 MDT IP Router SCN IP100.01 IP Interface IP Router einrichten Es wurden keine Einträge für das Inhaltsverzeichnis gefunden.falls Sie Basis Informationen
Mehr- Antipatterns - der Softwareentwicklung. Tanja Brockmeier
- Antipatterns - der Softwareentwicklung Tanja Brockmeier Antipatterns Definition Antipatterns: sind eine häufige wiederkehrende Lösungen, die fehlerhaft sind und Merkmale mit sich bringen, die unerwünscht
MehrIst 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,
MehrWPF Bindung. Dr. Beatrice Amrhein
WPF Bindung Element- und Daten-Bindung Dr. Beatrice Amrhein Überblick Element-Bindung via Eigenschaften-Editor Grenzen des Eigenschaften Editors Die C# Klasse Binding Bindung an C# Objekte 2 Einführung
MehrSession 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
MehrDatenbank-Verschlüsselung mit DbDefence und Webanwendungen.
Datenbank-Verschlüsselung mit DbDefence und Webanwendungen. In diesem Artikel werden wir Ihnen zeigen, wie Sie eine Datenbank verschlüsseln können, um den Zugriff einzuschränken, aber trotzdem noch eine
Mehr3. Stored Procedures und PL/SQL
3. Stored Procedures und PL/SQL Wenn eine Anwendung auf einer Client-Maschine läuft, wird normalerweise jede SQL-Anweisung einzeln vom Client an den Server gesandt, und jedes Ergebnistupel wird einzeln
MehrPHP Aufbaukurs. Tag 3. PHP5 & Klassen
PHP Aufbaukurs Tag 3. PHP5 & Klassen Organisatorisches 2 Igor Olkhovskiy Dr. Dipl.- Ing. Kontakt: olkhovskiy@rrzn.uni-hannover.de PHP Aufbaukurs 19.09.2006 Folie 2 PHP. OOP. Geschichte 3 PHP/FI ( PHP 1
MehrJava Einführung Packages
Java Einführung Packages Inhalt dieser Einheit Packages (= Klassenbibliotheken) Packages erstellen Packages importieren Packages verwenden Standard Packages 2 Code-Reuse Einbinden von bereits (selbst-/fremd)
MehrObjektorientiertes Software-Engineering
Objektorientiertes Software-Engineering Vorlesung VIII Inhalt der Vorlesung Wiederholung Vorlesung VII Factory Method Observer s Übung Vorstellung des (Gruppe Jukebox) Folie 2 Definiert ein Objekt zur
MehrProfessionelle 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
MehrAssoziation und Aggregation
Assoziation und Aggregation Martin Wirsing in Zusammenarbeit mit Matthias Hölzl, Nora Koch 05/03 2 Ziele Verstehen der Begriffe Assoziation und Aggregation Implementierung von Assoziationen in Java schreiben
Mehrteischl.com Software Design & Services e.u. office@teischl.com www.teischl.com/booknkeep www.facebook.com/booknkeep
teischl.com Software Design & Services e.u. office@teischl.com www.teischl.com/booknkeep www.facebook.com/booknkeep 1. Erstellen Sie ein neues Rechnungsformular Mit book n keep können Sie nun Ihre eigenen
Mehr4D 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
MehrSchluss mit langweiligen Papierexposees! Die Zukunft heißt immodisplay. Vision Displays GmbH Schnackenburgallee 41b 22525 Hamburg
Schluss mit langweiligen Papierexposees! Die Zukunft heißt immodisplay. Vision Displays GmbH Schnackenburgallee 41b 22525 Hamburg Tel.: 040-500 505 60 Fax: 040-500 505 61 E-Mail: info@visiondisplays.de
MehrVerhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {...
PIWIN I Kap. 8 Objektorientierte Programmierung - Vererbung 31 Schlüsselwort: final Verhindert, dass eine Methode überschrieben wird public final int holekontostand() {... Erben von einer Klasse verbieten:
MehrKlausur WS 2006/07 Programmiersprache Java Objektorientierte Programmierung II 15. März 2007
Fachhochschule Bonn-Rhein-Sieg University of Applied Sciences Fachbereich Informatik Prof. Dr. Peter Becker Klausur WS 2006/07 Programmiersprache Java Objektorientierte Programmierung II 15. März 2007
MehrSehr geehrte Faktor-IPS Anwender,
März 2014 Faktor-IPS 3.11 Das neue Release Faktor-IPS 3.11 steht Ihnen zum Download zur Verfügung. Wir informieren Sie über die neusten Feautres. Lesen Sie mehr Sehr geehrte Faktor-IPS Anwender, Auf faktorzehn.org
MehrEinführung in Eclipse und Java
Universität Bayreuth Lehrstuhl für Angewandte Informatik IV Datenbanken und Informationssysteme Prof. Dr.-Ing. Jablonski Einführung in Eclipse und Java Dipl.Inf. Manuel Götz Lehrstuhl für Angewandte Informatik
MehrTest-Driven Design: Ein einfaches Beispiel
Test-Driven Design: Ein einfaches Beispiel Martin Wirsing in Zusammenarbeit mit Moritz Hammer und Axel Rauschmayer SS 06 2 Ziele Veranschaulichung der Technik des Test-Driven Design am Beispiel eines Programms
MehrRevit Modelle in der Cloud: Autodesk 360 Mobile
Revit Modelle in der Cloud: Autodesk 360 Mobile Die Präsentation Ihrer Revit Modelle kann auf unterschiedlichste Weise erfolgen. Diverse Cloud Plattformen bieten kostenlosen Speicherplatz und Freigabeoptionen
MehrLook Inside: desite. modellorientiertes Arbeiten im Bauwesen. B.I.M.
Building Information Modeling Look Inside: desite modellorientiertes Arbeiten im Bauwesen. B.I.M. desite MD unterstützt Sie bei der täg lichen Arbeit mit Gebäudemodellen und ermöglicht den Zugang zu den
MehrMicrosoft SharePoint 2013 Designer
Microsoft SharePoint 2013 Designer Was ist SharePoint? SharePoint Designer 2013 Vorteile SharePoint Designer Funktionen.Net 4.0 Workflow Infrastruktur Integration von Stages Visuelle Designer Copy & Paste
MehrUnsere Webapplikation erweitern
Unsere Webapplikation erweitern Um die Webapplikation zu benutzen: 1. Starten Sie den Server, indem Sie das Hauptprogramm in der Klasse ImdbServer starten. 2. Laden Sie im Browser die Seite http://localhost:8080/html/index.html.
MehrFactory Method (Virtual Constructor)
Factory Method (Virtual Constructor) Zweck: Definition einer Schnittstelle für Objekterzeugung Anwendungsgebiete: Klasse neuer Objekte bei Objekterzeugung unbekannt Unterklassen sollen Klasse neuer Objekte
MehrProgrammierkurs Java
Programmierkurs Java Dr. Dietrich Boles Aufgaben zu UE16-Rekursion (Stand 09.12.2011) Aufgabe 1: Implementieren Sie in Java ein Programm, das solange einzelne Zeichen vom Terminal einliest, bis ein #-Zeichen
MehrSoftwaretests in Visual Studio 2010 Ultimate Vergleich mit Java-Testwerkzeugen. Alexander Schunk Marcel Teuber Henry Trobisch
Softwaretests in Visual Studio 2010 Ultimate Vergleich mit Java-Testwerkzeugen Alexander Schunk Henry Trobisch Inhalt 1. Vergleich der Unit-Tests... 2 2. Vergleich der Codeabdeckungs-Tests... 2 3. Vergleich
MehrRefaktorisierung des Eclipse- Plugins Saros für die Portierung auf andere IDEs. Verteidigung der Bachelorarbeit von Arndt Tigges
Refaktorisierung des Eclipse- Plugins Saros für die Portierung auf andere IDEs Verteidigung der Bachelorarbeit von Arndt Tigges Überblick Einleitung Saros Refaktorisierung Durchführung Analysen Anwendung
MehrSoftware Engineering Interaktionsdiagramme
Software Engineering Interaktionsdiagramme Prof. Adrian A. Müller, PMP, PSM 1, CSM Fachbereich Informatik und Mikrosystemtechnik 1 Nachrichtenaustausch Welche Nachrichten werden ausgetauscht? (Methodenaufrufe)
MehrErstellen einer E-Mail in OWA (Outlook Web App)
Erstellen einer E-Mail in OWA (Outlook Web App) Partner: 2/12 Versionshistorie: Datum Version Name Status 13.09.2011 1.1 J. Bodeit Punkte 7 hinzugefügt, alle Mailempfänger unkenntlich gemacht 09.09.2011
MehrClient-Server-Beziehungen
Client-Server-Beziehungen Server bietet Dienste an, Client nutzt Dienste Objekt ist gleichzeitig Client und Server Vertrag zwischen Client und Server: Client erfüllt Vorbedingungen eines Dienstes Server
MehrOP-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
MehrBabeș-Bolyai Universität Cluj Napoca Fakultät für Mathematik und Informatik Grundlagen der Programmierung MLG5005. Modulare Programmierung
Babeș-Bolyai Universität Cluj Napoca Fakultät für Mathematik und Informatik Grundlagen der Programmierung MLG5005 Modulare Programmierung Test Driven Development Refactoring Modular programmierung der
MehrPakete dienen dazu, die Software eines Projektes in größere inhaltlich zusammengehörige Bereiche mit eigenem Namen einzuteilen (siehe Java API).
Paketdeklaration Paketdeklaration package Bezeichner ; Pakete dienen dazu, die Software eines Projektes in größere inhaltlich zusammengehörige Bereiche mit eigenem Namen einzuteilen (siehe Java API). Ein
MehrBackend 1.5. http://joomla.aps.it-betreuung.salzburg.at
Backend 1.5 http://joomla.aps.it-betreuung.salzburg.at Aktualisiert von Jörg Hanusch und Willi Koller Februar 2012 CMS Joomla Joomla! ist ein datenbankbasiertes Content Management System (CMS). Es bezieht
MehrBinäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen
Binäre Bäume 1. Allgemeines Binäre Bäume werden grundsätzlich verwendet, um Zahlen der Größe nach, oder Wörter dem Alphabet nach zu sortieren. Dem einfacheren Verständnis zu Liebe werde ich mich hier besonders
MehrSelbstbestimmtes Lernen. Proinformatik III Objektorientierte Programmierung. Format. Inhalt. Buzzwords
4.0 Proinformatik III Objektorientierte Programmierung Michael Kölling University of Kent Canterbury, UK Selbstbestimmtes Lernen Vorlesung Tutorium Übungen Buch Web-Seite Üben, üben, üben! Format Vorlesung:
MehrKurzanleitung. Zuordnung eines Moodle-Kurses in TUMonline
Kurzanleitung Zuordnung eines Moodle-Kurses in TUMonline Inhalt 1 Allgemeine Informationen... 2 2 Kategorie elearning zuordnen... 2 3 Wo ist die Kategorie nach der Zuteilung zu finden?... 4 4 Wann wird
MehrSoftware Entwicklung II (SS12)
Prof. Dr. P. Liggesmeyer Dipl.-Inf. K. Bizik M.Sc. K. Nehring TU Kaiserslautern Fachbereich Informatik AG Software Engineering: Dependability Software Entwicklung II (SS12) Übung 5 Ausgabe: 04.06.2012
MehrSoftware 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
MehrPetri-Netze / Eine Einführung (Teil 2)
Manuel Hertlein Seminar Systementwurf Lehrstuhl Theorie der Programmierung Wiederholung (1) Petri-Netz = bipartiter, gerichteter Graph Aufbau: Plätze (passive Komponenten) Transitionen (aktive Komponenten)
MehrGesicherte Prozeduren
Gesicherte Prozeduren Wenn eine Anwendung auf einer Client-Maschine läuft, wird normalerweise jede SQL-Anweisung einzeln vom Client an den Server gesandt, und jedes Ergebnistupel wird einzeln zurückgeliefert.
MehrEine Anwendung mit InstantRails 1.7
Eine Anwung mit InstantRails 1.7 Beschrieben wird das Anlegen einer einfachen Rails-Anwung, die ohne Datenbank auskommt. Schwerpunktmäßig wird auf den Zusammenhang von Controllern, Views und der zugehörigen
MehrTesten mit JUnit. Motivation
Test First Design for Test in Eclipse (eigentlich: ) zu einer Klasse Beispiel zur Demonstration Ergänzungen Test First "Immer dann, wenn Du in Versuchung kommst, etwas wie eine print- Anweisung oder einen
MehrRIGGTEK. Dissolution Test Systems. DissoPrep Browser-Interface
2014 RIGGTEK Dissolution Test Systems DissoPrep Browser-Interface Integrieren Sie Ihren DissoPrep in Ihre IT-Infrastruktur RIGGTEK Dissolution Test Systems DissoPrep Browser-Interface 12/2014 2 Integrieren
Mehr