Was sind die Probleme mit ColdFusion?

7

Hintergrund : Ich habe eine neue Website in der Entwurfsphase und erwäge die Verwendung von ColdFusion. Der Server ist derzeit mit ColdFusion und Python (für mich erledigt) eingerichtet.

Es ist meine Entscheidung, was zu verwenden ist und ColdFusion scheint mit dem Tag-Konzept faszinierend zu sein. Nachdem ich Websites in PHP und Python entwickelt habe, scheint die Idee, ein neues Tool zu verwenden, Spaß zu machen, aber ich möchte sicherstellen, dass es so einfach zu verwenden ist wie meine beiden anderen Möglichkeiten mit URL Verschönerung und Skalierbarkeit.

Gibt es irgendwelche allgemeinen Probleme bei der Verwendung von ColdFusion hinsichtlich Skalierbarkeit und Entwicklungsgeschwindigkeit?

Meine andere Wahl ist die Verwendung von Python mit WebPy oder Django.

    
Todd Moses 26.02.2010, 05:12
quelle

5 Antworten

9

ColdFusion 9 mit einem guten Framework wie Sean Cornfelds FW / 1 bietet viel Leistung und alle Funktionen einer modernen Webserver-Entwicklungssprache. Es hat einige großartige Integrationsfunktionen wie Exchange-Server-Unterstützung und Excel / PDF-Unterstützung aus der Box.

Wie alle Werkzeuge mag es für Sie die richtige Lösung sein, aber die Skalierbarkeit ist in der Regel mit Ihrem Code verbunden, selten mit der Plattform.

Nutzen Sie memcached oder die eingebaute E-hache in CF9, seien Sie schlau über Ihre Datenzugriffsstrategie, sammeln Sie intelligent zurückgelieferte Daten und Sie werden eine gute Leistung erzielen.

Mein Ansatz bei CF ist in letzter Zeit die umfassende Verwendung von jQuery für die clientseitige Logik und die Verwendung von CF für die erste Seiteneinrichtung und von AJAX-Aufrufen zum Füllen von Tabellen. Das reduziert den CF-spezifischen Code drastisch und erzwingt eine schöne logische Trennung. Außerdem reduziert es die Abhängigkeit von einer einzelnen Plattform (abgesehen von der ausgezeichneten jQuery-Bibliothek).

Um Ihre Frage speziell zu beantworten, wenn Sie hier die [coldfusion] -Tags lesen, werden Sie sehen, dass Fragen selten auf Geschwindigkeit oder Skalierbarkeit stehen. Viele der Fragen scheinen an Orten zu liegen, an denen CF auf einem anderen Werkzeug wie Apache Axis (Webservices) und ExtJs (cfajax) eine ziemlich dünne Schicht ist - von denen Sie keine verwenden müssen. Sie werden wahrscheinlich mod-rewrite oder IIS rewrite benötigen, um .cfm

zu verstecken     
kevink 26.02.2010, 12:37
quelle
6

Da Ihnen ColdFusion und Python bereits zur Verfügung stehen, würde ich genau überlegen, was genau Sie erreichen möchten.

Benötigen Sie eine graduelle Lernkurve, eine Anfänger-freundliche Sprache (einfach für jemanden, der HTML zu lernen weiß), großartige Dokumentation und viele Funktionen, die normalerweise schwierige Aufgaben einfach machen? Das klingt nach einem Job für ColdFusion.

Wenn Sie die Grundlagen von ColdFusion nicht kennen, können Sie leicht in einen objektorientierten Ansatz übergehen (wie bereits erwähnt, gibt es eine Vielzahl von MVC-Frameworks: FW / 1, ColdBox, Fusebox, Model-Glue) , Mach-ii, Lightrot, und die Liste geht weiter ...), und es gibt auch Frameworks für die Abhängigkeitsverwaltung (DI / IoC) (mein Favorit ist ColdSpring, nach dem Spring-Framework von Java modelliert) und die Möglichkeit, Aspect zu machen -orientierte Programmierung ebenfalls. Schließlich gibt es auch mehrere ORM-Frameworks (Transfer, Reactor und DataFaucet, wenn Sie CF8 oder früher verwenden oder Hibernate zur Liste in CF9 + hinzufügen).

ColdFusion spielt auch gut mit allem anderen da draußen. Es kann .NET-Assemblys laden und verwenden, bietet nativen Zugriff auf Java-Klassen und macht das Erstellen und / oder Verwenden von Web-Services (insbesondere SOAP, aber REST ist möglich) ein Kinderspiel. (Ich denke, es macht sogar com / corba, wenn du Lust hast, Tech von 1991 zu benutzen ...)

Leider habe ich keine Erfahrung mit Python, daher kann ich nicht auf seine Stärken eingehen. Vielleicht kann ein Python-Entwickler dort etwas Licht werfen.

Wie bei der URL-Umschreibung, (wieder, wie andere bemerkt haben), ist das nicht wirklich in der Sprache gemacht (obwohl Sie es täuschen können); Um eine wirklich gut aussehende URL zu erhalten, brauchen Sie entweder mod_rewrite (was ohne .htaccess erledigt werden kann, stattdessen würden die Regeln in Ihre Apache VHosts Konfigurationsdatei gehen), oder mit einem der IIS URL Rewriting Produkte.

