finallize the documentation

This commit is contained in:
Andreas Zweili 2018-09-13 20:41:04 +02:00
parent 5729b5d17a
commit 52bc754983
7 changed files with 213 additions and 147 deletions

View File

@ -14,12 +14,14 @@
* Einführung
Aufgabe war es ein System aufzubauen welches Hotelbetreibern erlaubt ihre
freien Zimmer auf einem zentralen System zu melden. Das System sollte dann bei
angeschlossenen Fluggesellschaften über einen WCF Service nach passenden Flügen
suchen und diese Verbindung dann als ein Kombiangebot in der Datenbank
speichern. Diese Kombiangebot sollte dann von einem Kunden mithilfe einer
WinForm/WPF Applikation gebucht werden können.
Aufgabe war es ein System aufzubauen, welches Hotelbetreibern und
Fluggesellschaften auf einfach Weise Last Minute Angebote zu erstellen und auf
den Markt zu bringen.
Das System sollte dann bei angeschlossenen Fluggesellschaften über einen WCF
Service nach passenden Flügen suchen und diese Verbindung dann als ein
Kombiangebot in der Datenbank speichern. Diese Kombiangebot sollte dann von
einem Kunden mithilfe einer WinForm/WPF Applikation gebucht werden können.
* Ziele
@ -52,13 +54,13 @@ Aufgrund der Ziele wurden anschliessend folgende Diagramme ausgearbeitet.
** Verteilungsdiagramm
Das Verteilungsdiagramm, Abbildung:([[fig:verteilungsdiagramm]]), wurde im
Unterricht ausgearbeitet. Der Klasse erschien es am sinnvollsten wenn die
Unterricht ausgearbeitet. Der Klasse erschien es am sinnvollsten, wenn die
Plattform als ASP.NET Applikation erstellt wird und somit auf dem IIS Web
Server läuft. Da die Plattform das zentrale System ist, ist es für die
Normfallstudie auch sinnvoll wenn der Datenbank Server auf dem gleichen System
Normfallstudie auch sinnvoll, wenn der Datenbank Server auf dem gleichen System
läuft wie die Plattform. In einer realen Umgebung müsste hier allenfalls eine
separater Server aufgesetzt werden. Der Airline Service und der WPF Client
wurden entsprechend der Vorgagben als externe Applikationen geplant.
wurden entsprechend der Vorgaben als externe Applikationen geplant.
#+LATEX:\newpage
#+LATEX:\begin{landscape}
@ -71,11 +73,13 @@ wurden entsprechend der Vorgagben als externe Applikationen geplant.
** Relationales Modell
In der Abbildung:([[fig:rm]]) ist das relationale Modell zu sehen welches durch
den Studenten vorgängig zur Umsetzung erstellt wurde. In der
Abbildung:([[fig:rmentity]]) ist die das relationale Modell zu sehen welches dann
durch das Entity Framework effektiv in der Datenbank erstellt wurde.
Das relationale Modell, Abbildung:([[fig:rm]]), wurde durch den Studenten vor gängig
zur Umsetzung erstellt. In der Abbildung:([[fig:rmentity]]) ist die das relationale
Modell zu sehen welches, dann durch das Entity Framework effektiv in der
Datenbank erstellt wurde. Wie man sieht, sind sich die beiden Diagramme sehr
ähnlich. Entity Framework erstellt beim Code First Ansatz die Datenbank
ziemlich genau so, wie man sie auch von Hand erstellen würde. Zumindest im Bezug
auf die Tabellen.
#+LATEX:\newpage
#+LATEX:\begin{landscape}
@ -101,14 +105,14 @@ Applikationen zugewiesen. Dies sollte dazu dienen die Zuständigkeiten zu regeln
** Airline Service
Da die Airlnes alle Flugdaten zur Verfügung haben erschien es sinnvoll das
diese einen Service bereitstellen welcher die Parameter Anzahl Passiegere,
Da die Airlines alle Flugdaten zur Verfügung haben erschien es sinnvoll das
diese einen Service bereitstellen, welcher die Parameter Anzahl Passagiere,
Start- und Enddatum sowie die Destination aufnimmt. Der Service sollte dann im
Hintergrund automatisch die bereits besetzten Flüge und Flüge welche nicht auf
die restlichen Paramter passen ausfiltern und nur passende Flüge ausgeben.
Hintergrund automatisch die bereits besetzten Flüge und Flüge, welche nicht auf
die restlichen Parameter passen ausfiltern und nur passende Flüge ausgeben.
Desweiteren sollte der Airline Service eine Möglichkeit bieten Flüge zu buchen
sowie zu stornieren. Im Code Ausschnitt:(\ref{airline}) sieht man die Signature
Des Weiteren sollte der Airline Service eine Möglichkeit bieten Flüge zu buchen
sowie zu stornieren. Im Code Ausschnitt:(\ref{airline}) sieht man die Signatur
des Airline Services. Respektive des Interfaces davon.
#+BEGIN_EXPORT latex
@ -126,7 +130,7 @@ Flight BookFlight(Flight flight, int numberOfSeats);
Flight CancelFlight(Flight flight, int numberOfSeats);
\end{sexylisting}
#+END_EXPORT
#+latex: \newpage
Somit wurden dem Airline Service folgende Ziele zugewiesen:
- Es dürfen nur freie Flüge in Kombiangeboten vorkommen.
- Start- und Zielort des Fluges im Kombiangebot müssen passend zum Hotelzimmer
@ -136,17 +140,17 @@ Somit wurden dem Airline Service folgende Ziele zugewiesen:
** Plattform
Die Plattform stellt den Grossteil der Logik und Funktionen bereit. Sie sollte
einerseits ein Möglichkeit bieten damit die Hotelbetreiber Zimmer und ihre
einerseits eine Möglichkeit bieten damit die Hotelbetreiber Zimmer und ihre
Hotels erfassen könne sowie das Matching zwischen Hotelzimmer und Flügen
erledigen.
Zusätzlich sollte sie die erstellten Komiangebote and den WPF Client
weiterleiten können. Auch das entgegennehmen der Bestellungen sowie
Zusätzlich sollte sie die erstellten Kombiangebote und den WPF Client
weiterleiten können. Auch das Entgegennehmen der Bestellungen sowie
Reservationen des WPF Clients entgegennehmen und an den Airline Service
weiterleiten. Auch die Überprüfung der Reservationszeit sowie die entsprechende
Reakation war für die Plattform geplant.
Reaktion war für die Plattform geplant.
Zu guter letzt sollten dann die reservertierten respektive gebuchten Flüge an
Zu guter Letzt sollten dann die reservierten respektive gebuchten Flüge an
die passende Airline zur Buchung weitergeleitet werden. Im Falle einer
Stornierung des Angebots müsste dann natürlich auch noch der Flug storniert
werden.
@ -173,7 +177,7 @@ sehen.
#+BEGIN_EXPORT latex
\label{plattform}
\begin{sexylisting}{Plattfrom Service}
\begin{sexylisting}{Plattform Service}
[OperationContract]
List<SpecialOffer> GetSpecialOffers();
[OperationContract]
@ -191,31 +195,31 @@ List<City> GetCities();
\end{sexylisting}
#+END_EXPORT
** TODO WPF Client
** WPF Client
Der WPF Client sollte nur aus einem simplen graphischen Interface bestehen
Der WPF Client sollte nur aus einem simplen graphischen Interface bestehen,
welches einem User erlaubt hätte nach Städten und Daten zu filtern und ihm dann
die entsprechenden Kombiangebote angezeigt hätte. Das gewünschte Angebot hätte
er dann über den WCF Service auf der Plattform reservieren oder direkt buchen
können. Zwei frühe Screenshots des Clients sind in der Abbildung:([[wpf1]]) und
Abbildung:([[wpf2]]) zu sehen.
können. Die folgenden zwei Screenshots, Abbildung:([[fig:wpf1]]) und ([[fig:wpf2]]),
zeigen einen frühen Stand des Clients.
#+CAPTION: früher Screenshot des WPF Clients
#+CAPTION: Screenshot des Client Hauptfensters
#+ATTR_LATEX: :width .8\textwidth
#+NAME: wpf1
#+NAME: fig:wpf1
[[file:pictures/wpf1.png]]
#+CAPTION: früher Screenshot des WPF Clients
#+ATTR_LATEX: :width .8\textwidth
#+NAME: wpf2
#+CAPTION: Screenshot der Kundendateneingabeform
#+ATTR_LATEX: :width 6cm
#+NAME: fig:wpf2
[[file:pictures/wpf2.png]]
* Offene Punkte
Aufgrund enormen Zeitmangels war es leider nicht möglich das Projekt zu
realisieren. In dieser Sektion soll ein kurzer Überblick darüber gegeben werden
welche Punkte in welchem Teil des Projektes noch offen sind und nicht
fertigstellt oder überhaupt angegangen werden konnten.
realisieren. In dieser Sektion soll ein kurzer Überblick darüber gegeben
werden, welche Punkte in welchem Teil des Projektes noch offen sind, nicht
fertigstellt sind oder überhaupt angegangen werden konnten.
** Airline Service
@ -225,8 +229,8 @@ zumindest die erwarteten Daten zurück geliefert.
** Plattform
Aufgrund eines Bugs welcher auch mit Hilfe des Dozenten nicht behoben werden
konnte ist es zur Zeit nicht möglich die Plattform überhaupt zu starten. Das
Aufgrund eines Bugs, welcher auch mit Hilfe des Dozenten nicht behoben werden
konnte, ist es zurzeit nicht möglich die Plattform überhaupt zu starten. Das
Provisionieren der Datenbank schlägt mit dem folgenden Fehler fehl.
#+CAPTION: Plattform Error
@ -237,53 +241,79 @@ Airline.ExtensionData in Set Airlines. An Entity with Key (PK) will
not round-trip when: Entity is type [Plattform.DB.Airline]
#+END_EXAMPLE
Die Zimmererfassung für die Hotels konnte zuvor jedoch soweit fertigstellt
werden. Noch offen sind zur Zeit:
Für die Abgabe wurde ein früherer Stand des Codes ausgecheckt, welcher jedoch
insgesamt auch nicht so performt wie er sollte. Der Airline Service und die
Plattform lassen sich jedoch starten.
Die Zimmererfassung, Abbildung:([[fig:room]]), für die Hotels konnte zuvor
jedoch soweit fertigstellt werden. Der Hotelbetreiber kann den Raumtypen und
das Hotel auswählen, sowie die Daten angeben von wann bis wann der Raum frei
ist. Sollte der Raumtyp nicht existieren kann er in einer separaten Form,
Abbildung:([[fig:roomtype]]), erfasst werden. Gleiches gilt auch für das Hotel,
Abbildung:([[fig:hotel]]).
#+CAPTION: Screenshot der Raumeingabeform
#+ATTR_LATEX: :width 5cm
#+NAME: fig:room
[[file:pictures/selection.png]]
#+CAPTION: Screenshot der Raumtyp Erstellungsform
#+ATTR_LATEX: :width 5cm
#+NAME: fig:roomtype
[[file:pictures/roomtype.png]]
#+CAPTION: Screenshot der Hotel Erstellungsform
#+ATTR_LATEX: :width 5cm
#+NAME: fig:hotel
[[file:pictures/hotel.png]]
Bei der Plattform noch offene Punkte sind:
- Der Plattform Service ist mangels eines passenden Clients komplett
ungetestet. Somit ist unklar ob die Buchung oder Reservationen der
ungetestet. Somit ist unklar, ob die Buchung oder Reservationen der
Kombiangebote funktionieren.
- Flüge werden in der Datenbank gespeichert.
- Flüge und ihre Randdaten werden in der Datenbank gespeichert.
- Kombiangebote werden in der Datenbank gespeichert.
- Zu buchende Flüge werden an die Fluggesellschaften gemeldet.
- Zu buchende/stornierende Flüge werden an die Fluggesellschaften gemeldet.
- Der Service wird innerhalb von 2s aufgebaut, läuft mindestens 30 Tage durch,
bietet eine Verfügbarkeit von 0.995 und ist innerhalb von 0.5s ansprechbar.
- Bezahlte Reservationen werden fix gebucht.
** WPF Client
Vom WPF Client exisistiert zur Zeit nur das Grundgerüst. Da die Plattform nicht
funktionsfähig war hat der Student am WPF Client gearbeitet soweit es möglich
Vom WPF Client existiert zurzeit nur das Grundgerüst. Da die Plattform nicht
funktionsfähig war, hat der Student am WPF Client gearbeitet soweit es möglich
war. Allerdings war dies ohne den WCF Service der Plattform nur sehr beschränkt
möglich. Viel mehr als die graphische Oberfläche existiert zur Zeit nicht.
möglich. Viel mehr als die grafische Oberfläche existiert zurzeit nicht.
* Fazit
Ein Booking System welches Kombiangebote wie in der Aufgabenstellung verlangt
bereitstellt ist eine uglaublich komplexes System. Das Matching der Flüge zu
passenden Hotelzimmer hat enorm viele Variabeln welche berücksichtigt werden
müssen.
bereitstellt ist eine unglaublich komplexes System. Das Matching der Flüge zu
passenden Hotelzimmer hat enorm viele Variablen welche berücksichtigt werden
müssen. Auch das Zusammenspiel des Clients zur Plattform bietet durchaus einige
Knackpunkte.
Dadurch lässt sich das Projekt in keiner Weise innerhalb von ca. 20 Stunden
erstellen. Der Student hat weit über 40 Stunden in das Projekt in Heimarbeit
investiert und kein brauchbares Ergebnis erziehlen können. Für den Studenten
ist dies eine enorm unbefriedigende Situation.
erstellen. Der Student hat bereits weit über 40 Stunden in das Projekt in
Heimarbeit investiert und kein brauchbares Ergebnis erzielen können. Für den
Studenten ist dies eine enorm unbefriedigende Situation.
Das .NET und Entity Framework bieten einige interessante Features. Allerdings
wirkt der Code-First Ansatz von Entity Framework so als ob die ganzen
wirkt der Code-First Ansatz von Entity Framework so, als ob die ganzen
Überprüfungen in der Applikation gemacht werden sollten anstatt in der
Datenbank. Allenfalls ist das noch eine Altlast von früher allerdings gibt es
heutzutage Frameworks die dies wesentlich eleganter lösen. Der Student findet
dass, das Framework die Datenbank so sauber wie möglich erstellen sollte und es
dem Entwickler möglichst einfach machen sollte erweiterte Features der
Datenbank zu nutzen.
Datenbank. Allenfalls ist das noch eine Altlast von früher. Heutzutage gibt es
Frameworks die dies wesentlich eleganter lösen. Der Student findet dass, das
Framework die Datenbank so sauber wie möglich erstellen sollte und es dem
Entwickler möglichst einfach machen sollte erweiterte Features der Datenbank zu
nutzen.
Auch empfindet der Student C# eher als ungeeignet um innerhalb von so kurzer
Zeit ein Projekt zu realiseren. Die Sprache fühlt sich dafür einfach zu sperrig
und die zusätzliche Komplexität durch Visual Studio ist leider nicht immer nur
Zeit ein Projekt zu realisieren Die Sprache fühlt sich dafür einfach zu sperrig
an. Die zusätzliche Komplexität durch Visual Studio ist leider nicht immer nur
eine Hilfe.
WCF Services sind in der Grundidee eine sehr interessante Technologie und der
Stundet wird WCF Services oder ähnliche Technologien in der Zukunft sicher
inbetracht ziehen. Insbesondere das Teilen der Klassen bietet interessante
Student wird WCF Services oder ähnliche Technologien in der Zukunft sicher
in Betracht ziehen. Insbesondere das Teilen der Klassen bietet interessante
Möglichkeiten.

