Beleg: API für Plugin und Treiberbasierte Softwareentwicklung

Größe: px
Ab Seite anzeigen:

Download "Beleg: API für Plugin und Treiberbasierte Softwareentwicklung"

Transkript

1 Fakultät Informatik Institut für Software- und Multimediatechnik, Professur Computergraphik Beleg: API für Plugin und Treiberbasierte Dresden, 23. Mai 2007

2 Übersicht Grundlagen zum Plugin-Konzept Dynamische Bibliotheken Die Native C++ Plugin API Schnittstellen Plugins laden Plugins schreiben Plugins verwenden Umsetzung auf die.net Umgebung Ausblick 2

3 Grundlagen zum Plugin-Konzept Schnittstellen: global definiert von Plugin und Anwendung unabhängig 3

4 Grundlagen zum Plugin-Konzept Hostanwendung: stellt Grundfunktionalität bereit lädt Plugins zur Laufzeit Beschränkung auf bestimmte Plugintypen (bei Kompilierung) 4

5 Grundlagen zum Plugin-Konzept Plugins: Funktionen zur Erweiterung der Hostanwendung Schnittstellen für Interaktion mit Hostanwendung in dynamische Bibliotheken verpackt 5

6 Dynamische Bibliotheken Bibliothek nur einmal im Speicher statische Daten eingeblendet Kopien veränderlicher Daten im Prozessspeicher (Heap/Stack) angelegt keinen Zugriff auf Code der Bibliothek kein IPC mit Variablen der Bibliothek 6

7 Dynamische Bibliotheken dynamisches Linken: Bibliothek durch Systemfunktionen an Programm gebunden Laden der Bibliothek Suchen nach Funktionsadressen Freigeben der Bibliothek 7

8 Dynamische Bibliotheken (Win32) DLL sind dynamische Bibliotheken in Win32 Betriebssytemen Win32 Funktionen: LoadLibrary() lädt eine DLL GetProcAddress() gibt Zeiger mit Funktionsadresse zurück FreeLibrary() entlädt DLL laden/entladen in DllMain() der Bibliothek signalisiert 8

9 Dynamische Bibliotheken (Linux) shared objects (*.so) sind dynamische Bibliotheken in Linux Linux Funktionen: dlopen() lädt ein shared object dlsym() gibt Zeiger mit Funktionsadresse zurück dlclose() entlädt ein shared object laden in _init() der Bibliothek signalisiert entladen in _fini() der Bibliothek signalisiert 9

10 Die Native C++ Plugin API drei Teile: 10

11 Die Native C++ Plugin API in C++ geschrieben (Standardbibliothek) Verwendung statischer Bibliotheken API nur zum Kompilieren nötig mit VS2005 und GNU C++ kompilierbar (Windows/Linux) plattformabhängige Teile in CrossPlattform.h und CrossPlattform.cpp 11

12 Die Native C++ Plugin API 12

13 Schnittstellen 13

14 Plugins laden plugin_loader in Hostanwendung einbinden verwaltet Plugins selbständig (inkl. Aufruf der Destruktoren) Systemfunktionen zum Laden/Entfernen von Bibliotheken im Objekt gekapselt zum Laden können notwendige Schnittstellen fesgelegt werden Zugriff auf Plugins über Index möglich 14

15 Plugins schreiben Plugins in dynamischen Bibliotheken globale Fabrikliste (plugin_factory_list_class) Liste im Einsprungpunkt der Bibliothek (DllMain/_init) mit Fabriken gefüllt zu jedem Plugin eine Fabrik Plugin erbt von Fabrik gleiche Schnittstellen Fabrik kann Plugin erstellen (create_new_instance() von iplugin_base) C -Funktion get_plugin_factory_list() 15

16 Plugins verwenden Plugins werden über deren Schnittstellen angesprochen standard: iplugin_base Konvertierung über dynamic_cast (Typreflektion mit vtbl) 16

17 Umsetzung auf die.net Umgebung Anwendungsfälle: Hostanwendung C++ C++.NET.NET Plugin C++.NET C++.NET mindestens zwei Lade-Klassen (.NET und C++ plugin_loader) Idee: um jeweilige Interop-Funktion erweitern mindestens zwei Schnittstellendefinition (.NET und C++).NET-.NET Anwendungsfall einfach und effizient lösbar (Reflection von Assemblies) 17

18 Umsetzung auf die.net Umgebung - Probleme C++ Hostanwendung und.net Plugins: Interoperabilität mit managed Code Hostanwendung in C++ mit Managed Extensions (C++/CLI) Probleme: eigene Kommunikationswege zwischen native und managed Code (Wrapperklassen usw.) eigene Version der Lade-Klasse (sonst immer C++/CLI notwendig) 18

19 Umsetzung auf die.net Umgebung - Probleme.NET Hostanwendung und C++ Plugins Interoperabilität mit native Code gute Zusammenarbeit mit COM (COM Interop Assembly) Platform Invoke für Code ohne COM (P/Invoke) Probleme: Marshaling von C++ Objekten nicht möglich (nur Datenstrukturen) Wrapperklassen innerhalb der Plugins (C++/CLI) 19

20 Umsetzung auf die.net Umgebung - Ergebnis zwei getrennte Plugin API-Versionen gleiche vordefinierte Schnittstellen jeweils eine plugin_loader Klasse Hostanwendungen kümmern sich um Interoperabilität (nicht die Lade-Klassen) Hostanwendung kennt Plugintypen (einfaches Marshaling / Wrappen) integrieren beider plugin_loader ermöglicht flexibles Laden von.net und C++ Plugins 20

21 Ausblick erweitern der Schnittstellen Sound Datenkanäle seq. Datenströme (z. B. für Video En-/Dekodierung) usw. eventuell Versionssystem für Plugins (bzw. deren Schnittstellen) integrieren Mechanismus zum Erkennen von Plugin-Bibliotheken (ohne Bibliothek zu laden) 21

22 Ausblick plugin_loader an Bedürfnisse anpassen komfortable Lade-Funktionen (verschiedene Ladebedingungen) angabe eines Plugin-Verzeichnisses (autom. Laden aller Plugins) usw. Verbesserung der Registrierung der Fabriken (automatisieren) 22

Großer Beleg. API für Plugin und Treiber basierte Softwareentwicklung

