Hi,
ich tue mich einfach schwer mit der Einordnung ob meine Fragen jetzt fortgeschritten sind oder nicht, es geht hier aber um ein groesseres Projekt und ein paar Detailfragen, darum nehme ich einfach mal an es ist fortgeschritten. Wenn nicht, bitte verschieben :) (und nicht boese sein)
Zum Projekt:
Ich plane hier an einer Webapplikation die Objekte in einem Laden verfolgt und per Webinterface im Intranet anzeigt wo sich diese aufhalten, zudem koennen sich Kunden einloggen und sehen wo sich ihr Objekt aufhaelt. Als Beispiel nehme ich mal ein Fahrrad was auf Kundenwunsch zusammengebaut wird. Meine Software verfolgt den Rahmen wie er lackiert wird, trocknet, zusammengebaut wird und schliesslich im Lager landet. Der Ladenbesitzer kann detailiert sehen wo sich der Rahmen bzw. das Fahrrad befindet (in welcher Trockenkabine, welcher Werkstadt) und der Kunde kann sehen in welchem Stadium sich das Fahrrad befindet (lackieren, trocknen, Montage, Lager), ich hoffe ihr versteht was ich meine.
Mein Problem:
Bei meinen vorherigen Projekten habe ich alles selbst geschrieben, sprich kein Framework benutzt und kenne mich nicht mit dem MVC Modell aus. Das ist ein grosser Aufwand, aber laesst mir auch grosse Freiheit und ich weiss wie leistungsintesiv eine bestimmte Funktion ist und kann das gegebenenfalls optimieren.
Jetzt hab ich mir mal kurz Cake angesehen, und muss sagen es gefaellt mir. Ich sehe wie Aufgaben die vorher 2-3 Stunden dauerten in ein paar Minuten fertig sind. Allerdings habe ich die Befuerchtung dass ich z.B. mit der Datenbankverbindung sehr eingeschraenkt werden (dieses ActiveRecords). Im Moment hab ich ein paar komplexe Queries (JOINS etc.), kp wie das mit Active Records aussieht, hat da jemand Erfahrung mit?
Ansonsten wuerde ich gerne wissen ob jemand auf andere Einschraenkungen gestossen ist die ich in 15 Minuten nicht entdecken konnte (ich konnte sowieso so gut wie nichts entdecken) und ob es sich im allgemeinen lohnt sich mit den Einschraenkungen abzufinden, bzw. sich in so ein Framework einzuarbeiten.
Desweiteren, welches Framework wuerdet ihr empfehlen? Ich wollte mir symfony und cake angucken, aber symfony ist schwierig zu installieren, hatte ich jetzt kein Intresse dran. Wichtig ist vor allem Performance und Skalierbarkeit (wenn das Projekt gross wird dann solls trotzdem funktionieren :P)
Und meine letzten Gedanken betreffen PHP selbst, ist wahrscheinlich nicht so geschickt diese Frage in einem PHP Forum zu stellen (:P), aber inwiefern sollte ich bei PHP bleiben? Ich hab jetzt viele Diskussionen ueber PHP gelesen, aber keine konnte mich jetzt wirklich ueberzeugen zu Ruby oder Python zu wechseln. Habt ihr vielleicht auch schon solche Unsicherheiten durchgemacht, und zu welchem Ergebnis seid ihr gekommen? Alles was ich lese betrifft die Lesbarkeit der Sprache, aber ich komm mit PHP sehr gut zurecht, der einzige Grund zu wechseln waere also wenn PHP sehr schlechte Leistung haette oder aehnliches, aber dann wuerden ja wohl kaum so viele Leute PHP einsetzen. Darum frage ich mich, warum gibt es ueberhaupt diese Diskussionen? o.O PHP funktioniert doch.
Naja, ich hoffe ihr koennt mir mit den Frameworks helfen, es handelt wirklich um ein groesseres Projekt, keine Clanseite oder so, darum wuerde ich im Vorfeld gerne von anderen wissen wie sie in groesseren Projekten arbeiten, mit oder ohne Frameworks, welche etc. pp.
Mfg,
Thomas
Antworten
Hi,
ein Prof von mir sagte immer "Das Problem bestimmt die Lösung". Soll heissen, Du musst gucken, welche Sprache bietet für Dich die beste Möglichkeit Dein Problem zu lösen.
Wenn Du mit PHP gut zurecht kommst und Du nur ein paar Seiten dynamisch anzeigen lassen willst, z.B. Inhalte aus Datenbanksystemen aufbereiten und anzeigen, dann ist PHP gut geeignet. Sobald Du aber mehr möchtest, z.B. Persistenzlayer, Webservices, Lastverteilung/Clustering usw. dann hast du mit PHP schnell das Ende des sinnvollen erreicht und man sollte sich überlegen auf Java/Ruby/Python/.Net o.ä. umzusteigen.
Ob und welches Framework Du benutzt musst Du auch selber entscheiden. Du solltest Dir überlegen, was bringt mir das Framework? Hilft es mir bei dem Vorhaben oder stellt es nur eine zusätzliche Belastung dar ( zusätzlicher Lernaufwand für das Framework ohne oder nur mit geringem Mehrnutzen)? Wird das Framework von einer großen Comunity unterstüzt oder ist die Entwicklung ins Stocken gekommen. Wie ist das Feedback zu dem Framework? Macht es den Eindruck von professionellen Entwicklern geschrieben worden zu sein oder eher von Wald und Wiesen Schreiberlingen?
Um das Projekt nicht unnötig aufzublähen sollte man darauf achten, dass ein Framework wirklich neue Funktionen bietet und nicht nur alte vorhandene Funktionen in einer neuen API abbildet.
Mit freundlichem Gruß
Chris
2.
Ein weiteres Framework ist z.B.
Prado das Olli gerade für sein Auboard einsetzt und ihm wohl gut gefällt :).
Und selbst PHP ist kein Universalwerkzeug. Man kann vieles mit und in PHP lösen, aber andere Dinge sind anders viel besser gelöst, da es schneller, leichter, etc. ist.
3.
Was auch ganz gut sein soll ist
agavi.
ciao SunboX
4.
Danke fuer die Antworten.
Das Projekt wird zweiteilig, eine Installation im Intranets des Ladens und eine auf einem Webserver.
Die Datensaetze muessen staendig abgeglichen werden, also ist das schon ziemlich komplex.
Ich denke ich werde mich zwischen Ruby mit ROR und PHP mit Cake entscheiden muessen.
Prado hat jetzt auf den ersten Blick nicht so den Dokuumfang von Cake.
Ich werd wohl ums experimentieren nicht umher kommen :(
mfg Thomas
5.
Dann untersuch mal ROR genauer. Action Web Service klingt dort sehr interessant. Damit kannst Du Dir den "Abgleich" der Daten sparen, wenn Du die Daten zentral auf dem Intranet Server speicherst. Die Soapimplementierungen unter PHP sind nämlich fehlerhaft ohne ende und für einen Produktiveinsatz ungenügend.
Gruß Chris
6.
Hallo,
auch wenn der Thread schon ein wenig älter ist:
nachdem ich mich für Intranet-Projekte nach einem Framework umsah, und einiges gestetest habe arbeite seit ca. 12 Monaten mit QCodo (http://www.qcodo.com) und werde nicht wieder wechseln.
Einen Einblick in die Entwicklung mit QCodo geben die Videos, unbedingt ansehen...
mfg
prosbaer
7.
Jo,
wer es sich leisten kann mit ewig Beta-Software zu arbeiten :)
Qcodo ist nett, da es versucht die Features von Ruby on rails zu imitieren (CRUD/Convention over Configuration usw.). Böse ist die Sache aber, dass die API noch nicht als stabiel bezeichnet werden kann. Ein Update auf eine aktuellere Version ist dann mit sehr viel Nacharbeit am eigenen Projekt verbunden. Allein die Änderungen von Beta 2 auf Beta 3 machen dieses Framework nicht gerade zum Traum eines Entwicklers. Wie bei fast jedem OpenSource Projekt hinkt auch hier die Dokumentation dem System hinterher. Man sollte also die Online Anleitung nicht ganz so genau durchlesen und sich eher an die Anweisungen und überraschend aussagekräftigen Fehlermeldungen des Frameworks orientieren.
Ein weiterer Schwachpunkt ist die nicht vorhandene Unterstützung anderer DB-Systeme als MySQL. Da dieses Framework auf PHP5+ zugeschnitten ist, verwundert es doch etwas, schließlich gibt es dafür PDO.
Letzten endes muss jeder selbst entscheiden, ob er die Kopie dem Original vorzieht :)
Gruß Chris
8.
Hi,
QCodo versucht *nicht* die Features von Ruby on Rails zu imitieren. Es ist keine ROR-Portierung nach PHP5.
Es verfolgt einen *anderen Ansatz*. QCodo ist ein Development-Framework, und kein Application Framework.
Es besteht aus einer Klassenbibliothek, bei der auf Events entweder mit ServerActions oder mit AjaxActions reagiert wird, (das ist nur eine Zeile Unterschied), und der CodeGenerator generiert Code aus dem DB-Schema. Es gibt wirklich anfassbare Klassen, form_drafts, die angepasst werden *sollen*, und data objects, die das Datenbank-Handling kapseln. Echte Klassen, keine Runtime Reflection, was natürlich eine höhere Performance nach sich zieht...
Der Chefentwickler von QCodo hat die Möglichkeit Custom Queries zu schreiben, wieder in den Core integriert. Aber Du hast Recht, anfänglich ging nix mehr mit Version 0.3... Aber in den einem Folgereleases ist der Alte Weg aus 0.2.X wieder enthalten, so das ich keine Probleme hatte meine 0.2.X Projekte (4 kleine (5-10 Tabellen) und eine größere (25 Tabellen)) unter 0.3 laufen zu lassen. Ein paar Handgriffe sind schon nötig...
QCodo spart mir Zeit in der Intranet-Entwicklung, bei gleichzeitig kleinerer Fehlerrate....
ROR ist in zwar aller Munde, aber nicht die Krone der Schöpfung.
just my 2 cents
probaer
9.
Moin,
sorry, aber für ein Produktionssystem ist ein "anfänglich ging nix mehr..." ziemlich tödlich :) Es erweckt den Eindruck, als wenn das Projekt eine ziemlich lasche Projektleitung hat und niemand so wirklich weiss, wohin der Zug eigentlich gehen soll. Wie gesagt, wer damit leben kann ein ewig Betaprojekt einzusetzen, der soll es tun.
Das es auch anders geht, zeigt dieses Projekt :
SymphonyFeatures: Propel/PHP5 als Templateengine/Ajax usw.
Gruß Chris