This blog post has also been published in English.

Eines des neuen Biml Features ist ein neues Directive namens “global”! Dieses tut genau das, was man erwarten würde: Es fügt zentral definierten Code global in alle anderen Dateien ein.

Ein Beispiel: Dieser Zweizeiler macht VB zur Standardsprache in der gesamten Lösung!

<#@ global #>
<#@ template language="VB" #>

Noch ein Beispiel: Dieser Code fügt allen Dateien einen Kommentar im Header hinzu.

<#@ global #>
<!-- Global Header -->

Das global Directive akzeptiert bis zu 4 Parameter, welche alle optional sind. Statt dem Aufruf der beiden einzelnen Dateien ohne Parameter könnte man auch einen gemeinsamen Aufruf mit den Standardwerten durchführen. Abgesehen davon, dass nun beides in einer Datei ist, bleibt das Verhalten das gleiche:

<#@ global active="True" location="top" order="0" scope="Global" #>
<#@ template language="VB" #>
<!-- Global Header -->

Dies zeigt auch, dass es keine Einschränkung gibt, wieviel Code man in eine globale Datei einbaut. So kann man sie zum Beispiel auch nutzen um globale Variablen, Namespaces oder auch Includes und Codefiles zu deklarieren.

Die vier optionalen Parameter sind:

1. Active
Ein einfacher boolean Switch mittels dem ein globales File aktiviert oder deaktiviert werden kann.

2. Location
Akzeptiert “top” oder “bottom” und steuert so, ob der Inhalt am Anfang oder Ende der betroffenen Dateien hinzugefügt wird.

3. Order
Da man auch mehrere globale Dateien definieren kann, lässt sich hierüber die Reihenfolge steuern.

4. Scope
Scope ist vermutlich die verwirrenste Eigenschaft für diejenigen, die eher mit BimlExpress als BimlStudio arbeiten. BimlStudio erlaubt das Arbeiten in Ordnerstrukturen – hier kommt der Scope ins Spiel.

Die Optionen sind:

– Global: Die Datei wird auf alle anderen Dateien angewandt.
– Folder / FolderRecursive: Die Datei wird auf alle Dateien des gleichen Ordners, ggf. mit Unterverzeichnissen, angewandt.
– LogicalDisplayFolder / LogicalDisplayFolderRecursive: Analog zu Folder/FolderRecursive, nur dass sich diese Option auf logische statt physische Verzeichnisse bezieht.
– Bundle / BundleExtension / Non Bundle: Diese Optionen spielen nur bei der Arbeit mit Bundles eine Rolle – hier verschonen wir Sie zunächst mit Details!

5. applytocallbimlscript
Ein weiterer boolean Switch – er steuert, ob die Datei auch in Dateien welche mittels CallBimlScript aufgerufen werden greifen soll. Der Standardwert ist True!

Haben Sie hierzu Fragen oder Anmerkungen? Wir freuen uns auf Ihren Input unter !

Weitere Informationen zu Biml, einschließlich Terminen und Blog Beiträgen finden Sie auch auf unserer Biml Seite.

Viel Spaß beim Biml’n!