Die Flexperten Herrlich & Ramuschkat

Archiv für die Kategorie 'Tipps'

Coldfusion: dynamisches Aufrufen von CustomTags

Bei einem unserer Kunden werden ScheduledTasks zum Benachrichtigen von Anwendern eingesetzt. Dabei unterscheiden sich die Mail-Texte, Empfänger und Betreffzeilen erheblich. Weil wir es den anderen Entwicklern nicht zumuten wollten ständig im Coldfusion-Administrator eigene ScheduledTasks anzulegen haben wir einfach eine zentrale Steuerungsdatei implementiert, die dynamisch alle CustomTags in einem Verzeichnis aufruf und nacheinander ausführt.

Weiterlesen »

Coldfusion: [Macromedia][SQLServer JDBC Driver]Syntax error at token 0, line 0 offset 0

Ich sitze zur Zeit bei einem Kunden, der eine über die Jahre etwas wild gewachsenen Coldfusion-Anwendung laufen hat und suchte nach der Ursache für den in der Überschrift genannten Fehler, der nach einer nur minimalen Änderung an x-fach verschachtelten cfif-Bedingungen auftrat. Das Ergbnis aus den Bedingungen wird in einem cfquery verwendet und an dieser Stelle tritt auch der Fehler auf. Dank des Debuggers im Coldfusion Builder stellte sich dann allerdings bald raus, das am Ende der Bedingungsprüfungen gar kein Inhalt raus kam, das cfqurey-Tag also gar nichts an die Datenbank sandte!

Zusammenfassend (und für meine interne Wissendatenbank aka Gehirn): Verwende niemals, niemals nicht ein leeres cfquery! Bzw. überprüfe sehr genau die Logik, die zum Füllen des cfquery-Tags verwendet wird.

Coldfusion Builder Quicktip: Strg + Klick

Auf die Schnelle ein kleiner Tip zum flüssigeren Arbeiten: Eclipse bot schon lange die Möglichkeit, noch nicht im Editor geöffnete Klassendateien einfach über eine Referenz in einer anderen Datei/Klasse zu öffnen. Dazu fährt man lediglich mit dem Mauszeiger über einen Funktions- oder Klassenaufruf, hält die Steuerungstaste gedrückt und betätigt die linke Maustaste. Das ist unheimlich hilfreich, um schnell in objekt-orientierten Anwendungen durch den Code zu navigieren. Und das funktioniert natürlich auch im CFBuilder, allerdings nur unter bestimmten Voraussetzungen:

  • UDFs: local, included, and cfc.udfName
  • Template in <cfinclude template=””>
  • CFCs in createobject(), <cfobject>, <cfinvoke>, new  keyword, and extends attribute

Siehe CFBuilder Code Assist von Adobe.

*

UDFs: local, included, and cfc.udfName
*

Template in <cfinclude template=””>
*

CFCs in createobject(), <cfobject>, <cfinvoke>, new keyword, and extends attribute.

ColdFusion, Unicode und MS SQL Server

Unser Kollege Dirk teilte gerade folgendes mit: falls Ihr mal das Problem haben solltet, dass Unicode (utf-8 oder utf-16) unter Verwendung von ColdFusion nicht korrekt in einer MS SQL Server DB gespeichert hier ein paar Tipps.

Auffallen tut das Problem dadurch, dass in den Spalten nicht der Text steht, der da eigentlich rein soll. Das betrifft natürlich “nur” Zeichen, die außerhalb der von uns normalerweise verwendeten Zeichentabelle liegen, also besondere Umlaute, aber z.B. auch die griechischen oder kyrillischen Buchstaben.

Weiterlesen »

Coldfusion Administrator API & application-Objekt

Bei einem Kundenprojekt überlegen wir, den Administratoren eine kleine Übersichtsseite mit aktuellen Informationen über die Auslastung der Web-Anwendung zur Verfügung zu stellen.  Sessions, Requests, …nichts aufwändiges. Wie schön, das man dafür ja direkt auf die Coldfusion Administrator API (Livedocs von cfexecute) von Coldfusion zugreifen kann.

<cfset adminObj = CreateObject("component","\CFIDE\adminapi\administrator")>
<cfset adminObj.login("passwort")>

<cfset dsnObj = CreateObject("component","\CFIDE\adminapi\servermonitoring").getActiveSessions("app_name")>
<cfdump var="#dsnObj#">

<cfset adminObj.logout()>

