The Design of Software (CLOSED)

A public forum for discussing the design of software, from the user interface to the code architecture. Now closed.

The "Design of Software" discussion group has been merged with the main Joel on Software discussion group.

The archives will remain online indefinitely.

3rd Party Components

What does everyone think about using third party controls in your applications? If it saves a large amount of time is it worth being tied in to these third parties? What happens in the future if you came to sell up?

Monday, January 23, 2006
Avoid them like the plague. Especially the ones you can whip up yourself, such as Windows, Pentium processors and 120 volt electricity supplies.
NetFreak Send private email
Monday, January 23, 2006
Spend a LOT of time researching and testing them (i.e. see if it will do exactly what you want). Every minute spent picking the right one, will be worth an hour if you pick the wrong one.

...and Do NOT buy anything without source code.
Warren Stevens Send private email
Monday, January 23, 2006
If you get source code, you can fix the inevitable bugs yourself.  Otherwise, you need some sort of guarantee that THEY will fix the bugs.  And this is highly unlikely.

In the end, you are almost bound to use third-party components.  Just make sure you evaluate them properly and choose appropriately.
Chris in Edmonton Send private email
Monday, January 23, 2006
I think using 3rd party components is one of great equalizers for small software shops.  Large businesses might want to avoid them because you've got to purchase many licenses (or site license) and managers aren't likely to want dependence on outside company.  But for small developers they have big benefits.

I'm always careful to do research before committing to purchase of a component.  You should definitely check for general opinions on the company/component by checking through newsgroups (e.g., Delphi developers shoud always check Borland's delphi.thirdpartytools newsgroup).  Also check for the company's own newsgroups.  Most component vendors I use have their own newsgroups that are used for support, both for support directly from vendor and for "peer" support where component users can help each other. You should be able to tell a lot about the component from looking at these newsgroups: is support from the vendor good?  timely? are there many disgruntled users?  many users who appear to be very satisfied?  do users help each other?

Of course you will always want the source code.

Not sure what you mean by "What happens in the future if you came to sell up?"  If you want to license and sell your application executables, then 3rd party components are no problem at all.  They either compile in or have libraries that can be distributed with your application.  If you intend to license or sell your own source code to others then there's an extra added wrinkle:  you have to make sure that your customers know they'll have to purchase their own licenses to the 3rd party components that your application's source depends on.
Herbert Sitz Send private email
Monday, January 23, 2006
I should have mentioned that you will of course want to look at trial or demo versions of component before you buy. 

Even though I do quite a bit of checking before I buy a component license, I've still ended up with quite a few that I've bought but never really used.  This doesn't bother me too much.  Over last few years I've "wasted" maybe hundreds of dollars on components that have not ended up providing me with much use, maybe a little more.  But the effective returns I've gotten from finding the components that I use all the time make up for that many times over.
Herbert Sitz Send private email
Monday, January 23, 2006
Come on, components give small guys the edge. You just have to research before you buy. If you do C++ Builder/Delphi like I do, it's almost impossible to live without Developer Express and Indy. ;-)

And I still use the TurboPower stuff on Sourceforge. Even after they closed shop.
MBJ Send private email
Monday, January 23, 2006
>Of course you will always want the source code.

Yes that's essential.

Also make sure the product is well supported. Send their support folks an e-mail with a reasonably tricky question and see how long it takes them to reply and the quality of the reply.

I also strongly favour buying from companies with support forums. You can check these out up front and get a good or otherwise feel for things.
Neville Franks Send private email
Monday, January 23, 2006
I'll second or third or whatever the statement: make sure you also have the source code.

We use 3rd party controls in our code and boy do I have some real war stories.  I come to find that the controls from a lot of companies have more problems with unclear or ambiguous documentation with bugs in their controls less of an issue. 

Like someone stated, make sure they are a reputable company and have been around for awhile.

We use C++ Builder and the one set of controls we use is actually a C++ Builder partner and their controls were part of the new C++ Builder Developer Studio that was just released.

And if all that was not enough: Make sure, above all things, they have fantastic technical support!!!!
Eric (another ISV guy with his company)
Tuesday, January 24, 2006
Thanks for your views, very useful. The component in question is dotnetcart It comes as a .dll licensed to work on a specified domain name. One thing that does concern me is that it does not include source code. I'm effectively using it as the backend to my custom fronted shopping cart application.

Does anyone have views on this situation?

Tuesday, January 24, 2006

We wrote shopping cart system a few years back; I can even dig up the code and give it to you if you like.

We implemented the merchant transaction all in Perl with the help of the Merchant who supplied us sample Perl scripts to talk to their systems.

The Merchant we used was called CardServices.  We did this in 1999 and the customer we did this for is no longer in business and I never kept pace with this stuff.

Bottom line:  A dll that talks to a single company seems a bit dangerous; unless there is a trade-off somewhere where time is of the essence I wouldn't go this route.

It's just way too easy to implement these things with merchanges who will probably give you source code to help you use their services.

If you must, for whatever reason, use their DLL, it wouldn't hurt to ask them for the source code and see what they say.
Eric (another ISV guy with his company)
Wednesday, January 25, 2006
>>We use C++ Builder and the one set of controls we use is actually a C++ Builder partner and their controls were part of the new C++ Builder Developer Studio that was just released.

I purchased a full supported version of a set of controls bundled with BCB2006 and I'm still waiting for my licecnce 5 weeks later.  The components are good but the docs are dire and the support slightly iffy.

It's a joy when using third-party components and they have their help files sorted.  A miserable time if they don't.
Orson Kary
Wednesday, January 25, 2006
Yes, I know that pain with Borland's products; C++ Builder.  I've bitched long and hard about that.  I even got a little angry in their newsgroups but the company just does not seem to care until *many* people start bitching about the same thing.

My shop is heavily tied to VCL.  Recently, I've been socializing the idea of looking at Microsoft's VC with my developers.  They don't seem to care but collectively think the fork-lift required for such a change could add many months to the project.  We are talking a hugh re-write, replacing all the controls with VC controls and patching logic (events/methods) that doesn't line up.

I just purchased a copy of C++ Builder Developer Studio 2006.  Attempting to upgrade from Builder 5.  You can read about my grief here:

All in all, though, the new Developer Studio does look promising. <sigh>
Eric (another ISV guy with his company)
Friday, January 27, 2006

This topic is archived. No further replies will be accepted.

Other recent topics Other recent topics
Powered by FogBugz