On the plus side, as Jason points out its an established market with clear pricing guidance and customer expectations. On the other hand there are a number of serious challenges in this market. For example, you have to fit your component into a relatively narrow pricing band people are used to spending (between say $295 and $995 / developer).
Our company is "near" this market (we sell to the same audience and part of our product is a component you embed in your application). We also partner with a few component development companies to share information about market trends and challenges.
The challenge is to get noticed and get trusted enough to have people be willing to both perform a trial of your component and ultimately be willing to purchase it. This takes a great deal of up-front goodwill with prospects because:
- It's very time consuming on the prospective customer's part to evaluate a component - they inevitably have to write code and come up with a realistic problem to solve with your component.
- They have to have enough trust in your company to not just shell out the money for your component but also be willing to bet their reputation on yours - will you be there in three years when they need to upgrade their system to .NET 5, on all versions of the framework?
To deal with this, you need to not just create a great component but also be prepared to:
- Create a few fantastic sample applications that demonstrate your component and feel like real problems worth solving. The code behind these needs to represent both the flexibility of what you're providing, best practices, and the flexibility you offer.
- Field prospect inquiries where most of the questions will be problems with their code, not your component - but they're your problems either way until you can help them out.
- Consider a source code license: It's a great way to combat people's fear you'll leave them stranded. Nearly no one will actually modify the source, but it's viewed as a great insurance policy if you're not there later on.
Establishing and Marketing your Value
To be successful selling a component you have to convince developers that you're adding substantially more value to the application they are creating that they can sell to their customers. This is a marketing challenge because you're two steps removed from the people spending the real money - the end users of your customer's applications. You need to be ready to help people see how your component helps them sell or charge more.
Additionally, the perception of value in the component market is very different because you're up against the developer's perception of the value of your component. Roughly put, they need to believe adopting your component is simple and if they did it themselves it would take many times the number of hours they'd be willing to spend. The challenge is that developers are perpetual optimists - they will tend to look at most problems and think I can solve that in a weekend. So now your value is compared to a few days of their time, not the actual time it'd take.
What's different when you create a full application vs. a component is with a full application it's often easier to understand the end user requirements and easier to understand who your potential customers are and how to reach them. For example, you don't have to consider all the ways someone might want to use your component and cover them in your documentation and samples you just have to provide people with a way to reach their external functional goal. Your target market will be mercifully narrower (e.g. if you're making a dog grooming app, it's easy to find out how to reach people that do dog grooming. How do you affordably reach .NET developers that need charting?)