CROSS PLATFORM DEVELOPMENT MIT PORTABLE CLASS LIBRARIES

Größe: px
Ab Seite anzeigen:

Download "CROSS PLATFORM DEVELOPMENT MIT PORTABLE CLASS LIBRARIES"

Transkript

1 Entwicklung Autor: Sebastian Kugler CROSS PLATFORM DEVELOPMENT MIT PORTABLE CLASS LIBRARIES ZUSAMMENFASSUNG TREND APPLIKATIONEN AUF MEHRERE PLATT FORMEN ZU VERFÜGUNG ZU STELLEN CODE REUSABILTY PORTABLE CLASS LIBRARIES METHODEN & TECHNOLOGIEN MVVM PORTABLE CLASS LIBRARIES CONVERTER TAGS CROSS PLATFORM DEVELOPMENT

2 INHALTSVERZEICHNIS 1. Projekt & Ausgangssituation Das Model View ViewModel (MVVM) Konzept Model View Controller (MVC) Pattern im Überblick 03 Model View ViewModel (MVVM) Design Pattern MVVM Stärken und Schwächen 04 Data Binding (Datenbindungs-Modell) und INotifyPropertyChanged 05 Delegate Commands Cross Platform Lösungen mit Hilfe von Portable Class Libraries Einrichten einer Cross Platform Solution mit Portable Class Library 07 Portable Class Libraries und MVVM Navigation Services Converter für die GUI Entwicklung 10 BooleanToVisibilityConverter 10 Verweise & Autoren 11

3 1. PROJEKT & AUSGANGSSITUATION Viele Aufgaben erledigen Mitarbeiter heute nicht mehr nur von ihrem Arbeitsplatzrechner aus, sondern auch von unterwegs mit Hilfe von Mobile Devices. Aus diesem Grund reicht die Entwicklung einer reinen Desktop-Anwendung oft nicht mehr aus, um allen Anforderungen gerecht zu werden, weshalb die Verfügbarkeit der Software auf weiteren Plattformen angestrebt wird. Dies soll nach Möglichkeit ohne großen Mehraufwand durchgeführt werden, welcher entstehen würde, wenn für jede Plattform eine eigene Anwendung programmiert wird. Um gleichzeitig mehrere Plattformen ohne mehrfachen Entwicklungsaufwand zu erreichen gibt es unterschiedliche Ansätze. Einer wäre die Umsetzung einer Webapplikation. Möchte man allerdings native Lösungen bieten, dann empfiehlt sich die Verwendung von Portable Class Libraries (PCL). Microsoft bietet diesen neuen Projekttyp seit Visual Studio 2012 an. Die Portable Class Library ermöglicht es dem Entwickler gleichzeitig für unterschiedliche.net Varianten zu entwickeln, z. b. für.net Framework 4.5, Windows Phone und Windows Store Apps. Eine Übersicht finden Sie im Microsoft Developer Network [5]. Mit diesem Lösungsansatz können große Teile des Codes plattformübergreifend, zumindest für.net, weiter- und wiederverwendet werden. Mit Hilfe von XAMARIN ist es sogar möglich die Codebasis auch für Android und ios weiterzuverwenden. Inwieweit ihr bestehender Code schon kompatibel ist, können Sie Hier (Link suchen scan.xamarin.com/ ) prüfen. In den folgenden Abschnitten zeigen wir anhand eines Beispielprojekts, auf welche Stolpersteine Sie achten sollten, wenn Sie eine Anwendung von Anfang an mit Hilfe von Portable Class Libraries realisieren wollen. Dabei werden wir folgende Themenschwer punkte anschneiden: Das Model View ViewModel (MVVM) Konzept. Erstellen einer Cross Platform Solution mit Hilfe einer Portable Class Library Navigation in einer Cross Platform Solution bei Verwendung des MVVM Hilfen bei der GUI Entwicklung 02

4 2. DAS MODEL VIEW VIEWMODEL (MVVM) KONZEPT Das Model View ViewModel (MVVM) Design Pattern wurde das erste Mal von John Gossman in seinem Blog beschrieben und ist eine Abwandlung des Model View Controller (MVC) Patterns. Das MVVM Pattern wurde ursprünglich für WPF und Silverlight entwickelt und unterstützt die getrennte Entwicklung vom UI-Design und UI-Logik. MVVM bietet viele Vorteile, vor allem bei großen Anwendungen oder bei Cross Platform Lösungen. Bei kleineren Anwendungen erhöht sich allerding die Komplexität und wird aufgrund des Overheads nicht immer empfohlen. Zunächst ein kurzer Blick auf das MVC Pattern. MODEL VIEW CONTROLLER (MVC) PATTERN IM ÜBERBLICK Die Client-Architektur des MVC setzt sich aus den folgenden drei Hauptkomponenten zusammen: Model (Daten) View (Benutzeroberfläche) Controller (Programmsteuerung) Wie die Grafik veranschaulicht, kennt die View den Controller und das Model, während der Controller nur das Model kennt. Das Model ist unabhängig und hat weder Kenntnis von View noch vom Controller. Das Model stellt die zu repräsentierenden Daten zur Verfügung und verfügt über einen Benachrichtigungsmechanismus, wenn Änderungen am Modell durchgeführt wurden. View Controller Model Die View ist für die Datendarstellung verantwortlich und aktualisiert diese, wenn sie benachrichtigt wurde, dass die Daten sich im Model geändert haben. Benutzereingaben werden an den Controller weitergegeben. Der Controller kennt die View nicht, steuert aber den Programmablauf und gibt Änderungen an das Model weiter. Früher wurde auch die Business-Logic mit vom Controller übernommen. Heute wird die Geschäftslogik meist im Model implementiert und der Controller kümmert sich nur noch um die Steuerung der Oberfläche. Im Lauf der Zeit hat sich herausgestellt, dass eine strikte Trennung von View und Controller nur schwer möglich ist. Das MVVM Pattern versucht diese Problematik mit einer losen Kopplung zwischen UI-Design und UI-Logik zu lösen. MODEL VIEW VIEWMODEL (MVVM) DESIGN PATTERN Wie das MVC Entwurfsmuster besitzt das MVVM Pattern auch drei Hauptkomponenten: Model (Datenmodell) View (UI-Design) ViewModel (UI-Logik) Model View ViewModel (MVVM) Design Pattern- Fortsetzung Seite

5 2. DAS MODEL VIEW VIEWMODEL (MVVM) KONZEPT Wie die Grafik zeigt, kennt bei diesem Design Pattern nur die übergeordnete Komponente die Untergeordnete. D.h. die View kennt nur das ViewModel und das ViewModel nur das Model. Das Model hingegen kennt weder das ViewModel noch die View. View ViewModel Model Data Binding Referenz User Interface beschrieben in XAML Stellt darzustellende Informationen bereit/ übernimmt Interaktionsfluss Datenobjekte und Geschäftslogik Die View (meist in XAML) ist genau wie beim MVC Pattern für die Darstellung der Informationen zuständig und enthält die entsprechenden grafischen Elemente wie Textboxen, Buttons etc. Das Konzept des Data Bindings (Datenbindung) ermöglicht es, dass die Benutzeroberfläche nicht zwingend von einem Programmierer, sondern auch von einem Designer mit z.b. Expression Blend erstellt werden kann. Das ViewModel enthält keine grafischen Elemente, stellt aber die komplette UI-Logik zur Verfügung. Alle Benutzereingaben werden mittels Data Binding an das ViewModel weitergeleitet und dort weiter verarbeitet. Bei konsequenter Umsetzung des MVVM Design Patterns kann das ViewModel mit Unit-Test geprüft werden. Im Model werden genau wie beim MVC Entwurfsmuster die anzuzeigenden Daten gekapselt und es enthält die Geschäftslogik. Das Model sollte ebenfalls so implementiert werden, dass es mit Unit-Tests überprüft werden kann. MVVM Stärken und Schwächen Stärken von MVVM: Es gibt die strikte Trennung von UI und UI-Logik. Anwendungen erlangen dadurch eine bessere Wartbarkeit. Das MVVM Entwurfsmuster unterstützt Unit-Testing. Die UI Logik in den ViewModels lässt sich ebenfalls mittels Unit-Tests prüfen. Es ist einfach möglich die View auszutauschen oder von eine Designer erstellen zu lassen Nachteile: Bei kleineren Anwendungen mit einer einfachen Benutzeroberfläche entsteht durch das MVVM Design Pattern ein Programming Overhead. Bei größeren Software-Lösungen kann es schwerer sein, das ViewModel vorab mit dem richtigen Grad der Allgemeingültigkeit zu entwickeln. Data Binding macht, trotz seiner Vorteile, Debugging häufig komplizierter. [1] Die konsequente Umsetzung des MVVM Pattern und strikte Trennung von Oberfläche und Geschäftslogik erfordert unter anderem den Einsatz von Data Binding und sogenannten Delegate Commands. 04

