Womit werden Web-basierte Geschäftsanwendungen entwickelt?

Also ich melde mich hier mal als jemand. Der schon mehrere solche Business Anwendungen Webbasiert gebaut hat. Für total unterschiedliche Use Cases.

Oft ist es ja so, dass man nicht von 0 beginnt. Oft gibt es die Firma schon, die haben bereits ein Tool und wenn dieses über eine REST API kommunizieren kann, würde ich den ganzen Backend Prozess einfach weglassen und direkt mit dem Tool weiterarbeiten und dich nur noch ums Frontend kümmern.

Wenn es das nicht gibt und du wirklich bei 0 anfängst würde ich ein PHP Framework für die Backend Prozesse nutzen, cakePHP, Symfony oder ähnliches. Diese Frameworks (bitte nicht mit CMS verwechseln) bieten dir bereits alle Grundlagen für Datenbank Kommunikation (Oft sogar mit DB deiner Wahl), sichere Loginprozesse, etc - alle diese Basic, die solche Systeme immer haben - sowas hab ich schon seit Jahren nicht mehr selber geschrieben.

Beim Frontend kommt es wirklich sehr darauf an was du brauchst, Bootstrap bietet sich oft an weil es sehr viel abdeckt. Es gibt da aber auch kleinere Frameworks die auch nützlich sind.

Wichtig ist, dass du CSS mit SASS oder LESS schreibst, so hast du massiv weniger Schreibarbeit und kannst relativ schnell CSS Code mit Media Queries, etc schreiben ohne das es gross und unübersichtlich wird.

Bis vor zwei Jahren hab ich im Frontend noch mit Angular gearbeitet, dort hab ich irgendein Form Creator Plugin genutzt um Formulare relativ schnell zu schreiben.

Inzwischen arbeite ich nur noch mit Vue dort nutze ich auch so ein Ding: Da kann man ein komplettes Formular einfach als Beispiel so schreiben:

Javascript:
export default {
  data () {
    return {
      model: {
        id: 1,
        name: 'John Doe',
        password: 'J0hnD03!x4',
        skills: ['Javascript', 'VueJS'],
        email: 'john.doe@gmail.com',
        status: true
      },
      schema: {
        fields: [
          {
            type: 'input',
            inputType: 'text',
            label: 'ID (disabled text field)',
            model: 'id',
            readonly: true,
            disabled: true
          },
          {
            type: 'input',
            inputType: 'text',
            label: 'Name',
            model: 'name',
            placeholder: 'Your name',
            featured: true,
            required: true
          },
          {
            type: 'input',
            inputType: 'password',
            label: 'Password',
            model: 'password',
            min: 6,
            required: true,
            hint: 'Minimum 6 characters',
            validator: VueFormGenerator.validators.string
          },
          {
            type: 'select',
            label: 'Skills',
            model: 'skills',
            values: ['Javascript', 'VueJS', 'CSS3', 'HTML5']
          },
          {
            type: 'input',
            inputType: 'email',
            label: 'E-mail',
            model: 'email',
            placeholder: 'User\'s e-mail address'
          },
          {
            type: 'checkbox',
            label: 'Status',
            model: 'status',
            default: true
          }
        ]
      },
      formOptions: {
        validateAfterLoad: true,
        validateAfterChanged: true,
        validateAsync: true
      }
    }
  }
}

Das funktioniert ziemlich einfach, ziemlich schnell und auch sehr gut.

Wenn du natürlich wirklich von Hand, alle HTML Dateien selbst schreibst, etc brauchst du Wochen für so ein Projekt. mit Synfony, Vue.js und von mir aus Bootstrap (gibt eine Vue Version) - hab ich dir das in 15-16 Stunden problemlos hingecodet.

Also eine Basic Variante, so ein Tool kann man ja unendlich ergänzen (Besteller kann Fahrer per GPS Tracken, Online Bezahlungen, Stundenerfassung der Mitarbeiter, usw).
Ergänzung ()

Kurzer Nachtrag:

Wenn du Tabellen mit Paginieren, Sortierung, Suchfunktion und der Möglichkeit einzelne Zellen direkt bearbeiten zu können haben willst führt meiner Ansicht nach kein Weg über DataTables vorbei:

https://datatables.net

Die können das alles.