Großer Beleg. API für Plugin und Treiber basierte Softwareentwicklung TECHNISCHE UNIVERSITÄT DRESDEN FAKULTÄT INFORMATIK INSTITUT FÜR SOFTWARE- UND MULTIMEDIATECHNIK PROFESSUR FÜR COMPUTERGRAPHIK UND VISUALISIERUNG PROF. DR. STEFAN GUMHOLD Großer Beleg API für Plugin und

Mehr

- dynamisches Laden -

- dynamisches Laden - - - Fachbereich Technik Department Elektrotechnik und Informatik 21. Juni 2012 1/23 2/23 s dynamisch Code kann von mehreren Programmen genutzt werden => kleinere Programme einzelne Teile eines Programms

Mehr

Einführung in die Systemprogrammierung

Einführung in die Systemprogrammierung Einführung in die Systemprogrammierung Dynamische Programmbibliotheken Prof. Dr. Christoph Reichenbach Fachbereich 12 / Institut für Informatik 28. Mai 2015 Dynamische Programmbibliotheken Idee: Programm

Mehr

Kapitel 21 Nativer Code

Kapitel 21 Nativer Code Kapitel 21 Nativer Ali Jannessari IPD Tichy Lehrstuhl für Programmiersysteme KIT die Kooperation von Forschungszentrum Karlsruhe GmbH und Universität Karlsruhe (TH) Wann muss man verwalteten und nicht-verwalteten

Mehr

Microsoft.NET Framework & Component Object Model. ein Vortrag von Florian Steuber

Microsoft.NET Framework & Component Object Model. ein Vortrag von Florian Steuber Microsoft.NET Framework & Component Object Model ein Vortrag von Florian Steuber Übersicht I..NET Framework 1. Was ist das.net Framework? 2. Das.NET Execution Model 3. Sprachunabhängigkeit, CTS und CLS

Mehr

C# Programmierung. Eine Einführung in das.net Framework. C# Programmierung - Tag 8: Professionelle Entwicklung

C# Programmierung. Eine Einführung in das.net Framework. C# Programmierung - Tag 8: Professionelle Entwicklung C# Programmierung Eine Einführung in das.net Framework C# Programmierung - Tag 8: Professionelle Entwicklung 1/27/2012 1 Mi SDL.NET Netzwerk Lokalisierung Bibliotheken Registry Setup-Projekt Tag 8 Professionelle

Mehr

Maschinencode Dateiformat und Stackframes

Maschinencode Dateiformat und Stackframes Maschinencode Dateiformat und Stackframes Proseminar C-Programmierung - Grundlagen und Konzepte Julian M. Kunkel julian.martin.kunkel@informatik.uni-hamburg.de Wissenschaftliches Rechnen Fachbereich Informatik

Mehr

Kapitel 21 Nativer Code

Kapitel 21 Nativer Code Kapitel 21 Nativer Korbinian Molitorisz IPD Tichy Lehrstuhl für Programmiersysteme KIT die Kooperation von Forschungszentrum Karlsruhe GmbH und Universität Karlsruhe (TH) Wann muss man verwalteten und

Mehr

4. AUFLAGE. Praxiswissen TYP03. Robert Meyer mit Olaf Clemens. O'REILLY* Beijing Cambridge Farnham Köln Sebastopol Taipei Tokyo

4. AUFLAGE. Praxiswissen TYP03. Robert Meyer mit Olaf Clemens. O'REILLY* Beijing Cambridge Farnham Köln Sebastopol Taipei Tokyo 4. AUFLAGE Praxiswissen TYP03 Robert Meyer mit Olaf Clemens O'REILLY* Beijing Cambridge Farnham Köln Sebastopol Taipei Tokyo 1 Einführung 1 Über dieses Buch 2 Aktualisierung auf TYP03-Version 4.3 : 3 Aufbau

Mehr

Xcalibur-2 Alpha. Time. Christian Rempis University of Applied Sciences Bonn-Rhein-Sieg 17. Januar 2006 1

Xcalibur-2 Alpha. Time. Christian Rempis University of Applied Sciences Bonn-Rhein-Sieg 17. Januar 2006 1 Time Christian Rempis University of Applied Sciences Bonn-Rhein-Sieg 17. Januar 2006 1 Control and Command Environment for a Robotic Experimenter R&D 1 Examination Presentation by Christian Rempis Christian

Mehr

.Net Interoperabilität

.Net Interoperabilität .Net Interoperabilität Objektorientiertes Programmieren mit.net und C# Thomas Hörmann Institut für Informatik Software & Systems Engineering Agenda Einleitung P/Invoke Marshalling Component Object Model

Mehr

OOP. Kapselung: Gruppierung von Daten und Funktionen als Objekte. Definieren eine Schnittstelle zu diesen Objekten.

OOP. Kapselung: Gruppierung von Daten und Funktionen als Objekte. Definieren eine Schnittstelle zu diesen Objekten. Polymorphismus OOP Kapselung: Gruppierung von Daten und Funktionen als Objekte. Definieren eine Schnittstelle zu diesen Objekten. Vererbung: Erlaubt Code zwischen verwandten Typen wiederverwendet sein.

Mehr

Einführung in C# Teil 1. Matthias Nübling

Einführung in C# Teil 1. Matthias Nübling Einführung in C# Teil 1 Matthias Nübling Vorausgesetzte Grundkenntnisse Programmierung Typen, Variablen, Anweisungen, Funktionen, etc. Objektorientierte Programmierung Klassen, Vererbung, Polymorphismus,

Mehr

Eine Kommando-Oberfläche für.net

