JUnit 5 Design und Architektur eines Frameworks

Größe: px
Ab Seite anzeigen:

Download "JUnit 5 Design und Architektur eines Frameworks"

Transkript

1 JUnit 5 Design und Architektur eines Frameworks

2 @johanneslink johanneslink.net

3 Softwaretherapeut "In Deutschland ist die Bezeichnung Therapeut allein oder ergänzt mit bestimmten Begriffen gesetzlich nicht geschützt und daher kein Hinweis auf ein erfolgreich abgeschlossenes Studium oder auch nur fachliche Kompetenz." Quelle: Wikipedia

4 JUnit 5 Initiator - zusammen mit Marc Philipp - und Core-Committer im ersten Jahr jqwik: Externe JUnit5-Test-Engine für Property- Based Testing

5 themenübersicht JUnit 5: Vision einer Plattform Architektur der Plattform Wie gut funktioniert die Vision? Extensibility: Zwei Ansätze im Vergleich

6 Warum braucht die Welt ein neues JUnit?

7

8 A Brief History of JUnit Runner Rules 2015 JUnit Lambda Campaign 2017 JUnit 5.0.0

9

10 Wartbarkeit beta-1

11

12 JUnit 4 "Architektur"

13 Erfolg von JUnit 4 als Plattform verhindert Weiterentwicklung von JUnit 4 als Werkzeug!

14 JUnit-5 Design-Ziel Trennung der Aspekte JUnit als Testwerkzeug und JUnit als Plattform JUnit 4 und 5 nebeneinander, um Adaption und Migration zu erleichtern

15 DIY Architecture: Step by Step

16 Allgemein erwünschte Eigenschaften eines Frameworks Usability Separation of Concerns Freie Kombinierbarkeit mit anderen Frameworks und Bibliotheken Erweiterbarkeit Abwärts- und Aufwärtskompatibilität Keine oder wenig Abhängigkeiten

17 Schritt 1: Trennung von Framework- Nutzung und Framework-Anbindern Nutzung (API): IDE: Anzeigen, Auswahl und Anstoßen von Tests Programmierer: Schreiben/Spezifizieren von Tests Anbinder (SPI) Interpretation von Testspezifikationen

18 junit-platform-launcher junit-platform-engine Launcher TestPlan discover(discoveryrequest) void execute(testplan) <<interface>> TestEngine discover() void execute() junit-jupiter JupiterTestEngine myproject test1

19 Trennung von Entdecken und Ausführen

20 Trennung von Entdecken und Ausführen

21 Schritt 2: Ständiger Fortschrittsbericht eines Testlaufs Events / Nachrichten statt Rückgabe eines Ergebnisses

22 TestEngine execute(request) ExecutionRequest <<interface>> TestDescriptor <<interface>> EngineExecutionListener void executionstarted(testdescriptor) void executionfinished(testdescriptor, result) children TestExecutionResult <<enum>> Throwable Status Successful Failed Aborted

23

24 Execution Listener

25 Schritt 3: Gleichzeitiger Einsatz mehrerer Test-Engines Jede Test-Engine hat ihre eigene API zur Testfallspezifikation Sevice-Provider-Mechanismus von Java zur Registrierung einer Test-Engine

26 junit-platform-launcher ServiceLoaderTestEngineRegistry Launcher TestPlan discover(discoveryrequest) void execute(testplan) junit-platform-engine <<interface>> TestEngine discover() void execute() junit-jupiter-api <<annotation>> org.junit.jupiter.api.test create junit-jupiter-engine JupiterTestEngine junit-vintage-engine myproject VintageTestEngine test1 test1 junit-4.12 <<annotation>> org.junit.test

27 Schritt 4: Leichte Serialisierbarkeit aller SPI-Objekte Notwendig um Inter-Prozess-Kommunikation zur ermöglichen UniqueId als verbindendes Element TestDescriptor vs Testidentifier und TestPlan

28 junit-platform-launcher TestPlan Set<TestIdentifier> getroots(identifier) Set<TestIdentifier> getchildren(identifier) Optional<TestIdentifier> getparent(identifier) <<interface>> TestExecutionListener executionstarted(testidentifier) identifiers <<immutable>> ExecutionListenerAdapter TestIdentifier <<interface>> TestDescriptor <<immutable>> UniqueId UniqueId append(type, value) children AbstractTestDescriptor <<immutable>> Segment String type String value segments <<interface>> EngineExecutionListener executionstarted(testdescriptor) junit-platform-engine

29 VINTAGE JUPITER THIRD PARTY PLATFORM

30 THIRD PARTY JUPITER VINTAGE PLATFORM

31 Andere Architekturaspekte API Lifecycle-Management mit Mögliche Status: Stable, Maintained, Experimental, Deprecated, Internal Test auf Zyklenfreiheit mit degraph Strikte Formattierungsregeln via checkstyle

32 Platform Usability Test-Engines nutzen und selbst entwickeln

33 Warum braucht die Welt mehr als zwei Test-Engines? Andere JVM-Sprache Anderes Spezifikationsmodell Anderes Ausführungsmodell Für Erweiterungen des Test-Modells genügt häufig eine Jupiter-Extension

34 Test-Engine benutzen 1. TestCompile-Dependency hinzufügen: org.myorg:my-engine:x.y.z 2. Tests schreiben

35 Test-Engine benutzen 1. TestCompile-Dependency hinzufügen: org.myorg:my-engine:x.y.z org.junit.jupiter:junit-jupiter-engine: Tests schreiben

36 Test-Engine Kochrezept 1. Compile-Dependencies hinzufügen 2. TestEngine-Interface implementieren 3. Engine registrieren 4. Tests in IDE starten

37 DEMO Die kleinste Test-Engine der Welt

38 git clone cd jax2017/empty-engine/ gradle test