Allerdings sollte man im Web vielleicht nicht gleich wie auf Desktop Anwendungen denken. Tabellen sind äusserst unpraktisch und sollten möglichst wenig genutzt werden, da Tabellen leider nicht responsive sind (gibt da ein paar Lifehacks, aber es ist immer eine unschöne Lösung).
 
  • Gefällt mir
Reaktionen: konkretor, KatzOderKoder und TheCadillacMan
Legolas schrieb:
* Überflüssiges Zitat editiert! *
Vielen Dank für den Link. Das sieht sehr interessant aus. Ich habe mir ein paar Videos angeschaut. PHPRad nur von dem was ich gesehen habe könnte eventuell etwas zu weit gehen. Das System scheint in Richtig Application Builder zu gehen.

So wie ich es mittlerweile vermute ist, Ihr macht alles selbst. Ihr holt euch z.b. Bootstrap oder etwas ähnliches und baut die Seiten auf mit z.b. Twig als Template engine. Das Backend mit PHP, mit etwas JavaScript im Frontend. Das habe ich wie im ersten Thread beschrieben auch so umgesetzt. Mit scheint einfach die GUI viel zu Zeitaufwendig zu sein wenn es um große Anwendungen geht mit mehreren hundert Formularen. Da würde einfach zu viel Zeit drauf gehen und das Projekt damit teuer machen.

Könnt Ihr nachvollziehen was ich meine oder meinen könnte?

Hi Kim88,

exakt deine Richtung möchte ich folgen!!!
Ihr habt absolut Recht. Ich bin derzeit gefangen in meiner Denke als desktop application delevoper. Deshalb passt mein weg nicht zur Web-Welt. Da möchte ich ausbrechend und suche Krampfhaft einen Leitfaden.

Ich habe bereits erwähnt, dass ich mich mit VUE beschäftige über ein Buch. Einen möglichen Nutzen für mich habe ich noch nicht entdeckt. Du arbeitest damit. Du erwähnst auch Synfony, auch davon habe ich gehört. In der Web-Welt gibt es unendlich viel Zeug. Ich bin gerade dabei herauszufinden was ich benötige und dabei bin ich völlig frei.
Mein Fokus sind keine Webseiten sondern Webanwendungen wie eben ERP Systeme.
Kleinere Projekte habe ich bereits umgesetzt mit PHPStorm, PDO für mySQL, Twig als Template, guzzle für Zugriff auf meine REST-API Server, Bootstrap, HTML5, CCS für die UI, AJAX für partielle Datenaktualisierung der Form, und JavaScript für Cleintseitige Logik. Die Editable Variante von DataTables auch bereits eingekauft, aber nicht anwenden können. Damit du mich grob einschätzen kannst.
 
Zuletzt bearbeitet von einem Moderator:
Der technische Unterschied (abgesehen vom grundlegenden Design und dem Backend-Zauber) zwischen Webseiten und Webanwendungen liegt eher in der Art und Weise, wie stabil und mit welchen Features man das bauen muss.

Webanwendungen sind sehr komplex und müssen mehrere Jahre lang auch in allen neuen Browser-Iterationen nach ergonomischen Gesichtspunkten zuverlässig und möglichst fehlerfrei funktionieren. Häufig ist eine Smartphonenutzung auch nicht unbedingt notwendig. Bei Webanwendungen kann man das auch immerhin festlegen, denn der Nutzerkreis ist meist bekannt oder kontrollierbar. Das ist bei den Designansätzen aber auch die Auswahl der Client-Frameworks zu berücksichtigen. Vanilla-JS in ES5 oder ES6 wird sicherlich länger Unterstützung finden, wie wenn man jetzt noch alles auf jQuery 3 aufbauen würde. Abgesehen davon, dass das offizielle Bootstrap 4 jQuery braucht, soll Bootstrap 5 dann ohne solche Abhängigkeiten komplett in Vanilla-JS umgesetzt sein. Dauert aber noch, bis das rauskommt.

Für Webseiten gelten bei der Planung schon ganz andere Aspekte und demnach auch andere Herangehensweisen. Mobile First Ansätze im Design zum Beispiel, die für Webseiten gut und richtig sind, müssen für Webanwendungen nicht unbedingt sinnvoll sein. Das stichwort Datentabellen ist oben ja schon gefallen :) Auch muss man bei Webseiten eher auf eine breitere kompatibilität schauen, man kennt die Endgeräte nicht, man kennt die Einstellungen nicht. Alles muss immer Fancy und nach modernen Designgesichtspunkten ständig im Fluss sein. Das gilt für Webanwendungen nicht (unbedingt).
 
