Webtechnologie - Herangehensweise an Technologieauswahl bei neuem Projekt?

the incredible Leitman

Erfahrenes Mitglied
Hallo liebe Tutorialianer ^.^


(Tut mir leid, falls der Beitrag hier überhaupt nicht reinpasst, aber diese Kategorie erschien mir noch am passendsten. Falls ein Mod da anderer Meinung ist, bitte walte deines Amtes :D )


Ich werde voraussichtlich mit Beginn des nächsten Monats ein neues Projekt in meiner Firma bekommen und zusätzlich aufgrund einer kürzlichen Beförderung einen größeren Aufgabenbereich... was darin resultiert, dass ich für Architekturfragen, Auswahl der Technologie und Systemspezifikation verantwortlich bin :-s


Nun wir unser nächstes Firmen Großprojekt eine Anwendung sein, die sich über den Browser bedienen lässt,
ebenso wie über die Command Line.
(das ganze geht dann weiter auf ein embedded, Kernel wird voraussichtlich in C sein, aber das geht mich dann alles nichts mehr an, ich bin lediglich für die Konfiguration der Benutzeroberfläche veranwortlich).

Nun versuche ich bereits seit geraumer Zeit, dafür passende und geeignete Technologien zu finden, bzw. Gründe dafür und dagegen.

Ursprünglich wären mit (x)HTML, JavaScript und AJAX in den Sinn gekommen,
mein Chef hat seine Begeisterung für Ruby On Rails bekundet (bloß wegen des Namens her xD)
Flash, Unity, Silverlight schließe ich prinzipiell vorab aus, da es sie hierbei nicht um eine großartig animierte Sache handelt, sondern lediglich um eine Reihe von Formularen mit Eingabe und Konfigurationsmöglichkeiten.

Im Endeffekt wird das ganze wie ich verstanden habe, ähnlich der Benutzeroberfläche für die Konfiguration eines Routers... plus eben die Möglichkeit, das ganze per Command in die Eingabeaufforderung zu steuern.

(ich betone, ich habe auf diesem Gebiet KEINERLEI Erfahrung :-s War bisher die letzen 5 Jahre mehr oder minder erfolgreicher dotnet Entwickler, mit HTML habe ich während meiner Lehrzeit Kleinigkeiten gemacht, damals was CSS aber noch nicht so der Bringer xDDD)



Jedenfalls...

Ich bitte euch hiermit um eure Mithilfe :-(
Was bieten sich hiermit für Technologien an? Beziehungsweise, womit kann ich meine Entscheidung dann begründen?
Wo kann ich mich diesbezüglich ausreichend informieren, an wen kann ich mich wenden? :-s
Wie gesagt, ich habe kaum Erfahrung mit irgendeiner der besagten Technologien (blush)



herzlichen Dank
the incredible Leitman
 
Hallo incredible Leitman ,

Ich liste dir jetzt einfach mal Vor- und Nachteile der Techniken die mir so einfallen auf.

JavaScript:
+
- Eigenschaften von HTML-Elementen können direkt manipuliert werden
=> Gut um z.B. lehre Pflichtfelder im Formular zu kennzeichnen oder Ähmliches
-
- Wird Client-Seitig ausgeführt
=> Browser und Einstellungen beeinflussen bzw. verhindern die Ausführung des Scripts

PHP:
+
- Wird auf dem Server ausgeführt (z.B. Apatchie in XAMPP)
=> Unabhängig vom Client + evtl. mehr Sicherheit / Geheimhaltung des Codes selbst
Technik:
Über URL also ein Link wie bsp.com/index.php?id=4&lang=en
( PHP-Script bekommt Variablen $_GET['id'] und $_GET[lang] )
oder
HTML-Formular mit method="post" action="index.php" onsubmit="true" (User kann werte nicht beliebig setzen bzw. weglassen)
beim Klick auf submit werden dann die Inhalte der Textfelder, ect. als Variablen übermittelt
Hinweis: stadt onsubmit="true" onsubmit="post()",
post() wäre dann eine JavaScript-Funktion die nur true zurückgiebt wenn alle Pflichtfelder ausgefüllt sind.

Java-Applet:
+
- fast alle Möglichkeiten einer Java-Desktop-Anwendung
- neben JDBC auch Object Related Mapping mit der Persistence API und Hibernate möglich
=> einfaches Modellieren und Verarbeiten großer Datenmengen und komplexer Relationen
-
- kein schönes und Individuelles Design mit CSS
- Server muss MIME-Type application/x-java-applet kennen
(ist beim Apathie Standart)
- User braucht JRE

Natürlich käme auch die JEE mit Hibernate, JSP & co. im Frage, ist für einfache Formulare aber doch etwas übertrieben.

Ich würde hier zu PHP tendieren, ich kenne mich aber nicht so mit den Möglichkeiten von Ruby und Server-Seitigen JavaScripts aus, könnte also gut sein dass es damit noch besser geht.

javaDeveloper2011
 
Ich würde mal auf RoR (also Ruby on Rails) eingehen, was dir in gewisserweise alles bietet, was du willst. Ruby on Rails ist seit einigen Versionen RESTful. Das heißt, dass es neben den HTTP-Verben GET und POST (dürften dir bekannt sein) auch die Verben DELETE und PUT verwendet. Über die Kommandozeile könntest du unter allen UNIX- und unixoiden Systemen mit curl arbeiten. RoR integriert von Haus aus AJAX und bietet dir eine Vielzahl an Erweiterungen, ist mit einer Vielzahl von Datenbanken kompatibel (kompatibel heißt in dem Fall, dass du quasi nur den Datenbanktyp ändern musst und du kannst mit einer anderen Datenbank arbeiten) und bietet dir eine Vielzahl an Möglichkeiten Daten auszugeben. Falls ein Browser kein AJAX unterstützt oder Javascript deaktiviert wurde, arbeitet RoR alles ohne ab mit dem Unterschied, dass für jede Handlung ein Neuladen der Seite (wie normal) nötig ist.

Soviel zu den Vorteilen. Der große Nachteil von Ruby-Webanwendungen ist, dass du gut auf die Architektur achten musst, die darunter liegt, weil sonst Ruby deine Performance in Mitleidenschaft zieht oder dein Server ganz den Geist aufgibt. Das sollte allerdings heutzutage auch kein allzu großes Problem darstellen, da es eine Vielzahl an Webservern für jedermanns Problem gibt. Außerdem existiert auch mod_rails für den Apache-Webserver.
 
Hey, vielen Dank erstmal euch beiden für die Antworten...

Genau das habe ich befürchtet xD
Das ist, wie bei "normalen" Programmiersprachen genau das selbe... im Endeffekt hängt die Auswahl rein von persönlichen Vorlieben ab ^.^


Ich hab mich jetzt mal das Wochenende auf w3schools.com bezüglich xHTML, CSS, JS und AJAX informiert und die kompletten Tutorials durchgeackert.
War vom "Grund"-Lernaufwand jetzt eigentlich im Großen und Ganzen weniger, als ich befürchtet habe, davor hab ich mich die letzten Jahre immer gesträubt xD

Die Frage ist halt nur, in wie weit "easy to learn, hard to master" jetzt hierbei zutrifft :-s

Für Ruby habe ich einsweilen nichts in dieser Kategorie (blutiger Anfänger xD) gefunden,
ich sehe mich aber eben bei rubyonrails.org um,
für Alternativen / Vorschläge bin ich aber gerne offen :)


