diff --git a/chapters/thesis/chapter03.tex b/chapters/thesis/chapter03.tex index 2a1ea64..aacaccd 100644 --- a/chapters/thesis/chapter03.tex +++ b/chapters/thesis/chapter03.tex @@ -78,9 +78,9 @@ aufrufen und die Messung dazu protokolieren sowie die min und max werte (Skript Damit eine Umsetzung mit einer anderen Technologie umgesetzt werden kann, muss dies den kompletten Aufbau unterstützen, wie dies die \ac{JSP} unterstützen. Daher fallen reine FrontEnd"=Bibliotheken wie VueJS oder React aus der Betrachtung -heraus. +heraus, da sie zusätzlich noch einen Backend für die Anwendungslogik (englisch business logic) benötigt. -\subsection{ASP.NET Core MVC} +\subsection{C\# - ASP.NET Core MVC} \label{sec:concept:technologiecompare:aspnetcore} Beim Vergleich zu \ac{JSP} steht ASP.NET Core MVC in nichts nach. Im großen und ganzen ist der Funktionsumfang der @@ -109,49 +109,41 @@ die Java Runtime. Zusätzlich wird bei ASP.NET Core nicht noch ein zusätzlicher zu halten. \subsection{Golang} -\label{sec:concept:technologiecompare:go} +\label{sec:concept:technologiecompare:golang} -\noindent -Vorteile: +Go (auch Golang) ist eine junge Programmiersprache, die sich durch Simplizität und Multifunktionalität auszeichnet, was +eines der Ziele bei der Entwicklung ist. Weitere Ziele waren die native Unterstützung von Nebenläufigkeit und die +leichte Verwaltung von großen Codebasen in größeren Entwicklerteams und ein hohen Übersetzungsgeschwindigkeit. +Hierdurch ist es sehr einfach und effizient möglich eine Anwendung mit Go zu entwickeln \citep{Golang:2024}. +Zusätzliche überzeugt Go durch die Typsicherheit und die automatische Speicherbereinigung durch den \ac{GC}. +Die Entwicklung von Microservices mit Go wird durch die integrierten Funktionen und Bibliotheken gut Unterstützt, +wodurch die Entwicklung, Bereitstellung und Skalierung erleichtert wird. -\begin{itemize} - \item schnelle und einfache Entwicklung - \item Native Übersetzung der Anwendung (hohe Performance) - \item Betriebssystem unabhängig - \item Gut geeignet für Microservices -\end{itemize} +Go wird in eine native Anwendung übersetzt, da für die großen Betriebssystem entsprechende Compiler existieren, sind +Anwendung in Go ebenfalls nahezu Plattformunabhängig. Durch den integrierten Cross-Compiler, kann die Software direkt +für andere Betriebssystem mit erstellte werden. -\noindent -Nachteile: - -\begin{itemize} - \item Neue Programmiersprache, noch wenige Programmierer -\end{itemize} - -Die grundlegenden Ziele bei der Entwicklung von Go sind eine optimiert und vereinfachte Programmiersprache zu entwickeln. -Hierdurch ist es sehr einfach und effizient eine Anwendung mit Go zu entwickeln. - -Schnelle und einfache Entwicklung durch das grundsätzliche Konzept der neuen Sprache -Ist wiederrum aber der nachteil dass es noch nicht viele können. -Ist aber wiederrum sehr schnell und effizient und für Microservices gedacht. -Reiner \ac{ORM} vorhanden, ohne weitere Caching und halten von Daten. +Für eine dynamische Webseite, reichen die Standard-Bibliotheken, wobei auch gibt es verschiedene Frameworks die +eine Unterstützung für \ac{MVC} einbauen. Ein direkter \ac{ORM} ist ebenfalls vorhanden, um den einfachen Zugriff +auf eine Datenbank zu ermöglichen. \subsection{PHP} \label{sec:concept:technologiecmopare:php} -\noindent -Vorteile: +Mit der Skriptsprache PHP ist es sehr einfach eine dynamische Webseite zu entwickeln, da diese genau für solche +Zwecke entwickelt wurde. Hierbei wird der Code nicht übersetzt, sondern immer zu Laufzeit interpretiert, was im +Gegensatz zu den anderen vorgestellten Möglichkeiten im Sinne der Performance eindeutig ein Nachteil ist. +Dafür ist eine Änderung nur mit Hilfe eines Texteditor sehr einfach und schnell umzusetzen. +Der Zugriff auf eine Datenbank, ist direkt mit integriert und muss nur durch die Bereitstellung der passenden Treiber +aktiviert werden. -\begin{itemize} - \item Text-Editor reicht -\end{itemize} +Die Template-Funktion für die Webseite wird nicht direkt unterstützt, sonder hier muss zwingend eine externe Bibliothek +verwendet werden. Sonst entsteht sehr viel gleicher Code, der auf Dauer nicht mehr Wartbar bleibt. -\noindent -Nachteile: - -\begin{itemize} - \item Script-Sprache -\end{itemize} +Für PHP gibt es ebenfalls umfangreiche Frameworks für die \ac{MVC}"=Unterstützung, wie z.B. \textit{Laravel} oder +\textit{Symfony}. Um diese Webseiten aber nun wieder auf den Webserver betreiben zu können wird der \textit{composer} +benötigt, der den Quellcode zusammenpackt und für die Bereitstellung vorbereitet. Hierbei ist die Leichtigkeit der +Skriptsprache aber verloren gegangen. \subsection{Fazit} \label{sec:concept:technologiecompare:summary} diff --git a/expose-ref.bib b/expose-ref.bib index 03a303f..ff3abd5 100644 --- a/expose-ref.bib +++ b/expose-ref.bib @@ -66,6 +66,12 @@ urldate = {2024-04-02} }, +@online{Golang:2024, + year = 2024, + url = {https://de.wikipedia.org/wiki/Go_(Programmiersprache)}, + urldate = {2024-04-04} +}, + % File: 978-1-4842-3546-1.pdf @BOOK{Sharan2018, AUTHOR = {Sharan, Kishori}, diff --git a/frontbackmatter/thesis/Acronyms.tex b/frontbackmatter/thesis/Acronyms.tex index c490acf..6e94d2f 100644 --- a/frontbackmatter/thesis/Acronyms.tex +++ b/frontbackmatter/thesis/Acronyms.tex @@ -18,6 +18,7 @@ \acro{HTML}{HyperText Markup Language} \acro{IL}{Intermediate Language} \acro{JIT}{Just in Time} + \acro{GC}{Garbage Collection} \acro{CSS}{Cascading Style Sheets} \acro{SFSB}{Stateful Session-Bean} \acro{JPA}{Java Persistence API} diff --git a/thesis.pdf b/thesis.pdf index 1afb99d..229c073 100644 Binary files a/thesis.pdf and b/thesis.pdf differ