Eine Kommando-Oberfläche für.net Institut für Systemsoftware O.Univ.-Prof. Dr. Hanspeter Mössenböck Eine Kommando-Oberfläche für.net In.NET (wie auch in vielen anderen Systemen) haben Programme nur einen einzigen Eintrittspunkt (ihre

Mehr

Karim El Jed, Lars Keller netcreate OHG. VSTO in der Praxis

Karim El Jed, Lars Keller netcreate OHG. VSTO in der Praxis Karim El Jed, Lars Keller netcreate OHG VSTO in der Praxis 1 Agenda I VSTO Grundlagen II Ribbon Customizing III Outlook IV Excel V Word Content Controls VI Deployment VII VSTO 4.0 Ausblick 2 VSTO Grundlagen

Mehr

GNU/Hurd. ... ein Mach basiertes Multi Server Betriebssystem. Manuel Gorius. . p.1/33

GNU/Hurd. ... ein Mach basiertes Multi Server Betriebssystem. Manuel Gorius. . p.1/33 . p.1/33 GNU/Hurd... ein Mach basiertes Multi Server Betriebssystem Manuel Gorius 16. September 2004 . p.2/33 Übersicht 1. Wissenswertes zu Hurd 2. Motivationen und Ziele 3. Mach Microkernel 4. Single

Mehr

Bibliotheks-basierte Virtualisierung

Bibliotheks-basierte Virtualisierung Dr.-Ing. Volkmar Sieh Department Informatik 4 Verteilte Systeme und Betriebssysteme Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2015/2016 V. Sieh Bibliotheks-basierte Virtualisierung (WS15/16)

Mehr

Klassen als Objekte. Smalltalk vs. Objective-C. Self-Nachrichten an Klassen in Objective-C. Klassen als Objekte. Smalltalk: Everything is an object

Klassen als Objekte. Smalltalk vs. Objective-C. Self-Nachrichten an Klassen in Objective-C. Klassen als Objekte. Smalltalk: Everything is an object Smalltalk vs. Objective-C Klassen als Objekte Klassendeklarationen Selektoren als first-class values Objekt-Erzeugung Implementierung: Eigene VM vs. Einbettung in C Smalltalk: Everything is an object Klassen

Mehr

3DVBVIEW - DX11Engine Version 1.1 (ab Build-Version 1054.Stand April 2018)

3DVBVIEW - DX11Engine Version 1.1 (ab Build-Version 1054.Stand April 2018) 3DVBVIEW - DX11Engine Version 1.1 (ab Build-Version 1054.Stand April 2018) DX11Engine ist ein Software Framework das sich an qualifizierte Visual Basic und.net Entwickler und Entwicklerinnen richtet, die

Mehr

Computeranwendung in der Chemie Informatik für Chemiker(innen) 3. Software

Computeranwendung in der Chemie Informatik für Chemiker(innen) 3. Software Computeranwendung in der Chemie Informatik für Chemiker(innen) 3. Software Jens Döbler 2003 "Computer in der Chemie", WS 2003-04, Humboldt-Universität VL3 Folie 1 Grundlagen Software steuert Computersysteme

Mehr

Wie teuer ist dynamischer Polymorphismus? 194

Wie teuer ist dynamischer Polymorphismus? 194 Wie teuer ist dynamischer Polymorphismus? 194 Function f vtable data RTTI ~Function get_name type name type info "Sinus\0" execute Nicht-polymorphe Methoden und reguläre Funktionen können in C++ direkt

Mehr

C programmieren. Jürgen Wolf

C programmieren. Jürgen Wolf C programmieren Jürgen Wolf Vorwort 11 Kapitel 1: Schnelleinstieg 13 Was sollten Sie bereits können? 14 Was lernen Sie mit diesem Buch? 14 Was benötigen Sie noch? 14 Überblick zu den einzelnen Kapiteln

Mehr

Software-Engineering für langlebige Systeme

Software-Engineering für langlebige Systeme Software-Engineering für langlebige Systeme Thomas Ruhroth Dortmund SoSe 2013 PA HA 5 Letzte Simulation 2 DLLs und SOs Möglichkeiten der Anbindung Statisches Binden Angabe beim Compilieren Wird häufig

Mehr

~±] Inhalt. 1.1 Ähnlichkeiten zwischen C# und Java Unterschiede zwischen C# und Java Das.NET-Framework 4 1.

~±] Inhalt. 1.1 Ähnlichkeiten zwischen C# und Java Unterschiede zwischen C# und Java Das.NET-Framework 4 1. ~±] 1 C# und das.net-framework 1 1.1 Ähnlichkeiten zwischen C# und Java 1 1.2 Unterschiede zwischen C# und Java 2 1.3 Das.NET-Framework 4 1.4 Übungsaufgaben 9 2 Erste Schritte 11 2.1 Hello World 11 2.2

Mehr

Von ULTRIX zu Linux Die Portierung des Administrators

Von ULTRIX zu Linux Die Portierung des Administrators Fakultät Informatik Institut für Angewandte Informatik, Professur TIS Von ULTRIX zu Linux Die Portierung des Administrators Frank Brandt Dresden, 11.05.2006 Was heißt hier Portierung? Begriffsdefinition:

Mehr

Konzepte von Betriebssystem-Komponenten. Programmstart & dynamische Bibliotheken SS 05. Wladislaw Eckhardt.

Konzepte von Betriebssystem-Komponenten. Programmstart & dynamische Bibliotheken SS 05. Wladislaw Eckhardt. Proseminar KVBK Programmstart dynamische Bibliotheken Konzepte von Betriebssystem-Komponenten Programmstart & dynamische Bibliotheken SS 05 Wladislaw Eckhardt Wladi23@gmx.net 1 1 Einleitung 11. Problematik

Mehr

Cross-Platform Apps mit HTML5/JS/CSS/PhoneGap

Cross-Platform Apps mit HTML5/JS/CSS/PhoneGap Cross-Platform Apps mit HTML5/JS/CSS/PhoneGap Proseminar Objektorientiertes Programmieren mit.net und C# Florian Schulz Institut für Informatik Software & Systems Engineering Einführung Was hat Cross-Plattform

Mehr

Mapra: C++ Teil 4. Felix Gruber. 6. Mai IGPM, RWTH Aachen. Felix Gruber (IGPM, RWTH Aachen) Mapra: C++ Teil 4 6.

Mapra: C++ Teil 4. Felix Gruber. 6. Mai IGPM, RWTH Aachen. Felix Gruber (IGPM, RWTH Aachen) Mapra: C++ Teil 4 6. Mapra: C++ Teil 4 Felix Gruber IGPM, RWTH Aachen 6. Mai 2015 Felix Gruber (IGPM, RWTH Aachen) Mapra: C++ Teil 4 6. Mai 2015 1 / 22 Themen vom letzten Mal Kompilieren mit Makefiles Ein-/Ausgabe über Dateien

Mehr

Objektorientierte Programmierung II