daaamn, ich hab nie ne Ausbildung als Systemarchitekt oder etwas dergleichen gemacht,
ich hab sowas von keine Ahnung, wie man an das rangeht >_<




detaillierte Anwort zu den Beiträgen:
@JavaDeveloper:
Was JS angeht, hört sich für mich das mit den kennzeichnen absolut passend an,
das Ermöglichen und Ausführen von Scripts kann ich doch vom Kunden verlangen oder?
Mit einer Warnmeldung a'la "Damit diese Anwendung korrekt läuft muss Javascript aktiviert werden" (glaub Facebook macht das auch so und keiner beschwert sich)

PHP hab ich ebenso keinerlei Erfahrungen xD, die Geheimhaltung des Codes reizt mich aber. ^^
Was du hier über Techniken usw. schreibst, sorry, ich verstehs nicht :-(

Java-Applet hört sich für mich absolut überdimensioniert an... ich brauche keine großen Datenmengen und komplexe Relationen verarbeiten können...
... denke ich xD
Dafür denke ich, anders als bei JS, kann man vom User nicht erwarten, extra JRE installieren zu müssen?



@crack:
hm... Danke erstmals für die Anwort, zu RoR habe ich mich wie gesagt, noch nicht sehr schlau gemacht,
wäre aber für Anfänger- und Lerntutorials die das komplette Framework beschreiben dankbar :)

Klingt aber sehr vielversprechend :)




Überhaupt... weil es mich intressiert,
womit sind üblicherweise solche GUIs für Router geschrieben? Denke mein zukünftiges Projekt wird ähnlich sein, vom Verhalten und den Anforderungen.

Oder Facebook? Das übersteigt zwar bei weitem die Projektanforderungen, würde mich aber dennoch privat interessieren ^^
 
Also alle heutigen Seiten bauen auf HTML und Javascript (inklusive AJAX) und kleine Java-Applets, wenn es darum geht komfortablere Dateibrowser zu erstellen. Im Hintergrund läuft oft PHP, ansonsten ASP, JSP oder immer häufiger eben Ruby. Bei allen serverseitigen Sprachen sollten die Skripte geheim gehalten werden.

Facebook baut auf PHP und geht einen Schritt weiter mit ihrem HipHop. Das heißt, dass sie ihre PHP-Skripte in C-Skripte umwandeln und kompilieren, was das Interpretieren der Skripte bei jedem Aufruf entfernt und somit wesentlich performanter ist.

Zu RoR: auf rubyonrails.org steht das Wichtigste da. Installiere es dir einfach und der Rest ergibt sich in den meisten Fällen von selbst.
 
Na okay,
danke euch allen erstmal, ich denke ich werde mal hier zumachen :)


Schön wären noch Informationen/Empfehlungen, an die Herangehensweise bei neuen Projekten,
aber das kann ich mir bestimmt auch alles mühsam aber ehrlich ergooglen ^^
;-)
 
Zurück