6 2. DAS MODEL VIEW VIEWMODEL (MVVM) KONZEPT Data Binding (Datenbindungs-Modell) und INotifyPropertyChanged.NET unterstützt mit Data Binding oder auch Datenbindung einen einfachen Weg, Daten zwischen UI und Business-Logic automatisch zu aktualisieren. Das Konzept ist nötig, da wir unsere Anwendungsoberfläche in der View definieren und die Datenbereitstellung im zugehörigen ViewModel kapseln wollen. Das Data Binding besteht zwischen einem Source Object, in unserem Fall eine.net Property des View- Models, dem Binding und einer Dependency Property des Target Objects (ViewModel). An einem einfachen Beispiel werden die Komponenten kurz erklärt. Die View wird in view.xaml und der dazugehörigen view.xaml.cs definiert. In diesem Fall enthält die View nur ein Textfeld. Wir bilden das Binding an der Text Property der Textbox, indem wir die Path Property setzen. <StackPanel> <TextBlock Text= Binding Path=Firstname ></TextBlock> <TextBlock Text= Binding Path=Firstname ></TextBlock> </StackPanel> Im CodeBehind der View (view.xaml.cs) muss nun das entsprechende ViewModel als DataContext angeben werden. public partial class MainWindow : Window public MainWindow() InitializeComponent(); this.datacontext = new ViewModel(); Das ViewModel verwendet das INotifyProperty Changed-Interface und implementiert das Property Changed Event, welches über die UI über Änderungen von Properties einer Klasse Informiert. public event PropertyChangedEventHandler PropertyChanged; public void NotifyPropertyChanged (string propertyname) if (this.propertychanged!=null) this.propertychanged( this, new PropertyChangedEventArgs(propertyname)); Im Regelfall wird eine ViewModelBase Klasse erstellt, welche das INotifyPropertyChanged Interface implementiert und alle ViewModel Klassen erben von dieser. Werden z.b. Listen oder Datensammlungen zur Bearbeitung benötigt, dann sollte auf die Observable Collection<T> zurückgegriffen werden. Denn bei Änderungen wie dem Hinzufügen oder Löschen von Elementen muss das Data Binding informiert werden. ObservableCollection<T> hat das INotifyCollectionChanged-Interface von Haus aus implementiert und löst das CollectionChanged Event aus, wenn z.b. Objekte zur Collection hinzugefügt werden. Weitere Informationen zu Data Binding erhalten Sie hier [2]. 05

7 2. DAS MODEL VIEW VIEWMODEL (MVVM) KONZEPT Delegate Commands Die Programmierung der UI-Logik soll laut MVVM Design Pattern im jeweiligen ViewModel erfolgen. Deswegen wird bei Anwendung des MVVM Pattern das sogenannte Delegate Command eingesetzt. Dazu muss, wie im folgenden Beispiel auch, das ICommand Interface in der Klasse DelegateCommand implementiert werden. Diese erstellte Klasse Delegate Command dient dann als Basisklasse für alle benötigten Commands. Die DelegateCommand Klasse verfügt über: Konstruktor Execute Methode: Wird aufgeführt, wenn der jeweilige Command aufgerufen wird. CanExecute Methode: Gibt einen Boolean Wert zurück. Wenn true zurückgegebenwird, kann die Execute Methode ausgeführt werden. CanExecuteChanged EventHandler Codebeispiel: private readonly Action<object> _executehandler; private readonly Func<object, bool> _canexecutehandler; public DelegateCommand(Action<object> execute, Func<object, bool> canexecute) if (execute -- null) throw new ArgumentNullExeption ( Execute cannot be null ); _executehandler = execute; _canexecutehandler = canexecute; public event EventHandler CanExecuteChanged; public void Execute(object parameter) _executehandler(parameter); public bool CanExecute(object parameter) if (_canexecutehandler == null) return true; return _canexecutehandler(parameter); Hier wird ein Login Command mit Hilfe der Delegate- Command Klasse implementiert und via Binding mit der UI Verknüpft. public LoginViewModel() // LoginCommand uses the DelegateCommand Pattern LoginCommand = new DelegateCommand (OnLoginExecute, OnLoginCanExecute); public ICommand LoginCommand get; private set; void OnLoginExecute(object parameter) if (isuserauthenticationsuccessful()) loginsuccessful = true; bool OnLoginCanExecute(object parameter) return true; Weitere Informationen zu Commands [4] 06

8 3. CROSS PLATFORM LÖSUNGEN MIT HILFE VON PORTABLE CLASS LIBRARIES Seit Visual Studio 2012 wird die Entwicklung von Portable Class Libraries unterstützt, welche die plattformübergreifende Entwicklung von.net Framework-Applikationen ermöglichen. Mit Hilfe von Portable Class Libraries lässt sich Code schreiben, der ohne weitere Änderungen auf mehreren Plattformen funktioniert, wie z.b. für: Windows Desktop Windows Store Apps Windows Phone Apps Beim Erstellen einer Cross Platform Solution mit einer Portable Class Library müssen die zu unterstützenden Plattformen ausgewählt werden. Visual Studio generiert dann eine Klassenbibliothek mit einer Teilmenge der Assemblys der vorher ausgewählten Projekttypen. Dies hat den Vorteil, dass Programmcode der innerhalb der Portable Class Library entwickelt wurde auf den jeweiligen Plattformen ohne weitere Änderungen ausgeführt werden kann. Dies eignet sich besonders gut, um bspw. die Geschäftslogik einer Anwendung gleichzeitig für Desktop-Anwendungen, Windows Store Apps und für Windows Phone Apps freizugeben. Einrichten einer Cross Platform Solution mit Portable Class Library Das Einrichten einer Cross Platform Solution gestaltet Microsoft sehr einfach. In diesem Fall verwenden wir die aktuelle Version von Visual Studio Professional 2013 mit Update 2 und legen ein neues Projekt an. Als Vorlage wählen wir die Class Library Portable. Im nächsten Dialog wählen wir die zu unterstützenden Plattformen. Bei der Wahl der Plattformen können verschiedene Versionen des.net Frameworks ausgewählt werden. Außerdem muss man sich bei der Unterstützung von Windows Store und Windows Phone Silverlight Apps zwischen den Versionen 8 und 8.1 entscheiden. Für Windows Phone 8.1 können seit Update 2 auch Apps auf der Basis von WinRT, wie bei Windows Store Apps, entwickelt werden. Somit nähert Microsoft die beiden Plattformen einander an, denn Windows Phone Apps waren vorher nur mit Silverlight möglich. Eine aktuelle Übersicht aller Ziel-Plattformen finden Sie im Microsoft Developer Network unter folgendem Link [5]. Microsoft bietet an dieser Stelle auch eine Matrix die zeigt welche Ziel-Plattform welches Features unterstützt. Nachdem die Portable Class Library in der Solution erzeugt wurde, können nun die weiteren Projekte für die einzelnen Plattformen hinzugefügt werden. Wir haben in unserer Demo noch Projekte für das.net Framework 4.5, Windows Phone Silverlight 8 und, Windows 8.1 hinzugefügt (siehe Bild). Die plattformspezifischen Projekte referenzieren dann das PCL-Projekt. 07