Das "Fudging", auf das ich angespielt habe, wäre eine URL wie: Ссылка - die ".cfm" befindet sich in der URL, sodass die Anforderung vom Webserver (Apache / IIS) an den Anwendungsserver (ColdFusion) übergeben wird. Um die ".cfm" in der URL loszuwerden, müssen Sie wirklich ein URL-Neuschreiben-Tool verwenden; Es gibt keinen Weg um ihn herum.

    
Adam Tuttle 26.02.2010 13:57
quelle
2

Seit zwei Jahren, in denen ich mit CF arbeite, sind für mich die größten Probleme:

Wenn Sie hauptsächlich Tags (statt CFScript) und Formatierungen zur besseren Lesbarkeit verwenden, sollten Sie darauf vorbereitet sein, dass Ihre Ausgabe mit Leerzeichen gefüllt wird. Im Gegensatz zu anderen Skriptsprachen werden die Leerzeichen zwischen den Anweisungen tatsächlich an den Client gesendet. Wenn Sie also etwa 100 Mal eine Schleife durchlaufen und das Ergebnis ausgeben, werden alle Zeilenumbrüche und Tabs im Schleifenquellcode 100 Mal angezeigt. Es gibt verschiedene Möglichkeiten, aber es ist schon eine Weile her - ich bin mir sicher, dass jemand in SO die Frage schon einmal gestellt hat. Eine schnelle Suche wird Ihnen also Ihre Lösung geben.

Bezieht sich auf das Problem mit Leerzeichen, wenn Sie ein Skript schreiben, das mit AJAX oder Flash verwendet werden soll, und Sie versuchen, xml zu senden; sogar ein einzelnes Leerzeichen vor der DTD kann einige der pingeligeren Parsing-Engines durchbrechen (jQuery pflegte, so umzufallen - ich weiß nicht, ob es immer noch funktioniert und Flash war ein Albtraum). Als ich das zuerst getan habe, habe ich stundenlang versucht herauszufinden, warum etwas, das wie gut geformtes XML aussah, mein Skript zum Absterben brachte.

Die späteren Versionen sind nicht so schlecht, aber ich habe auch an Legacy-Systemen gearbeitet, bei denen es sogar an grundlegenden Funktionen gefehlt hat. Ziemlich oft werden Sie feststellen, dass Sie nach einer COM- oder Java-Bibliothek suchen müssen, um die Aufgabe für Sie zu erledigen. Auch dies ist in den früheren Versionen.

CFAJAX war ein schweres, schwerfälliges Biest letztes Mal, das ich überprüft habe - also nicht stören, rollen Sie Ihre eigenen.

Abgesehen davon fand ich, dass CF eine lustige Sprache ist, mit der man arbeiten kann - es hat seine Eigenheiten wie alles andere, aber im Großen und Ganzen war es meistens kopfschmerzfrei und schnell zu arbeiten.

Hoffe das hilft:)

Prost

Iain

BEARBEITEN: Oh, und aus Gründen, die Adobe am besten bekannt sind, erhalten Sie, wenn Sie die Testversion ausführen, vor jeder Ausgabe einen netten, fetten HTML-Kommentar - unabhängig davon, ob Sie HTML ausgeben oder nicht. Und ja, weil der Kommentar vor Ihrer DTD erscheint, seien Sie auf einige Browser vorbereitet (die nicht auf einen bestimmten schauen!), Um es als Mist darzustellen. Nochmal - vielleicht haben sie das in der neuen Version überdacht ...

EDIT # 2: Sie haben auch das URL Rewriting erwähnt - wo ich früher gearbeitet habe, haben wir das immer gemacht - keine Probleme. Wenn Sie auf Apache laufen, verwenden Sie mod_rewrite. Wenn Sie auf IIS laufen, kaufen Sie ISAPI Rewrite 3.

    
Iain Fraser 26.02.2010 05:30
quelle
2

Mach dir den Gefallen und schau dir das CFWheels -Projekt an. Es hat die URL-Rewriting-Unterstützung und Routen, die Sie suchen. auch als full stack mvc framework kommt es mit seiner eigenen orm.

    
rip747 26.02.2010 14:23
quelle
1

Es ist ein paar Jahre her, also sind meine Informationen vielleicht etwas veraltet, aber nach meiner Erfahrung:

Vorteile:

Coldfusion ist leicht zu erlernen und schnell zu Ende zu führen.

Nachteile:

Wie bei vielen serverseitigen Skriptsprachen gibt es keine echte Trennung zwischen Persistenzlogik, Geschäftslogik und Präsentation. Alle diese sind typischerweise in einer typischen Coldfusion-Quelldatei miteinander verwoben. Dies kann viel mehr Arbeit bedeuten, wenn Sie beispielsweise Änderungen am Datenbankschema einer ausgereiften Anwendung vornehmen möchten.

Es gibt einige Disziplinen, die befolgt werden können, um die Dinge etwas aufrechterhaltbar zu machen; "Fusebox" war einer. Es kann andere geben.

    
Scott Smith 26.02.2010 05:44
quelle

Tags und Links