Objektorientierte Programmierung II Objektorientierte Programmierung II OOP I Erlaubt Entwicklers, im Problemraum zu denken und zu arbeiten. Das Problem wird in eine Menge von Objekten zerlegt. Objekte wirken aufeinander, um das Problem

Mehr

Was gehört (nicht) ins SVN?

Was gehört (nicht) ins SVN? Was gehört (nicht) ins SVN? Keine Dateien die aus anderen Dateien generiert werden (z.b. beim der Kompilierung).suo,.ncb (Intellisense),.user, das komplette Debug und Release Verzeichnis Nur Dateien die

Mehr

Informatik. Pointer (Dynamisch) Vorlesung. 17. Dezember 2018 SoSe 2018 FB Ing - SB Umwelttechnik und Dienstleistung - Informatik Thomas Hoch 1

Informatik. Pointer (Dynamisch) Vorlesung. 17. Dezember 2018 SoSe 2018 FB Ing - SB Umwelttechnik und Dienstleistung - Informatik Thomas Hoch 1 Informatik Vorlesung 08 Pointer (Dynamisch) 17. Dezember 2018 SoSe 2018 FB Ing - SB Umwelttechnik und Dienstleistung - Informatik Thomas Hoch 1 Pointer (Zeiger) Dynam. Speicher Bisher: Speicherbedarf muss

Mehr

Zwischenvortrag zum Entwicklungsstand der Bachelor-Arbeit. Direct 3D-Output für ein Rendering Framework

Zwischenvortrag zum Entwicklungsstand der Bachelor-Arbeit. Direct 3D-Output für ein Rendering Framework Zwischenvortrag zum Entwicklungsstand der Bachelor-Arbeit Direct 3D-Output für ein Rendering Framework von Benjamin Betting unter der Betreuung von Daniel Schiffner 1 Gliederung Kapitel I und II: Motivation,Einführung,Grundlagen

Mehr

TwinCAT HMI Application

TwinCAT HMI Application New Automation Technology TwinCAT HMI Application 08.05.2010 1 Überblick Einleitung Übersicht Möglichkeiten der Applikation Struktur und Komponenten Komponenten für das Microsoft Visual Studio Anleger

Mehr

Kinmatec. Einfach erfahren.

Kinmatec. Einfach erfahren. 1 Kinmatec. Einfach erfahren. Die Kinmatec GmbH ist spezialisiert auf die Entwicklung von Automatisierungssoftware für Anlagen und Prüfstände. Unsere gesamte Erfahrung als Informatiker und Maschinenbauer

Mehr

Konzepte von Betriebssystem-Komponenten. Programmstart & dynamische Bibliotheken SS 05. Wladislaw Eckhardt.

Konzepte von Betriebssystem-Komponenten. Programmstart & dynamische Bibliotheken SS 05. Wladislaw Eckhardt. Proseminar KVBK Programmstart dynamische Bibliotheken Konzepte von Betriebssystem-Komponenten Programmstart & dynamische Bibliotheken SS 05 Wladislaw Eckhardt Wladi23@gmx.net 1 1 Einleitung 1.1 Problematik

Mehr

Mathematik Seminar WS 2003: Simulation und Bildanalyse mit Java. Software-Architektur basierend auf dem Plug-in-Konzept

Mathematik Seminar WS 2003: Simulation und Bildanalyse mit Java. Software-Architektur basierend auf dem Plug-in-Konzept Mathematik Seminar WS 2003: Simulation und Bildanalyse mit Java Software-Architektur basierend auf dem Plug-in-Konzept Aufteilung: Probleme mit normaler/alter Software Ziele des Software Engineerings Die

Mehr

Andreas Kosch. Software & Support $ > Verlag GmbH

Andreas Kosch. Software & Support $ > Verlag GmbH Andreas Kosch Software & Support Verlag GmbH $ > Inhaltsverzeichnis I COM-GRUNDLAGEN 11 1 COM - COMPONENT OBJECT MODEL 13 1.1 WARUM? 13 1.2 DER COM-STECKBRIEF 16 2 CLIENT UND SERVER 18 2.1 BEGRIFFSBESTIMMUNG

Mehr

Microsoft.NET Framework

Microsoft.NET Framework Microsoft.NET Framework Anita Sosnecki Universität Bonn Institut für Informatik Seminar Softwaretechnologie WS 2003 Übersicht Einleitung Was ist.net?.net Framework.NET Komponenten Assemblies Deployment

Mehr

Programmieren in Lua

Programmieren in Lua Roberto lerusalimschy Programmieren in Lua 3. Auflage Open Source Press Inhaltsverzeichnis Vorwort 13 I Die Sprache 21 1 Einführung 23 1.1 Chunks 24 1.2 Einige lexikalische Konventionen 26 1.3 Globale

Mehr

Entwurf und Implementierung einer generischen Backend-Infrastruktur für den Prozessimulator DUPSIM

Entwurf und Implementierung einer generischen Backend-Infrastruktur für den Prozessimulator DUPSIM Entwurf und Implementierung einer generischen Backend-Infrastruktur für den Prozessimulator DUPSIM 25. Februar 2010 Analyse Entwurf Realisierung Evaluierung Demo Zusammenfassung und Ausblick Altes System

Mehr

Office und.net - zwei Welten wachsen zusammen mit VSTO 3.0. Lars Keller netcreate OHG

Office und.net - zwei Welten wachsen zusammen mit VSTO 3.0. Lars Keller netcreate OHG Office und.net - zwei Welten wachsen zusammen mit VSTO 3.0 Ihr Referent Lars Keller Was lernen Sie hier nicht? Was werden Sie hier erfahren? Agenda I VSTO Grundlagen II Ribbon Customizing III Smart Tag

Mehr

Kurzfassung der Studienarbeit

Kurzfassung der Studienarbeit Kurzfassung der Studienarbeit Abteilung Informatik Namen der Studenten Roman Widmer Mikkala Pedersen Studienjahr Sommersemester 2004 Titel der Studienarbeit.NET Skript Debugger Examinator Der GUI-Builder

Mehr

Realtime Daten-Rückschreibung in Tableau mit der Extensions API //

Realtime Daten-Rückschreibung in Tableau mit der Extensions API // Was wir vorhersagen, soll auch eintreffen! Realtime Daten-Rückschreibung in Tableau mit der Extensions API // Pascal Muth Zusammenfassung In diesem Whitepaper wird die Tableau Extensions API von Tableau