Naja im Backend Framework bevorzuge ich persönlich cakePHP aber da hat man oft auch nicht die Wahl (wenn man ein Projekt übernimmt oder so). Mir ist das am Schluss aber auch ziemlich egal, die grossen Frameworks bieten hier mehr oder weniger alle die selben Funktionen und sind auch alle gut dokumentiert.

Ich finde Vue (oder auch Angular, React, etc) bietet einige Vorteile zu "klassischen" Webseiten.

1. Aus Anwendersicht, als die Person/en die das danach bedienen müssen.

Mit Vue (oder Angular, etc) baust du in der Regel "Single Page Applications" - das heisst die Seite wird genau einmal im Browser geladen, danach passiert alles weitere über JavaScript, es gibt keine zusätzlichen Seitenreloads - damit erweckt man den Eindruck bzw. das "Feeling" einer Desktop Applikation.

Für eine Webseite vom Bluemenladen um die Ecke ist das jetzt nicht so mega relevant, aber gerade für solche Business Tools finde ich das essentiell.

2. Aus Entwicklersicht: Businessanwendungen können mit der Zeit gerne mal sehr komplex und gross werden. Wei bereits vorher erwähnt es fallen einem immer neue Dinge ein die man da Implementieren kann.

Ich mach dir da ein kleines Hello World Example (schnell aus dem Kopf nicht getestet):

Code:
<template>
    <p>{{ greetings }} <span>Welt!</span></p>
</template>

<script>
    module.exports = {
        data: function() {
            return {
                greetings: 'Hallo'
            }
        }
    }
</script>

<style scoped lang="scss">
    p {
        font-size: 1.5rem;
        letter-spacing: .5px;
        color: black;
        span {
            color: red;
        }
    }
</style>

Als Entwickler ist so sehr angenehm, als Beispiel die obere Komponente die "Hallo Welt!" ausgibt, hat alles in einer Datei. Du findest das HTML Markup, die Scriptlogik und das Styling der Elemente alles in einer einzelnen Datei. Wenn du dann mal zwei Jahre später die Komponente erweitern musst, brauchst du nur diese Datei zu bearbeiten, ohne das du den Rest des Projekts anfassen musst.

Daher ja ich würde dir grundsätzlich empfehlen die mit Vue oder React oder Angular (das sind die drei grossen, gibt aber noch viele kleinere) Frameworks anzusehen - dokumentiert sind alle sehr gut.

Das aktuelle Bootstrap gibt es auch in einer VUE Version ohen jQuery Abhängigkeit und alle Bootstrap Komponenten sind Vue Componenten: https://bootstrap-vue.js.org ebenfalls gut dokumentiert.

Hier ein Beispiel wie du z.B. die Bootstrap Breadcrumbs nutzen kannst:

Bootstrap Vue: https://bootstrap-vue.js.org/docs/components/breadcrumb

Original Bootstrap: https://getbootstrap.com/docs/4.3/components/breadcrumb/
 
  • Gefällt mir
Reaktionen: konkretor
Hi schau dir mal react-admin an.
https://github.com/marmelab/react-admin

Das kommt deiner Vorstellung mit dem Binden von Daten an Forms noch am ehesten. Dazu brauchst du dann eine REST API im Backend, welche du mit der Sprache deiner persönlichen Vorliebe umsetzen kannst.

Die Entwicklung von Webfrontends ist aber immer komplexer als die lokalen Systeme an denen du zuvor gearbeitet hast. Windows bringt mit GDI+/WinForms eigene Werkzeuge mit, die Delphi oder .NET Sprachen eben sehr komfortabel anbinden können. Dabei bleibt eben die Plattformunabhängigkeit auf der Strecke. Schon auf macOS oder Linux laufen deine Programme nicht mehr und beide bieten entsprechende Werkzeuge ebenfalls. Im Web mit dem Browser als Medium ist es ungleich komplizierter. HTML war nie dafür konzipiert worden. HTTP als Protokoll kannte bis http/2 keine bidirektionale Kommunikation (nur request/response) und ist per se stateless. Dazu noch die jahrelangen und noch immer vorhandenen Unterschiede/Inkompatibilitäten bei den einzelnen Browsern.
Du wirst wohl in absehbarer Zeit kein Framework finden, welches dir den gewohnten Komfort bieten wird.
 