Und nicht nur das, von der Application.cfc kann auch eine Instanz erstellt werden, deren Methoden und Eigenschaften im eigenen Code genutzt werden können. Denkbar wäre z.B. das Zurücksetzen der Anwendung durch Aufruf von onApplicationStart() in einer Entwicklungsumgebung  (reinitialisieren des Application-Scope).

<cfset CreateObject("component","application").onApplicationStart()>

Coldfusion Builder: automatisch schließende Tags

Vor zwei Tagen hat mich mein Chef bei einem Kunden besucht und vom Coldfusion Builder geschwärmt. RDS ganz toll und so, aber was er vermißt, ist die Funktion zum automatischen Schließen von bereits geöffneten CF- und HTML-Tags, so wie bei Homesite und Dreamweaver im Editor…

Weiterlesen »

Coldfusion Builder mit Remote-Coldfusion 8/IIS

Auf die RDS- und Debugging-Funktion von Coldfusion 8 in Verbindung mit dem Coldfusion Builder sind wir ja bereits in diesem Beitrag eingegangen. Offensichtlich können auch die ServerAdmin-Funktionen, wie Starten, Stoppen und Neustarten des Coldfusion8-Servers  vom CFBuilder genutzt werden, die Builder Extensions können ebenfalls installiert werden. Voraussetzung ist die Installation der AdminServerComponents (Download über das Coldfusion Builder Team Blog).

Über die Adobe Hilfe findet sich auch noch ein Dokument, das das Hinzufügen eines Coldfusion-Servers zur Server-Liste des Coldfusion Builders und das Einrichten der Server-Komponenten beschreibt. Das funktioniert sogar noch mit dem Coldfusion 7!

Was ich allerdings nicht ganz verstehe, der Admin-Server wird über ein Skript gestartet, dazu muss ich mich per Remotedesktop-Verbindung, bzw. direkt am Server anmelden und das Skript starten. Da kann ich ja auch gleich den CF-Service direkt neustarten! Der Admin-Server müsste also eigentlich als Service eingerichtet werden!

Coldfusion Builder und Subversion

Bei unseren Kundenprojekten verwenden wir in der Regel Versionskontroll- und -verwaltungs-Software, oft in Verbindung mit anderen Projektmanagement-Werkzeugen zur Softwareentwicklung. In vielen Fällen wird Subversion eingesetzt, weil offen, frei und schon länger erprobt. Nachdem jetzt vermehrt auf den Coldfusion Builder als integrierte Entwicklungsumgebung gesetzt wird kam die Frage auf, ob es nicht auch aus dem CFB heraus möglich sei Repository-Funktionen zu nutzen, ähnlich wie im Datei-Explorer mit TortoiseSVN.

In verschiedenen Java-Projekten hatten wir bereits mit Eclipse und dem SVN-Plugin Subclipse gearbeitet, daher fiel unsere Wahl auch sofort auf dieses Plugin. Und da der Coldfusion Builder ja auf Eclipse basiert (im Grunde ein Eclipse mit CF-Erweiterung ist) lag der Versuch nahe Subclipse zu installieren. Geht aber nicht so einfach, zumindest nicht mit einem aktuellem 1.6er Plugin (wir benötigen die Unterstützung von Subversion 1.6)!

Weiterlesen »

Coldfusion Builder RDS & Debugging + CF8/IIS Remote-Server

Bei einem unserer Kunden wird jetzt ebenfalls der Coldfusion Builder als Entwicklungsumgebung eingesetzt. Leider dauert die Migration der Server etwas länger, so das Coldfsuion 9 erst in einigen Monaten eingesetzt werden kann und solange noch mit den Coldfusion 8 Instanzen gefahren wird. Einige der CFB-Features lassen sich ja auch mit dem Coldfusion 8 nutzen, RDS und das Debugging sollten funktionieren, allerdings, wir wir feststellen mussten, nur unter gewissen Voraussetzungen:

Weiterlesen »

Things to watch out for in ColdFusion 9 with CF-ORM

Auf Coding-Conventions für Coldfusion im Allgemeinen sind wir ja bereits in diesem Beitrag eingegangen. Auf Stackoverflow bin ich gerade über diesen Beitrag gestolpert: Things to watch out for in ColdFusion 9 with CF-ORM

Dort wird in einer groben Auflistung auf noch weniger bekannte (und eventuell nicht dokumentierte) Umstände bei der Benutzung vom objekt-relationalen Mapping (ORM) in Coldfusion 9 eingegangen. Der ein oder andere (mich jetzt mal eingeschlossen) erspart sich damit vielleicht die Problemsuche nach dem nicht erklärbaren Persistenzverhalten einer gerade entwickelten CF9-Anwendung.

« Vorherige SeiteNächste Seite »