Nowadays selling software is not the only way to make money. A number of companies make a lot of money selling components. The great part is, almost anyone can write their own commercial components.
Well first, what is a C# component? In a nutshell it is a piece of code that helps develop a bigger project faster.
That is the most important part of a component, it saves time. Big programming projects have deadlines and developers don’t always have time to sit down and write their own components. While this creates a great opportunity for component-developers, it also puts extra pressure on them to develop reliable code.
Every developer who makes C# components must remember a few general concepts:
Stable. Say you are a developer that buys a C# Button component that offers extra functionality. You buy it to save yourself the time of writing it yourself. But when you go ahead and add it to your project, it has a bunch of memory leaks that crashes the rest of your application. The component no longer saves you time, instead it actually costs you even more. Point being, components should be rock-solid stable across as many foreseeable scenarios as possible.
Robust. For scenarios that you can’t foresee, a good component should be able to graciously handle bad situations.
Customizable. What you will never be able to predict is exactly just how your component will be used by someone who buys it. That is why it’s important to make components as flexible as possible. That way customers can tailor the component to their particular needs without needing your help.
Reusable. It almost goes without saying, but any component worth anything will be stand-alone (within it’s scope, no one expects you to write a .NET component that doesn’t use the .NET Framework). A developer that buys your component should be able to use it in any project he or she wants. Additionally, if you offer the source code, developers should find it easy to reuse bits and pieces of the source code, unless of course it goes against your licensing terms.
Because writing components is in itself very easy, there is a lot of competition out there. To stand out, put attention to the details. Research what are the most sought out features of developers who will be using your component. And most importantly, make sure it will be as hassle-free as possible, saving developers time.