Mehr

Virtueller Campus. Virtueller Campus Horw mit interaktiver Steuerung. HowTo: Externe Bibliotheken

Virtueller Campus. Virtueller Campus Horw mit interaktiver Steuerung. HowTo: Externe Bibliotheken Virtueller Campus Virtueller Campus Horw mit interaktiver Steuerung Bachelor Diplomarbeit FS 2013 Inhaltsverzeichnis 1. EINLEITUNG... 1 2. VORBEDINGUNGEN... 1 3. ORDNERSTRUKTUR ERWEITERN... 1 4. PROJEKT

Mehr

M. Biebl. 15. Mai Hochschule München Fakultät für Informatik/Mathematik Fach: Clojure. Clojure - Java Interoperabilität. M. Biebl.

M. Biebl. 15. Mai Hochschule München Fakultät für Informatik/Mathematik Fach: Clojure. Clojure - Java Interoperabilität. M. Biebl. Hochschule München Fakultät für Informatik/Mathematik Fach: Clojure 15. Mai 2011 1 sverzeichnis 1 Classpath und Compilepath setzen Beispiel Skript 2 Spezial-Formen Java Arrays Eigene Klassen einbinden

Mehr

Python - Open-Source-Werkzeuge für Wissenschaftler und Ingenieure

Python - Open-Source-Werkzeuge für Wissenschaftler und Ingenieure Python - Open-Source-Werkzeuge für Wissenschaftler und Ingenieure Chemnitzer Linux-Tage 2012, 18. März 2012 Autor: E-Mail: Dr.-Ing. Mike Müller mmueller@python-academy.de Übersicht besondere Situation

Mehr

VSTO 3.0 - Was gibt es Neues in der Office Entwicklung? Lars Keller netcreate OHG

VSTO 3.0 - Was gibt es Neues in der Office Entwicklung? Lars Keller netcreate OHG VSTO 3.0 - Was gibt es Neues in der Office Entwicklung? Lars Keller netcreate OHG Agenda Agenda VSTO Ribbon Customizing Outlook 2007 Entwicklung Demo: Custom Task Pane Demo: Custom Form Region Smart Tag

Mehr

Objektorientiert in C++

Objektorientiert in C++ Dirk Louis Objektorientiert in C++ Einstieg und professioneller Einsatz intwickier.pres: Vorwort 11 1 Schnellkurs C++ 13 1.1 ANSI-C++ und die Compiler 13 Compiler und Programmerstellung 13 ANSI und die

Mehr

Enterprise PHP Tools

Enterprise PHP Tools 2008 AGI-Information Management Consultants May be used for personal purporses only or by libraries associated to dandelon.com network. Stefan Priebsch Werkzeuge und Methoden für einen effizienten Entwicklungsprozess

Mehr

Vorlesung Datenstrukturen

Vorlesung Datenstrukturen Vorlesung Datenstrukturen Objektorientierung in C++ (3) Aspekte der Vererbung (1) Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 546 Zuweisung bei Vererbung Dr. Frank Seifert Vorlesung

Mehr

Das Interface-Konzept am Beispiel der Sprache Java

Das Interface-Konzept am Beispiel der Sprache Java Das Interface-Konzept am Beispiel der Sprache Java Klaus Kusche, November 2013 Inhalt Motivation: Wozu braucht man Interfaces? Interfaces in Java Was spricht gegen die große Lösung? Voraussetzungen Kenntnisse

Mehr

2.1 Visual C Express installieren Visual C Express starten Visual C Express registrieren...

2.1 Visual C Express installieren Visual C Express starten Visual C Express registrieren... Datei: 5220_A02Inhalt.doc, Seite3 15. September 2010 Teil I Erste Schritte 1 Einleitung.... 9 1.1 Was Sie erwartet und was Sie nicht erwartet.... 9 1.2 Wie die Kapitel aufgebaut sind.... 10 1.3 Beispieldateien....

Mehr

Software Design basierend auf dem Plug-In Konzept

Software Design basierend auf dem Plug-In Konzept Software Design basierend auf dem Plug-In Konzept Michael Antes Seminar Simulation und Bildanalyse mit Java, WS2003 Universität Ulm Software-Design basierend auf dem Plug-In-Konzept Inhalt: Einführung:

Mehr

Java-Grundkurs für Wirtschaftsinformatiker

Java-Grundkurs für Wirtschaftsinformatiker Klaus-Georg Deck Herbert Neuendorf Java-Grundkurs für Wirtschaftsinformatiker Die Grundlagen verstehen - Objektorientierte Programmierung - Fortgeschrittene Konzepte kennenlernen - Betriebswirtschaftlich

Mehr

Objektorientierung II

Objektorientierung II Javakurs 2009 - LE6 Florian Streibelt Freitagsrunde SoSe 2009 9. März 2010 Agenda Wiederholung zu Objekten Kapselung und Information Hiding im Detail Vergleich von Objekten Vererbung kleine API-Beispiele

Mehr

Wesentliche Ideen und Komponenten der V13 V13 Under the Hood die Technik dahinter

Wesentliche Ideen und Komponenten der V13 V13 Under the Hood die Technik dahinter Wesentliche Ideen und Komponenten der V13 V13 Under the Hood die Technik dahinter Der Client PBX und App Platform Verschiedene zentrale Apps Installation V13, der Client myapps V13 Under the Hood die Technik

Mehr

Dies ist der zweite Artikel einer Serie über Electron.

Dies ist der zweite Artikel einer Serie über Electron. Electron WebDeskApps Dies ist der zweite Artikel einer Serie über Electron. Im ersten Artikel wurden die Grundlagen von Elektron, und die benötigten Ressourcen, die man benötigt um eine Elektron-App zu

Mehr

Programmierkurs C++ Templates & STL (1/2)

Programmierkurs C++ Templates & STL (1/2) Programmierkurs C++ Templates & STL (1/2) Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck https://www.itm.uni-luebeck.de/people/fischer #2 Templates Die wichtigsten objekt-orientierten

Mehr

Eine praktische Einführung in die Programmierung mit der Programmiersprache C

Eine praktische Einführung in die Programmierung mit der Programmiersprache C Eine praktische Einführung in die Programmierung mit der Programmiersprache C www.c-howto.de C-HowTo www.c-howto.de Inhaltsverzeichnis 1 Einführung.. 10 1:1 Wozu Programmieren? 10 1.2 Was ist ein Programm?