9 3. CROSS PLATFORM LÖSUNGEN MIT HILFE VON PORTABLE CLASS LIBRARIES Portable Class Libraries und MVVM Allein das Einrichten und Verwenden von Portable Class Libraries verspricht noch keine hohe Wiederverwendbarkeit von geschriebenem Code. An dieser Stelle kommt das MVVM Pattern zum Einsatz. Das MVVM Entwufsmuster ermöglicht durch die einfache Trennung von User-Interface und Business- Logic eine einfache Auslagerung dieser in die Portable Class Library. D.h. die PCL enthält Models, View- Models und Abstraktionen plattformabhängiger Implementierungen. Die Programmierung der Benutzeroberfläche (View) hingegen erfolgt in den je weiligen Projekten. Genauso wie die Implementierung plattformspezifischer Funktionalitäten (siehe Grafik). Unterscheidet sich die Implementierung in den jeweiligen Plattformen nicht gravierend, so können einzelnen Dateien in Visual Studio auch projektübergreifend verlinkt werden und plattformabhängige Code-Fragmente mit Hilfe von Compiler-Directives definiert werden.auch so erhöht sich die Wiederverwendbarkeit von Code. Windows Store App Weitere Plattform Views Views Portable Class Library ViewModels Models 08

10 4. Navigation Services Die Navigation in Anwendungen ist ein wichtiger Aspekt und wird für das Wechseln zwischen den verschiedenen Ansichten (Views) benötigt. Die Umsetzung der Navigation innerhalb der jeweiligen Anwendungen wird allerdings unterschiedlich umgesetzt. Bei Windows Phone Apps wird zur Navigation ein URI (Name der Page als String) verwendet, wohingegen bei Windows Store Applikationen das jeweilige Seitenobjekt aufgerufen wird. Ein weiterer Unterschied besteht in der Übergabe von Parametern. Bei Windows Store Apps können Objekte übergeben werden, während die Parameterdaten bei Windows Phone als Query-String übermittelt werden. Eine weitere Funktion könnte eine Zurück-Funktion sein. Umsetzung eines Navigation Service Da die Implementierung der Navigation aus den gerade genannten Gründen plattformspezifisch erfolgen muss, stellt die PCL nur ein Interface (INavigationService) bereit. Dieses enthält eine CanGoBack Eigenschaft und eine GoBack und Navigate Methode. Die Implementierung der Navigation erfolgt dann im jeweiligen Projekt. Den Code für die Navigation bei Windows Store sehen sie im ersten Beispiel. public void Navigate<TDestinationViewModel>(object parameter) var dest = ViewModelRouting[typeof(TDestinationViewModel)]; RootFrame.Navigate(dest, parameter); Bei Windows Phone erfolgt die Navigation hingegen mit einer URI (siehe Code). public void Navigate<TDestinationViewModel>(object parameter) var navparameter = string.empty; if (parameter!= null) navparameter =?param= + JsonConvert.SerializeObject(parameter); if (ViewModelRouting.ContainsKey( typeof(tdestinationviewmodel))) var page = ViewModelRouting[ typeof(tdestinationviewmodel)] Der Aufruf erfolgt im ViewModel z.b. Command- Binding. void OnLoginExecute(object parameter) if (isuserauthenticationsuccesful()) INavigationService navigationsercive = this.getservice<inavigationservice>(); if (navigationservice == null) return; navigationservice.navigate<emesystemviewmodel>(); this.rootframe.navigate(new Uri( / + page + navparameter, UriKind.Relative)); 09

11 5. Converter für die GUI Entwicklung Die Implementierung der Benutzeroberfläche wird in den Projekten der jeweiligen Plattform durchgeführt. Allerding werden manche Werte oder Eigenschaften die in der GUI benötigt werden im ViewModel, welches in der Portable Class Library definiert wurde, manipuliert. Beispielsweise könnte im ViewModel geregelt werden, ob ein Objekt in der View angezeigt wird oder nicht (Visible oder Collapsed). Windows Store 8 Apps nutzt zum Beispiel den Windows.UI.Xaml Namespace und deswegen System.Windows.Visibility.Collapsed statt Windows.UI.Xaml.Visibility.Collapsed. In diesem Fall können Converter helfen. BooleanToVisibilityConverter Das folgende Beispiel beschreibt einen BooleanTo- VisibilityConverter. Im ViewModel wird das Property definiert. True für Visible und False für Collapsed (siehe Code). private bool _MenuVisibility = false; public bool MenuVisibility get return _MenuVisibility; set _MenuVisibility = value; NotifyPropertyChanged( MenuVisibility ); Im nächsten Abschnitt wird der Converter für Windows Store im Projekt implementiert. Dabei wird die IValueConverter Schnittstelle von Windows.UI.Xaml.Data verwendet und für die Visibility-Eigenschaft Windows.UI.Xaml.Visibility.Visible sowie Windows.UI.Xaml.Visibility. Collapsed. Eine Implementierung für z.b. Windows Phone würde das Interface System.Windows.Data. IValueConverter und die Properties System. Windows.Visibility.Visible bzw. System.Windows. Visibility.Collapsed verwenden. public class BooleanToVisibilityConverter : IValueConverter public object Convert (object value, Type targettype, object parameter, System.Globalization.CultureInfo culture) if (value == null) return System.Windows.Visibility.Collapsed; var isvisible = (bool)value; return isvisible? System.Windows.Visibility.Visible: System.Windows.Visibility.Collapsed; public object ConvertBack(object value, Type targettype, object parameter, System.Globalization.CultureInfo culture) var visiblity = (Sytem.Windows.Visibility)value; return visiblity == System.Windows.Visibility.Visible; Damit der Converter verwendet werden kann, muss er noch als Referenz in einem Resource Dictionary eingetragen werden. Die Verwendung des Converters erfolgt dann direkt im jeweiligen XAML File via Data Binding. <phone:panoramaitem Header= Menu VerticalContentAlignment= Stretch Visibility= Binding MenuVisibility, Converter=StaticResource BooleantoVisibility > <phone:longlistselector ItemSource= Binding MenuItems /> </phone:panoramaitem> 10

12 Verweise & Autoren [1] [2] [3] [4] [5] Sebastian Kugler ist seit 2011 für Vioxon im Bereich Software entwicklung tätig. Seine Schwerpunkte liegen unter anderem in der.net C#, Cross Platform und Mobile Entwicklung. Die Interessen umfassen auch Themen aus der Computer Vision und agilen Entwicklungs methoden. [6] [7] [8] Thomas Ostrowski Ist seit Gründung der Vioxon GmbH im Bereich Softwareentwicklung tätig. Als Projektmanager Embedded-Entwicklung beschäftigt er sich mit der Leitung und Umsetzung von Projekten im Steuerungsbereich für Industrie

Universal-Apps. Gordon Breuer Senior IT Consultant Software Engineer / Architect msg systems ag. activevb Workshop 2014 30.

