# Einstieg in die Webprogrammierung



## Lyreex (17. Jul 2019)

Guten Tag zusammen,

ich hätte da mal eine Frage: 
Möchte ich in die Webprogrammierung einsteigen. Ich hab bereits Erfahrung in Java gesammelt auch in Javafx und möchte jetzt mit Webprogrammierung weiter machen. Dazu habe ich auch schon ein konkretes Projekt im Kopf das ich über die Zeit realisieren möchte.

So ganz allgemein über das Projekt:
- Es soll später ein Login Screen geben
- Eingabe von Daten die dann tabellarisch dargestellt werden
- Die Tabelle soll auch von Diagrammen z.b. Kreis diagramm dargestellt werden
- Layout Farben soll der Benutzer ändern können (sowas wie Hintergrundfarbe der webseite)

Ich wollt jetzt mal fragen, mit was für einer Web Programiersprache kann ich sowas am besten umsetzen? 
Es wäre natürlich noch ideal, wenn diese an Java angelehnt wäre, also was Syntax und Verständnis von Objekten angeht.
Hin und wieder hab ich was von Angular gelesen.
Wäre Angular etwas um sowas umzusetzen? Oder vielleicht sogar NodeJs?


PS: Sorry wenn ich das im Falschen Themen Bereich eröffnet habe.


----------



## kneitzel (17. Jul 2019)

Also was Du da beschreibst setzt erst einmal ganz allgemein ein Grundwissen an HTML, CSS und JavaScript voraus. Egal, was Du wie nutzt: Das ist das, was am Ende im Client bestimmt, was da abgeht.

Aber woher dann die Daten kommen und welches Framework auf Clientseite verwendet wird, ist dann eine Detailfrage, die schwer zu beantworten ist.
Angular ist ein sehr vielseitiges Framework, welches vielseitig verwendbar ist. Hat gewisse Vorteile aber bringt auch einiges an Komplexität mit. Die Frage ist, ob die Komplexität am Anfang nicht zu viel wird. Aber https://angular.io/ hat auch ein schönes Getting Started.
Man kann aber auch erst einmal kleiner anfangen um erst einmal den Einstieg zu finden. Da könnte man z.B. Serverseitig bei Java bleiben und JSF und Co nutzen. (Java ist auch eine Insel hat da auch ein Kapitel zu meine ich). Das kann man dann langsam ausbauen - sowohl auf Server als auch auf Client Seite.
Vorteil: Man kann da langsam alles weiter steigern, und man wird nicht direkt erschlagen.

An Node.js kommt man kaum vorbei meine ich. Der Package Manager ist halt recht gut und man kann per npm die Teile ins Projekt einbinden, die man braucht. Aber ich würde mit Node.js keinen Serverpart aufbauen (aber ich bin halt kein großer JavaScript fan. Das mögen Andere ganz anders sehen).

Das wäre so meine kleine Sicht auf dieses Thema. Vielleicht war es ja hilfreich.


----------



## Lyreex (17. Jul 2019)

Das war aufjendefall schonmal sehr Hilfreich. Danke.



kneitzel hat gesagt.:


> Vorteil: Man kann da langsam alles weiter steigern, und man wird nicht direkt erschlagen.



Genau, ich hab mir ein wenig Angular angeguckt und hab mich so erschlagen gefühlt, weil ich einfach nicht richtig durchgeblickt hab. Klar ist irgendwo am Anfang normal aber da hab ich direkt die Komplexität gesehen, welche mich für den Anfang erschlagen hat.



kneitzel hat gesagt.:


> Also was Du da beschreibst setzt erst einmal ganz allgemein ein Grundwissen an HTML, CSS und JavaScript voraus. Egal, was Du wie nutzt: Das ist das, was am Ende im Client bestimmt, was da abgeht.



Das was ich bisher an HTML kann geht nicht wirklich über das Klasse "Hello World" Projekt hinaus. Also wäre das da schonmal der erste Anfang. Hast du zufällig eine Empfehlung für den Einstieg, in Richtung Online Kurs wie bei udemy (falls das bekannt ist)? 

Gerne auch eine Empfehlung für den Anfang Richtung JSF.


----------



## kneitzel (17. Jul 2019)

Also da macht es evtl. tatsächlich Sinn, erst einmal klein anzufangen. Evtl. schaust Du Dir einmal an, wie Du mit Java erste Webseiten zur Verfügung stellen kannst. Ein möglicher Start wäre hier z.B. http://openbook.rheinwerk-verlag.de/javainsel9/javainsel_23_001.htm

Damit hast Du aber dann erst einmal eine relativ einfache "Web Applikation" im ganz alten Stil: Client fordert eine Seite an und bekommt diese. Und dann fordert er halt die nächste Seite an ...
Damit vermeidest Du dann direkt einige an Komplexität und Du hast dann auch direkt Spielwiesen für CSS und JavaScript Spielereien.