Mehr

16- und 32 Bit DLL. Datentypen String Integer. STLB-Bau. STLB-Bau

16- und 32 Bit DLL. Datentypen String Integer. STLB-Bau. STLB-Bau Schnittstellen 16- und 32 Bit DLL viele Fuktionen Datentypen String Integer 16-Bit DLL 16-Bit DLL Entwicklertreffen 2005-05-10 Schnittstellen manuelle Übernahme der Schnittstellendefinition bei Win 32

Mehr

360.NET. Jan Schenk Developer Evangelist Web/Live Microsoft Deutschland

360.NET. Jan Schenk Developer Evangelist Web/Live Microsoft Deutschland 360.NET Jan Schenk Developer Evangelist Web/Live Microsoft Deutschland Was ist.net? Eine Strategie Eine Plattform Eine Laufzeitumgebung Eine Software-Sammlung Ein Set von Services Warum so ein Framework?

Mehr

Konzepte von Betriebssystemkomponenten

Konzepte von Betriebssystemkomponenten Konzepte von Betriebssystemkomponenten Systemstart und Programmausführung Seminarvortrag 15.12.2003, Michael Moese Übersicht 2. Systemstart 3. Programmausführung TEIL 1: Systemstart 1.1 Das BIOS 1.2 Der

Mehr

Virtual Machines unter der Haube

Virtual Machines unter der Haube Virtual Machines unter der Haube Alexander Lais unfug.org 21.06.2007 Agenda Aufbau der Laufzeitumgebungen Binärformate und Befehlssatz Compilierung Garbage Collection Nativer Code

Mehr

Integrierte Editoren in Plone

Integrierte Editoren in Plone Integrierte Editoren in Plone Vergleich der Webeditoren TinyMCE, CKEditor und Kupu für das CMS Plone Gliederung 1. Vorstellung der Editoren 2. Allgemeines zu Web-Editoren 3. Praxis-Test 4. Übersicht Barrierefreiheit

Mehr

Whitepaper. Produkt: List & Label. Thema: Eine Übersicht der Einbindungsmöglichkeiten. combit GmbH Untere Laube Konstanz

Whitepaper. Produkt: List & Label. Thema: Eine Übersicht der Einbindungsmöglichkeiten. combit GmbH Untere Laube Konstanz combit GmbH Untere Laube 30 78462 Konstanz Whitepaper Produkt: List & Label Thema: Eine Übersicht der Einbindungsmöglichkeiten Thema: Eine Übersicht der Einbindungsmöglichkeiten - 2 - Inhalt Einleitung

Mehr

Sequentielle Programm- / Funktionsausführung innerhalb eines Prozesses ( thread = Ausführungsfaden )

Sequentielle Programm- / Funktionsausführung innerhalb eines Prozesses ( thread = Ausführungsfaden ) Threads Sequentielle Programm- / Funktionsausführung innerhalb eines Prozesses ( thread = Ausführungsfaden ) Ein thread bearbeitet eine sequentielle Teilaufgabe innerhalb eines Prozesses Mehrere nebenläufige

Mehr

Unterprogramme. Funktionen. Bedeutung von Funktionen in C++ Definition einer Funktion. Definition einer Prozedur

Unterprogramme. Funktionen. Bedeutung von Funktionen in C++ Definition einer Funktion. Definition einer Prozedur Unterprogramme Unterprogramme sind abgekapselte Programmfragmente, welche es erlauben, bestimmte Aufgaben in wiederverwendbarer Art umzusetzen. Man unterscheidet zwischen Unterprogrammen mit Rückgabewert

Mehr

CUDA. Moritz Wild, Jan-Hugo Lupp. Seminar Multi-Core Architectures and Programming. Friedrich-Alexander-Universität Erlangen-Nürnberg

CUDA. Moritz Wild, Jan-Hugo Lupp. Seminar Multi-Core Architectures and Programming. Friedrich-Alexander-Universität Erlangen-Nürnberg CUDA Seminar Multi-Core Architectures and Programming 1 Übersicht Einleitung Architektur Programmierung 2 Einleitung Computations on GPU 2003 Probleme Hohe Kenntnisse der Grafikprogrammierung nötig Unterschiedliche

Mehr

MICROSOFT.NET: EINE NEUE ENTWICKLUNGSPLATTFORM AUCH FÜR NUMERISCHE PROBLEME?

MICROSOFT.NET: EINE NEUE ENTWICKLUNGSPLATTFORM AUCH FÜR NUMERISCHE PROBLEME? Titel MICROSOFT.NET: EINE NEUE ENTWICKLUNGSPLATTFORM AUCH FÜR NUMERISCHE PROBLEME? Jan Linxweiler, Sören Freudiger mail@bau-ings.de www.bau-ings.de 30.09.2004 Jan Linxweiler 1 Übersicht Prof. M. Krafczyk

Mehr

Informatik II SS Inhalt. Objektlebensdauer (2/3) Objektlebensdauer (1/3)

Informatik II SS Inhalt. Objektlebensdauer (2/3) Objektlebensdauer (1/3) Inhalt Informatik II SS 2004 Teil 6: Sprachen, Compiler und Theorie 5 Lebensdauer von Objekten Speichermanagement Weiterführende Spracheigenschaften und Bindungen Implementierung von statischen Gültigkeitsbereichen

Mehr

Modulare Anwendungen und die Lookup API. Geertjan Wielenga NetBeans Team Deutschsprachige Überarbeitung, Aljoscha Rittner NetBeans Dream Team

Modulare Anwendungen und die Lookup API. Geertjan Wielenga NetBeans Team Deutschsprachige Überarbeitung, Aljoscha Rittner NetBeans Dream Team Modulare Anwendungen und die Lookup API Geertjan Wielenga NetBeans Team Deutschsprachige Überarbeitung, Aljoscha Rittner NetBeans Dream Team Die Notwendigkeit modularer Anwendungen Die Notwendigkeit modularer

Mehr

STORYBOARDING ZUR ABLEITUNG VON KONTEXTBASIERTEN INTERACTION-CASES FÜR UBIQUITÄRE SYSTEME