39 dependencies { compile("org.junit.platform:junit-platform-engine:1.0.0 ) compile("org.junit.platform:junit-platform-commons:1.0.0") // For writing integration tests testcompile("org.junit.platform:junit-platform-launcher:1.0.0") } // Only necessary to enable IntelliJ support testruntime("org.junit.jupiter:junit-jupiter-engine:5.0.0")

40 Test-Engine registrieren /META-INF/services/ org.junit.platform.engine.testengine nano.nanoengine

41

42 TestEngine-Interface implementieren 1. Create TestEngine class 2. Implement discover() 3. Implement execute()

43 Was fehlt zu stärkerer Test-Engine? Nano kann von IDE ausgeführt werden, aber ist sehr beschränkt Test-Spezifikation durch Klassen und Methoden

44 public class A_tiny_test { final int theanswer = 42; public boolean this_should_return_true() { } return theanswer == 42; public boolean this_returns_false() { return theanswer == 43; } }

45

46

47 Tests in IDE identifizieren Theoretisch ist jedes zur Laufzeit ermittelbare Spezifikationsmodell umsetzbar Aber: Alles immer zu kompilieren ist für (manche) IDEs nicht realisierbar <<annotation>> org.junit.platform.commons.annotation.testable Meta-Annotation <<annotation>> org.junit.jupiter.api.test <<annotation>> TinyTest

48 Was geht noch? Ausführen von Dateien, URLs, und anderen Ressourcen jqwik.net: Property Testen in Java Specsy: Alles mit Lambdas Wrapper für Cucumber, Spock, Fitnesse etc

49 Tool-Support: State of the Union erforderlich für Run-Symbol am Source-Code Gezielter Teststart nur für Klasse/Methode/Package und andere Unstimmigkeiten Eclipse Geplant für Gradle und Maven vom JUnit-Team gepflegt

50 Architekturbewertung der JUnit-5-Plattform git clone

51

52 Bewertungskriterien Usability Separation of Concerns Freie Kombinierbarkeit mit anderen Frameworks und Bibliotheken Erweiterbarkeit Auf- und Abwärtskompatibilität

53 JUnit 5 Architektur: Usability Für den Engine-Verwender denkbar einfach Für den Engine-Entwickler Einfache Schnittstellen IDE- und Build-Support bekommt man umsonst Viel Logik (Discovery + Execution) muss selbst implementiert werden - Support-Packages für Reflection, Classpath-Scanning, Exception- Handling und Hierarchische Testspecs

54 JUnit 5 Architektur: Separation of Concerns Gute Trennung von APIs, SPIs, Runnern, Engines, Build-Support Aber: Komplizierte Abhängigkeitsstruktur in Build-Files

55 JUnit 5 Architektur: Kombinierbarkeit mit anderen Frameworks Kaum Abhängigkeiten, dadurch kaum Konfliktpotenzial Aber: Die Plattform übernimmt den kompletten Ausführungslebenszyklus

56 JUnit 5 Architektur: Erweiterbarkeit Engines sind völlig unabhängig voneinander und frei miteinander kombinierbar Aber: Funktionalitätssharing zwischen Engines nicht vorgesehen

57 JUnit 5 Architektur: Auf- und Abwärtskompatibilität 99,9 % abwärtskompatibel mit JUnit 4.12 API Annotationen unterstützen bei der sinnvollen API-Nutzung Aber: Stabilität der API muss sich noch beweisen

58 Extensibility: Zwei Ansätze JUnit 4: Test-Runner: Übernimmt die komplette Testausführung Rules: Generic Statement Wrapping JUnit 5 Jupiter: Specialized Extension Points

59 JUnit 4 Statement Statement abstract void evaluate() throws Throwable class BlockJUnit4ClassRunner protected Statement methodblock(frameworkmethod method) { Object test; try { test = new ReflectiveCallable() protected Object runreflectivecall() throws Throwable { return createtest(); } }.run(); } catch (Throwable e) { return new Fail(e); } } Statement statement = methodinvoker(method, test); statement = possiblyexpectingexceptions(method, test, statement); statement = withpotentialtimeout(method, test, statement); statement = withbefores(method, test, statement); statement = withafters(method, test, statement); statement = withrules(method, test, statement); return statement;

60 JUnit 4 Rule <<interface>> TestRule Statement apply(statement) public class MyRule implements TestRule public Statement apply(final Statement base) { return new Statement() public void evaluate() throws Throwable { public class public MyRule myrule = new public void atest() { } } } } } }; // Do something before standard behaviour base.evaluate(); // Do something after standard behaviour

61 Vor- und Nachteile? + Einfache Abstraktion + Einfache Komponierbarkeit - Nur von Innen nach Außen komponierbar - Keine Möglichkeit die Schachtelung zu verändern - Seiteneffekte zwischen Rules nicht kontrollierbar

62 Jupiter Extension API

63 Jupiter Extensions

64 Jupiter Callbacks <<interface>> Extension <<interface>> BeforeEachCallback void beforeeach(extensioncontext)

65

66 Test Lifecycle Callbacks Conditional Execution Allgemeine Extensions BeforeAllCallback ContainerExecutionCondition ParameterResolver BeforeEachCallback TestExecutionCondition TestExecutionExceptionHandler BeforeTestExecutionCallback TestInstancePostProcessor AfterTestExecutionCallback AfterEachCallback AfterAllCallback

67

68 Extensions sind Komponierbar Zustandslos Können Zustand über einen Store transportieren und austauschen Namespaces Hierarchisch