So Kurse kenne ich nicht. Ich habe Bücher durchgearbeitet diesbezüglich. Ich habe dazu das Buch von MS Press zum 70-480 Exam genutzt.

Wenn Du da erste Spielereien hinter Dich gebracht hast und Du mehr auf den Client Part willst, dann ist Angular oder React der nächste Schritt aus meiner Sicht. Auch sehr schön, weil man damit auch die Desktop und Mobile Bereiche abdecken kann. (Apache Cordova/Phonegap, Electron, React Native, ...)


----------



## Thallius (18. Jul 2019)

www.selfhtml.org

Gruß

Claus


----------



## M.L. (18. Jul 2019)

> - Es soll später ein Login Screen geben
> - Eingabe von Daten die dann tabellarisch dargestellt werden
> - Die Tabelle soll auch von Diagrammen z.b. Kreis diagramm dargestellt werden
> - Layout Farben soll der Benutzer ändern können (sowas wie Hintergrundfarbe der webseite)


Die bereits genannten Grundlagen (HTML, CSS, JavaScript) sollten kein Neuland sein. IdR verwendet man dafür aber Frameworks, die die Routinetätigkeiten im Hintergrund erledigen (impliziert aber auch das man im Problemfall wissen sollte was das FW im Hintergrund tut): Twitter Bootstrap, JQuery, Angular, Vue.js, React.js,  OpenUI5,...
Angular ist ein Framework für grössere Webanwendungen, die sich wie eine reguläre Desktopapplikation verhalten (Stichwort SPA )
und hierfür wohl weniger geeignet.   Node.js dient der serverseitigen Programmierung mit JavaScript und ist für das Projekt wohl auch weniger geeignet.
Ansonsten kann man erstmal mit JSF anfangen ( Udemy - JSF mit CDI ), die Darstellung der Daten könnte Chartjs übernehmen, die Änderung der Layoutfarben dann JQuery.


----------



## temi (18. Jul 2019)

Was haltet ihr eigentlich von Vaadin?

Gibt es hier jemanden, der dieses Framework nutzt oder genutzt hat?


----------



## ARadauer (23. Jul 2019)

kneitzel hat gesagt.:


> Also da macht es evtl. tatsächlich Sinn, erst einmal klein anzufangen. Evtl. schaust Du Dir einmal an, wie Du mit Java erste Webseiten zur Verfügung stellen kannst. Ein möglicher Start wäre hier z.B. http://openbook.rheinwerk-verlag.de/javainsel9/javainsel_23_001.htm


JSP und Servlets? nicht dein Ernst oder? Sorry, halte ich nicht mehr für Zeitgemäß.. vor ein Paar Jahren noch ok für die Grundlagen, aber heute nicht mehr... 

Also Server Side Spring, Client Side Angular... guter weit verbreiteter Stack.


----------



## kneitzel (23. Jul 2019)

ARadauer hat gesagt.:


> JSP und Servlets? nicht dein Ernst oder? Sorry, halte ich nicht mehr für Zeitgemäß.. vor ein Paar Jahren noch ok für die Grundlagen, aber heute nicht mehr...
> 
> Also Server Side Spring, Client Side Angular... guter weit verbreiteter Stack.


Und wie findet ein Anfänger da den Einstieg?

Es geht hier um einen Anfänger der auch schon klar geschrieben hat, dass Angular ihn überfordert. Da auch noch mit einem Framework wie Spring zu kommen halte ich für Unsinn.

Und Angular integriert sich meiner Erfahrung nach nicht so gut mit Spring. Bei .Net war das ganz gut, aber ich nutze Clientseitig für meine Apps z.B. Vaadin. Wo ist das nicht zeitgemäß? Was für ein tolles Feature bietet mir Angular, das meinen Apps jetzt fehlt?

Und wieso nicht gleich auf Webassembly? OK, Java ist da derzeit wohl noch eher vernachlässigt worden, aber da der Ansatz sieht mir sehr vielversprechend aus.


----------



## Lyreex (23. Jul 2019)

Vaadin ist doch auch ein Framework oder?
Wie kann ich den sowas in mein Projekt einbinden? Oder besser gefragt: Wie kann ich auf Vaadin basierend ein Projekt erstellen?


----------



## mrBrown (23. Jul 2019)

Lyreex hat gesagt.:


> Wie kann ich auf Vaadin basierend ein Projekt erstellen?











						Vaadin Flow Quick Start
					

Learn to build and deploy a modern web application 100% in Java.



					vaadin.com


----------



## Lyreex (23. Jul 2019)

Okay hat super funktioniert danke.

Macht es sinn mit Vaadin den Einstieg zu finden?


----------

