views:

223

answers:

5

When using 3rd party libraries/components in production projects, are you rigorous about using only released versions of said libraries?

When do you consider using a pre-release or beta version of a library (in dev? in production, under certain circumstances)?

If you come across a bug or shortcoming of the library and you're already committed to using it, do you apply a patch to the library or create a workaround in your code?

A: 
  • Yes. Unless there's a feature we really need in a beta version.
  • There's no point using a beta version in dev if you aren't certain you'll use it in production. That just seems like a wasted exercise
  • I'll use the patch. Why write code for something you've paid for?
Tundey
+1  A: 

I've used beta libraries in commercial projects before but mostly during development and when the vendor is likely to release a final version before I finish the product.

For example, I developed a small desktop application using Visual Studio 2005 Beta 2 because I knew that the RTM version would be available before the final release of my app. Also I used a beta version of FirebirdSQL ADO.NET Driver during development of another project.

For bugs I try to post complete bug reports whenever there's a way to reproduce it but most of the time you have to find a workaround to release the application ASAP.

Julio César
A: 

There's no point using a beta version in dev if you aren't certain you'll use it in production. That just seems like a wasted exercise

Good point, I was also considering the scenario of evaluation of the pre-release version in dev, but I supposed that taints the dev -> test/qa -> prod path.

I'll use the patch. Why write code for something you've paid for?

What if it's not a commercial library, but an open source one? What if the patch to be applied is not from the releasing entity (e.g. your own patch)?

Forgotten Semicolon
A: 

I use:

  • Infragistics (.NET WinForms controls)
  • LeadTools (video capture)
  • Xtreme ToolkitPro (MFC controls)
  • National Instruments Measurement Studio (computational libraries, plotting, and DAQ)

I've found significant bugs in every one of these, so I try to limit their use as much as possible. Infragisitcs is pretty good for what it is, and National Instruments is by far the best, although quite limited. I would avoid LeadTools at all cost.

Nick
+1  A: 

I am a big fan of not coding something when someone else has a version that I could not code in a reasonable amount of time or would require me to become an expert on something that wouldn't matter in the long run.

There are several open source components and libraries I have used in our production environment such as Quartz.NET, Log4Net, nLog, SharpFTPLibrary (heavily modified) and more. Quartz.NET was in beta when I first released an application using it into production. It was a very stable beta and I had the source code so I could debug an issue and there were a few. When I encountered a bug or an error I would fix it and post the issue to the bug tracker or author. I feel very comfortable using a beta product if the source is available for me to debug any issues or there is a strong following of developers hammering out any issues.

related questions