69 Beispiel: Mockito-Extension public class MockitoExtension implements TestInstancePostProcessor, ParameterResolver public void postprocesstestinstance(object testinstance, ExtensionContext context) { MockitoAnnotations.initMocks(testInstance); public boolean supportsparameter(parametercontext parametercontext, ExtensionContext extensioncontext) { return parametercontext.getparameter().isannotationpresent(mock.class); public Object resolveparameter(parametercontext parametercontext, ExtensionContext extensioncontext) { return getmock(parametercontext.getparameter(), extensioncontext); } private Object getmock(parameter parameter, ExtensionContext extensioncontext) { Class<?> mocktype = parameter.gettype(); Store mocks = extensioncontext.getstore(namespace.create(mockitoextension.class, mocktype)); } } return mocks.getorcomputeifabsent(mocktype.getcanonicalname(), key -> mock(mocktype));

70 Beispiel: Spring-Extension public class SpringExtension implements BeforeAllCallback, AfterAllCallback, TestInstancePostProcessor, BeforeEachCallback, AfterEachCallback, ParameterResolver

71 Vor- und Nachteile? + Feingranulare Eingriffe in den Lebenszyklus möglich + Gute Komponierbarkeit unterschiedlicher Extensions + State nur wenn nötig - Zahlreiche unterschiedliche Callbacks notwendig - Komplexer Life-Cycle in der Testausführung - Nicht alle unerwünschten Interaktionen zwischen Extensions sind kontrollierbar

72 Links Artikel über JUnit-5-Architektur Artikel über Jupiter-Extension-Modell Framework Design Principles: JUnit 5: Jqwik-Engine:

Andreas Mösching Senior IT Architekt Hewlett-Packard (Schweiz) GmbH HP Banking Service Center Bern andreas.moesching@rtc.ch

Andreas Mösching Senior IT Architekt Hewlett-Packard (Schweiz) GmbH HP Banking Service Center Bern andreas.moesching@rtc.ch Eclipse Runtime (OSGi) als Plattform eines Swing Rich Client Andreas Mösching Senior IT Architekt Hewlett-Packard (Schweiz) GmbH HP Banking Service Center Bern andreas.moesching@rtc.ch Zu meiner Person

Mehr

Eclipse Equinox als Basis für Smart Client Anwendungen. Christian Campo, compeople AG, 5.7.2007 Java Forum Stuttgart 2007

Eclipse Equinox als Basis für Smart Client Anwendungen. Christian Campo, compeople AG, 5.7.2007 Java Forum Stuttgart 2007 Eclipse Equinox als Basis für Smart Client Anwendungen Christian Campo, compeople AG, 5.7.2007 Java Forum Stuttgart 2007 Übersicht Definition / Architektur Smart Client Smart Client mit RCP / Equinox Gesamtfazit

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

Oliver Paulus, oliver@code-project.org. 7. Februar 2006. Spring Framework Einführung. Oliver Paulus, oliver@codeproject.org. Was ist Spring?

Oliver Paulus, oliver@code-project.org. 7. Februar 2006. Spring Framework Einführung. Oliver Paulus, oliver@codeproject.org. Was ist Spring? oliver@code-project.org 7. Februar 2006 Inhalt 1 2 3 4 5 6 7 8 9 Inhalt 1 2 3 4 5 6 7 8 9 Inhalt 1 2 3 4 5 6 7 8 9 Inhalt 1 2 3 4 5 6 7 8 9 Inhalt 1 2 3 4 5 6 7 8 9 Inhalt 1 2 3 4 5 6 7 8 9 Inhalt 1 2

Mehr

am Beispiel von JUnit

am Beispiel von JUnit Aufbau eines Testwerkzeugs am Beispiel von JUnit Üblicher Ansatz für Tests und Fehlersuche: Print-Befehle, Debugger-Ausdrücke, Test-Skripte möglichst über globale Variable debug steuerbar Command Pattern

Mehr

Auszug aus JAX-WS Folien

Auszug aus JAX-WS Folien Auszug aus JAXWS Folien Dieses Dokument ist ein Auszug aus unserem Skript zur Java Web Services Schulung. Es dient lediglich als Beispiel für unsere Kursunterlagen. Thomas Bayer Hauptstraße 33 75050 Gemmingen

Mehr

Spring Dynamic Modules for OSGi Service Platforms

Spring Dynamic Modules for OSGi Service Platforms Gerd Wütherich freiberuflicher Softwarearchitekt Spring Dynamic Modules for OSGi Service Platforms Server Anwendungen mit Spring und Eclipse Equinox Agenda OSGi Technologie: OSGi Technologie im Überblick

Mehr

Große Übung Praktische Informatik 1

Große Übung Praktische Informatik 1 Große Übung Praktische Informatik 1 2005-12-08 fuessler@informatik.uni-mannheim.de http://www.informatik.uni-mannheim.de/pi4/people/fuessler 1: Announcements / Orga Weihnachtsklausur zählt als Übungsblatt,

Mehr

Handbuch für die Erweiterbarkeit

Handbuch für die Erweiterbarkeit Handbuch für die Erweiterbarkeit Inhalt Pakete für die Erweiterbarkeit... 2 Actions... 2 Items... 2 Itemset... 2 Die UseCaseNewAction... 3 Eigene Shapes... 4 Der Shape Container... 5 User Objects... 6

Mehr

Java für C++ Programmierer

Java für C++ Programmierer Java für C++ Programmierer Alexander Bernauer bernauer@inf.ethz.ch Einführung in die Übungen zu Informatik II (D ITET) FS2010 ETH Zürich Ziel Allgemeiner Überblick Kennenlernen der Suchbegriffe Warum Java?

Mehr

Moderne Web- Anwendungen mit

Moderne Web- Anwendungen mit Moderne Web- Anwendungen mit Oliver.Damm@akquinet.de September 2013 Web- Anwendungen mit Vaadin???

Mehr

Application Frameworks

Application Frameworks Seminar Software Engineering 1 Grundlagen Agenda Spring Framework Dependency Injection Aspektorientierte Programmierung Datenbankanbindung Modell View Controller Sicherheit Spring vs. Java EE Zusammenfassung

Mehr

Systematisches Testen

Systematisches Testen Systematisches Testen SEP 136 Unit Testing Objektorientierte Entwicklung Entwicklung von vielen unabhängigen Einheiten (Klassen, Methoden), aus denen das Gesamtprogramm zusammengesetzt wird. Ziel: Wenn

Mehr

JAX-RS 2.0 REST mit Java EE 7

JAX-RS 2.0 REST mit Java EE 7 Enterprise Java, Web Services und XML JAX-RS 2.0 REST mit Java EE 7 Java User Group Darmstadt 13. Juni 2013 http://www.frotscher.com thilo@frotscher.com Vorstellung Freiberuflicher Softwarearchitekt und

Mehr

Testen mit JUnit. Motivation

Testen 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

Mehr

Webentwicklung mit Vaadin 7. Theoretische und praktische Einführung in Vaadin 7. Christian Dresen, Michael Gerdes, Sergej Schumilo

Webentwicklung mit Vaadin 7. Theoretische und praktische Einführung in Vaadin 7. Christian Dresen, Michael Gerdes, Sergej Schumilo Webentwicklung mit Vaadin 7 Theoretische und praktische Einführung in Vaadin 7 Christian Dresen, Michael Gerdes, Sergej Schumilo Agenda Allgemeines Architektur Client-Side Server-Side Vaadin UI Components

Mehr

Spring Dynamic Modules for OSGi Service Platforms

Spring Dynamic Modules for OSGi Service Platforms Gerd Wütherich freiberuflicher Softwarearchitekt Spring Dynamic Modules for OSGi Service Platforms Server Anwendungen mit Spring und Eclipse Equinox Agenda OSGi Technologie: OSGi Technologie im Überblick

Mehr

Info: Standard DO-178B. 5. Mocking. Zusammenspiel von Klassen testen. Allgemein: Klassen testbar machen

Info: Standard DO-178B. 5. Mocking. Zusammenspiel von Klassen testen. Allgemein: Klassen testbar machen Info: Standard DO-178B Zertifizierung Federal AviationAdministration (FAA), Software für Luftverkehrssysteme durch Standard DO-178B für requirement-based Tests and Code Coverage Analyse DO-178B-Levels

Mehr

Java Einführung Abstrakte Klassen und Interfaces

Java Einführung Abstrakte Klassen und Interfaces Java Einführung Abstrakte Klassen und Interfaces Interface Interface bieten in Java ist die Möglichkeit, einheitliche Schnittstelle für Klassen zu definieren, die später oder/und durch andere Programmierer

Mehr

Gerd Wütherich Nils Hartmann. OSGi Service Platform by example

Gerd Wütherich Nils Hartmann. OSGi Service Platform by example Gerd Wütherich Nils Hartmann OSGi Service Platform by example Die OSGi Service Platform Das Buch» Detaillierte Einführung in OSGi-Technologie» April 2008, dpunkt.verlag» ISBN 978-3-89864-457-0» Website:

Mehr

Allgemein: Klassen testbar machen. 5. Mocking. Mocks programmieren. Zusammenspiel von Klassen testen

Allgemein: Klassen testbar machen. 5. Mocking. Mocks programmieren. Zusammenspiel von Klassen testen 5. Mocking Allgemein: Klassen testbar machen Wie werden Klassen testbar Entwicklung von Mocks mit der Hand Einführung in JMock Spezifikation von Mocks mit JMock Wann ist Mocking-Werkzeug sinnvoll Literatur:

Mehr

Bean-Mapping mit MapStruct

Bean-Mapping mit MapStruct Machst Du noch Reflection oder annotierst Du schon? Bean-Mapping mit MapStruct Thomas Much thomas@muchsoft.com www.muchsoft.com 1 20 Jahre Java, 18 Jahre Beans JavaBeans JAXBEntities 2015 2006 2005 2000

Mehr

Java Batch Der Standard für's Stapeln

Java Batch Der Standard für's Stapeln Java Batch Der Standard für's Stapeln Berlin Expert Days 18.09.2015 Dirk Weil, GEDOPLAN GmbH Dirk Weil GEDOPLAN GmbH, Bielefeld GEDOPLAN IT Consulting Konzeption und Realisierung von IT-Lösungen GEDOPLAN

Mehr

OSGi. The Next Generation Java Service Platform. SOA - The Java Way or My classpath is killing me. Michael Greifeneder

OSGi. The Next Generation Java Service Platform. SOA - The Java Way or My classpath is killing me. Michael Greifeneder Michael Greifeneder OSGi The Next Generation Java Service Platform SOA - The Java Way or My classpath is killing me Bilder von Peter Kriens W-JAX Keynote 2007 und Neil Bartletts Getting Started with OSGi

Mehr

Java Reflection. Meta-Programmierung mit der java.lang.reflection API. Prof. Dr. Nikolaus Wulff

Java Reflection. Meta-Programmierung mit der java.lang.reflection API. Prof. Dr. Nikolaus Wulff Java Reflection Meta-Programmierung mit der java.lang.reflection API. Prof. Dr. Nikolaus Wulff Java Reflection Die Java Reflection API liefert per Introspection Informationen über Klassen => Meta-Daten.

Mehr

Ein Erfahrungsbericht beim Einsatz von generierenden Ansätzen im Vergleich zu generischen Lösungen

Ein Erfahrungsbericht beim Einsatz von generierenden Ansätzen im Vergleich zu generischen Lösungen Ein Erfahrungsbericht beim Einsatz von generierenden Ansätzen im Vergleich zu generischen Lösungen Tom Krauß Agenda Begriffsdefinition Verfahren Praktische Beispiele Vergleich und Bewertung Begriffsklärung

Mehr

9.10.2014 JavaFX8 - JumpStart - JUGCH. file:///d:/workspace/kurs-java8/doc/javafx-jumpstart.html#1 1/128

9.10.2014 JavaFX8 - JumpStart - JUGCH. file:///d:/workspace/kurs-java8/doc/javafx-jumpstart.html#1 1/128 file:///d:/workspace/kurs-java8/doc/javafx-jumpstart.html#1 1/128 Sven Ruppert speaking java since 1996 Principal IT Consultant Standort - München @SvenRuppert 3/128 file:///d:/workspace/kurs-java8/doc/javafx-jumpstart.html#1

Mehr

Struts 2 Das Imperium schlägt zurück?

Struts 2 Das Imperium schlägt zurück? Struts 2 Das Imperium schlägt zurück? Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Tobias Kieninger www.oio.de info@oio.de Java, XML und Open Source seit 1998 ) Software