Vielen Dank für die Infos.

ok, dann ist es wirklich so dass Web-Anwendungen deutlich Zeitraubender sind und somit teurerer.
Ich habe noch nicht den Überblick, aber folgende Infos habe ich Zusammengetragen:
-Mit PHP als Backend System ist man gut dabei.
-Das Vue js Framework ist sehr umfangreich, ich kann es noch nicht einschätzen, nur soweit dass ich Twig als Template nicht benötige da es in Vue integriert ist.
-Vue unterstützt auch das Routing.
-Wie von Kim88 weiter oben erwähnt, gibt es Bootstrap auch für Vue.
-Ich möchte eher keinen OR Mapper verwenden da ich lieber die volle Funktionalität der Datenbank nutzen möchte mit referenzielle Integrität, StoredProcedures, Triggers, Events usw. Ich glaube bei Vue kann ich auch PDO als Zugriffsschicht verwenden. Ich meine gelesen zu haben dass Vue einen ORMapper integriert hat. Oder sollte man bei Vue einen ORMapper verwenden und auf die Funktionalität der Datenbank verzichten?
 
Ja, Webanwendungen sind aufwändiger, einerseits weil man immer eine Client-Server Kommunikation hat und andererseits weil HTML zumindest ursprünglich nicht für GUIs gedacht war. Hat sich zwar in letzter Zeit stark gewandelt, aber ohne zusätzliche Frameworks ist das trotzdem noch viel Arbeit. Und die Frameworks sind auch noch stark im Wandel, der neueste Trend sind da wohl die Web Components.

Für kleine bis mittlere Sachen ist PHP als Backend ok, wobei, wenn du eh schon eine REST-API hast könntest du auch das PHP Backend weglassen und alles per JS im Browser machen (Single Page Application)
 
Es gibt jede Menge, fast zu viel zu Vue. Um das gelernte zu Vue zu einer Anwendungs-Komposition zusammen zu nageln, such ich nach einem Leitfaden. Wie braucht man, wie fängt man an.

Kennt jemand zufällig eine Tutorial mit einer simplen z.b. Adressverwaltung mit 1:n Kontakte mit einer LookUp Table für z.b. Adresstypen(Privat, Geschäftlich, usw.)
Bezüglich LookUpTable finde ich Beispiele mit dem Prinzip Autofill. Für ein paar Werte ist das völlig in Ordnung. Bei einer Desktop Anwendung würde ich eine eigene Form erzeugen um z.B. Artikel für eine Rechnung auswählen zu können. In dieser Form könnte ich dann nach Artikel suchen und die Möglichkeit schaffen mehrere Artikel auswählen und in die aktuelle Rechnung zu packen. Das ist mir bis jetzt noch nicht begegnet. In Bootstrap gibt es die Möglichkeit Modale Dialoge zu schaffen. Würde man das so umsetzen? In Vue gibt es das Prinzip der Komponenten. Ich würde es am liebsten als komplett neues Formular separiert in einer externen Datei aufbauen und dieses als Komponente bereitstellen. Somit könnte ich die Komponente in der gesamten Anwendung mehrfach nutzen. Ich habe auch Beispiele gesehen wie man Komponenten in Vue erzeugt aber das Drumherum fehlt mir irgendwie.
Mein größtes Problem ist allerdings zu wissen wie sich Desktop-Anwendungen zu Web-Anwendungen unterscheiden. Bei Web-Anwendungen macht man einiges anders. Das ist ein langer Weg. Könnt Ihr nachvollziehen was ich meine?
 
mastaqz schrieb:
* Überflüssiges Zitat editiert! *

Das mache ich schon, und zusätzlich auch in weiteren Büchern zu Vue. Aus dem was ich lese, kann ich nicht sagen ob ich Vue für mein Vorhaben einsetzen kann. Ich lerne gerade den Funktionsumfang. Durch das Forum hier haben erfahren das es dafür grundsätzlich geeignet ist.

Ich hoffe ich nerve hier niemandem!
 
