From 0623f832a5e14df1d92020cd9f6d4d340a0e3139 Mon Sep 17 00:00:00 2001 From: Daniel Sommer Date: Thu, 28 Feb 2019 22:55:23 +0100 Subject: [PATCH] some changes while tonis lesson --- parts/01_layered-arc.tex | 181 +++++++++++++++++++++++++++++++-------- 1 file changed, 147 insertions(+), 34 deletions(-) diff --git a/parts/01_layered-arc.tex b/parts/01_layered-arc.tex index 9b76557..879b821 100644 --- a/parts/01_layered-arc.tex +++ b/parts/01_layered-arc.tex @@ -95,14 +95,13 @@ public static DocumentDTO toDTO(Document document){}; \item ermöglicht Objektorientierte Ansicht des Speichers \end{itemize} \subsection{Service Layer Pattern (auch Session Fassade)} -\subsubsection{Erkläre die Funktion + Skizze} +\subsubsection{Erkläre die Funktion + Skizze}\label{subsubsec:service-layer-pattern} \begin{itemize} \item Service Layer delegiert auf Business Logik (z.B.: Zeile 82 community.setDocumentlibrary) und zum DAO (z.B.: Zeile 80, 81,82 ...) \item bei wenig Logik wird zumindest Transaktions (z.B. Zeile 39), Error (z.B. Zeile 42-50) und Validierungshandling (z.B.: Zeile 24-27) im Service erledigt \end{itemize} \begin{minted}[xleftmargin=\parindent,linenos,breaklines=true]{java} - @Local(DocumentService.class) @Remote(DocumentServiceRemote.class) @Stateless @@ -344,7 +343,120 @@ public static DocumentDTO toDTO(Document document){}; \subsubsection{Beschreibe ein konkretes Anwendungsbeispiel} \begin{itemize} \item Java Server Faces (bei Java Server Faces enthält das File zwar keinen Java Code, interagiert aber direkt mit Java Code einer Backing Bean) + \item \end{itemize} +\begin{minted}[linenos,breaklines=true]{xml} + + + Practical Software Engineering 2018 + + javax.faces.PROJECT_STAGE + Development + + + primefaces.THEME + bootstrap + + + index.xhtml + + + Faces Servlet + javax.faces.webapp.FacesServlet + 1 + + + Faces Servlet + *.xhtml + + + + + administrators + ADMIN + + + portal administrators + PORTALADMIN + + + standard user + USER + + + + + + admin area + /admin/* + + + ADMIN + + + + + + community area + /community/* + + + USER + PORTALADMIN + ADMIN + + + + + + user administration area + /userAdministration/* + + + USER + PORTALADMIN + ADMIN + + + + + + + user functionalities + /user.xhtml + /userlist.xhtml + /notImplemented.xhtml + + + USER + PORTALADMIN + ADMIN + + + + + + other functionalities + /notImplemented.xhtml + + + USER + PORTALADMIN + ADMIN + + + + + FORM + pse + + /login.xhtml + /login.xhtml + + + + +\end{minted} \subsubsection{Nenne die Konsequenzen der Anwendung} \begin{itemize} \item es muss nur EIN (Front) Controller konfiguriert werden @@ -389,15 +501,33 @@ public static DocumentDTO toDTO(Document document){}; \item Grundidee sind loose gekoppelte Objekte \item Objekte werden mittels externem Assembler verknüpft \item Abhängigkeiten bestehen nur auf Interfaces - \item Assembler Objekt erzeugt die Interface-Implementierungen (z.B.: durch Factory) + \item Assembler Objekt (Framework) erzeugt die Interface-Implementierungen (z.B.: durch Factory) + \item Es wird zwischen Constructor Injection und Setter Injection unterschiedlichen + \begin{minted}[linenos,breaklines=true]{java} + // Constructor Injection + puplic class Client + { + private Interface iface; + public Client(Interface iface) + { + this.iface = iface; + }} + + // Setter Injection + puplic class Client + { + private Interface iface; + public setIface(Interface iface) + { + this.iface = iface; + }} + \end{minted} \end{itemize} -\subsubsection{Beschreibe ein konkretes Anwendungsbeispiel} \begin{itemize} \item Im Spring Context: Dependency Injection mit XML-Datei \item alle Beans sind dort gelistet und werden verknüpft \item Context wird geladen damit alles verknüpft ist \item erspart Factories - \item man unterscheidet Constructor und Setter Injection \end{itemize} \subsubsection{Nenne die Konsequenzen der Anwendung} \begin{itemize} @@ -411,29 +541,6 @@ public static DocumentDTO toDTO(Document document){}; \item Nachteil Annotation: nicht so flexibel wie XML \end{itemize} \end{itemize} -\subsection{Remote Facade} -\subsubsection{Erkläre die Funktion + Skizze} -\begin{figure}[!htp] - \centering - \includegraphics[width=0.5\textwidth]{pics/rem_fass_pat.jpg} -\end{figure} -\begin{itemize} - \item bietet dem Client ein grobes Interface - \item ist Schicht die von grob zu fein-granularem Interface umwandelt - \item steigert so Netzwerkeffizienz -\end{itemize} -\subsubsection{Beschreibe ein konkretes Anwendungsbeispiel} -\begin{itemize} - \item Implementierung in Applikation um überlastetes Netzwerk zu entlasten. -\end{itemize} -\subsubsection{Nenne die Konsequenzen der Anwendung} -\begin{multicols}{2} - \begin{itemize} - \item weniger Remote Calls - \item Entlastung des Netzwerkes - \item steigert Zuverlässigkeit - \end{itemize} -\end{multicols} \subsection{Data Transfer Object (DTO) Pattern} \subsubsection{Erkläre die Funktion (Skizze - ein Grund für DTO)} \begin{figure}[!htp] @@ -601,12 +708,18 @@ Jaxb – xml Cdi = context dependancy injection \subsection{Reihenfolge - Wildfly - Abfolge - einzelne Schritte} Reihenfolge: -1. Compile -2. Surefire (unitTests) -3. Deploy (warplugin) -4. Failsafe IT-test -5. MVN site -6. Gui test +\begin{multicols}{2} + \begin{enumerate} + \item Compile + \item Surefire (unitTests) + \item Packaging - war file erstellen + \item Wildfly - fressen und deployen + \item Failsafe IT-test + \item MVN site + \item Gui test + \end{enumerate} +\end{multicols} + \subsection{Frageart Prüfung} Welche Fehler können bei Exception-Handling vorkommen in unserem Projekt?? – wie funktioniert es grundsätzlich in unserem Code