12
Literaturverzeichnis 123 Literaturverzeichnis Abts, D.; Mülder, W.: Grundkurs Wirtschaftsinformatik, 5. Aufl., Wiesbaden 2004 Balzert, H.: Lehrbuch der Softwaretechnik, Basiskonzepte und Requirements Engineering, Heidelberg 2009 Balzert, H.: Lehrbuch der Softwaretechnik: Basiskonzepte und Requirements Engineering, 3. Auflage, Heidelberg 2009, S. 4f Balzert, H.: Lehrbuch der Software-Technik: Software-Entwicklung, Heidelberg u.a. 1996 Bertram, A.: Nativ versus Web - Verschiedene Ansätze bei der App-Entwicklung, http://stud.fh-wedel.de/~inf7337/native-app-entwicklung.html, 05.11.2012 Brumfield, B. et al.: Developer’s Guide to Microsoft PRISM 4, Redmond 2011 Bude, L.: Facebook iOS-App: Deutlich schneller dank HTML5-Verzicht, http://t3n.de/news/facebook-ios-app-deutlich-410405/, 18.09.2012 Candar, K.: Mono.net goes Linux, Poing 2007 Costanich, B.: Developing C# Apps for iPhone and iPad using MonoTouch: iOS Apps Development for .NET Developers, New York 2011 DIN EN IOS 9241-110: Ergonomie der Mensch-System-Interaktion, Teil 110: Grundsätze der Dialoggestaltung, Beuth, 2008-09 DIN EN IOS 9241-12: Ergonomische Anforderung für Bürotätigkeit mit Bildschirmgeräten, Teil 12: Informationsdarstellung. Beuth, 2000-08 Duden: plattformunabhängig, http://www.duden.de/rechtschreibung/plattformunabhaengig, 12.07.2012 Eder, N.: Windows Presentation Foundation 4: Einführung und Praxis, Heidelberg 2011 Eller, F.: Visual C# 2010: Grundlagen, Programmiertechniken, Datenbanken, 4. Auflage, München 2010 Engels, G. u.a.: Quasar Enterprise: Anwendungslandschaften serviceorientiert gestalten, Heidelberg 2008 e-teaching.org: Plattformunabhängigkeit, http://www.e- teaching.org/projekt/nachhaltigkeit/plattform, 12.07.2012 Fowler, M.: Inversion of Control Containers and the Dependency Injection pattern, http://martinfowler.com/articles/injection.html, 25.09.2012 M. Schmitz, Strategie für die Portierung von Desktop-Business-Anwendungen auf iOS-gestützte Endgeräte, BestMasters, DOI 10.1007/978-3-658-04769-6, © Springer Fachmedien Wiesbaden 2014

Literaturverzeichnis - Springer978-3-658-04769-6/1.pdf · 124 Literaturverzeichnis Franko, O. I.; Tirrell, T. F.: Smartphone App Use Among Medical Providers in ACGME Training Programs,

  • Upload
    lamliem

  • View
    221

  • Download
    0

Embed Size (px)

Citation preview

Literaturverzeichnis 123

Literaturverzeichnis

Abts, D.; Mülder, W.: Grundkurs Wirtschaftsinformatik, 5. Aufl., Wiesbaden 2004

Balzert, H.: Lehrbuch der Softwaretechnik, Basiskonzepte und Requirements

Engineering, Heidelberg 2009

Balzert, H.: Lehrbuch der Softwaretechnik: Basiskonzepte und Requirements

Engineering, 3. Auflage, Heidelberg 2009, S. 4f

Balzert, H.: Lehrbuch der Software-Technik: Software-Entwicklung, Heidelberg u.a.

1996

Bertram, A.: Nativ versus Web - Verschiedene Ansätze bei der App-Entwicklung,

http://stud.fh-wedel.de/~inf7337/native-app-entwicklung.html, 05.11.2012

Brumfield, B. et al.: Developer’s Guide to Microsoft PRISM 4, Redmond 2011

Bude, L.: Facebook iOS-App: Deutlich schneller dank HTML5-Verzicht,

http://t3n.de/news/facebook-ios-app-deutlich-410405/, 18.09.2012

Candar, K.: Mono.net goes Linux, Poing 2007

Costanich, B.: Developing C# Apps for iPhone and iPad using MonoTouch: iOS Apps

Development for .NET Developers, New York 2011

DIN EN IOS 9241-110: Ergonomie der Mensch-System-Interaktion, Teil 110:

Grundsätze der Dialoggestaltung, Beuth, 2008-09

DIN EN IOS 9241-12: Ergonomische Anforderung für Bürotätigkeit mit

Bildschirmgeräten, Teil 12: Informationsdarstellung. Beuth, 2000-08

Duden: plattformunabhängig,

http://www.duden.de/rechtschreibung/plattformunabhaengig, 12.07.2012

Eder, N.: Windows Presentation Foundation 4: Einführung und Praxis, Heidelberg

2011

Eller, F.: Visual C# 2010: Grundlagen, Programmiertechniken, Datenbanken, 4.

Auflage, München 2010

Engels, G. u.a.: Quasar Enterprise: Anwendungslandschaften serviceorientiert

gestalten, Heidelberg 2008

e-teaching.org: Plattformunabhängigkeit, http://www.e-

teaching.org/projekt/nachhaltigkeit/plattform, 12.07.2012

Fowler, M.: Inversion of Control Containers and the Dependency Injection pattern,

http://martinfowler.com/articles/injection.html, 25.09.2012

M. Schmitz, Strategie für die Portierung von Desktop-Business-Anwendungenauf iOS-gestützte Endgeräte, BestMasters, DOI 10.1007/978-3-658-04769-6,© Springer Fachmedien Wiesbaden 2014

124 Literaturverzeichnis

Franko, O. I.; Tirrell, T. F.: Smartphone App Use Among Medical Providers in

ACGME Training Programs, in: Journal of Medical Systems, 36. Jg., 2012,

H. 5

Frischalowski, D.: Visual C# 2010: Einstieg für Anspruchsvolle, München 2010

Gewinnus, T.; Doberenz, W.: Der Visual C# Programmierer, München 2009

Gossman, J.: Introduction to Model/View/ViewModel pattern for building WPF apps,

http://blogs.msdn.com/b/johngossman/archive/2005/10/08/478683.aspx,

13.08.2012

Haefele, C.: One Block at a Time: Building a Mobile Site Step by Step, In: The

Reference Librarian, 52. Jg., 2010, H. 1-2

Heinecke, A. M.: Mensch-Computer-Interaktion, 2. Auflage, Heidelberg Berlin 2012

Hoffmann, Dirk W.: Software-Qualität, Berlin, Heidelberg 2008, S. 107

Hommel, G.: Portabilität von Software, in: Schneider, H.G. (Hrsg.): Portable Software,

Erlangen 1980, S. 10

http://msdn.microsoft.com/de-de/library/ms754130.aspx, 20.08.2012

http://plexityhide.com/wp/?page_id=34, 02.10.2012

http://www.apple.com, 09.10.2012

http://www.monocross.net/, 23.10.2012

http://www.mono-project.com/Main_Page, 04.10.2012

http://www.research2guidance.com/, 11.11.2012

http://xamarin.com/, 18.09.2012

http://xceed.com/Index.aspx?Lang=EN-CA, 02.08.2012

https://github.com/grumpydev/TinyIoC, 22.09.2012

iOS Developer Library, https://developer.apple.com/library/ios/navigation/index.html,

21.08.2012

Jaap, M.: iPhone 4S besitzt 512 MB RAM, http://www.maclife.de/iphone-

ipod/iphone/iphone-4s-besitzt-512-mb-ram, 10.02.2012

Kaindl, H.: Portability of Software, in: SIGPLAN Notices, 23. Jg., 1988, H. 6

Koller, D.: iPhone-Apps entwickeln: Applikationen für iPhone, iPad und iPod touch

programmieren, 1. Auflage, Poing 2010

Literaturverzeichnis 125

Kolokythas, P.: Microsoft bestätigt Windows Store für Windows 8

http://www.pcwelt.de/news/Windows-8-besitzt-Windows-Apps-3418928.html,

09.10.2012

Mirkazemi, A.: HTML5 Apps: Positioning with Geolocation,

http://mobile.tutsplus.com/tutorials/mobile-web-apps/html5-geolocation/,

18.09.2012

Mizouni, R. et al.: Challenges in “mobilizing” desktop applications: a new

methodology for requirements engineering, In: IIT'09 Proceedings of the 6th

international conference on Innovations in information technology, New York

2009, S. 280-284

Mooney, J.D.: Bringing Portability to the Software Process, Technical Report TR 97-

1, West Virginia University, Morgantown WV 1997

Mooney, J.D.: Strategies for Supporting Application Portability, in: IEEE Computer,

23. Jg., 1990, H. 11

Mueller, M.: Metriken zur Portabilitätsanalyse Windowsbasierter Software-Systeme,

Diplomarbeit, Humboldt-Universität zu Berlin, Berlin 2002

o.V.: A C# Hierarchical State Machine, http://code.google.com/p/stateless/,

02.08.2012

o.V.: About mono, http://www.mono-project.com/About, 18.09.2012

o.V.: Apple erfindet mit dem iPhone das Mobiltelefon neu,

http://www.apple.com/de/pr/library/2007/01/09Apple-Reinvents-the-Phone-

with-iPhone.html, 09.10.2012

o.V.: Assemblies, http://docs.xamarin.com/ios/about/assemblies, 18.09.2012

o.V.: Binding Objective-C Types,

http://docs.xamarin.com/ios/advanced_topics/binding_objective-

c_types,18.09.2012

o.V.: C# Language Specification, ECMA-334, 4. Aufl., Genf 2006, S. 15

o.V.: Capgemini sd&m tritt ab sofort unter der Marke Capgemini auf,

http://www.de.capgemini.com/news-events/news/capgemini-sdm/, 08.10.2012

o.V.: Cocoa Application Competencies for iOS,

https://developer.apple.com/library/mac/#documentation/General/Conceptual/D

evpedia-CocoaApp/Outlet.html#//apple_ref/doc/uid/TP40009071-CH4-SW1,

02.10.2012

o.V.: Das LENOVO® THINKPAD® T430 NOTEBOOK, T430_DS_DE.pdf

126 Literaturverzeichnis

o.V.: DataContractSerializer-Klasse, http://msdn.microsoft.com/de-

de/library/system.runtime.serialization.datacontractserializer.aspx, 29.09.2012

o.V.: Die Lenovo Thinkstation D30 Workstation, D30_DS_DE.pdf

o.V.: Einführung in WPF http://msdn.microsoft.com/de-

de/library/aa970268.aspx#Data_Binding, 20.08.2012

o.V.: Einführung in WPF, http://msdn.microsoft.com/de-

de/library/aa970268.aspx#Markup_And_Codebehind, 17.08.2012

o.V.: Eingabe: http://msdn.microsoft.com/de-de/library/ms751593, 20.08.2012

o.V.: EN ISO 9241, http://de.wikipedia.org/wiki/EN_ISO_9241, 24.09.2012

o.V.: Enterprise Library, http://msdn.microsoft.com/en-us/library/ff648951,

25.07.2012

o.V.: Erste Schritte mit Apps im Metro-Stil,

http://msdn.microsoft.com/library/windows/apps/br211386, 09.10.2012

o.V.: Fast eine Milliarde App-Downloads allein in Deutschland,

http://www.bitkom.org/de/presse/8477_71298.aspx, 18.10.2012

o.V.: Gartner Says Free Apps Will Account for Nearly 90 Percent of Total Mobile

App Store Downloads in 2012,

http://www.gartner.com/it/page.jsp?id=2153215, 18.10.2012

o.V.: Gartner Says Worldwide Sales of Mobile Phones Declined 2.3 Percent in Second

Quarter of 2012, http://www.gartner.com/it/page.jsp?id=2120015, 19.10.2012

o.V.: GTP.NET.SL, http://plexityhide.com/wp/?page_id=34, 19.07.2012