View File

@ -1,16 +1,18 @@
\section{Einführung}
\label{sec:org8fb0510}
\label{sec:orgdb3f13c}
Aufgabe war es ein System aufzubauen welches Hotelbetreibern erlaubt ihre
freien Zimmer auf einem zentralen System zu melden. Das System sollte dann bei
angeschlossenen Fluggesellschaften über einen WCF Service nach passenden Flügen
suchen und diese Verbindung dann als ein Kombiangebot in der Datenbank
speichern. Diese Kombiangebot sollte dann von einem Kunden mithilfe einer
WinForm/WPF Applikation gebucht werden können.
Aufgabe war es ein System aufzubauen, welches Hotelbetreibern und
Fluggesellschaften auf einfach Weise Last Minute Angebote zu erstellen und auf
den Markt zu bringen.
Das System sollte dann bei angeschlossenen Fluggesellschaften über einen WCF
Service nach passenden Flügen suchen und diese Verbindung dann als ein
Kombiangebot in der Datenbank speichern. Diese Kombiangebot sollte dann von
einem Kunden mithilfe einer WinForm/WPF Applikation gebucht werden können.
\section{Ziele}
\label{sec:orgd74726f}
\label{sec:orgf2b95aa}
Aus der Aufgabenstellung lassen sich folgende Ziele an die Systeme ableiten.
@ -37,48 +39,50 @@ sein.
\end{itemize}
\section{Analyse}
\label{sec:orgcdbca69}
\label{sec:orge638b06}
Aufgrund der Ziele wurden anschliessend folgende Diagramme ausgearbeitet.
\subsection{Verteilungsdiagramm}
\label{sec:org4e02ec7}
\label{sec:org4a69d10}
Das Verteilungsdiagramm, Abbildung:(\ref{fig:org740a4dc}), wurde im
Unterricht ausgearbeitet. Der Klasse erschien es am sinnvollsten wenn die
Das Verteilungsdiagramm, Abbildung:(\ref{fig:org9b29fa0}), wurde im
Unterricht ausgearbeitet. Der Klasse erschien es am sinnvollsten, wenn die
Plattform als ASP.NET Applikation erstellt wird und somit auf dem IIS Web
Server läuft. Da die Plattform das zentrale System ist, ist es für die
Normfallstudie auch sinnvoll wenn der Datenbank Server auf dem gleichen System
Normfallstudie auch sinnvoll, wenn der Datenbank Server auf dem gleichen System
läuft wie die Plattform. In einer realen Umgebung müsste hier allenfalls eine
separater Server aufgesetzt werden. Der Airline Service und der WPF Client
wurden entsprechend der Vorgagben als externe Applikationen geplant.
wurden entsprechend der Vorgaben als externe Applikationen geplant.
\newpage
\begin{landscape}
\begin{figure}[htbp]
\centering
\includegraphics[width=.9\linewidth]{pictures/verteilungsdiagramm.pdf}
\caption{\label{fig:org740a4dc}
\caption{\label{fig:org9b29fa0}
Verteilungsdiagramm}
\end{figure}
\end{landscape}
\newpage
\subsection{Relationales Modell}
\label{sec:orgfba2251}
In der Abbildung:(\ref{fig:orgb94eae4}) ist das relationale Modell zu sehen welches durch
den Studenten vorgängig zur Umsetzung erstellt wurde. In der
Abbildung:(\ref{fig:orga89e980}) ist die das relationale Modell zu sehen welches dann
durch das Entity Framework effektiv in der Datenbank erstellt wurde.
\label{sec:org14bf1bc}
Das relationale Modell, Abbildung:(\ref{fig:org54ab668}), wurde durch den Studenten vor gängig
zur Umsetzung erstellt. In der Abbildung:(\ref{fig:org8d1bc2d}) ist die das relationale
Modell zu sehen welches, dann durch das Entity Framework effektiv in der
Datenbank erstellt wurde. Wie man sieht, sind sich die beiden Diagramme sehr
ähnlich. Entity Framework erstellt beim Code First Ansatz die Datenbank
ziemlich genau so, wie man sie auch von Hand erstellen würde. Zumindest im Bezug
auf die Tabellen.
\newpage
\begin{landscape}
\begin{figure}[htbp]
\centering
\includegraphics[width=.9\linewidth]{pictures/rm.pdf}
\caption{\label{fig:orgb94eae4}
\caption{\label{fig:org54ab668}
Relationen Modell}
\end{figure}
\end{landscape}
@ -89,29 +93,29 @@ Relationen Modell}
\begin{figure}[htbp]
\centering
\includegraphics[width=.9\linewidth]{pictures/rmentity.png}
\caption{\label{fig:orga89e980}
\caption{\label{fig:org8d1bc2d}
Relationen Modell}
\end{figure}
\end{landscape}
\newpage
\section{Zugewiesene Ziele}
\label{sec:org9c0eaf8}
\label{sec:org36a3104}
Im Anschluss zu der Analyse hat der Student die Ziele den einzelnen
Applikationen zugewiesen. Dies sollte dazu dienen die Zuständigkeiten zu regeln.
\subsection{Airline Service}
\label{sec:orgf9c1eec}
\label{sec:org967e670}
Da die Airlnes alle Flugdaten zur Verfügung haben erschien es sinnvoll das
diese einen Service bereitstellen welcher die Parameter Anzahl Passiegere,
Da die Airlines alle Flugdaten zur Verfügung haben erschien es sinnvoll das
diese einen Service bereitstellen, welcher die Parameter Anzahl Passagiere,
Start- und Enddatum sowie die Destination aufnimmt. Der Service sollte dann im
Hintergrund automatisch die bereits besetzten Flüge und Flüge welche nicht auf
die restlichen Paramter passen ausfiltern und nur passende Flüge ausgeben.
Hintergrund automatisch die bereits besetzten Flüge und Flüge, welche nicht auf
die restlichen Parameter passen ausfiltern und nur passende Flüge ausgeben.
Desweiteren sollte der Airline Service eine Möglichkeit bieten Flüge zu buchen
sowie zu stornieren. Im Code Ausschnitt:(\ref{airline}) sieht man die Signature
Des Weiteren sollte der Airline Service eine Möglichkeit bieten Flüge zu buchen
sowie zu stornieren. Im Code Ausschnitt:(\ref{airline}) sieht man die Signatur
des Airline Services. Respektive des Interfaces davon.
\label{airline}
@ -127,7 +131,7 @@ Flight BookFlight(Flight flight, int numberOfSeats);
[OperationContract]
Flight CancelFlight(Flight flight, int numberOfSeats);
\end{sexylisting}
\newpage
Somit wurden dem Airline Service folgende Ziele zugewiesen:
\begin{itemize}
\item Es dürfen nur freie Flüge in Kombiangeboten vorkommen.
@ -137,20 +141,20 @@ sein.
\end{itemize}
\subsection{Plattform}
\label{sec:org97f30f6}
\label{sec:orgbf967a7}
Die Plattform stellt den Grossteil der Logik und Funktionen bereit. Sie sollte
einerseits ein Möglichkeit bieten damit die Hotelbetreiber Zimmer und ihre
einerseits eine Möglichkeit bieten damit die Hotelbetreiber Zimmer und ihre
Hotels erfassen könne sowie das Matching zwischen Hotelzimmer und Flügen
erledigen.
Zusätzlich sollte sie die erstellten Komiangebote and den WPF Client
weiterleiten können. Auch das entgegennehmen der Bestellungen sowie
Zusätzlich sollte sie die erstellten Kombiangebote und den WPF Client
weiterleiten können. Auch das Entgegennehmen der Bestellungen sowie
Reservationen des WPF Clients entgegennehmen und an den Airline Service
weiterleiten. Auch die Überprüfung der Reservationszeit sowie die entsprechende
Reakation war für die Plattform geplant.
Reaktion war für die Plattform geplant.
Zu guter letzt sollten dann die reservertierten respektive gebuchten Flüge an
Zu guter Letzt sollten dann die reservierten respektive gebuchten Flüge an
die passende Airline zur Buchung weitergeleitet werden. Im Falle einer
Stornierung des Angebots müsste dann natürlich auch noch der Flug storniert
werden.
@ -178,7 +182,7 @@ Die Signatur des Plattform Services ist im Codebeispiel:(\ref{plattform}) zu
sehen.
\label{plattform}
\begin{sexylisting}{Plattfrom Service}
\begin{sexylisting}{Plattform Service}
[OperationContract]
List<SpecialOffer> GetSpecialOffers();
[OperationContract]
@ -196,49 +200,49 @@ List<City> GetCities();
\end{sexylisting}
\subsection{WPF Client}
\label{sec:org51a2b6d}
\label{sec:orgd974396}
Der WPF Client sollte nur aus einem simplen graphischen Interface bestehen
Der WPF Client sollte nur aus einem simplen graphischen Interface bestehen,
welches einem User erlaubt hätte nach Städten und Daten zu filtern und ihm dann
die entsprechenden Kombiangebote angezeigt hätte. Das gewünschte Angebot hätte
er dann über den WCF Service auf der Plattform reservieren oder direkt buchen
können. Zwei frühe Screenshots des Clients sind in der Abbildung:(\ref{fig:orga2f98a0}) und
Abbildung:(\ref{fig:org230721d}) zu sehen.
können. Die folgenden zwei Screenshots, Abbildung:(\ref{fig:org91c1dd3}) und (\ref{fig:orgc096aff}),
zeigen einen frühen Stand des Clients.
\begin{figure}[htbp]
\centering
\includegraphics[width=.8\textwidth]{pictures/wpf1.png}
\caption{\label{fig:orga2f98a0}
früher Screenshot des WPF Clients}
\caption{\label{fig:org91c1dd3}
Screenshot des Client Hauptfensters}
\end{figure}
\begin{figure}[htbp]
\centering
\includegraphics[width=.8\textwidth]{pictures/wpf2.png}
\caption{\label{fig:org230721d}
früher Screenshot des WPF Clients}
\includegraphics[width=6cm]{pictures/wpf2.png}
\caption{\label{fig:orgc096aff}
Screenshot der Kundendateneingabeform}
\end{figure}
\section{Offene Punkte}
\label{sec:org514fb95}
\label{sec:org49618f0}
Aufgrund enormen Zeitmangels war es leider nicht möglich das Projekt zu
realisieren. In dieser Sektion soll ein kurzer Überblick darüber gegeben werden
welche Punkte in welchem Teil des Projektes noch offen sind und nicht
fertigstellt oder überhaupt angegangen werden konnten.
realisieren. In dieser Sektion soll ein kurzer Überblick darüber gegeben
werden, welche Punkte in welchem Teil des Projektes noch offen sind, nicht
fertigstellt sind oder überhaupt angegangen werden konnten.
\subsection{Airline Service}
\label{sec:orgeb5d070}
\label{sec:org928bde7}
Soweit der Student dies zum jetzigen Zeitpunkt beurteilen kann ist der Airline
Service soweit abgeschlossen. In ersten nicht dokumentierter Tests wurden
zumindest die erwarteten Daten zurück geliefert.
\subsection{Plattform}
\label{sec:orgfe10e28}
\label{sec:orgbd6a22f}
Aufgrund eines Bugs welcher auch mit Hilfe des Dozenten nicht behoben werden
konnte ist es zur Zeit nicht möglich die Plattform überhaupt zu starten. Das
Aufgrund eines Bugs, welcher auch mit Hilfe des Dozenten nicht behoben werden
konnte, ist es zurzeit nicht möglich die Plattform überhaupt zu starten. Das
Provisionieren der Datenbank schlägt mit dem folgenden Fehler fehl.
\begin{verbatim}
@ -248,57 +252,89 @@ Airline.ExtensionData in Set Airlines. An Entity with Key (PK) will
not round-trip when: Entity is type [Plattform.DB.Airline]
\end{verbatim}
Die Zimmererfassung für die Hotels konnte zuvor jedoch soweit fertigstellt
werden. Noch offen sind zur Zeit:
Für die Abgabe wurde ein früherer Stand des Codes ausgecheckt, welcher jedoch
insgesamt auch nicht so performt wie er sollte. Der Airline Service und die
Plattform lassen sich jedoch starten.
Die Zimmererfassung, Abbildung:(\ref{fig:orga9e5c58}), für die Hotels konnte zuvor
jedoch soweit fertigstellt werden. Der Hotelbetreiber kann den Raumtypen und
das Hotel auswählen, sowie die Daten angeben von wann bis wann der Raum frei
ist. Sollte der Raumtyp nicht existieren kann er in einer separaten Form,
Abbildung:(\ref{fig:orga543285}), erfasst werden. Gleiches gilt auch für das Hotel,
Abbildung:(\ref{fig:org3a14ab5}).
\begin{figure}[htbp]
\centering
\includegraphics[width=5cm]{pictures/selection.png}
\caption{\label{fig:orga9e5c58}
Screenshot der Raumeingabeform}
\end{figure}
\begin{figure}[htbp]
\centering
\includegraphics[width=5cm]{pictures/roomtype.png}
\caption{\label{fig:orga543285}
Screenshot der Raumtyp Erstellungsform}
\end{figure}
\begin{figure}[htbp]
\centering
\includegraphics[width=5cm]{pictures/hotel.png}
\caption{\label{fig:org3a14ab5}
Screenshot der Hotel Erstellungsform}
\end{figure}
Bei der Plattform noch offene Punkte sind:
\begin{itemize}
\item Der Plattform Service ist mangels eines passenden Clients komplett
ungetestet. Somit ist unklar ob die Buchung oder Reservationen der
ungetestet. Somit ist unklar, ob die Buchung oder Reservationen der
Kombiangebote funktionieren.
\item Flüge werden in der Datenbank gespeichert.
\item Flüge und ihre Randdaten werden in der Datenbank gespeichert.
\item Kombiangebote werden in der Datenbank gespeichert.
\item Zu buchende Flüge werden an die Fluggesellschaften gemeldet.
\item Zu buchende/stornierende Flüge werden an die Fluggesellschaften gemeldet.
\item Der Service wird innerhalb von 2s aufgebaut, läuft mindestens 30 Tage durch,
bietet eine Verfügbarkeit von 0.995 und ist innerhalb von 0.5s ansprechbar.
\item Bezahlte Reservationen werden fix gebucht.
\end{itemize}
\subsection{WPF Client}
\label{sec:orgc557364}
\label{sec:orga9fb630}
Vom WPF Client exisistiert zur Zeit nur das Grundgerüst. Da die Plattform nicht
funktionsfähig war hat der Student am WPF Client gearbeitet soweit es möglich
Vom WPF Client existiert zurzeit nur das Grundgerüst. Da die Plattform nicht
funktionsfähig war, hat der Student am WPF Client gearbeitet soweit es möglich
war. Allerdings war dies ohne den WCF Service der Plattform nur sehr beschränkt
möglich. Viel mehr als die graphische Oberfläche existiert zur Zeit nicht.
möglich. Viel mehr als die grafische Oberfläche existiert zurzeit nicht.
\section{Fazit}
\label{sec:orgbf428dc}
\label{sec:org9560ca2}
Ein Booking System welches Kombiangebote wie in der Aufgabenstellung verlangt
bereitstellt ist eine uglaublich komplexes System. Das Matching der Flüge zu
passenden Hotelzimmer hat enorm viele Variabeln welche berücksichtigt werden
müssen.
bereitstellt ist eine unglaublich komplexes System. Das Matching der Flüge zu
passenden Hotelzimmer hat enorm viele Variablen welche berücksichtigt werden
müssen. Auch das Zusammenspiel des Clients zur Plattform bietet durchaus einige
Knackpunkte.
Dadurch lässt sich das Projekt in keiner Weise innerhalb von ca. 20 Stunden
erstellen. Der Student hat weit über 40 Stunden in das Projekt in Heimarbeit
investiert und kein brauchbares Ergebnis erziehlen können. Für den Studenten
ist dies eine enorm unbefriedigende Situation.
erstellen. Der Student hat bereits weit über 40 Stunden in das Projekt in
Heimarbeit investiert und kein brauchbares Ergebnis erzielen können. Für den
Studenten ist dies eine enorm unbefriedigende Situation.
Das .NET und Entity Framework bieten einige interessante Features. Allerdings
wirkt der Code-First Ansatz von Entity Framework so als ob die ganzen
wirkt der Code-First Ansatz von Entity Framework so, als ob die ganzen
Überprüfungen in der Applikation gemacht werden sollten anstatt in der
Datenbank. Allenfalls ist das noch eine Altlast von früher allerdings gibt es
heutzutage Frameworks die dies wesentlich eleganter lösen. Der Student findet
dass, das Framework die Datenbank so sauber wie möglich erstellen sollte und es
dem Entwickler möglichst einfach machen sollte erweiterte Features der
Datenbank zu nutzen.
Datenbank. Allenfalls ist das noch eine Altlast von früher. Heutzutage gibt es
Frameworks die dies wesentlich eleganter lösen. Der Student findet dass, das
Framework die Datenbank so sauber wie möglich erstellen sollte und es dem
Entwickler möglichst einfach machen sollte erweiterte Features der Datenbank zu
nutzen.
Auch empfindet der Student C\# eher als ungeeignet um innerhalb von so kurzer
Zeit ein Projekt zu realiseren. Die Sprache fühlt sich dafür einfach zu sperrig
und die zusätzliche Komplexität durch Visual Studio ist leider nicht immer nur
Zeit ein Projekt zu realisieren Die Sprache fühlt sich dafür einfach zu sperrig
an. Die zusätzliche Komplexität durch Visual Studio ist leider nicht immer nur
eine Hilfe.
WCF Services sind in der Grundidee eine sehr interessante Technologie und der
Stundet wird WCF Services oder ähnliche Technologien in der Zukunft sicher
inbetracht ziehen. Insbesondere das Teilen der Klassen bietet interessante
Student wird WCF Services oder ähnliche Technologien in der Zukunft sicher
in Betracht ziehen. Insbesondere das Teilen der Klassen bietet interessante
Möglichkeiten.

BIN
docs/pictures/hotel.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 30 KiB

After

Width:  |  Height:  |  Size: 34 KiB

BIN
docs/pictures/roomdate.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

BIN
docs/pictures/roomtype.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.3 KiB

BIN
docs/pictures/selection.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB