Ich benötige ein Web Framework mit dem ich ein modernes Design
darstellen kann. z.B.Eingabe Controls, Balkendiagramme, Anmeldung,
Listen.
Aber ohne riesigen Overhead.
Ich Programmiere in PHP.
Kann mir da jemand was empfehlen?
Danke vorab.
Gestern noch C#, heute Web? Entscheide dich mal ;-)
Die Links von gestern passen übrigens hier genauso:
DevExpress und Telerik bieten auch Web UI Frameworks an.
Nilix schrieb:> Ich benötige ein Web Framework mit dem ich ein modernes Design> darstellen kann. z.B.Eingabe Controls, Balkendiagramme, Anmeldung,> Listen.
Du suchst also ein Front-End-Framework.
Nilix schrieb:> Ich Programmiere in PHP.
PHP ist aber eine Server-Side- und somit eher
Back-End-Programmiersprache. Du kannst kein WebUI mit PHP bauen.
Dominik S. hat da vollkommen recht.
Für tolle Diagramme, Charts etc. braucht man was, was im Browser läuft.
Die Sprache dafür ist i.d. Regel Java Script. Und das ganze mit dem
PHP-Backend zu verknüpfen, das dann die Daten liefert ist schon Arbeit.
Zumal du dich auch noch in das Frontend-Framework einarbeiten musst.
Daher mein Vorschlag, das mit C# zu machen. Da gibt es Controls für
Charts etc. (z.B. von Telerik)
Die Programmierung fühlt sich viel eher wie bei einer normalen
nicht-Web-Gui-Applikation an, die du anscheinend schon kennst.
Microsoft hat da imho schon einen guten Job gemacht. Das ganze
Marshalling der Daten, Abarbeitung von Events, die Einbindung der
client-seitig benötigten JS-Bibliotheken die deine Controls brauchen,
das funktioniert im Prinzip alles von selbst.
Du legst in der IDE einen Knopf auf die Webseite und ein Doppelklick
erstellt eine serverseitige Methode, die beim Klick auf diesen Knopf
Knopf aufgerufen wird. Du legst serverseitig andere Daten in das
Chart-Control und automatisch werden die dann auch im Browser angezeigt.
Plain PHP ist davon weit entfernt.
Tilo R. schrieb:> Daher mein Vorschlag, das mit C# zu machen. Da gibt es Controls für> Charts etc. (z.B. von Telerik)
Damit er am Ende noch einen Windows Server ins Netz stellt? Als wäre das
Netz nicht schon schlimm genug verseucht!?
Horst schrieb:> Tilo R. schrieb:>> Daher mein Vorschlag, das mit C# zu machen. Da gibt es Controls für>> Charts etc. (z.B. von Telerik)>> Damit er am Ende noch einen Windows Server ins Netz stellt? Als wäre das> Netz nicht schon schlimm genug verseucht!?
Und was stört dich daran?
Horst schrieb:> Tilo R. schrieb:>> Daher mein Vorschlag, das mit C# zu machen. Da gibt es Controls für>> Charts etc. (z.B. von Telerik)>> Damit er am Ende noch einen Windows Server ins Netz stellt? Als wäre das> Netz nicht schon schlimm genug verseucht!?
Die wenigsten wollen den Windows Server mit dem nackten Arsch ins
Internet hängen. Einen nginx Proxy davor entschärft die Sache deutlich.
Soo schlimm wie früher ist das mit Windows+Internet heute aber auch
nicht mehr ;).
Alex W. (gesperrt) schrieb:> Und was stört dich daran?
Ernsthafte Frage?
Spontan fällt mir ein:
* Windows Server ist unfreie Software. Als Anwender bist Du abhängig von
einem kommerziellen Unternehmen. Wenn Du nicht weißt was "frei"
beduetet, siehe hier: https://de.wikipedia.org/wiki/Freie_Software
* Windows erhebt Daten und übermittelt sie an Microsoft. Damit haben die
deutschen Behörden zur Zeit Schwierigkeiten. Ich finde es persönlich
ziemlich beschissen, dass Behörden ihre Software (und somit den Data
Flow) nicht im Griff haben, und nicht kontrollieren können, was ihre
Systeme machen. Denn es geht auch um meine Daten.
* Windows Server kosten Geld - viel Geld
* Vendor Lock-In
* Eingeschränkte Hoster-Auswahl (Stichwort Cloud)
Der Text von R. Stallman enthält einige Punkte, die eben nur halbwegs
richtig und relevant sind. Daher möchte ich auf die einzelnen Punkte
eingehen und für eine vielleicht undogmatischere Sichtweise als
Entscheidungsgrundlage werben.
R. Stallman schrieb:> Alex W. (gesperrt) schrieb:>> Und was stört dich daran?>> Ernsthafte Frage?>> Spontan fällt mir ein:>> * Windows Server ist unfreie Software. Als Anwender bist Du abhängig von> einem kommerziellen Unternehmen. Wenn Du nicht weißt was "frei"> beduetet, siehe hier: https://de.wikipedia.org/wiki/Freie_Software
Richtig. Aber praktisch irrelevant. Auch wenn mein ganzer Stack
quelloffen und frei ist habe ich (als Einzelperson oder kleine Firma)
weder die Fähigkeit, noch die Ressourcen um substantiell dazu
beizutragen.
"Ein Kernelprogrammierer wird man nicht über Nacht."
Meine Möglichkeiten, den Linux-Kernel, den Webserver, SSL, PHP,
Datenbank, und was man sonst so alles für eine Webapplikation braucht
irgendwie weiterzuentwickeln sind relativ überschaubar.
Ganz abgesehen davon ist es inzwischen durchaus möglich, in C#
programmierte Webapplikationen mit Mono auch unter Linux laufen zu
lassen.
> * Windows erhebt Daten und übermittelt sie an Microsoft. Damit haben die> deutschen Behörden zur Zeit Schwierigkeiten. Ich finde es persönlich> ziemlich beschissen, dass Behörden ihre Software (und somit den Data> Flow) nicht im Griff haben, und nicht kontrollieren können, was ihre> Systeme machen. Denn es geht auch um meine Daten.
Valide Postition, die ich voll und ganz teile.
Daten meiner Webapplikation selbst werden aber nicht übertragen.
> * Windows Server kosten Geld - viel Geld
Richtig, und auch für mich oft ein gutes Argument, Freie Software zu
verwenden.
Jenseits von Hobby-Projekten, wenn der Aufwand für Entwicklung,
Deployment, Hosting und Betrieb auch Geld kosten sind die Lizenzkosten
aber oft nebensächlich (weil geringfügig).
> * Vendor Lock-In
Das ist ein typisches Scheinargument. Es gibt immer einen Vendor
Lock-In, egal welches Produkt man nutzt.
Wenn du dich heute für PHP entscheidest ist das eine Wette, dass PHP die
nächsten Jahre verfügbar ist und deine Software mit neuen PHP-Versionen
kompatibel ist oder für die ältere PHP-Version für den ganzen
Produktlebenszyklus deiner Software Security-Updates verfügbar sind.
Das kann gut gehen, oder halt auch nicht. Das ist aber mehr oder weniger
unabhängig davon, ob die Software frei oder kommerziell ist.
Beispiel Angular 1: Quelloffen und frei, heute aber eine
entwicklungstechnische Sackgasse und inkompatibel zu Version 2.
> * Eingeschränkte Hoster-Auswahl (Stichwort Cloud)
Gibt es aber, auch in der Cloud.
Grundsätzlich hast Du Recht, trotzdem möchte ich Deine Ausführungen
gerne an zwei Stellen kurz kommentieren.
Tilo R. schrieb:> Richtig. Aber praktisch irrelevant. Auch wenn mein ganzer Stack> quelloffen und frei ist habe ich (als Einzelperson oder kleine Firma)> weder die Fähigkeit, noch die Ressourcen um substantiell dazu> beizutragen.
Niemand erwartet oder verlangt gar von Dir, "substanziell dazu
beizutragen". Ein Forenbeitrag oder Blogposting, ein paar Zeilen
Dokumentation oder -- im Falle des Falles -- halbwegs brauchbare
Bugreports oder eine gute Idee am richtigen Ort sind schon mehr, als
irgendwer von Dir erwarten würde. OpenSource ist die Summe vieler
Beiträge. Auch die kleinen Beiträge sind wichtig und sinnvoll, und
bringen die Software voran.
>> * Vendor Lock-In> Das ist ein typisches Scheinargument. Es gibt immer einen Vendor> Lock-In, egal welches Produkt man nutzt.>> Wenn du dich heute für PHP entscheidest ist das eine Wette, dass PHP die> nächsten Jahre verfügbar ist und deine Software mit neuen PHP-Versionen> kompatibel ist oder für die ältere PHP-Version für den ganzen> Produktlebenszyklus deiner Software Security-Updates verfügbar sind.
Das gilt für die meisten Technologien, für die es nur einen Anbieter
gibt. Allerdings gibt es zum Beispiel für die Skriptsprache Python
mittlerweile mehrere austauchbare Interpreter und auch Compiler, die den
Python-Code in C- oder C++-Code und diesen dann in nativen Maschinencode
übersetzen. Wenn also der Urvater der Python-Interpreter, CPython,
tatsächlich mal sterben sollte, werden PyPy, Jython und IronPython
vermutlich weiter existieren. Ähnliches gilt für GCC und LLVM oder auch
für Linux und die BSDs.
Nilix schrieb:> Ich benötige ein Web Framework mit dem ich ein modernes Design> darstellen kann. z.B.Eingabe Controls, Balkendiagramme, Anmeldung,> Listen.
Du kannst Python benutzen. Mit Frameworks wie Bottle, Flask oder auch
Django hast du mehr oder weniger Funktionen wie du sie brauchst.
Als mathematische Plot-Lib. kannst du Matplotlib nehmen. Braucht aber
alles Einarbeitungszeit.
Tilo R. schrieb:>> * Vendor Lock-In> Das ist ein typisches Scheinargument. Es gibt immer einen Vendor> Lock-In, egal welches Produkt man nutzt.
Nein, dass stimmt so nicht. Wenn man z.B. Markdown nutzt, kann man
zwichen hunderten Implementationen wählen. Man muss also nur schauen,
dass es Alternativen gibt, was bei OSS meistens der Fall ist.
Vendor Lock-in ist nicht zu unterschätzen. Ich würde sogar soweit gehen
zu behaupten, dass es eines der wichtigsten Kriterien ist, von welcher
Software man besser die Finger lässt. Immerhin nutzen die meisten OSS,
um selbst entscheiden zu können, was sie haben und wollen.
Die Auswahl einer Programmiersprache ist durchaus eine grosse
Entscheidung, die grossen Einfluss auf die Entwicklung, den Aufbau und
die schlussendliche Software habe kann. Bei den meisten
Programmiersprachen gibt es Forks, alternative Compiler und alternative
Implementationen der (Standard)libraries. z.B. gcc -> clang, libc++ ->
libstdc++, glibc -> musl libc -> uclibc -> newlibc -> ..., nodejs ->
ayo, etc.
Dagegen, dass man eine Programmiersprache wählen muss, kann man aber
natürlich nichts machen. Sowohl von einer Entwicklungsperspektive als
auch als Endbenutzer würde ich hier vorallem auf folgendes achten:
1) Ist die Programmiersprache und dessen Standardlibraries nicht
Proprietär oder durch Patente geschützt
2) Die Abhängigkeiten in grenzen halten, dessen Vertrauenswürdigkeit
prüfen (stichwort supply chain attack), und alle Lizenzen prüfen.
Ein Nutzer kann natürlich auch Präferenzen gegenüber Interpretern und
co. haben. Ich versuche beispielsweise Node.js und python für fremde
Desktopanwendungen zu vermeiden. Es ist Wahnsinn, wie viele Entwickler
von Node.js Anwendungen keine Sekunde überlegen, ob es eine gute Idee
ist die Tausenden teils fragwürdigen Abhängigkeiten von unbekannten von
einem Repo ohne Community die die aufmahne erst Diskutiert und die
Pakete mal anschaut zu verwenden.
Bei Node.js kommt noch dazu, dass es so schnell updated, die aktuellen
Versionen bekommt man nur von den Google Repros in meiner Distro. Sofern
ich das also nicht selbst kompilieren will, muss ich Google vertrauen,
dass die mir nichts unterschieben.
Und was c# angeht, der Compiler, und der net core sind OpenSource, die
meisten Desktopspezifischen Frameworks aber nicht. Eher würde mich aber
der integrierte Datenabgriff von .net beunruhigen:
https://blogs.msdn.microsoft.com/dotnet/2017/07/21/what-weve-learned-from-net-core-sdk-telemetry/
Nunja, wers riskieren will.
Bei Java sollte man im Moment auch wieder Aufpassen. Die Oracle
Geschichte kommt wieder hoch:
https://www.golem.de/news/oracle-gegen-google-java-nutzung-in-android-kein-fair-use-1803-133557.html
Dabei hatte alle schon geglaubt die Sache wäre endlich gegessen gewesen.
Jetzt müssen wir wieder vor Firmen aufpassen, die jetzt plötzlich wieder
APIs patentieren könnten. Wobei, vermutlich nur in der US.
Ansonsten, wenn man Clientseite und Serverseite durch eine saubere REST
API trennt, kann man das Front oder Backend schon mal einfach schnell
neu schreiben. Das habe ich mal bei einem Schulprojekt gemacht, erste
Aufgabe Bildgalerie, Vorgabe war PHP. Zweite Aufgabe Kammera Panorama
Bildaufnahme Webanwendung, vermutlich war gedacht, dass man das
bestehende weiterverwendet, aber da es diesmal keine PHP Vorgabe gab,
hab ich damals einfach schnell das Backend nach Node.js umgeschrieben,
hat in den 1-2 Wochen grade so gereicht. (war alles auf dem RPI).
Nachteil der Restschnittstellenmethode ist aber, dass man Client seitig
JavaScript benötigt. Mit Server seitigem Templating hat man das Problem
nicht, aber dann ist man beim Backend wieder festgenagelt. Eine
loose-loose Situation.
Das Web ist mittlerweile aber sowieso größtenteils ein Haufen
proprietärer und von wenigen Firmen dominierter Services. Es gibt zwar
versuche das zu ändern, z.B. Mastodon als Twitter Ersatz, bzw. das GNU
Social Projekt auf welchem es aufbaut und das OStatus Protokoll. Das
einzige Problem da ist einfach, dass alle Firmen und User mit ihren
Announcements und Newsmeldungen auf Twitter sind. Oder Solid, ins leben
gerufen von Tim Berners-Lee, dem "Erfinder des Web". Solid will die
Webanwendungen zur Interaktion der Daten und Services zur
Datenspeicherung trennen, so dass die User die Daten und Appzugriffe
verwalten können, und diese dadurch nichtmehr von einem Onlineservice
abhängig werden. Gleichzeitig spinnt er aber auch die Semantik Web idee
darin weiter, mit turtle und Co. für Ressourcenverlinkung etc. Ich habe
das für etwa ein Jahr beobachtet, aber es scheint nirgendwohin zu gehen.
Ich halte es für zu Komplex und Einschränkend für Entwickler, und die
meisten scheinen entweder kein Interesse daran zu haben, oder nichts
davon zu wissen. Und nachdem sich Tim
in der W3C für EME eingesetzt hatte, habe ich ehrlich gesagt das
Vertrauen in ihn komplett verloren. Der W3C sind die Nutzer letztendlich
doch komplett egal, im Committee sitzen ja sowieso nur grosse Firmen.
Und dann verkaufen sie unendliche Transparenz, veröffentlichen aber die
Voting Details nicht und besprechen auch sonst das meiste hinter
verschlossenen Türen. Man vergleiche das mal mit der tatsächlich
Transparenten IETF bezüglich RFCs.
Tilo R. schrieb:> Wenn du dich heute für PHP entscheidest ist das eine Wette, dass PHP die> nächsten Jahre verfügbar ist und deine Software mit neuen PHP-Versionen> kompatibel ist oder für die ältere PHP-Version für den ganzen> Produktlebenszyklus deiner Software Security-Updates verfügbar sind.
Bei derart weit verbreiteten Programmiersprachen wird das eher kein
Problem darstellen.