Neues in ColdFusion Splendor

Kompletter CFScript Support
Bisher war der Sprachsupport in cfscript nicht vollständig. Einige Funktionen wurde in der Engine umgesetzt und andere hingegen über spezielle CFCs umgesetzt welche einfach die Tags entsprechend aufgerufen haben.
Damit zukünftig cfscript vollwertig ist gegenüber dem Tag Syntax wurde ein neuer Syntax erdacht. Z.B das cfdocument Tag wird in cfscript wie folgt verwendet:
document filename="test.pdf" overwrite="yes" format="pdf" { cfdocumentsection type="header" { writeOutput("Header"); } }

JSON
Mit Splendor werden die Keys nicht mehr in Grossbuchstaben konvertiert sondern behalten die Gross-/Kleinschreibung welche beim setzen verwendet werden. Damit alte Applikation weiterhin funktionieren lässt sich dies mittels this.serializtion.preserveCaseForStructKey in der Application CFC oder im CF Admin für den ganzen Server auf das alte Verhalten einstellen.

In ColdFusion Splendor wird der Typ von Query oder CFC übernommen für den JSON Datatyp.
serializeJSON hat einen neuen queryFormat Value "struct" für eine einfachere JSON Repräsentation des Querys in JSON. Das Default Verhalten lässt sich auch wieder in der Application.cfc mit this.serialization.serializeQueryAs = "row|column|struct" für die ganze Applikation definieren.

Eigener Serializer/Deserializer mit this.customSerializer definierbar. Dahinter steht eine eigenen CFC mit den Methoden: canSerialize, canDeSerialize, serializeData, deseralizeData


Member Funktionen
Mit ColdFusion Splendor werden offizielle Member Funktionen eingeführt. So lässt sich anstelle über die Funktion ArrayAppend() auch direkt auf dem Array Object mittels Append ein Wert hinzufügen.
Die folgenden ColdFusion Datentypen unterstüzen Member Funktionen: Array, Struct, List, Datum, Query, XML, Image, Spreadsheet
einige String Member Funktionen: len, compare, comparenocase, find, reverse, repeatString, mid


PDF
cfDocument hat seine bekannten Schwächen mit CSS aufgrund der Verwendung älterer Versionen von iText und iceBrowser. Mit splendor bleibt bei cfDoucment alles gleich, aber es wird mit htmltopdf ein neues Tag vorgestellt welches PDFs mit der Webkit Engine rendert. Damit dies auch performant für eine grosse Anzahl von PDFs passiert lassen sich sogenannte PDF Service Manager auf anderen Server installieren und im CF Administrator einbinden.
Mit cfPDF lassen sich nun auch Dokumente signieren oder validieren.
Am meisten gefällt mit das die DDX Limitierungen aufgehoben wurden. Bisher waren nur ca. 35% der DDX Funktionen aus LiveCycle in ColdFusion verfügbar.


Verschiedenes

  • queryExecute("sql", [{type:"integer", value=1}], {datasource="cfartgallery"})
  • queryGetRow(rowindex)
  • Elvis Operator
  • ArrayEach neu mit Index in der Callback Funktion
  • ListEach neu in Splendor
  • Map-reduce Funktionen: ArrayMap, ArrayReduce, StructMap, StructReduce
  • cfZip mit Passwort (encryptionAlgorithm, AES-128 oder AES-256) und verbesserter Performance
  • cfMail mit Encryption
  • cfLofin allowconcurrent="true|false"

Update 25. Oktober 02h00: PDF, cfLogin