STORYBOARDING ZUR ABLEITUNG VON KONTEXTBASIERTEN INTERACTION-CASES FÜR UBIQUITÄRE SYSTEME Fakultät Informatik Institut für Software- und Multimediatechnik Juniorprofessur Software Engineering Ubiquitärer STORYBOARDING ZUR ABLEITUNG VON KONTEXTBASIERTEN INTERACTION-CASES FÜR UBIQUITÄRE SYSTEME

Mehr

Hydroinformatik I: Referenzen und Zeiger

Hydroinformatik I: Referenzen und Zeiger Hydroinformatik I: Referenzen und Zeiger Prof. Dr.-Ing. habil. Olaf Kolditz 1 Helmholtz Centre for Environmental Research UFZ, Leipzig 2 Technische Universität Dresden TUD, Dresden Dresden, 06. Januar

Mehr

Threads. Netzwerk - Programmierung. Alexander Sczyrba Jan Krüger

Threads. Netzwerk - Programmierung. Alexander Sczyrba Jan Krüger Netzwerk - Programmierung Threads Alexander Sczyrba asczyrba@cebitec.uni-bielefeld.de Jan Krüger jkrueger@cebitec.uni-bielefeld.de Übersicht Probleme mit fork Threads Perl threads API Shared Data Mutexes

Mehr

LAZARUS. von Michael Van Canneyt, Mattias Gärtner, Swen Heinig, Felipe Monteiro de Carvalho, Inoussa Ouedraogo und Jörg Braun

LAZARUS. von Michael Van Canneyt, Mattias Gärtner, Swen Heinig, Felipe Monteiro de Carvalho, Inoussa Ouedraogo und Jörg Braun LAZARUS von Michael Van Canneyt, Mattias Gärtner, Swen Heinig, Felipe Monteiro de Carvalho, Inoussa Ouedraogo und Jörg Braun INHALT Vorwort 13 Kapitel 1 Die Architektur von Lazarus 15 von Mattias Gärtner

Mehr

Schnelles Prototyping für die medizinische Bildverarbeitung

Schnelles Prototyping für die medizinische Bildverarbeitung Schnelles Prototyping für die medizinische Bildverarbeitung Danial Bin Mohamed Saruji, Michael Müller, Hans-Peter Meinzer Abteilung Medizinische und Biologische Informatik, Deutsches Krebsforschungszentrum

Mehr

C++ - Variablen: Gültigkeit - Sichtbarkeit

C++ - Variablen: Gültigkeit - Sichtbarkeit C++ - Variablen: Gültigkeit - Sichtbarkeit Reiner Nitsch 8417 r.nitsch@fbi.h-da.de Attribute von Variablen und Funktionen Attribute von Variablen sind Name (name), Typ (type), Wert (value) Attribute von

Mehr

Erweiterte Interaktion mit Trees und Charts in APEX

Erweiterte Interaktion mit Trees und Charts in APEX Erweiterte Interaktion mit Trees und Charts in APEX Dr. Gudrun Pabst Trivadis Gmbh Lehrer-Wirth-Straße 4 81829 München gudrun.pabst@trivadis.com BASEL BERN LAUSANNE ZÜRICH DÜSSELDORF FRANKFURT A.M. FREIBURG

Mehr

Bootvorgang des DSM-Systems Systems Plurix

Bootvorgang des DSM-Systems Systems Plurix Bootvorgang des DSM-Systems Systems Plurix Stefan Frenz Vortrag im Rahmen der Abteilungsbesprechung Voraussetzungen: CPU CPU-Modi Voraussetzungen: BIOS Rechner-Initialisierung durch das BIOS Interrupt

Mehr

2 Wegweiser Projektbeschreibung...69

2 Wegweiser Projektbeschreibung...69 1 Projektmanagement...1 1.1 Komponenten eines SAP-R/3-Systems...1 1.2 Datenstruktur eines R/3-Systems...3 1.3 Änderungen an R/3-Datenobjekten...6 1.3.1 Änderungsebenen...6 1.3.2 Änderungsstrategien...8

Mehr

Informatik II Übung 4 Gruppe 7

Informatik II Übung 4 Gruppe 7 Informatik II Übung 4 Gruppe 7 Leyna Sadamori leyna.sadamori@inf.ethz.ch Administratives Kontrolliert eure Abgaben! Jede Gruppe ist verantwortlich für ihre Abgaben Alle Teammitglieder tragen gleichermaßen

Mehr

Aufbau eines modernen Betriebssystems (Windows NT 5.0)

Aufbau eines modernen Betriebssystems (Windows NT 5.0) Aufbau eines modernen Betriebssystems (Windows NT 5.0) Moritz Mühlenthaler 14.6.2004 Proseminar KVBK Gliederung 1.Das Designproblem a) Überblick b) Design Goals c) Möglichkeiten der Strukturierung 2. Umsetzung

Mehr

2.13 Vererbung. Rainer Feldmann Universität Paderborn Technische Informatik für Ingenieure (TIFI) WS 09/ Article

2.13 Vererbung. Rainer Feldmann Universität Paderborn Technische Informatik für Ingenieure (TIFI) WS 09/ Article 2.13 Vererbung Klassen modellieren Objekte der realen Welt. Diese sind oft hierarchisch gegliedert. Beispiel: Ein Verlag bietet Bücher und CDs an. Beide Medien sind Artikel des Verlages. Book author: String

Mehr

10. OLAPLINE-Anwendertreffen

10. OLAPLINE-Anwendertreffen 10. OLAPLINE-Anwendertreffen 26. und 27. April 2017 Schloss Garath Düsseldorf Zwei Tage Weiterbildung und Networking integriert: Vorträge, Workshops und Erfahrungsaustausch rund um TM1 JAVA EXTENSIONS

Mehr

Firmenkursprogramm für Superbase-Entwickler Ausgabe 01 / 06

Firmenkursprogramm für Superbase-Entwickler Ausgabe 01 / 06 Superbase Basis Sie lernen die verschiedenen Elemente von Superbase kennen und können diese sinnvoll nutzen. Als angehender Superbase- Entwickler lernen Sie Dateien, Formulare, Berichte und Programmcode

Mehr

Zweck: sequentieller Zugriff auf Elemente eines Aggregats. mehrere Abarbeitungen des Aggregatinhalts