o.V.: Hinzufügen und Bearbeiten von Ressourcen (Visual C#),

http://msdn.microsoft.com/de-de/library/7k989cfy%28v=vs.80%29.aspx,

21.09.2012

o.V.: IDataErrorInfo-Schnittstelle, http://msdn.microsoft.com/de-

de/library/system.componentmodel.idataerrorinfo.aspx#Y0, 04.10.2012

o.V.: Introduction to MonoTouch,

http://docs.xamarin.com/ios/getting_started/introduction_to_monotouch,

07.08.2012

o.V.: iOS App Programming Guide, Cupertino 2012

o.V.: iOS Human Interface Guidelines, Cupertino 2011

o.V.: iOS Technology Overview, Cupertino 2011

Literaturverzeichnis 127

o.V.: iPad 2 – Technische Daten,

http://support.apple.com/kb/SP622?viewlocale=de_DE&locale=de_DE,

02.10.2012

o.V.: iPad 2 Grafik, Arbeitsspeicher und Rechenleistung,

http://www.focus.de/digital/computer/apple/tid-21652/ipad-2-grafik-

arbeitsspeicher-und-rechenleistung_aid_608053.html, 02.10.2012

o.V.: iPhone – Technische Daten,

http://support.apple.com/kb/SP643?viewlocale=de_DE, 02.10.2012

o.V.: Kovarianz und Kontravarianz, http://msdn.microsoft.com/de-

de/library/vstudio/ee207183.aspx, 10.09.2012

o.V.: Limitations, http://docs.xamarin.com/ios/about/limitations, 18.09.2012

o.V.: Microsoft Unity 2.0, http://www.microsoft.com/en-

us/download/details.aspx?id=9093, 02.08.2012

o.V.: Mobile Worker Population to Reach 1.3 Billion by 2015, According to IDC,

http://www.idc.com/getdoc.jsp?containerId=prUS23251912, 18.10.2012

o.V.: mono, http://www.mono-project.com/Main_Page, 18.09.2012

o.V.: Nearly 1 Billion Smart Connected Devices Shipped in 2011 with Shipments

Expected to Double by 2016, According to IDC,

http://www.idc.com/getdoc.jsp?containerId=prUS23398412, 18.10.2012

o.V.: NSUserDefaults Class Reference

o.V.: PRISM, http://compositewpf.codeplex.com/, 08.08.2012

o.V.: Real time quantitative PCR,

http://de.wikipedia.org/wiki/Real_time_quantitative_PCR, 17.10.2012

o.V.: Samsung Seria 8 LED Business Monitor,

Samsung_LS27A850DSEN_02.10.2012.pdf

o.V.: Smartphone-Absatz steigt rasant,

http://www.bitkom.org/de/markt_statistik/64086_70921.aspx, 18.10.2012

o.V.: Standard ECMA-334: C# Language Specification, http://www.ecma-

international.org/publications/standards/Ecma-334.htm, 18.09.2012

o.V.: Standard ECMA-335: Common Language Infrastructure (CLI),

http://www.ecma-international.org/publications/standards/Ecma-335.htm,

18.09.2012

o.V.: Storyboard – Cocoa Application Competencies for iOS,

https://developer.apple.com/library/mac/#documentation/General/Conceptual/D

128 Literaturverzeichnis

evpedia-CocoaApp/Storyboard.html#//apple_ref/doc/uid/TP40009071-CH99-

SW1, 02.10.2012

o.V.: Streamline Your App with Design Patterns,

https://developer.apple.com/library/ios/#referencelibrary/GettingStarted/RoadM

apiOS/chapters/StreamlineYourAppswithDesignPatterns/StreamlineYourApps/

StreamlineYourApps.html, 22.08.2012

o.V.: System Namespace, http://msdn.microsoft.com/en-us/library/yxcx7skw.aspx,

08.10.2012

o.V.: Tablet Computer im Dauerboom,

http://www.bitkom.org/de/presse/8477_73736.aspx, 18.10.2012

o.V.: Target-Action - Cocoa Application Competencies for iOS,

https://developer.apple.com/library/mac/#documentation/General/Conceptual/D

evpedia-CocoaApp/TargetAction.html, 02.10.2012

o.V.: Über 100 Millionen Downloads weltweit über den App Store,

http://www.apple.com/de/pr/library/2008/09/09App-Store-Downloads-Top-

100-Million-Worldwide.html, 09.10.2012

o.V.: Übersicht über Datenbindung, http://msdn.microsoft.com/de-

de/library/ms752347.aspx#data_conversion, 20.08.2012

o.V.: Übersicht über die Eingabe, http://msdn.microsoft.com/de-

de/library/ms754010.aspx#commands, 20.08.2012

o.V.: Übersicht über die Ole DB-Programmierung, http://msdn.microsoft.com/de-

de/library/5d8sd9we%28v=vs.80%29.aspx, 08.10.2012

o.V.: Übersicht über Xaml, http://msdn.microsoft.com/de-

de/library/vstudio/ms752059.aspx, 08.10.2012

o.V.: View Controller Programming Guide for iOS, S. 111ff

o.V.: View hierarchy - Cocoa Application Competencies for iOS,

http://developer.apple.com/library/ios/#documentation/general/conceptual/Devp

edia-CocoaApp/View%20Hierarchy.html, 01.10.2012

o.V.: What is iText, http://itextpdf.com/itext.php, 19.07.2012

o.V.: Windows Forms, http://msdn.microsoft.com/de-

de/library/vstudio/dd30h2yb.aspx, 01.10.2012

o.V.: XamlService-Klasse http://msdn.microsoft.com/de-

de/library/system.xaml.xamlservices.aspx, 29.09.2012

Literaturverzeichnis 129

o.V.: Xceed.wpf.controls:

http://doc.xceedsoft.com/products/XceedWpfDataGrid/Xceed.Wpf.Controls.v4.

3~Xceed.Wpf.Controls_namespace.html, 27.07.2012

o.V.: Xceed.Wpf.DataGrid, http://xceed.com/Grid_WPF_Intro.html/, 28.07.2012

o.V.: Xcode Quick Start Guide

Olson, S. et al.: Professional Cross-Platform Mobile Development in C#, Indianapolis

2012

Prevezanos, Ch.: Computer Lexikon 2011, München 2010

Reenskaug, T.: THING-MODEL-VIEW-EDITOR an Example from a planningsystem,

http://heim.ifi.uio.no/~trygver/1979/mvc-1/1979-05-MVC.pdf, 13.08.2012

Roden, G.: Auf der Fährte von C#, Heidelberg 2008

Rügge, I.: Mobile Solution, 1. Aufl. Wiesbaden 2007

Siedersleben, J.: Moderne Softwarearchitektur, Heidelberg 2004

Siedersleben, J.: Quasar: Die sd&m Standardarchitektur Teil 1, München 2003

Smith, J.: WPF-Anwendungen mit dem Model-View-ViewModel-Entwurfsmuster,

http://msdn.microsoft.com/de-de/magazine/dd419663.aspx, 13.08.2012

Stark, J.: iPhone Apps with HTML, CSS, and JavaScript, Sebastopol 2010

Stäuble M.: Programmieren für iPhone und iPad, 4. Auflage, Heidelberg 2012

Steinberg, M.: HTML5 Application Cache: Inhalte offline verfügbar machen,

http://t3n.de/news/html5-application-cache-inhalte-390750/, 18.09.2012

Steinberg, M.: PhoneGap: Mobile Apps mit HTML5 und JavaScript,

http://www.readability.com/articles/6yc40ck8?print=1, 05.11.2012

Szyperski, C. u.a.: Component Software: Beyond Object-Oriented Programming,

London 2002

Target-Action - Cocoa Application Competencies for iOS,

https://developer.apple.com/library/mac/#documentation/General/Conceptual/D

evpedia-CocoaApp/TargetAction.html, 02.10.2012

Tavlikos, D.: iOS Development Using MonoTouch Cookbook, Birmingham 2011

Verclas, S.; Popien-Linnhoff, C.: Smart Mobile Apps – Mit Business-Apps in Zeitalter

mobile Geschäftsprozesse, Berlin, Heidelberg 2012

Wirtz, K. W.: Objektorientierte Programmentwicklung mit Visual Basic .NET,

Oldenburg 2008

Anhang 131

Anhang

A Methoden der Klasse AppDelegate

o FinishedLaunching: Ruft die Anwendung auf, sobald sie fertig geladen

wurde. Hier kann ein Entwickler weitere Initialisierungslogik

implementieren. Beispielsweise das Laden von Daten aus einer

Datenbank in das Objektmodel

o OnResignActivation: Ruft die Anwendung auf, sobald der Zustand von

Aktiv in Inaktiv wechselt

o DidEnterBackground: Ruft die Anwendung auf, sobald sie in den

Background-Zustand wechselt. Hier kann der Entwickler beispielsweise

gemeinsam genutzte Ressourcen wie das Adressbuch wieder freigeben

o WillEnterForground: Ruft die Anwendung auf, sobald sie wieder in den

Zustand Aktiv wechselt

o WillTerminate: Ruft die Anwendung auf, sobald sie vollständig

geschlossen wird.

B Presentation Integration System

Um Entwicklern bei der Erstellung reichhaltiger Frontend-Anwendung zu

unterstützen, hat Microsoft das PResentation Integration SysteM210

, kurz PRISM211

entwickelt. PRISM ist ein Sammelsurium an Mustern und Bibliotheken für die

Entwicklung zusammengesetzter Anwendungen auf Basis von C# und Windows

Presentation Foundation sowie Microsoft Silverlight. Es bietet einen schnellen

Einstieg und stellt dafür eine umfangreiche Dokumentation, verschiedene

Referenzanwendungen und Bibliotheken bereit.

210

Vgl. o.V.: Prism, http://compositewpf.codeplex.com/, 08.08.2012 211

Ehemals bekannt unter dem Namen „Composite Application Guidance for WPF and Silverlight“

M. Schmitz, Strategie für die Portierung von Desktop-Business-Anwendungenauf iOS-gestützte Endgeräte, BestMasters, DOI 10.1007/978-3-658-04769-6,© Springer Fachmedien Wiesbaden 2014

132 Anhang

B.1 Ziel von PRISM

Das Ziel von PRISM ist die Entwicklung lose gekoppelter212

, zusammengesetzter

Anwendungen, um dadurch komplexe Aufgabenstellungen die eine

Benutzeroberfläche verlangen leichter

- implementieren,

- testen,

- bereitstellen,

- warten und

- erweitern

zu können.

Um dies zu erreichen, teilt PRISM die einzelnen Komponenten213

einer Anwendung

auf verschiedene Module auf. Zur Laufzeit führt die Anwendung diese Module wieder

zu einem Ganzen zusammen.

Die einzelnen Module repräsentieren entweder

- logisch trennbare Geschäftsvorfälle (Anwendungsfälle) oder

- verschiedene Infrastrukturdienste.

Sie sollten im Idealfall in keiner direkten Beziehung zueinander stehen. Das bedeutet,

dass die Module sich gegenseitig nicht kennen und nur über wenige Schnittstellen

untereinander kommunizieren.

B.2 Architektur

Die Architektur einer PRISM-Anwendung besteht aus drei Teilen.

- Shell (Hauptmodul)

- Weitere Module

- PRISM Komponenten

o Dependency Injection Container

o Loading Services

o Core Services

Außerdem setzt PRISM durchgängig das bereits vorgestellte Model-View-

ViewModel-Pattern ein.

212

Die einzelnen Klassen einer Anwendung besitzen keine implementierten Referenzen. Die

einzelnen Referenzen werden erst zur Laufzeit durch eine dritte Instanz während der

Initialisierung aufgelöst. 213

Komponenten sind Einheiten, die eine abgeschlossene Aufgabe erfüllen. Das Steuerelement

TextBox, dass die Eingabe von Text ermöglicht, ist z.B. eine Komponente.

Anhang 133

Abb. 7-1 Zusammengesetzten WPF-Anwendung mit PRISM

214

Die Shell ist das zentrale Modul der Anwendung, welche sämtliche Module zu einem

einheitlichen Erscheinungsbild zusammenführt.215

Sie beinhaltet weiterhin

verschiedene Dienst- und Infrastrukturkomponenten, welche die anderen Module

nutzen können. In den meisten Fällen jedoch lagert man diese Dienst- und

Infrastrukturkomponenten in eigene Module aus. Was ebenfalls zu einer Verbesserung

der Übersichtlichkeit beiträgt. Ein weiterer wichtiger Bestandteil der Shell ist die Shell

View. Sie ist das Hauptfenster (engl. Main Window) der Anwendung und bündelt

sämtliche Benutzerschnittstellen der einzelnen Module. Im Developer’s Guide to

Microsoft bezeichnen die Autoren das Hauptfenster teilweise ebenfalls als Shell. Für

die bessere Lesbarkeit dieser Arbeit, behält der Autor es sich jedoch vor, das

Hauptfenster weiterhin als Shell View zu bezeichnen.

Module sind in sich abgeschlossene Einheiten, die ein Entwickler unabhängig von

anderen Modulen erstellt. Sie beinhalten sämtliche Dienste, grafische Oberflächen und

214

Entnommen aus: Brumfield, B. et al.: Developer’s Guide to Microsoft PRISM 4, Redmond 2011,

S. 17 215

Vgl. Brumfield, B.et al.: Developer’s Guide to Microsoft PRISM 4,Redmond 2011, S. 14

134 Anhang

Datenmodelle um die Funktionalität eines Modules zu gewährleisten. Nicht selten

kommt es vor, dass ein Modul das Datenmodell der Anwendung repräsentiert.

Der dritte Teil der PRISM-Architektur beinhaltet Komponenten, die Microsoft für die

Umsetzung von PRISM bereitstellt. Sie gewährleisten die reibungslose Funktionalität

einer zusammengesetzten Anwendung.

B.3 Verwaltung der Abhängigkeiten verschiedener Komponenten

Lose gekoppelte Anwendungen haben die Anforderung, Abhängigkeiten zwischen den

einzelnen Komponenten möglichst gering zu halten. Um diese Anforderung zu

erfüllen, nutzt PRISM das Dependency Injection (DI)-Pattern bzw. einen

Dependency Injection-Container. Aufgrund des DI-Patterns bedarf es keiner festen

Implementierung von Objekt-Referenzen im Quelltext. Erst zur Laufzeit während der

Konstruktion eines Objektes injiziert der DI-Container die notwendige Abhängigkeit.

Sollte zu dieser Zeit noch keine Instanz des zu injizierenden Objektes bestehen,

erledigt dies der DI-Container. Als Voraussetzung muss der DI-Container sämtliche

Objekte im Vorfeld kennen. Aus diesem Grund Registriert die Anwendung innerhalb

der Startphase bzw. während des Ladens eines Moduls, alle betroffenen Objekte beim

DI-Container.

B.4 Kommunikation zwischen den Modulen

In lose gekoppelten Anwendungen haben die einzelnen Module keine direkte

Verbindung untereinander. Trotzdem müssen sie miteinander kommunizieren können.

PRISM stellt hierfür drei Lösungen bereit.216

- Loosly Coupled Events

- Shared Services

- Shared Resources

In der ersten Lösung tauschen die Module Informationen über so genannte Events aus.

Dazu registrieren sich ein oder mehrere Empfänger (Subscriber), für den Empfang

eines Events beim Event Aggregator. Sobald ein Modul Informationen austauschen

möchte, schickt es ein Event an der Event Aggregartor. Der Event Aggregartor leitet

den Event an die registrierten Module weiter. Diese Funktionsweise ist relativ einfach,

birgt jedoch die Gefahr, dass die Anzahl der Events sehr schnell ansteigt. Dies führt oft

zu einer Unübersichtlichkeit, was die Wartbarkeit einer Anwendung erheblich

beeinträchtigt.

216

Vgl. Brumfield, B. et al.: Developer’s Guide to Microsoft PRISM 4,Redmond 2011, S. 50

Anhang 135

Abb. 7-2 Event Aggregator Service

217

Im zweiten Ansatz lagert PRISM gemeinsame Aufgaben auf Service-Klassen aus, die

von allen Modulen genutzt werden können. Diese Service-Klassen sind meist in einem

eigenen Infrastruktur-Modul zusammengefasst.

In der letzten Möglichkeit kommunizieren die Module über gemeinsam genutzte

Daten. Das kann entweder eine Datenbank, ein Webservices oder ein ganzheitliches

Objektmodell sein.

B.5 Zusammensetzung der Benutzeroberfläche

Die Benutzeroberfläche einer PRISM Anwendung setzt sich aus verschiedenen

Ansichten (Views) zusammen, die aus unterschiedlichen Modulen stammen. Eine

zentrale Ansicht, die Shell View, fast die einzelnen Views zusammen, weiß aber

weder von welchem Modul sie stammen, noch welche Steuerelemente bzw. welche

Aufgaben sie erfüllen. Die Anordnung der untergeordneten Views erfolgt in so

genannten Regionen. Regionen sind Platzhalter, die ein RegionManager zur Laufzeit

gegen die tatsächlichen Views ersetzt. Die Verwendung von Regionen ist nicht auf die

Shell View begrenzt. Weitere Views können ebenfalls Regionen besitzen, was zu einer

Mehrstufigen View-Hierarchie führt.

217

Entnommen aus: Brumfield, B. et al.: Developer’s Guide to Microsoft PRISM 4, Redmond 2011,

S. 198