Mehr

Anwendungsentwicklung mit Spring

Anwendungsentwicklung mit Spring Anwendungsentwicklung mit Spring Eberhard Wolff Managing Director Interface21 GmbH Interface21 - Spring from the Source Interface21 Produkte u.a. Spring Framework Spring from the Source Consulting, Training,

Mehr

Software Engineering II

Software Engineering II Software Engineering II Codegenerierung für den SmartIO Editor mit der Modeling Workflow Engine Wintersemester 10/111 Fachgebiet Software Engineering Albert Zündorf / Wiederholung Bisher im Laufe des Semesters

Mehr

Reflection. Arthur Zaczek. Nov 2014

Reflection. Arthur Zaczek. Nov 2014 Arthur Zaczek Nov 2014 1 Einleitung 1.1 Definition Reflection ist das Auslesen von Metainformationen über Klassen, deren Methoden & Eigenschaften zur Laufzeit. 1.2 Anwendungsfälle Analyse von Programmen

Mehr

Programmieren in Java

Programmieren in Java Programmieren in Java Dateien lesen und schreiben 2 Übersicht der heutigen Inhalte File Streams try-with-resources Properties csv-dateien 3 Klasse File Die Klasse java.io.file bietet Unterstützung im Umgang

Mehr

Javadoc. Programmiermethodik. Eva Zangerle Universität Innsbruck

Javadoc. Programmiermethodik. Eva Zangerle Universität Innsbruck Javadoc Programmiermethodik Eva Zangerle Universität Innsbruck Überblick Einführung Java Ein erster Überblick Objektorientierung Vererbung und Polymorphismus Ausnahmebehandlung Pakete und Javadoc Spezielle