Universal-Apps. Gordon Breuer Senior IT Consultant Software Engineer / Architect msg systems ag. activevb Workshop 2014 30. Universal-Apps activevb Workshop 2014 30. August 2014 Auszug aus dem Buch: Windows Phone 8.1 Kochbuch Erscheinungsdatum: Q4/2014 Autoren: Matthias Fischer, Gordon Breuer Gordon Breuer Senior IT Consultant

Mehr

WPF. Übersicht. Komponenten & Frameworks Seite 1

WPF. Übersicht. Komponenten & Frameworks Seite 1 Übersicht - W indows P resentation F oundation - Werkzeug zur Entwicklung grafischer Benutzeroberflächen - deklarative Definition erfolgt mit der Beschreibungs- Sprache: XAML - XAML - Extensible Application

Mehr

Mit Cloud Power werden Sie zum

Mit Cloud Power werden Sie zum Mit Cloud Power werden Sie zum Herzlich Willkommen! Christian Hassa Managing Partner TechTalk Software AG Agenda Mobile App Development mit Xamarin Pause Azure Mobile Services Q&A 9h00-10h30 10h30-10h50

Mehr

Mobile App development mit Xamarin. Christian Hassa (ch@techtalk.ch) Andreas Willich (awi@techtalk.ch) TechTalk Software AG

Mobile App development mit Xamarin. Christian Hassa (ch@techtalk.ch) Andreas Willich (awi@techtalk.ch) TechTalk Software AG Mobile App development mit Xamarin Christian Hassa (ch@techtalk.ch) Andreas Willich (awi@techtalk.ch) TechTalk Software AG % der Bevölkerung mit Smartphone Smartphone Durchdringung >50% 34% 43% 54% DACH

Mehr

23. Januar, Zürich-Oerlikon

23. Januar, Zürich-Oerlikon 23. Januar, Zürich-Oerlikon Continuous Integration für Cross-Platform Mobile Development mit Xamarin Markus Heinisch Principal Consultant Trivadis GmbH Mit über 600 IT- und Fachexperten bei Ihnen vor Ort

Mehr

Programmierung einer Windows Store App mit C# und XAML

Programmierung einer Windows Store App mit C# und XAML Neuer Abschnitt 1 Seite 1 Programmierung einer Windows Store App mit C# und XAML Einleitung In diesem Fachbericht der im Rahmen meines 8 Wochen langem Praktikums entstand geht es um die Programmierung

Mehr

Eine Business-Anwendung ist ohne Eingabevalidierung

Eine Business-Anwendung ist ohne Eingabevalidierung Eingabevalidierung mit WinRT Drum prüfe, wer sich bindet WinRT bietet für C#/XAML noch keine durchgängige Unterstützung der Validierung von Benutzereingaben. Dieser Artikel zeigt die Schwachstellen auf

Mehr

License Management 1.0 - SDK

License Management 1.0 - SDK License Management 1.0 - SDK Inhalt Allgemeine Beschreibung... 2 Vorbereitungen... 2 Download aller nötigen Dateien und Dokumentationen... 2 Beantragung eines ValidationKeys... 2 Beantantragung einer Development-Lizenz...

Mehr

Drei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 16: 3-Schichten-Architektur 1 Fachkonzept - GUI

Drei-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

Einführung in das Microsoft.NET-Framework. Programmiersprache C# MEF Das Managed Extensibility Framework. André Kunz

Einführung in das Microsoft.NET-Framework. Programmiersprache C# MEF Das Managed Extensibility Framework. André Kunz Einführung in das Microsoft.NET-Framework Programmiersprache C# MEF Das Managed Extensibility Framework André Kunz 21.09.2010 1 In dieser Einführung bekommen Sie einen kurzen Einstieg in das.net-framework

Mehr

3.9 Grundelemente einer Benutzeroberfläche

3.9 Grundelemente einer Benutzeroberfläche 92 3 Grundlagen einer ios-anwendung 3.8.4 Target-Actions Einer der häufigsten Anwendungsfälle bei einer Oberfläche ist das Betätigen einer Schaltfläche durch einen Anwender, woraufhin eine bestimmte Aktion

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

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

Exception Handling, Tracing und Logging

Exception Handling, Tracing und Logging Exception Handling, Tracing und Logging Proseminar Objektorientiertes Programmieren mit.net und C# Tomas Ladek Institut für Informatik Software & Systems Engineering Agenda Exceptions Allgemeines Implementierung

Mehr

Web-Anwendungsentwicklung mit dem Delivery Server

Web-Anwendungsentwicklung mit dem Delivery Server Web-Anwendungsentwicklung mit dem Delivery Server Java-Framework auf Basis der Open API Bernfried Howe, Webertise Consulting GmbH WEBertise Consulting Dipl. Informatiker (Wirtschaftsinformatik) 2001-2010

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

Business Applika-onen schnell entwickeln JVx Framework - Live!

Business Applika-onen schnell entwickeln JVx Framework - Live! Business Applika-onen schnell entwickeln JVx Framework - Live! - Enterprise Applica-on Framework h&p://www.sibvisions.com/jvx JVx ermöglicht in kürzester Zeit mit wenig Source Code hoch performante professionelle

Mehr

Entwicklung und Integration mobiler Anwendungen. Oracle Deutschland B.V. & Co. KG

Entwicklung und Integration mobiler Anwendungen. <Speaker> Oracle Deutschland B.V. & Co. KG Entwicklung und Integration mobiler Anwendungen Oracle Deutschland B.V. & Co. KG Global Users (Millions) Der Trend ist eindeutig. Trend zu mobilen Endgeräten Wachstum des mobilen Datenverkehrs

Mehr

WPF. Windows Presentation Foundation. Sven Hubert Student Partner Microsoft Academic Program

WPF. Windows Presentation Foundation. Sven Hubert Student Partner Microsoft Academic Program WPF Windows Presentation Foundation Sven Hubert Student Partner Microsoft Academic Program Sven.Hubert@studentprogram.de 27. Nov. 2006 Agenda WPF ein Überblick WPF mit Visual Studio (Demos) WPF mit Microsoft

Mehr

- Entwurfsphase: Entwurfsbeschreibung Gesamtsystem - Version: 1.0

- Entwurfsphase: Entwurfsbeschreibung Gesamtsystem - Version: 1.0 Projektbezeichnung Projektleiter Verantwortlich - Entwurfsphase: Entwurfsbeschreibung Gesamtsystem - Version: 1.0 MSP-13 - Integration eines Semantischen Tagging Systems in Microsoft Sharepoint Martin

Mehr

C# - PROGRAMME MIT PLUGINS ERWEITERN

C# - PROGRAMME MIT PLUGINS ERWEITERN C# - PROGRAMME MIT PLUGINS ERWEITERN Schreibt man ein Programm welches erweiterbar sein soll, dann gibt es häufig mehrere Möglichkeiten dies umzusetzen. Die Objektorientierung ist dabei der erste Schritt,

Mehr

XPages Good to know. Benjamin Stein & Pierre Hein Stuttgart 7. Mai 2015

XPages Good to know. Benjamin Stein & Pierre Hein Stuttgart 7. Mai 2015 XPages Good to know Benjamin Stein & Pierre Hein Stuttgart 7. Mai 2015 Agenda 1. Einführung Was sind XPages? 2. Allgemeine Tipps Allgemeine Tipps für die Verwendung von XPages 3. Designer Tipps Tipps für

Mehr

Created by Angelo Maron

Created by Angelo Maron Domain Driven Design in Ruby on Rails Created by Angelo Maron Wer bin ich? Angelo Maron Sofware-Entwickler seit ca. 7 Jahren (Ruby on Rails) bei AKRA seit 2,5 Jahren Xing: https://www.xing.com/profile/angelo_maron

Mehr

Silverlight for Windows Embedded. Martin Straumann / 31.08.2010 Stv. Business Unit Leiter Microsoft Technologien / Application developer

