The last BimlExpress update was in 2019. BimlExpress is not compatible with the newest versions of Visual Studio, and there are also issues with BimlExpress in the last compatible version of Visual Studio. Varigence has not made any statements about the future of BimlExpress, and have not responded to any forum posts or support tickets for years. Because of this, my time as a BimlHero and Varigence Partner is over. In my personal opinion, Biml is dead, and I can no longer recommend anyone to use it. My old Biml content will be available, but archived.
These posts are about Biml (Business Intelligence Markup Language), BimlScript, BimlExpress, BimlStudio, the BimlHero Certified Expert Program and events by the Biml community or Varigence. Older posts may mention BI Developer Extensions, BIDS Helper, Mist or BimlOnline.
Do you use C#/VB classes and methods in your Biml projects? One solution is to create class nuggets <#+ … #>, but they can only be used in their containing Biml file. You can move class nuggets to separate files and include those files, but a more elegant solution is to use C#/VB Code Files.
In addition to using C#/VB Code Files, there are four other main ways you can avoid repeating your Biml code:
Are you using Biml so you won’t have to do the same tasks over and over and over again in multiple SSIS packages? If so, you probably don’t want to write the same Biml code over and over and over again either. Instead, you can move common code to separate files, centralize and reuse these files in many projects, and update code in one file to make changes to all projects. One of the ways to apply this Don’t Repeat Yourself software engineering principle in Biml is to use Include Files.
In addition to using Include Files, there are four other main ways you can avoid repeating your Biml code:
If you are using BIDS Helper or BimlExpress to generate SSIS packages in the Project Deployment model, you have probably noticed that it is not possible to create project parameters from Biml. You can write Biml for the project and project parameters, but BIDS Helper / BimlExpress will only generate the SSIS packages for you and not the SSIS project parameters. The recommended solution is that you create the project parameters manually before you generate your SSIS packages from Biml.
However, if you are a lazy developer like me, you probably don’t want to create and update project parameters manually. Perhaps you want to automatically create or update project parameters based on some metadata? You can do that!
Let’s take a look at a (semi-hardcoded, semi-hack) solution for creating SSIS project parameters from Biml in BIDS Helper / BimlExpress 🤓
One of the main tasks in Biml projects is to import source metadata. The recommended method is GetDatabaseSchema. This method returns an ImportResults object that contains SchemaNodes (schema metadata) and TableNodes (table and view metadata).
Are you using Biml so you won’t have to do the same tasks over and over and over again in multiple SSIS packages? If so, you probably don’t want to write the same Biml code over and over and over again either. Instead, you can move common code to separate files, centralize and reuse these files in many projects, and update code in one file to make changes to all projects. One of the ways to apply this Don’t Repeat Yourself software engineering principle in Biml is to use CallBimlScript.
In addition to using CallBimlScript, there are four other main ways you can avoid repeating your Biml code: