Sometimes you get a real productivity boost from using 3rd party components and/or libraries, where instead of reinventing the wheel you can just get it done quickly and more cost-efficiently.
But what about when you're working on a project for your customer (as in freelancing or when running a custom development software shop)? I mean specifically commercial components that make you purchase a license to use them in your applications. I don't mean licenses like SQL Server. I mean stuff like Ext, ComponentArt, PDF libraries, etc - ones that help you get a feature implemented and/or provide user interface enhacements.
Furthermore, let's focus on packages which allow you to deploy redistributables without a separate license and your client doesn't have to pay for them. In other words - development licenses are not free, but runtime licenses are. However, if the client will ever want to modify the application they will have a few choices:
a) hire you again
b) hire someone else who has a license
c) buy a license themselves
Because of the whole licensing issue, I find it difficult to use any commercial 3rd party components in applications other than those created for myself. How should I go about it?
Do I add the library/component suite cost to the cost of the project? What if the project is small but still could benefit from the components? The license might cost 50% of the whole application...
Do I just tell them of the implications (so far I chose this route) and make them make a decision? They might not be tech savvy, may not understand how that works exactly.
Do I just use the components without telling the client about them? That doesn't sound very ethical to me.