Zweck: sequentieller Zugriff auf Elemente eines Aggregats. mehrere Abarbeitungen des Aggregatinhalts Iterator (Cursor) Zweck: sequentieller Zugriff auf Elemente eines Aggregats Anwendungsgebiete: Zugriff auf Aggregatinhalt innere Darstellung bleibt gekapselt mehrere Abarbeitungen des Aggregatinhalts einheitliche

Mehr

Bestandsaufnahme und Arbeit an einer Alpha-Version des Saros- Plugins für die IntelliJ-Plattform

Bestandsaufnahme und Arbeit an einer Alpha-Version des Saros- Plugins für die IntelliJ-Plattform Tobias Bouschen Institut für Informatik der Freien Universität Berlin, Arbeitsgruppe Software Engineering Bestandsaufnahme und Arbeit an einer Alpha-Version des Saros- Plugins für die IntelliJ-Plattform

Mehr

Namespaces und Assemblies

Namespaces und Assemblies Namespaces und Assemblies 1 Namespaces File: XXX.cs namespace A { namespace B { // voller Name: A.B File: YYY.cs namespace A { namespace B { File: ZZZ.cs namespace A.B { namespace C { Eine Datei kann mehrere

Mehr

Zweck: sequentieller Zugriff auf Elemente eines Aggregats

Zweck: sequentieller Zugriff auf Elemente eines Aggregats Iterator (Cursor) Zweck: sequentieller Zugriff auf Elemente eines Aggregats Anwendungsgebiete: Zugriff auf Aggregatinhalt innere Darstellung bleibt gekapselt mehrere Abarbeitungen des Aggregatinhalts einheitliche

Mehr

INHALT. Vorwort 13. Kapitel 1 Die Architektur von Lazarus 15

INHALT. Vorwort 13. Kapitel 1 Die Architektur von Lazarus 15 INHALT Vorwort 13 Kapitel 1 Die Architektur von Lazarus 15 von Mattias Gärtner 1.1 Der Quelltexteditor 19 1.1.1 CodeTools 20 1.1.2 Schnelle Navigation im Code 20 1.1.3 Automatische Vervollständigung 23

Mehr

Migration der Datenbankzugriffsschnittstelle in Client-/Server-Systemen

Migration der Datenbankzugriffsschnittstelle in Client-/Server-Systemen Migration der Datenbankzugriffsschnittstelle in Client-/Server-Systemen Christian Böhmer, isys Software GmbH Björn Grimm, Hochschule München 1 Migration der Datenbankzugriffsschnittstelle in Client-/Server-Systemen

Mehr

Authentifizierung und Autorisierung in Kubernetes

Authentifizierung und Autorisierung in Kubernetes Authentifizierung und Autorisierung in Kubernetes Frühjahrsfachgespräch GUUG 2018 01. März 2018 Michael Steinfurth Linux / Unix Consultant & Trainer B1 Systems GmbH steinfurth@b1-systems.de Vorstellung

Mehr

Mapra: C++ Teil 6. Felix Gruber, Sven Groß. IGPM, RWTH Aachen. 13. Juni 2017

Mapra: C++ Teil 6. Felix Gruber, Sven Groß. IGPM, RWTH Aachen. 13. Juni 2017 Mapra: C++ Teil 6 Felix Gruber, Sven Groß IGPM, RWTH Aachen 13. Juni 2017 Felix Gruber, Sven Groß (IGPM, RWTH Aachen) Mapra: C++ Teil 6 13. Juni 2017 1 / 22 Was bisher geschah Klassen I Attribute und Methoden

Mehr

Java-Grundkurs für rtschaftsinformatiker

Java-Grundkurs für rtschaftsinformatiker Klaus-Georg Deck Herbert Neuendorf Java-Grundkurs für rtschaftsinformatiker Die Grundlagen verstehen - Objektorientierte Programmierung- Fortgeschrittene Konzepte kennenlernen Betriebswirtschaftlich orientierte

Mehr

Komponentenorientierte Software-Entwicklung. Seite 1 / 42

Komponentenorientierte Software-Entwicklung. Seite 1 / 42 Seite 1 / 42 Wiederholung Messaging Java Messaging Service (JMS) Pub/Sub P2P Messaging Middleware XMPP-Protokoll Java API for XML-Processing (JAXP) Java API for XML-Binding Webservices / SOA Simple Object

Mehr

Domino und PHP EC 2013 Track 2 Session 7

Domino und PHP EC 2013 Track 2 Session 7 Domino und PHP EC 2013 Track 2 Session 7 1 Domino und PHP Worum es heute geht Überblick über die verschiedenen Methoden Installation Allerlei Beispiele und Ideen Worum es nicht geht LotusScript, PHP (Sie

Mehr

Erlangen von Administrator-Privilegien unter Microsoft Windows NT 4.0 durch Ausnutzung einer Sicherheitslücke im Systemcache

Erlangen von Administrator-Privilegien unter Microsoft Windows NT 4.0 durch Ausnutzung einer Sicherheitslücke im Systemcache Erlangen von Administrator-Privilegien unter Microsoft Windows NT 4.0 durch Ausnutzung einer Sicherheitslücke im Systemcache Ein Bericht aus der Projektarbeit im Rahmen der Vorlesung Informationssicherheit

Mehr

Feature-Überblick: Vista Toolkit

Feature-Überblick: Vista Toolkit Feature-Überblick: Vista Toolkit Craig Boyd Microsoft Windows Vista TM wird mit neuen Richtlinien für die Benutzeroberfläche ausgeliefert. Diese Richtlinien legen fest, wie eine Windows-Anwendung unter

Mehr

Guile Die Erweiterungssprache des GNU-Projekts

Guile Die Erweiterungssprache des GNU-Projekts Guile Die Erweiterungssprache des GNU-Projekts Matthias Köppe Otto-von-Guericke-Universität Magdeburg Magdeburger Linux User Group e. V. 19. Mai 2001 Überblick Guile als Erweiterungssprache Guile als Scheme-Implementierung

Mehr

DAP2-Programmierpraktikum Einführung in C++ (Teil 2)

DAP2-Programmierpraktikum Einführung in C++ (Teil 2) DAP2-Programmierpraktikum Einführung in C++ (Teil 2) Carsten Gutwenger 18. April 2008 Lehrstuhl 11 Algorithm Engineering Fakultät für Informatik, TU Dortmund Überblick Dynamischer Speicher Klassen und

Mehr