VSoft Technologies Blogs

rss

VSoft Technologies Blogs - posts about our products and software development.

Now and again people comment that they think FinalBuilder or Automise uses proprietary binary formats. I sympathise entirely. Binary formats are a pain to work with in version control, and a format like XML can be great when you need to make a sweeping change or tweak something. (If the people who make our help authoring tool are reading this post, please take note!)


The good news is that all of FinalBuilder and Automise's data is available via XML or raw text, you just need to know how to look for it!


The project files are XML

Both Automise and FinalBuilder save their project files as XML. If you save in the .FBP5 / .ATP2 "uncompressed" project format, then the project file is actually just an XML document. The XML isn't exquisitely formatted for human eyes, but a machine will be able to read it just fine..

If you save in the .FBZ5 / .ATZ2 "compressed" project format, the project file is compressed using industry-standard zip compression. If you rename the file to .ZIP, and open it in a zip program (like 7zip), then you can view or extract the uncompressed project file inside.

To choose whether to save "compressed" or "uncompressed" by default, go to Tools -> Options -> General IDE Options -> Design Time Options:

Options Dialog, showing compressed file option


Project logs can be exported as XML

OK, you've got me. Automise and FinalBuilder project log files (.fbl5 and .log2) are a proprietary database format. In the old days, FinalBuilder 1 & 2 used a text formatted log file (or so I'm told.) This led to performance problems with large log files and long running projects. Hence the move to an embedded database engine.

However, you can still export any project log as XML. To export a single log, go to the History tab, select a log, and click "Export Log to XML" (or HTML, or plain text.) To export the current log automatically as part of a running project, use the Export Log action:

Export Log Properties

Logs can be exported as text, HTML, or XML. XML formatted logs can be further tweaked via XSLT. It is possible to pass data from FB/AT to the XSL stylesheet, via the use of extra XSLT parameters. If you're interested in writing an XSL transform for the Export Log action, take a look at the "Stylesheets" directory in the FinalBuilder or Automise program directory. It contains the XSL files which are used to do the exports for text, xml and html.

The Other Project Files are INI Files

Any extra project files (like the FBD data file, or the FBV persistent variables file) are actually INI files which can be viewed in any text editor. Go ahead and try it!


... armed with this knowledge, you should be diffing, merging, checking in, parsing, cutting, pasting and transforming in no time!

Showing 3 Comments

Avatar
Gonzalo 15 years ago

Hi Angus,<br> We use FinalBuilder at work, and we are facing some serious issues due to the formatting of the XML project files: some (minor) changes seem to re-format the XML way too much, which then later creates unsolvable conflicts during a merge of the project file to other branches. Is there a way to force FinalBuilder in a more "conservative" mode of changing the project file to avoid this? Or are we doing something wrong in the first place?<br><br>Thanks!


Avatar
angus 17 years ago

Hi Mario,<br><br>We don't have any plans as-such. FinalBuilder is quite different in outlook to Nant/MSBuild/etc, so to be honest I think it would be of limited use to try and automate conversion.<br><br>My recommendation would be to use the built-in actions to call an NAnt/MSBuild/etc project as part of a build, and progressively move functionality out of the NAnt/MSBuild project and into the FB project.<br><br>Regards,<br><br>Angus<br><br>PS Sorry for the awful comment formatting.


Avatar
Mario 17 years ago

Do you plan to make the structure and schemas public aviable to create a way to migrate Nant Scripts /Vs.NET Projects or other Build Projects with stylesheets to FinalBuilder ?



Comments are closed.