Mehr

Gerd Wütherich Martin Lippert. OSGi Service Platform by example

Gerd Wütherich Martin Lippert. OSGi Service Platform by example Gerd Wütherich Martin Lippert OSGi Service Platform by example Die OSGi Service Platform Das Buch» Detaillierte Einführung in OSGi-Technologie» April 2008, dpunkt.verlag» ISBN 978-3-89864-457-0» Website:

Mehr

Wie ich lernte die API zu lieben. 19. März 2013. bernhard.groehling@sicsec.de 08142-4425 037 sic[!]sec GmbH Industriestraße 29-31 82194 Gröbenzell

Wie ich lernte die API zu lieben. 19. März 2013. bernhard.groehling@sicsec.de 08142-4425 037 sic[!]sec GmbH Industriestraße 29-31 82194 Gröbenzell Burp- Burp- Wie ich lernte die zu lieben 19. März 2013 bernhard.groehling@sicsec.de 08142-4425 037 sic[!]sec GmbH Industriestraße 29-31 82194 Gröbenzell Burp- Was erwartet uns? Das erwartet euch Theorie:

Mehr

Einführung in die Informatik Tools

Einfü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

Mehr

Programmentwicklung ohne BlueJ

Programmentwicklung ohne BlueJ Objektorientierte Programmierung in - Eine praxisnahe Einführung mit Bluej Programmentwicklung BlueJ 1.0 Ein BlueJ-Projekt Ein BlueJ-Projekt ist der Inhalt eines Verzeichnisses. das Projektname heißt wie

Mehr

Android Processes & Services

Android Processes & Services Android Processes & Services Jürg Luthiger University of Applied Sciences Northwestern Switzerland Institute for Mobile and Distributed Systems Ziele heute Arbeitsblatt 4 besprechen (inkl. Repetition)

Mehr

Dennis Schulte / Tobias Flohre codecentric AG. Enterprise Java Batch mit Spring

Dennis Schulte / Tobias Flohre codecentric AG. Enterprise Java Batch mit Spring Dennis Schulte / Tobias Flohre Enterprise Java Batch mit Spring Dennis Schulte Düsseldorf @denschu www.github.com/denschu blog.codecentric.de/author/dsc tel +49 (0) 1515 _ 288 2395 dennis.schulte@codecentric.de

Mehr

Persönliche Build-Höllen für Jedermann Andreas Hartmann & Dr. Halil-Cem Gürsoy

Persönliche Build-Höllen für Jedermann Andreas Hartmann & Dr. Halil-Cem Gürsoy Über Ant und Maven zu SBT und Gradle Persönliche Build-Höllen für Jedermann Andreas Hartmann & Dr. Halil-Cem Gürsoy 07.04.2011 Speaker Andreas Hartmann [hartmann@adesso.de] Principal Software Engineer

Mehr

Java-Schulung Grundlagen

Java-Schulung Grundlagen Java-Schulung Grundlagen Java 2 Standard Edition JDK 5 / 6 31.05.2008 Marcel Wieczorek 1 Themenübersicht Basiswissen Objektorientierung Datentypen Fehlerbehandlung Sonstiges Einführung Klassen, Strings

Mehr

Software Engineering in

Software Engineering in Software Engineering in der Werkzeuge für optimierte LabVIEW-Entwicklung Folie 1 Best Practices Requirements Engineering Softwaretest Versionsmanagement Build- Automatisierung Folie 2 Arbeiten Sie im Team?

Mehr

Hivemind Ein leichtgewichteter Container

Hivemind Ein leichtgewichteter Container Hivemind Ein leichtgewichteter Container Manfred Wolff, wolff@manfred-wolff.de, www.manfred-wolff.de Container sind Laufzeitumgebungen für Objekte. Der mächtigste Container im Java-Umfeld der EJB Container

Mehr

JUnit - Test Driven Development. Bernhard Frey, Thorsten Stratmann, Jackson Takam, Michel Müller 1

JUnit - Test Driven Development. Bernhard Frey, Thorsten Stratmann, Jackson Takam, Michel Müller 1 JUnit - Test Driven Development Bernhard Frey, Thorsten Stratmann, Jackson Takam, Michel Müller 1 Gliederung 1.Einleitung 1.1 Geschichte 1.2 Was sind Unit-Tests? 1.3 Failures/Errors 1.4 Ziele und Nutzen

Mehr

Entwicklungswerkzeuge

Entwicklungswerkzeuge Entwicklungswerkzeuge Werner Struckmann & Tim Winkelmann 10. Oktober 2012 Gliederung Anforderungen Projekte Debugging Versionsverwaltung Frameworks Pattern Integrated development environment (IDE) Werner

Mehr

Höhere Programmierkonzepte Testklausur

Höhere Programmierkonzepte Testklausur Höhere Programmierkonzepte Testklausur Prof. Dr. Nikolaus Wulff Zum 15. Januar 2016 1 Ein Google-Map Algorithmus (5 Punkte) 1 2 typedef void X; 3 typedef void Y; 4 5 void map(unsigned int n / tuple length

Mehr

7. Schnittstellen Grundlagen zu Schnittstellen. 7. Schnittstellen

7. Schnittstellen Grundlagen zu Schnittstellen. 7. Schnittstellen 7. Schnittstellen Grundlagen zu Schnittstellen 7. Schnittstellen Eine Schnittstelle (Interface) ist eine Spezifikation eines Typs in Form eines Typnamens und einer Menge von Methoden, die keine Implementierungen

Mehr

Webtests und JMeter. Technologien: Überblick Funktionale Tests: Simplelenium Performance Messungen: JMeter Projekt Setup: Gradle, Jenkins

Webtests und JMeter. Technologien: Überblick Funktionale Tests: Simplelenium Performance Messungen: JMeter Projekt Setup: Gradle, Jenkins Webtests und JMeter Technologien: Überblick Funktionale Tests: Simplelenium Performance Messungen: JMeter Projekt Setup: Gradle, Jenkins Raimond Reichert Webtests: Motivation Erhöhte Regress-Sicherheit

Mehr

Einführung in Javadoc

Einführung in Javadoc Einführung in Javadoc Johannes Rinn http://java.sun.com/j2se/javadoc Was ist Javadoc? Javadoc ist ein Werkzeug, dass eine standardisierte Dokumentation für die Programmiersprache Java unterstützt. Vorteil:

Mehr

A very very very very short intro to. Testing

A very very very very short intro to. Testing A very very very very short intro to Testing Testen ist Teil von V&V V&V Validierung und Verifikation Validierung Erstellen wir das richtige Produkt? Soll gewährleisten, dass das Softwaresystem die Kundenerwartungen

Mehr

3 Objektorientierte Konzepte in Java

3 Objektorientierte Konzepte in Java 3 Objektorientierte Konzepte in Java Bisherige Beobachtungen zu Objekten: werden in Klassen zusammengefasst besitzen Eigenschaften und Verhalten verbergen private Informationen werden geboren, leben und

Mehr

Ich liebe Java && Ich liebe C# Rolf Borst

Ich liebe Java && Ich liebe C# Rolf Borst Ich liebe Java && Ich liebe C# Rolf Borst Java oder C#? Einführung public class Einfuehrung { private int gesamtzahl = 0; /* Ermittelt die Anzahl der geraden und durch drei teilbaren Zahlen */ public String

Mehr

Make-loses Java für mehr Produktivität: Das z 2 -Environment. Henning Blohm 25.6.2012

Make-loses Java für mehr Produktivität: Das z 2 -Environment. Henning Blohm 25.6.2012 Make-loses Java für mehr Produktivität: Das z 2 -Environment Henning Blohm 25.6.2012 1 Z2 ist ein radikal neuer* Ansatz für System Life-Cycle Management in Java * jedenfalls für Java Oh je noch ein Tool?

Mehr

Schritt 4: Hallo Enterprise Bean

Schritt 4: Hallo Enterprise Bean Prof. Dr. Th. Letschert FB MNI JEE Schritt 4: Hallo Enterprise Bean Einstieg: EJBs erzeugen und nutzen Meine erstes EJB Projekt Enterprise Beans sind eine Backend Technologie, die mit unterschiedlichen

Mehr

Komponentenbasierte Softwareentwicklung

Komponentenbasierte Softwareentwicklung Seminar WS04 Komponentenbasierte Softwareentwicklung Karl Pauls Software-Komponente A software component is a unit of composition with contractually specified interfaces and explicit context dependencies

Mehr

Testen von grafischen Benutzeroberflächen

Testen von grafischen Benutzeroberflächen Seminarvortrag 10: Testen von grafischen Benutzeroberflächen 2004 / 06 / 28 Clemens Sommer, Gerald Peter Übersicht Motivation GUI Allgemein Fehlerquellen und deren Auswirkungen GUI Testwerkzeuge JUnit

Mehr

Praktische Übung 'JUnit-Test'

Praktische Übung 'JUnit-Test' Praktische Übung 'JUnit-Test' Starten Sie für die folgende Übung Eclipse und laden Sie das Testprojekt von folgender URL: http://pi.informatik.uni-siegen.de/berlik/swt/currency.zip Darin ist die Klasse

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java Vorlesung vom 18.4.07, Grundlagen Übersicht 1 Kommentare 2 Bezeichner für Klassen, Methoden, Variablen 3 White Space Zeichen 4 Wortsymbole 5 Interpunktionszeichen 6 Operatoren 7 import Anweisungen 8 Form

Mehr

Reversi: Server und manueller Spieler

Reversi: Server und manueller Spieler Reversi: Server und manueller Spieler Plenum Programmierpraktikum 2006-12-14 Kodierung der Textdateien Einstellung für alle Projekte: Window Preferences Workspace Text file encoding. Auf UTF-8 stellen.

Mehr

Beispiel: DB-Mock (1/7)

Beispiel: DB-Mock (1/7) Beispiel: DB-Mock (1/7) Aufgabe: DB, auf die vereinfachend nur lesend zugeriffen wird mocken warum: benötigte keine DB-Lizenz, garantiert gleiche Werte ohne aufwändiges reset, kein Zeitverlust durch Verbindungsaufbau

Mehr

MVVM in Windows 8 und Windows Phone 8

MVVM in Windows 8 und Windows Phone 8 Basel MVVM in Windows 8 und Windows Phone 8 Thomas Claudius Huber Trivadis AG Thomas Claudius Huber Principal Consultat bei Trivadis www.trivadis.com www.thomasclaudiushuber.com Trainer, Coach, Developer,

Mehr

Invoca Systems. Application Development Framework. Systemdokumentation. Vers. 1.2.2 / 08.02.2005. copyright (c) by Invoca Systems, 4304 Giebenach

Invoca Systems. Application Development Framework. Systemdokumentation. Vers. 1.2.2 / 08.02.2005. copyright (c) by Invoca Systems, 4304 Giebenach Invoca Systems Application Development Framework Systemdokumentation Vers. 1.2.2 / 08.02.2005 Konzepte: Architektur (Backend Applicationserver Client) Java-Database Objectrelational Mapping (=> Doku) Java

Mehr

Benutzerauthentifizierung und Zugriffsschutz mit JAAS

Benutzerauthentifizierung und Zugriffsschutz mit JAAS Benutzerauthentifizierung und Zugriffsschutz mit JAAS Werner Eberling werner.eberling@mathema.de www.mathema.de Übersicht Altbekanntes kurz erwähnt Java Security Des Kaisers neue Kleider JAAS Zu Ihren

Mehr

MOBILE ENTERPRISE APPLICATION PLATFORM (MEAP)

MOBILE ENTERPRISE APPLICATION PLATFORM (MEAP) MOBILE ENTERPRISE APPLICATION PLATFORM (MEAP) Oliver Steinhauer.mobile PROFI Mobile Business Agenda MOBILE ENTERPRISE APPLICATION PLATFORM AGENDA 01 Mobile Enterprise Application Platform 02 PROFI News

Mehr

Javakurs für Fortgeschrittene

Javakurs für Fortgeschrittene Javakurs für Fortgeschrittene Einheit 05: FXML & Scene Builder Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda FXML und Scene Builder Scene Builder installieren und Demo Controller

Mehr

Smartphone Entwicklung mit Android und Java

Smartphone Entwicklung mit Android und Java Smartphone Entwicklung mit Android und Java predic8 GmbH Moltkestr. 40 53173 Bonn Tel: (0228)5552576-0 www.predic8.de info@predic8.de Was ist Android Offene Plattform für mobile Geräte Software Kompletter

Mehr

CamelCaseCon 2011 Vortrag von Stefan Glase am 07.09.2011. Statische Code-Analyse für Groovy & Grails mit CodeNarc

CamelCaseCon 2011 Vortrag von Stefan Glase am 07.09.2011. Statische Code-Analyse für Groovy & Grails mit CodeNarc Statische Code-Analyse für Groovy & Grails mit CodeNarc CamelCaseCon 2011 Vortrag von Stefan Glase am 07.09.2011 OPITZ CONSULTING GmbH 2011 Folie 1 Stefan Glase, OPITZ CONSULTING Software-Entwickler Java

Mehr

Praktisches API-Design

Praktisches API-Design Praktisches API-Design Kai Spichale adesso AG 13.07.15 Eine API ist wie die Spitze eines Eisbergs.. 2 http://www.pixelio.de/media/685029 Klassische Funktionen einer API Entkopplung von Implementierung

Mehr

Der EMF-generierte Code. 7. November 2012

Der EMF-generierte Code. 7. November 2012 Der EMF-generierte Code 7. November 2012 Überblick Wie sieht der aus einem EMF-Modell generierte Code aus? Wie ist die Beziehung zwischen Modell und Code? Wie kann generierter Code durch handgeschriebenen

Mehr

Übung 1: Object Inspector

Übung 1: Object Inspector Übung 1: Object Inspector Es ist ein System zu entwickeln, mit dem man Objektstrukturen bezüglich ihrer Properties analysieren und dann in einem Tree Viewer (JTree) anzeigen und bearbeiten kann. Properties

Mehr

Anwendungsentwicklung mit Java. Grundlagen der OOP, Vererbung, Schnittstellen, Polymorphie

Anwendungsentwicklung mit Java. Grundlagen der OOP, Vererbung, Schnittstellen, Polymorphie Anwendungsentwicklung mit Java Grundlagen der OOP, Vererbung, Schnittstellen, Polymorphie Vererbung (1) 2 Problem: Objekte mit gleichen Attributen/Methoden, aber nicht völlig identisch, z.b., LKW, PKW,

Mehr

Java Beans. http://java.sun.com/beans/

Java Beans. http://java.sun.com/beans/ Java Beans http://java.sun.com/beans/ Software Komponenten Eine Software Komponente ist ein eigenständiges, flexibles und einfach wieder verwendbares Stück Software. In Java: + Plattformunabhängigkeit

Mehr

Integration von Web Services in J EE Anwendungen mit XFire. 1/26 André Janus - Integration von Web Services in J EE Anwendungen mit XFire

Integration von Web Services in J EE Anwendungen mit XFire. 1/26 André Janus - Integration von Web Services in J EE Anwendungen mit XFire Integration von Web Services in J EE Anwendungen mit XFire 1/26 André Janus - Integration von Web Services in J EE Anwendungen mit XFire univativ : = Umsetzung durch Studenten und Young Professionals.

Mehr

JUnit 4.11 Die Neuerungen

JUnit 4.11 Die Neuerungen JUnit 4.11 Die Neuerungen Marc Philipp VKSI Sneak Preview, 18. September 2013 Über JUnit Kent Beck: A programmer-oriented testing framework for Java. David Saff: JUnit is the intersection of all possible

Mehr

Testen von graphischen Benutzeroberflächen. 24. Juni 2015

Testen von graphischen Benutzeroberflächen. 24. Juni 2015 Testen von graphischen Benutzeroberflächen 24. Juni 2015 Überblick Motivation für das automatische Testen von graphischen Benutzeroberflächen Entwicklungsprinzipien für GUIs Capture / Replay Testmethode

Mehr

Das Interceptor Muster

Das Interceptor Muster Das Interceptor Muster Implementierung des Interceptor Musters basierend auf OSGi and Friends Benjamin Friedrich Hochschule für Technik und Wirtschaft des Saarlandes Praktische Informatik - Entwurfsmuster

Mehr

Ohne Build geht's besser: Makeloses Java mit dem z 2 -Environment. Henning Blohm 5.7.2012

Ohne Build geht's besser: Makeloses Java mit dem z 2 -Environment. Henning Blohm 5.7.2012 Ohne Build geht's besser: Makeloses Java mit dem z 2 -Environment Henning Blohm 5.7.2012 1 Z2 ist ein radikal neuer* Ansatz für System Life-Cycle Management in Java * jedenfalls für Java Ein Builtool?

Mehr

CORBA. Systemprogrammierung WS 2006-2007

CORBA. Systemprogrammierung WS 2006-2007 CORBA Systemprogrammierung WS 2006-2007 Teilnehmer: Bahareh Akherattalab Babak Akherattalab Inhaltsverzeichnis: Verteilte Systeme Vergleich zwischen lokale und verteilte Systeme Verteilte Anwendungen CORBA

Mehr

Themen. Web Service - Clients. Kommunikation zw. Web Services

Themen. Web Service - Clients. Kommunikation zw. Web Services Themen Web Service - Clients Kommunikation zw. Web Services Bisher: Implementierung einer Java Anwendung und Bereitstellung durch Apache Axis unter Apache Tomcat Java2WSDL Erzeugen einer WSDL-Datei zur

Mehr

C# im Vergleich zu Java

C# 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

Mehr

Anleitung. Ein einfaches RMI-Beispiel. (ab Java 5.0) c Y. Pfeifer. (Juni 2014)

Anleitung. Ein einfaches RMI-Beispiel. (ab Java 5.0) c Y. Pfeifer. (Juni 2014) Anleitung Ein einfaches RMI-Beispiel (ab Java.0) c Y. Pfeifer (Juni 014) 1 Ein einfaches RMI-Beispiel Vorgehensweise: 1. Java Projekt anlegen. Zwei Packages server & client erstellen Auf der Server-Seite

Mehr

CORBA. Eine kurze Einführung. Common Object Request Broker Architecture. Ying Lu

CORBA. Eine kurze Einführung. Common Object Request Broker Architecture. Ying Lu CORBA Common Object Request Broker Architecture Eine kurze Einführung Ying Lu Verlauf der Präsentation Was ist CORBA CORBA-Architektur Ein Beispiel CORBA im Einsatz CORBA im Vergleich Was ist CORBA Begriffe

Mehr

1 Welches Problem löst Maven?

1 Welches Problem löst Maven? 1 Welches Problem löst Maven? Maven kann den kompletten Projektlifecycle verwalten und im Speziellen die internen und externen Abhängigkeiten eines Projekts managen. Im Wesentlichen geschieht dies über

Mehr

Java Remote Method Invocation (RMI)

Java Remote Method Invocation (RMI) Java Remote Method Invocation (RMI) Alexander Petry 13. Mai 2003 engl.: Entfernter Methodenaufruf 1 Übersicht 1. Einleitung 2. RMI Interfaces und Klassen 3. Parameterübergabe 4. Dynamisches Nachladen von

Mehr

Programmieren in Java

Programmieren in Java Programmieren in Java Vorlesung 12: Metawissen Java Bibliotheken, Maven Robert Jakob Albert-Ludwigs-Universität Freiburg, Germany SS 2013 Robert Jakob (Univ. Freiburg) Programmieren in Java JAVA 1 / 33

Mehr

Interfaces und Vererbung

Interfaces und Vererbung Interfaces und Vererbung Einführung in Java Folie 1 von 31 12. Mai 2011 Ivo Kronenberg Inhalt Interfaces Statische und dynamische Typen Visiblitätsmodifier Vererbung Überschreiben von Methoden Konstruktoren

Mehr

Einführung in ActionScript

Einführung in ActionScript Fachbereich Mathematik und Informatik Softwareprojekt: Spieleprogrammierung Einführung in ActionScript Do, Hoang Viet(do@mi.fu-berlin.de) Freie Universität Berlin, SoSe 2012 Agenda Allgemeine Einführung

Mehr

Schritt 5: Session Beans

Schritt 5: Session Beans Prof. Dr. Th. Letschert FB MNI JEE Schritt 5: Session Beans Session Beans Übersicht Session Beans dienen dazu serverseitige Geschäftsprozesse zu realisieren. Es gibt sie drei Zustands Varianten: Stateless

Mehr

Datenhaltung für Android Model First. 30.03.2011 Christian Ingenhaag, Frederik Götz, Carl Steeg

Datenhaltung für Android Model First. 30.03.2011 Christian Ingenhaag, Frederik Götz, Carl Steeg Datenhaltung für Android Model First 30.03.2011 Christian Ingenhaag, Frederik Götz, Carl Steeg Agenda Datenhaltung in Android Motivation / Projektziele Projekt Umsetzung Stand der Entwicklung Fazit 2 Datenhaltung

Mehr

Architektur iterativ auf Basis von OSGi entwickeln

Architektur iterativ auf Basis von OSGi entwickeln Architektur iterativ auf Basis von OSGi entwickeln Ein Vortrag von Sven Jeppsson (syngenio AG) und Karsten Panier (Signal Iduna Gruppe) 1 Inhalt Motivation Architektur Architektur Evolution OSGi Refactoring

Mehr

BPMN 2.0 gehört in den Werkzeugkasten JEDES Java Entwicklers! bernd.ruecker@camunda.com

BPMN 2.0 gehört in den Werkzeugkasten JEDES Java Entwicklers! bernd.ruecker@camunda.com BPMN 2.0 gehört in den Werkzeugkasten JEDES Java Entwicklers! bernd.ruecker@camunda.com Bernd Rücker camunda services GmbH Was ist Prozessautomatisierung? Das Ganze ist ein BPMN Prozess Aber auch (und

Mehr

Java für Computerlinguisten

Java für Computerlinguisten Java für Computerlinguisten 2. Objektorientierte Programmierung Christian Scheible Institut für Maschinelle Sprachverarbeitung 28. Juli 2009 Christian Scheible Java für Computerlinguisten 28. Juli 2009

Mehr

09.01.14. Vorlesung Programmieren. Unified Modeling Language (UML) Unified Modeling Language (UML) Unified Modeling Language (UML)

09.01.14. Vorlesung Programmieren. Unified Modeling Language (UML) Unified Modeling Language (UML) Unified Modeling Language (UML) Vorlesung Programmieren Unified Modeling Language (UML) Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer Unified Modeling Language (UML)

Mehr

Vorlesung Programmieren

Vorlesung Programmieren Vorlesung Programmieren Unified Modeling Language (UML) Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer Unified Modeling Language (UML)

Mehr

Unit-Test Theorie und Praxis. Stephan Seefeld, INGTES AG

Unit-Test Theorie und Praxis. Stephan Seefeld, INGTES AG Unit-Test Theorie und Praxis Stephan Seefeld, INGTES AG Inhalt Was sind Unit-Test? NUnit für.net Demo Seite 2 Quellen Für diesen Vortrag verwendete Quellen: dotnet User Group Berlin Brandenburg http://www.dotnet-berlinbrandenburg.de/

Mehr

WELTOFFEN EINSATZ DES TFS IN HETEROGENEN UMGEBUNGEN (.NET UND JAVA) - WIE MAN DEN TEAM FOUNDATION SERVER IN BEIDEN WELTEN NUTZEN KANN

WELTOFFEN EINSATZ DES TFS IN HETEROGENEN UMGEBUNGEN (.NET UND JAVA) - WIE MAN DEN TEAM FOUNDATION SERVER IN BEIDEN WELTEN NUTZEN KANN WELTOFFEN EINSATZ DES TFS IN HETEROGENEN UMGEBUNGEN (.NET UND JAVA) - WIE MAN DEN TEAM FOUNDATION SERVER IN BEIDEN WELTEN NUTZEN KANN AGENDA Motivation TFS Überblick TFS Architektur & Clients Planung Entwicklung

Mehr

Cross-Platform Mobile mit.net

Cross-Platform Mobile mit.net Cross-Platform Mobile mit.net Mobile Entwicklungslandschaft Nativ Crosscompiled Hybrid Web Beste Usability? Überschaubare Kosten? Was ist Xamarin? Was ist Xamarin? 2011 Gegründet aus dem Ximian, Novell

Mehr

Erfahrungsbericht zu JBoss SOA Platform 6 Tech Talk 2013, 17. Oktober 2013, Bern

Erfahrungsbericht zu JBoss SOA Platform 6 Tech Talk 2013, 17. Oktober 2013, Bern Erfahrungsbericht zu JBoss SOA Platform 6 Tech Talk 2013, 17. Oktober 2013, Bern Daniel Tschan Technischer Leiter Michael Zaugg Software-Ingenieur Motivation Puzzle Through 2016, companies will continue

Mehr