Creating C# Components
A Guideline

C# Components

A C# component is a stand-alone piece of C# code that provides some sort of functionality. C# components are a popular way to decrease development time.

The most common form of a C# component is a user controls. However C# components can be less-tangible collections of code. C# classes that make complicated operations easier can also be packaged and sold as a C# component. So creating C# components is a wide topic.

Creating Good Components

Because the whole purpose of anybody buying C# components (as opposed to writing it themselves) is to save development time. That means components must have a certain number of characteristics that allow them to be in fact time-saving.

Stability. Perhaps the most important characteristic is that a commercial C# component has to be rock-solid. A component that brings the rest of an application crashing down is worth negative money. In order to achieve as much stability as humanly possible, make sure to endlessly test a component across different platforms.

Customization. A component that can be easily customized saves you as the developer a lot of time and allows you to target a wider audience of customers. Since a C# component is supposed to save time, customizing it should be relatively simple.

Reusable. Make your C# component as reusable as possible. There is a reason commercial components are licensed per developer and not per project. A component that works within a narrow window of circumstances if not worth much.

Details. Pay attention to the details. There is a balance between functionality and quality. Strive for quality without bloating down your C# component. Most importantly, research what are the best practices for similar components. For example, C# components that update frequently (such as a progress bar) should be thread-safe. Thus a quality Progress Bar will have thread-safety built-in.

Conclusion

If you are looking to write and sell a C# component, make sure to do your research. Check out companies that already sell professional .NET components to get a feel of how they are packaged and sold.