Using third-party libraries / components in production

When using third-party libraries / components in production projects, do you strictly adhere to using only released versions of these libraries?

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

If you encounter a bug or lack of a library and are ready to use it, will you apply the patch to the library or create a workaround in your code?

+4
source share
5 answers

I am a big fan of not coding for something when someone has a version that I couldn’t encode in a reasonable amount of time or would require me to become an expert on something that would not matter in the long run.

There are several open source components and libraries that I used in our production environment, such as Quartz.NET, Log4Net, nLog, SharpFTPLibrary (heavily modified), and much more. Quartz.NET was in beta when I first released an application using it in production. It was a very stable beta, and I had the source code, so I could debug the problem, and there were several. When I encounter an error or error, I will fix it and send the problem to the tracker or author. I feel very comfortable using the beta version if the source is available for me to debug any problems, or there is a strong follow for developers clogging up any problems.

+2
source

I used beta libraries in commercial projects before, but mostly during development, and when the supplier is likely to release the final version before finalizing 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 version of my application. I also used the beta version of the FirebirdSQL ADO.NET driver during the development of another project.

For errors, I try to publish full error reports whenever there is a way to reproduce it, but most of the time you should find a workaround to free the application as soon as possible.

+1
source
  • Yes. If there is no function that we really need in beta.
  • It makes no sense to use the beta version in dev if you are not sure that you will use it in production. It just looks like a wasted exercise.
  • I am using a patch. Why write code for what you paid for?
0
source

It makes no sense to use the beta version in dev if you are not sure that you will use it in production. It just looks like a wasted exercise.

Good point, I was also considering a version evaluation scenario before release in dev, but I assumed that it would ruin the dev β†’ test / qa β†’ prod path.

I am using a patch. Why write code for what you paid for?

What if it is not a commercial library, but open source? What if the patch to be applied is not from a release object (for example, your own patch)?

0
source

I use:

  • Infrastructure (.NET WinForms controls)
  • LeadTools (video capture)
  • Xtreme ToolkitPro (MFC controls)
  • National Instruments Measurement Studio (Computing Libraries, Graphics, and DAQ)

I found significant errors in each of them, so I try to limit their use as much as possible. Infragisitcs is pretty good for what it is, and National Instruments is certainly the best, albeit very limited. I would avoid LeadTools at all costs.

0
source

Source: https://habr.com/ru/post/1276409/


All Articles