Silverlight for Windows Embedded. Martin Straumann / 31.08.2010 Stv. Business Unit Leiter Microsoft Technologien / Application developer Silverlight for Windows Embedded Martin Straumann / 31.08.2010 Stv. Business Unit Leiter Microsoft Technologien / Application developer Inhaltsverzeichnis Windows Embedded Microsoft Roadmap Was ist Silverlight

Mehr

Mobile Apps mit DSLs. und entfernter Codegenerierung. Codierst Du noch oder generierst Du schon? Powered by

Mobile Apps mit DSLs. und entfernter Codegenerierung. Codierst Du noch oder generierst Du schon? Powered by Mobile Apps mit DSLs C1 und entfernter Codegenerierung Codierst Du noch oder generierst Du schon? Generative Software GmbH Freiburg Inhalt Plattformabhängige Entwicklung JavaScript Firefox OS Java Android

Mehr

Whitepaper. Produkt: combit List & Label 16. List & Label Windows Azure. combit GmbH Untere Laube 30 78462 Konstanz

Whitepaper. Produkt: combit List & Label 16. List & Label Windows Azure. combit GmbH Untere Laube 30 78462 Konstanz combit GmbH Untere Laube 30 78462 Konstanz Whitepaper Produkt: combit List & Label 16 List & Label Windows Azure List & Label Windows Azure - 2 - Inhalt Softwarevoraussetzungen 3 Schritt 1: Neues Projekt

Mehr

.NET Core Hintergrund Info s

.NET Core Hintergrund Info s .NET Core Hintergrund Info s Entwicklertag 2015 in Karlsruhe Andreas Bräsen Freiberuflicher Software Entwickler Mit dem Schwerpunkt auf.net basierte pragmatischer Software Entwicklung Cummunity.NET User

Mehr

ANDROID. Analyse der Android Plattform. Andre Rein, Johannes Florian Tietje. 28. Oktober 2010. FH-Gieÿen-Friedberg Android Praktikum

ANDROID. Analyse der Android Plattform. Andre Rein, Johannes Florian Tietje. 28. Oktober 2010. FH-Gieÿen-Friedberg Android Praktikum Analyse der Android Plattform Andre Rein, Johannes Florian Tietje FH-Gieÿen-Friedberg Android Praktikum 28. Oktober 2010 Topics 1 Übersicht Android Plattform Application Framework Activities und Services

Mehr

MeteoCheck Relaunch mit Xamarin. Studienarbeit

MeteoCheck Relaunch mit Xamarin. Studienarbeit MeteoCheck Relaunch mit Xamarin Studienarbeit Abteilung Informatik Hochschule für Technik Rapperswil Frühjahrsemester 2014 Autor: Betreuer: Projektpartner: Patrick Pulfer Hansjörg Huser MIT-Group STUDIENARBEIT

Mehr

Timo Wagner & Sebastian Kühn Entwurf einer Multi-Tier Anwendung in ASP.NET

Timo Wagner & Sebastian Kühn Entwurf einer Multi-Tier Anwendung in ASP.NET Timo Wagner & Sebastian Kühn Entwurf einer Multi-Tier Anwendung in ASP.NET Überblick 1.Einfürung in die Multi-Tier Architektur 2.Ausgangspunkt und Probleme 3.Rundgang durch die Architektur 4.Architektur

Mehr

Jörg Neumann Acando GmbH

Jörg Neumann Acando GmbH Jörg Neumann Acando GmbH Jörg Neumann Principal Consultant bei der Acando GmbH MVP Windows Platform Development Beratung, Training, Coaching Buchautor, Speaker Mail: Joerg.Neumann@Acando.com Blog: www.headwriteline.blogspot.com

Mehr

DESIGN'PATTERN'2011. November. Abstract Factory & Factory Method BEARBEITET VON INHALT [1] Christoph Süsens

DESIGN'PATTERN'2011. November. Abstract Factory & Factory Method BEARBEITET VON INHALT [1] Christoph Süsens November DESIGN'PATTERN'2011 INHALT Intent Motivation Applicability Structure Consequences Implementation Sample Code [1] BEARBEITET VON Christoph Süsens Abstract Factory & Factory Method Inhaltsverzeichnis

Mehr

Willkommen zur Vorlesung. Objektorientierte Programmierung Vertiefung - Java

Willkommen zur Vorlesung. Objektorientierte Programmierung Vertiefung - Java Willkommen zur Vorlesung Objektorientierte Programmierung Vertiefung - Java Zum Dozenten Mein Name: Andreas Berndt Diplom-Informatiker (TU Darmstadt) Derzeit Software-Entwickler für Web- Applikationen

Mehr

Projekt AGB-10 Fremdprojektanalyse

Projekt AGB-10 Fremdprojektanalyse Projekt AGB-10 Fremdprojektanalyse 17. Mai 2010 1 Inhaltsverzeichnis 1 Allgemeines 3 2 Produktübersicht 3 3 Grundsätzliche Struktur und Entwurfsprinzipien für das Gesamtsystem 3 3.1 Die Prefuse Library...............................

Mehr

Cross Platform Development Heute Windows, morgen Android, übermorgen Xbox

Cross Platform Development Heute Windows, morgen Android, übermorgen Xbox Cross Platform Development Heute Windows, morgen Android, übermorgen Xbox Daniel Meixner Technical Evangelist Microsoft Deutschland GmbH @DanielMeixner DevelopersDevelopersDevelopersDevelopers.Net Programming

Mehr

4 Vererbung, Polymorphie

4 Vererbung, Polymorphie 4 Vererbung, Polymorphie Jörn Loviscach Versionsstand: 21. März 2014, 22:57 Die nummerierten Felder sind absichtlich leer, zum Ausfüllen beim Ansehen der Videos: http://www.j3l7h.de/videos.html This work

Mehr

Übungen zur Android Entwicklung

Übungen zur Android Entwicklung Übungen zur Android Entwicklung Aufgabe 1 Hello World Entwickeln Sie eine Hello World Android Applikation und laden diese auf den Emulator. Leiten Sie hierfür die Klasse android.app.activity ab und entwerfen

Mehr

Mobile Backend in der

Mobile Backend in der Mobile Backend in der Cloud Azure Mobile Services / Websites / Active Directory / Kontext Auth Back-Office Mobile Users Push Data Website DevOps Social Networks Logic Others TFS online Windows Azure Mobile

Mehr

Automatisiertes UI Testing. Mark Allibone, 18.04.2013, #2

Automatisiertes UI Testing. Mark Allibone, 18.04.2013, #2 Coded UI Testing Automatisiertes UI Testing Mark Allibone, 18.04.2013, #2 Eine klassische Applikations Architektur Grafische Oberfläche Business Logik Datenzugriff (Datenbank, Cloud, etc) Mark Allibone,

Mehr

Einführung in die Cross-Plattform Entwicklung Das Intel App Framework

Einführung in die Cross-Plattform Entwicklung Das Intel App Framework Einführung in die Cross-Plattform Entwicklung Das Intel App Framework Einführung Dieses Hands-on-Lab (HOL) macht den Leser mit dem Intel App Framework vom Intel XDK vertraut. Es wird Schritt für Schritt

Mehr

Chair of Software Engineering. Bezieher SUBSCRIBERS Ereignis Erzeuger (zb GUI) Chair of Software Engineering. Save_file ROUTINE

Chair of Software Engineering. Bezieher SUBSCRIBERS Ereignis Erzeuger (zb GUI) Chair of Software Engineering. Save_file ROUTINE 1 2 Letzte Aktualisierung: 27. Mai 2004 Programmierung im Grossen Vorlesung 13: Ereignis-Gesteuertes Design Bertrand Meyer Ereignis-gesteuerte Programmierung 3 Vermeiden von glue code 4 Verbreiter PUBLISHERS

Mehr

Jetzt sollt ihr von der Vorlage der Grundversion 1.0 ein eigenes Textadventure erstellen.

Jetzt sollt ihr von der Vorlage der Grundversion 1.0 ein eigenes Textadventure erstellen. Teil B: Erweiterungen Jetzt sollt ihr von der Vorlage der Grundversion 1.0 ein eigenes Textadventure erstellen. Die folgenden Aufgaben und Ausführungen geben einige Hilfestellungen, welche (mindestens

Mehr

UI-Testing mit Microsoft Test Manager (MTM) Philip Gossweiler / 2013-04-18

UI-Testing mit Microsoft Test Manager (MTM) Philip Gossweiler / 2013-04-18 UI-Testing mit Microsoft Test Manager (MTM) Philip Gossweiler / 2013-04-18 Software Testing Automatisiert Manuell 100% 70% 1 Überwiegender Teil der Testing Tools fokusiert auf automatisiertes Testen Microsoft

Mehr

PIWIN 1 Übung Blatt 5

PIWIN 1 Übung Blatt 5 Fakultät für Informatik Wintersemester 2008 André Gronemeier, LS 2, OH 14 Raum 307, andre.gronemeier@cs.uni-dortmund.de PIWIN 1 Übung Blatt 5 Ausgabedatum: 19.12.2008 Übungen: 12.1.2009-22.1.2009 Abgabe:

Mehr

Mobile Backend in. Cloud. Azure Mobile Services / Websites / Active Directory /

Mobile Backend in. Cloud. Azure Mobile Services / Websites / Active Directory / Mobile Backend in Cloud Azure Mobile Services / Websites / Active Directory / Einführung Wachstum / Marktanalyse Quelle: Gartner 2012 2500 Mobile Internet Benutzer Desktop Internet Benutzer Internet Benutzer

Mehr

Hersteller von Standardsoftware möchten

Hersteller von Standardsoftware möchten Customizing von Standardsoftware leicht gemacht Software zur Laufzeit anpassen Der Beitrag beschreibt aus Entwicklersicht, welche Möglichkeiten das Produkt icustomizer bietet, um Software zur Laufzeit

Mehr

Mobile Applications. Adrian Nägeli, CTO bitforge AG

Mobile Applications. Adrian Nägeli, CTO bitforge AG Mobile Applications Adrian Nägeli, CTO bitforge AG Inhalt Vorstellung Marktübersicht Entwicklung Adrian Nägeli Dipl. Inf.-Ing FH Seit 2005 bei bitforge bitforge AG Standort Rapperswil-Jona Gründung 2004

Mehr

ios, Android, WP7... Alle nativ auf einen Streich!

ios, Android, WP7... Alle nativ auf einen Streich! ios, Android, WP7... Alle nativ auf einen Streich! Romano Roth und Oliver Brack Folie 1 24. September 2012 Romano Roth & Oliver Brack Kein Erfolg ohne Mobilität! 1600 1400 1200 1000 800 600 400 200 0 2010

Mehr

Giesswein-Apps Consulting Entwicklung Training. Giesswein-Apps Consulting Entwicklung Training

Giesswein-Apps Consulting Entwicklung Training. Giesswein-Apps Consulting Entwicklung Training Das Unternehmen... 3 Fundamentalwissen... 4.NET Framework - Übersicht... 4.NET Update 4.5.1... 4 C# für Einsteiger/Umsteiger... 5 Clean Code... 6 Cloud Development mit Windows Azure... 7 Datenbankzugriff

Mehr

Christian Kurz SWT Projekt WS 07/08

Christian Kurz SWT Projekt WS 07/08 Christian Kurz SWT Projekt WS 07/08 1. Allgemeine Aspekte der generativen GUI- Entwicklung 2. Entwicklung mit Hilfe von GUI-Designern 3. Entwicklung mit Hilfe deklarativer GUI- Sprachen 4. Modellgetriebene

Mehr

Von der UML nach C++

Von der UML nach C++ 22 Von der UML nach C++ Dieses Kapitel behandelt die folgenden Themen: Vererbung Interfaces Assoziationen Multiplizität Aggregation Komposition Die Unified Modeling Language (UML) ist eine weit verbreitete

Mehr

Praktikum Spring MVC. 1.2. Spring integrieren In der pom.xml Einträge für Spring hinzufügen.

Praktikum Spring MVC. 1.2. Spring integrieren In der pom.xml Einträge für Spring hinzufügen. Praktikum Spring MVC Aufgabe 1 Im ersten Teil des Praktikums wird eine Test Webapplikation entwickelt, anhand derer einige Konzepte von Spring nachvollzogen werden können. Dabei handelt es sich um Spring

Mehr

Autor: Michael Spahn Version: 1.0 1/10 Vertraulichkeit: öffentlich Status: Final Metaways Infosystems GmbH

Autor: Michael Spahn Version: 1.0 1/10 Vertraulichkeit: öffentlich Status: Final Metaways Infosystems GmbH Java Einleitung - Handout Kurzbeschreibung: Eine kleine Einführung in die Programmierung mit Java. Dokument: Autor: Michael Spahn Version 1.0 Status: Final Datum: 23.10.2012 Vertraulichkeit: öffentlich

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

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12. Kapitel 7. Grafische Benutzeroberflächen

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12. Kapitel 7. Grafische Benutzeroberflächen 1 Kapitel 7 Ziele 2 (Graphical User Interfaces) als Anwendungsbeispiel für die objektorientierte Programmierung kennenlernen Benutzung von Vererbung zur Erstellung individueller GUI-Klassen durch Erweiterung

Mehr

Realtime Anbindung an SAP ERP

Realtime Anbindung an SAP ERP Realtime Anbindung an SAP ERP 14.07.2014, 15:00 NovaTec Consulting GmbH Leinfelden-Echterdingen, München, Frankfurt am Main, Berlin, Jeddah / Saudi-Arabien Showcase - Push SAP Terminauftrag NovaTec 09.09.2015

Mehr

Dynamische Plug-ins mit Eclipse 3. Martin Lippert (martin.lippert@it-agile.de, www.it-agile.de) Tammo Freese (freese@acm.org)

Dynamische Plug-ins mit Eclipse 3. Martin Lippert (martin.lippert@it-agile.de, www.it-agile.de) Tammo Freese (freese@acm.org) Dynamische Plug-ins mit Eclipse 3 Martin Lippert (martin.lippert@it-agile.de, www.it-agile.de) Tammo Freese (freese@acm.org) Überblick Die Ausgangslage Dynamische Plug-ins Warum? Eclipse 3 Die OSGi-basierte

Mehr

So (un)sicher ist Mac OS Teamwork: Xcode und CocoaPods. Xtext. GWT Asynchrone Requests richtig handeln. Graphendatenbanken. Die wichtigsten HTML5-APIs

So (un)sicher ist Mac OS Teamwork: Xcode und CocoaPods. Xtext. GWT Asynchrone Requests richtig handeln. Graphendatenbanken. Die wichtigsten HTML5-APIs Alle Infos zur JAX ab S. 39 Deutschland 6,50 Österreich 7,00 Schweiz sfr 13,40 www.entwickler-magazin.de Juli /August 4.2011 März/April 2.2013 0QFO(- t 41. t (SBQIFOEBUFOCBOLFO t 7JSUVBMJTJFSVOH t )5.-

Mehr

Übersicht. Informatik 2 Teil 3 Anwendungsbeispiel für objektorientierte Programmierung

Übersicht. Informatik 2 Teil 3 Anwendungsbeispiel für objektorientierte Programmierung Übersicht 3.1 Modell Konto 3.2 Modell Konto - Erläuterungen 3.3 Benutzer Ein- und Ausgabe mit Dialogfenster I 3.4 Benutzer Ein- und Ausgabe mit Dialogfenster II 3.5 Klassen- und Objekteigenschaften des

Mehr

Vorkurs C++ Programmierung

Vorkurs C++ Programmierung Vorkurs C++ Programmierung Klassen Letzte Stunde Speicherverwaltung automatische Speicherverwaltung auf dem Stack dynamische Speicherverwaltung auf dem Heap new/new[] und delete/delete[] Speicherklassen:

Mehr

Web und Mobile Apps Programmieren mit Dart

Web und Mobile Apps Programmieren mit Dart Web und Mobile Apps Programmieren mit Dart Marco Jakob Kalaidos Fachhochschule Schweiz majakob@gmx.ch Abstract: Bisher war es kaum realistisch, im Anfängerunterricht mobile oder webbasierte Applikationen

Mehr

ZenQuery - Enterprise Backend as a Service Single Page Applications mit AngularJS und Spring MVC. - Björn Wilmsmann -

ZenQuery - Enterprise Backend as a Service Single Page Applications mit AngularJS und Spring MVC. - Björn Wilmsmann - ZenQuery - Enterprise Backend as a Service Single Page Applications mit AngularJS und Spring MVC - Björn Wilmsmann - ZenQuery Enterprise Backend as a Service Unternehmen horten Daten in Silos ZenQuery

Mehr

Technisches Handbuch Login für ios & Android

Technisches Handbuch Login für ios & Android Technisches Handbuch Login für ios & Android Version 15.1 Juli 2015 Inhaltsverzeichnis 1 Der DocCheck App Login...................................... 3 1.1 Basic App Login Der Klassiker für Apps......................

Mehr

wxwidgets Eine GUI-Bibliothek für platformübergreifende Applikationen Oliver Schonefeld

wxwidgets Eine GUI-Bibliothek für platformübergreifende Applikationen Oliver Schonefeld wxwidgets Eine GUI-Bibliothek für platformübergreifende Applikationen Oliver Schonefeld Universtität Bielefeld Fakultät für Linguistik und Literaturwissenschaften 28. November 2006 Agenda 1 Motivation

Mehr

G s e a s m a t m ar a ch c i h tek e tur u I und IoC

G s e a s m a t m ar a ch c i h tek e tur u I und IoC Gesamtarchitektur I und IoC Schichten einer Web-Anwendung Initiiert durch J2EE und Spring: Strukturierte Sicht auf UI und Fachlogik (Domäne) Ergibt 5 Schichten: Man unterscheidet Präsentations- und Domänenmodell!

Mehr

Programmieren in Java

Programmieren 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

Mehr

Die nächste Revolution in der modelgetriebenen Entwicklung?

Die nächste Revolution in der modelgetriebenen Entwicklung? Die nächste Revolution in der modelgetriebenen Entwicklung? Me Johannes Kleiber Software Engineer bei FMC Johannes.Kleiber@fmc-ag.com Themen Überblick Window Workflow Foundation Workflows modellieren WF

Mehr

Profil von Michael Wettach

Profil von Michael Wettach Profil von Tätigkeiten Konzeption und Implementierung von: Desktop Anwendungen Web Anwendungen Serviceorientierten Architekturen Komplexen Datenbankbankanwendungen Technische Beratung IT-Projektleitung

Mehr

Romano Roth & Oliver Brack Zühlke Engineering AG

Romano Roth & Oliver Brack Zühlke Engineering AG Romano Roth & Oliver Brack Zühlke Engineering AG 1600 1400 1200 1000 800 600 400 200 0 2010 2011 2012 2013 2014 2015 2016 12/11-02/12 PCs Mobilgeräte Android ios andere IDC/Nielsen 2012 Entwicklungskosten

Mehr

Kapitel 6. Vererbung

Kapitel 6. Vererbung 1 Kapitel 6 2 Ziele Das sprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen Subtyping Überschreiben

Mehr

Installation und Benutzung AD.NAV.ZipTools

Installation und Benutzung AD.NAV.ZipTools Installation und Benutzung AD.NAV.ZipTools Version 1.0.0.0 ALTENBRAND Datentechnik GmbH Am Gelicht 5 35279 Neustadt (Hessen) Tel: 06692/202 290 Fax: 06692/204 741 email: support@altenbrand.de Die Komponente

Mehr

FORTGESCHRITTENE ANDROID ENTWICKLUNG Max Wielsch 27.05.2015

FORTGESCHRITTENE ANDROID ENTWICKLUNG Max Wielsch 27.05.2015 FORTGESCHRITTENE ANDROID ENTWICKLUNG Max Wielsch 27.05.2015 WAS LETZTES MAL GESCHAH... Eine Notitz App 2 Ansichten entwickelt: 1. Übersicht (Anlegen, Details anzeigen / bearbeiten) 2. Detailansicht (Bearbeiten):

Mehr

3 Anwendungsarchitektur und Entwicklungsumgebung

3 Anwendungsarchitektur und Entwicklungsumgebung 21 3 Anwendungsarchitektur und Bei den Entwicklern von Web-basierten Dialogsystemen hat sich im Laufe der Zeit eine Vorgehensweise im Design von Anwendungen entwickelt, dies es ermöglicht, flexible Web-Dialoge

Mehr

Kerry W. Lothrop @kwlothrop Zühlke Engineering GmbH

Kerry W. Lothrop @kwlothrop Zühlke Engineering GmbH Kerry W. Lothrop @kwlothrop Zühlke Engineering GmbH Enterprise Was ist im Enterprise-Kontext wichtig? Native Crosscompiled Hybrid Web ios Android Windows Native Mac Xcode Objective- C/Swift Mac/Windows

Mehr

Softwaretechnik (Medieninformatik) Überblick: 6. Objektorientiertes Design

Softwaretechnik (Medieninformatik) Überblick: 6. Objektorientiertes Design Softwaretechnik (Medieninformatik) Überblick: 6.1 Einleitung 6.2 Verfeinerung des Klassenmodells 6.3 Sequenzdiagramme 6.4 Umsetzung der Analysekonstrukte in das Design 6.5 Fallstudie 6.6 Software Kontrakte

Mehr

App-Entwicklung mit Titanium

App-Entwicklung mit Titanium App-Entwicklung mit Titanium Masterstudienarbeit von Betreuung Prof. Dr. M. von Schwerin App-Entwicklung mit Titanium 1 Gliederung 1.Titanium Eine Einführung 2.Programmierschnittstelle (API) 3.Module 4.App

Mehr

Enterprise Mobility, Live! Pascal Kaufmann, Swisscom IT Services AG 12. Juni 2013

Enterprise Mobility, Live! Pascal Kaufmann, Swisscom IT Services AG 12. Juni 2013 Enterprise Mobility, Live! Pascal Kaufmann, Swisscom IT Services AG 12. Juni 2013 Agenda Mobile Apps aus Sicht der IT Grösste Herausforderungen mobiler Applikationen aus der Sicht der IT Best Practice

Mehr

Analyse und Modellierung von Informationssystemen

Analyse und Modellierung von Informationssystemen Analyse und Modellierung von Informationssystemen Dr. Klaus Höppner Hochschule Darmstadt Sommersemester 2013 1 / 19 Einführung: Entwurfsmuster Erzeugungsmuster Fabrik-Muster Singleton-Muster Beispiel 2

Mehr

Kapitel 6. Vererbung

Kapitel 6. Vererbung 1 Kapitel 6 2 Ziele Das sprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen Subtyping Überschreiben

Mehr

Mobility mit IBM Worklight Erste Schritte zu einer mobilen App. Benjamin Stein, Consultant Stuttgart, 03.04.2014

Mobility mit IBM Worklight Erste Schritte zu einer mobilen App. Benjamin Stein, Consultant Stuttgart, 03.04.2014 Mobility mit IBM Worklight Erste Schritte zu einer mobilen App Benjamin Stein, Consultant Stuttgart, 03.04.2014 Agenda Was ist IBM Worklight eigentlich? Hintergrund und Idee, Architektur und Bestandteile

Mehr

Analyse und Modellierung von Informationssystemen

Analyse und Modellierung von Informationssystemen Analyse und Modellierung von Informationssystemen Dr. Klaus Höppner Hochschule Darmstadt Sommersemester 2013 1 / 19 Einführung: Entwurfsmuster Erzeugungsmuster Fabrik-Muster Singleton-Muster Beispiel 2

Mehr

Programmieren für iphone und ipad

Programmieren für iphone und ipad Markus Stäuble Programmieren für iphone und ipad Einstieg in die App-Entwicklung für das ios 4 3., aktualisierte und erweiterte Auflage dpunkt.verlag 1 Einleitung 1 1.1 Begriffe 2 1.2 Was behandelt dieses

Mehr

Architekturen mobiler Multi Plattform Apps

Architekturen mobiler Multi Plattform Apps Architekturen mobiler Multi Plattform Apps Wolfgang Maison & Felix Willnecker 06. Dezember 2011 1 Warum Multi- Plattform- Architekturen? Markt. Apps für Smartphones gehören zum Standardinventar jeder guten

Mehr

2 7 Erweiterungen. 7.1 Prozess-Kommunikation mit Datenbanken

2 7 Erweiterungen. 7.1 Prozess-Kommunikation mit Datenbanken 2 7 Erweiterungen 7 Erweiterungen 7.1 Prozess-Kommunikation mit Datenbanken Im Buch Einstieg in das Programmieren mit MATLAB wird im Abschnitt 4.8 das Thema Prozess-Kommunikation am Beispiel von MS-Excel

Mehr

Beispiel droidremoteppt

Beispiel droidremoteppt Arthur Zaczek Nov 2014 1 Beispiel droidremoteppt 1.1 Beschreibung Powerpoint soll mit ein Android Handy über Bluetooth gesteuert werden Folien wechseln (Vor/Zurück) Folien am Handy darstellen Am Handy

Mehr

TEO - Ein Framework für die Anwendungsentwicklung mit EGL und dem Rational Business Developer. TEO. TriAgone EGL Objects

TEO - Ein Framework für die Anwendungsentwicklung mit EGL und dem Rational Business Developer. TEO. TriAgone EGL Objects TEO - Ein Framework für die Anwendungsentwicklung mit EGL und dem Rational Business Developer. TEO TriAgone EGL Objects TriAgone IT GmbH 2014 TEO - Framework Die Anwendungsentwicklung soll sich auf die

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

Qt Programmierung Teil 1 Fenster erstellen by NBBN (http://nbbn.wordpress.com) CrashKurs-Artig. Was brauche ich? -Einige C++ Kenntnisse

Qt Programmierung Teil 1 Fenster erstellen by NBBN (http://nbbn.wordpress.com) CrashKurs-Artig. Was brauche ich? -Einige C++ Kenntnisse Qt Programmierung Teil 1 Fenster erstellen by NBBN (http://nbbn.wordpress.com) CrashKurs-Artig. Was brauche ich? -Einige C++ Kenntnisse Wie man in C++ mit Hilfe von Qt GUI-Anwendungen programmieren kann.

Mehr

Die SharePoint-Welt für den erfahrenen.net-entwickler. Fabian Moritz MVP Office SharePoint Server ITaCS GmbH

Die SharePoint-Welt für den erfahrenen.net-entwickler. Fabian Moritz MVP Office SharePoint Server ITaCS GmbH Die SharePoint-Welt für den erfahrenen.net-entwickler Fabian Moritz MVP Office SharePoint Server ITaCS GmbH SharePoint Object Model IFilter Webpart Connections Webparts Web Server Controls Custom Field

Mehr

Variablen manipulieren per JDI

Variablen manipulieren per JDI Variablen manipulieren per JDI Zusammenfassung Jede moderne Java IDE verfügt über eine mächtige und dennoch meist einfach zu bedienende Benutzeroberfläche die das finden von Fehlern in lokalen oder entfernt

Mehr

Mit Cloud Power werden Sie zum

Mit Cloud Power werden Sie zum Mit Cloud Power werden Sie zum Windows 8 und Windows Phones Apps Mark Allibone Noser Engineering AG History Channel Computing Technology 1960 Mainframe Computing 1970 Mini Computing 1980 Personal Computing

Mehr

GUI Programmierung mit Qt

GUI Programmierung mit Qt GUI Programmierung mit Qt C++ vs. JAVA Norman Wolf 22.04.05 GUI Programmierung mit Qt 1 Einleitung Qt wird von der norwegischen Firma Trolltech entwickelt Es ist kommerzielle Software, die aber von Trolltech

Mehr

Vorbereitung zu Praktikum 3

Vorbereitung zu Praktikum 3 Vorbereitung zu Praktikum 3 Menü-Toolkit und Command Pattern Fallstudie zu Vererbung und Polymorphie: "Menü-Toolkit" Anwenderfreundliche Programme werden mit Menüs gesteuert In objektorientierten Anwendungen

Mehr

synedra View Embedded Michael Doppler, synedra it GmbH

synedra View Embedded Michael Doppler, synedra it GmbH <m.doppler@synedra.com> synedra View Embedded Michael Doppler, synedra it GmbH 2015 synedra information technologies Zusammenfassung IndiesemDokumentwirdbeschrieben,wiesynedraViewEmbeddedinApplikationenandererHerstellerintegriertwerdenkann.

Mehr

Silverlight 3. von Uwe Rozanski. 1. Auflage. Silverlight 3 Rozanski schnell und portofrei erhältlich bei beck-shop.de DIE FACHBUCHHANDLUNG

Silverlight 3. von Uwe Rozanski. 1. Auflage. Silverlight 3 Rozanski schnell und portofrei erhältlich bei beck-shop.de DIE FACHBUCHHANDLUNG Silverlight 3 von Uwe Rozanski 1. Auflage Silverlight 3 Rozanski schnell und portofrei erhältlich bei beck-shop.de DIE FACHBUCHHANDLUNG Thematische Gliederung: Webprogrammierung mitp/bhv 2009 Verlag C.H.

Mehr

Verhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {...

Verhindert, 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:

Mehr

Alltagsnotizen eines Softwareentwicklers

Alltagsnotizen eines Softwareentwicklers Alltagsnotizen eines Softwareentwicklers Entkoppeln von Objekten durch Callbacks mit c++-interfaces oder boost.function und boost.bind Tags: c++, entkoppeln, objekt, oop, callback, boost.bind, boost.function,

Mehr

Leseprobe. Jan Tittel. Office 2010 Programmierung mit VSTO und.net 4.0. Word, Excel und Outlook erweitern und anpassen

Leseprobe. Jan Tittel. Office 2010 Programmierung mit VSTO und.net 4.0. Word, Excel und Outlook erweitern und anpassen Leseprobe Jan Tittel Office 2010 Programmierung mit VSTO und.net 4.0 Word, Excel und Outlook erweitern und anpassen Herausgegeben von Holger Schwichtenberg ISBN: 978-3-446-42411-1 Weitere Informationen

Mehr

Mac Desktop Entwicklung

Mac Desktop Entwicklung headquarter Mac Desktop Entwicklung Phillipp Bertram DEVELOPER DAY 20vierzehn http://www.admiralmarkets.com/images/mtmac/metatrader4-for-mac-os.png 2 "There is no reason for any individual to have a computer

Mehr