tags:

views:

49

answers:

2

We have started using Final Builder to create builds for our vb6 and .net projects. We are also using Visual Source Safe to manage our source. Some of our vb6 exe's are dependent on certain ocx's, such that a particular vb6 exe may require a particular version of an ocx.

The question is, should the final builder script for our exe project also re-build the ocx project, or is it better to simply pull a particular version of the already compiled ocx. My concern is that other developers could have broken the build (or created a bug) for the ocx which could then break the exe we are trying to build. Moreover, re-building the ocx project would result in the same version of the ocx but with a different date, resulting in confusion if dllhell(ocx hell) issues arise.

Cheers, Mike

+2  A: 

There is no difference in terms of building and maintaining your app between a ocx and a activex dll. The ocx should use binary compatibility and be part of your compile process.

This is however a general rule. You may have some components that rarely change if ever. In my own VB6 application I have a handful of components that reside at the bottomost level of my reference hierarchy that rarely get updated. They maybe get updated one or twice a year at best. Some haven't been updated for several years now.

However based on your description it sounds like the controls are still being modified. So I doubt the second case applies.

In the end use your best judgment.

RS Conley
In this case, the ocx uses binary compatiability and is part of the compile process. The ocx gets built then the exe gets built.The second case 'sort of' applies, in that the ocx is only updated once or twice every year. The most recent update being for performance. In all cases the interface doesn't change and binary compatiability is preserved. The build process also zips up all components in a release package, so it's useful to include the ocx in the build to ensure the application always uses the most up-to-date (and performant) version
rob_g
A: 

There are two ways to use OCX/DLLs: code reusability vs. fragmentation of an over-large project.

Those meant for re-use would be absurd to build, build, and rebuild, and almost never should be customized to fit a new application. These are your crown jewels, and most people should have no ability to modify the source. They are the domain of your organization's "library writers" because that's what they are: libraries.

If you simply have large, monolithic, unweildy applications you may have to go the other route. Then OCXs and DLLs simply become an awkward extension of the "module" concept. This is why we have Project Groups.

Your library users should not be fiddling with libraries though. I'm sure they all fancy themselves able to "ensure they are up to date and performant" but that's a different debate entirely.

Bob Riemersma