Zuletzt bearbeitet von einem Moderator:
KatzOderKoder schrieb:
* Überflüssiges Zitat editiert! *
Antwort:
Es gibt im Webumfeld keinen UI-Builder als WYSIWYG Editor.
Du skiziziert zuerst einen Mock oder Dummy und baust den dann.
Der Ansatz Frontend und Backend per RESTful zu verbinden ist für neue Projekte quasi Standard.
Im Frontend kannst du dich dann "austoben" mit einer Javascript UI-Framework deiner Wahl:
-Angular, hier sogar Typescript
-React
-Vue
-etc
 
Zuletzt bearbeitet von einem Moderator:
Also ich muss doch sehr bitten! Bei diesen ganzen Auflistungen für eine simple WebApp (Symfony, PhpUnit, GraphQL, React, Vue, Svelte, Sqlite/Mongo/Neo4j, Typescript, etc.) wird DevOps überhaupt nicht beachtet:

Der ganze Shit muss in Micro- und Macroservices aufgeteilt, und via Kubernetes in der Cloud laufen! Ich sage nur Docker, Docker, und Docker! Rancher ist auch ok, aber Cloud muss sein. Event-sourcing machen wir dann mit kafka. Aber nur, wenn kafka noch angesagt ist, ansonst muss was anderes ran - ich prüfe das mal.

Die e2e-Tests halt normal mit Selenium.
Edit: Cypress
Edit 2: testcafe

Edit 3: ui.vision!

Es kann doch nicht sein dass alle Kunden die eine Web-Wendungen sich entwickel lassen bescheuert sind und ein vielfaches für das gleiche Ergebnis im Vergleich zu nativen Delphi Anwendungen bezahlen.

Ich würde gerne deine verbleibende Begeisterung für die FE-Webentwicklung auf eine weitere Probe stellen: https://dev.to/raicuparta/dealing-w...es-as-a-north-korean-front-end-developer-3158

In dem Artikel geht um die simple Darstellung eines Dropdown-Menus in verschieden Browser auf unterschiedlichen Endgeräten. lol.
 
  • Gefällt mir
Reaktionen: John Reese
Bezüglich Cloud, ich bin ein absoluter Gegner von Cloud, außer man hat die Cloud Infrastruktur bei sich im eigenen Haus incl. Daten und Anwendungen. :-) Dieses Thema sollte wir jetzt nicht aufkochen, kann durchaus sein das ich falsch liege. Es ist auch möglich eine Windows Delphi VCL-Forms Anwendung komplett in einer Cloud im Browser laufen zu lassen. Damit könnten ich mir die Webentwicklung komplett sparen.

Die Welt setzt jedoch auf Web-Anwendungen. Das hat sicherlich einen Grund. Der Link zum Artikel mit dem DropDown Box ist auch eine Sache die ich kritisiere. Die einzelnen OS Plattformen wollen uns Entwickler einreden, mann muss unbedingt Native Controls verwenden, die sind Stromsparend usw. Sie ignorieren einfach den Entwickler der sich Gedanken gemacht hat wie die Handhabung seiner Anwendung sein soll. Delphi hat ein Cross-Platform Framework Firemonkey womit die selbe Anwendung unter Windows, MaxOS, Android und bald auch Linux gleich aussieht und sich gleich verhält, mit (fast) dem selben Code nur anders kompiliert. Leider verfolgen sie diesen Weg nicht konsequent und versuchen die Platform Controls zu verwenden weil das so sein soll und besser ist als das was sich der Entwickler vorgestellt hat. Deshalb verfolge ich Firemonkey nicht mehr.
 
Da schwingt ganz viel Sarkasmus in NPC seinem Beitrag mit. Nicht sooo ernst nehmen. ;)
 
Hi ayngush,
meinst du mich? Ich habe mich jetzt auch Vue.js, Axios und PHP eingeschossen und versuch das erste experimental Projekt damit umzusetzen. Aktuell hackt es gewaltig weil die Beispiele nicht zur Projektvorlage von Vue.js passen. Ich werde mich schon durchbeißen. Oder bin ich komplett falsch?
 
Ne, ich meine NPC und seinen zynischen Beitrag. Die Realität ist, dass die Business-Prozesse und dessen technische Unterstützung auf Web-Technologien umgebaut werden, da man diese leichter warten (zentral), verknüpfen (web API) und skalieren (Container, Load Balancer, uvm.) kann. Zudem macht man sich nicht so sehr von den Endgeräten abhängig. Es spielt dann keine Rolle mehr, ob man mit iPads durch die Produktion läuft um Prozesse zu überwachen oder Maschinen zu steuern oder das vom Büro aus der Ferne aus macht.
Baut man wie früher dabei auf Desktop-Applikationen funktioniert das oben genannte nicht so leicht.
 
  • Gefällt mir
Reaktionen: wirelessy
Für den Vertrieb benutzt man bei uns Salesforce. In dem Bereich verdienen sich Entwickler dumm und dämlich (aktuell). Selbst Admins sind sehr gut dabei. Klassisches Frontend ist out. Lernseite dafür: trailhead

Normale Frontend Sachen wie Php, JavaScript, Angular, React usw. bringen dir deutlich weniger Brot auf den Tisch.Würde mich eher auf SpringBoot und Spring Frameworks konzentrieren, für das Backend sowas wie Kafka für bewegen vom Unmengen an Daten und dann der ganze Cloud Kram in dem die Programme/Docker Container leben, wie Kubernetes. Rancher, Spinaker usw. sind nur Verwaltungs und Deployment Tools um Kubernetes drum rum. Trendy ist auch Elastic Search, ne Art Dokumentenbasierte DB. Ansonsten schaut man sich noch den Aufbau von Buildpipelines an. Git -> Jenkins -> Docker -> Kubernetes etc. Da sind noch viele Schritte dazwischen, wie Testing, Sicherheitstests usw.

Damit findet man sofort gut bezahlte Jobs jenseits der >60.000€ Marke, alles Dinge die jede Firma in einer Form haben wird.

Cloud mag man toll finden oder nicht, aber sie nimmt einem den Aufbau einer Infrastruktur zum großen Teil ab und bietet funktionsfähige Lösungen von Anfang an. Schneller start und robust, ohne müsste man immer alles selbst machen und dass muss dann erst noch reifen. Risiko dabei ist, dass etliche Firmen ihre Daten z.B. bei Salesforce und Amazon hosten und mit deren Vorgaben leben müssen. Das ist mittlerweile so übel wie in App Käufe, wo man sich die Funktionalität, Traffic, Datenmengen etc. Stück für Stück teuer dazukaufen muss. Wird so ein Anbieter gehackt, dann ist die Hölle los. Aber immer noch sicherer als es selbst aufzubauen.
 
Zuletzt bearbeitet von einem Moderator:
Also wir und unsere Partnerunternehmen aus der Finanz- und Versicherungsbranche lehnen die public Cloud strikt ab, da man das Ding nicht unter Kontrolle bekommt. Der Dachverband GDV hat eine eigene community Cloud (und ein eigenes Netzwerk, parallel zum Internet, das ist aber schon sehr alt...) für vernetzte (unkritische) Anwendungen geschaffen, der Rest läuft brav im eigenen Rechenzentrum.
Das hat primär damit zu tun, dass da mit Daten herum hantiert wird, die man nicht in die Cloud packen "möchte" (darf). Gesundheitsdaten, Vermögenswerte, Schuldverschreibungen, ..., Personalausweiskopien (wegen GWG), Aufgezeichnete Telefonate bei Finanzberatung (wegen MIFID II) und noch so ein paar Klopper.
Das speichert man weder bei Salesforce in die Cloud noch nutzt man dafür Elasticsearch public Cloud Instanzen von Amazon. Wir sind ja nicht Adobe, bei uns geht es nicht darum, wer da wie oft ein Pfund Zwiebeln online bestellt.
Das gilt stellvertretent übrigens für so ziemlich alle Unternehmen und Behörden, die unter den kritischen Infrastrukturen angesiedelt sind.
Mal schauen, ob sich das mit Gaia-X ändert ich glaube aber eher nicht. Cloud bleibt eher ein Startup- / Hipsterbranchen- / Dauerentwicklungsthema für Unternehmen, die eigentlich nicht relevant genug sind aber schön, dass es sie noch gibt.
Den Nachteil vom vendor login und dass man sein gesamten business case auf good will dritter (zumeist US-Unternehmen) aufbaut hast du ja schon angesprochen. Wer so handelt hat sein Unternehmen längst aufgegeben.
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: KatzOderKoder
Zurück
Oben