Introduction

Planning a .NET project is a daunting task, as there are many different aspects that need consideration. During the early stages in development you probably ran into issues and limitations when it came to the functionality of the toolset provided by Microsoft Visual Studio and that has lead you here. When the standard toolset does not meet your needs, you have the option of purchasing a 3rd party component suite. This article discusses the steps you need to take and aspects to consider during the process of choosing the right suite for your application.

What are software components?

A software component generally refers to an object that is reusable and can interact with other objects. Controls are a type of component that provide (or enable) user-interface (UI) capabilities. Common examples of controls include datagrids, charts, combo boxes, buttons, ribbons, tree views, etc. Components can also be non-visual classes or libraries that offer the same benefits of controls without user interface capabilities.

What are component suites?

Component suites are offered by 3rd party control venders such as ComponentOne, DevExpress, Infragistics & Telerik. They are packages of controls, normally grouped by the platform they will be used on (i.e. WinForms, ASP.NET, WPF, or Windows Store).

Six Steps to Choosing the Right .NET Component Suite

The following six steps will help you, or your company, decide which component suite is right for your application.

1. Understand Your UI Requirements

Start by putting together a list of requirements for your user interface. This list will primarily include the things that you were unable to do easily with the standard toolkit (i.e. appointment scheduling, docking tabs, mapping), and may be very specific (i.e. display status icons in data grid row headers). You’ll also want to know what your style and appearance requirements are (i.e. specific themes, custom, none).

Your requirements may span beyond the UI to include tangential functionality (i.e. Excel export, printing). This is perfectly fine. Before you choose the right control suite, you will need to understand all of your requirements so that hopefully you can determine just one suite that meets all of your needs.

2. Discover and Evaluate Control Capabilities versus Requirements

The second step in choosing the right control suite is discovering and evaluating control capabilities. Search the web or talk to professionals in the industry to determine what companies offer the controls and features you are looking for. Evaluate each of them and check off which companies you find offer each required feature. A good way to determine this is to check the list of features on the company’s web site, and browse any online demos. Typically the web site content and demos go hand-in-hand showcasing the same information, one is just more hands-on.

Requirement

Component Suite One

Component Suite Two

Component Suite Three

Drag-and-drop grouping

Multi-month calendars

PDF rendering

XML data source

Depending on how specific your requirements are, you may be left uncertain if a suite meets some requirements. For now, leave a ‘?’ by the requirement and you’ll come back to it later. This suite is not out of the running just yet.

Control Appearances

In addition to evaluating based on control capabilities, don’t forget about control appearances. Theming is an important feature that applies to any and all UI controls.

What level of styling and theming do you need?

Themes are handled very differently by each control vendor. Some match the style techniques set by Microsoft, others provide their own unique way to apply and customize styles that you must learn. Take a look at what themes are provided by each 3rd party control vendor out of the box.

Do their themes support standard controls as well?

This will be an important consideration because realistically your app will include both standard and 3rd party controls side-by-side.

Determine how customizable the controls’ style is should you hit an appearance-based roadblock. Questions to ask include:

Do the included web controls fully support CSS?

Do the XAML controls include the control base templates you can override?

Does the company offer built-in themes or a theme builder type of application for Windows Forms controls?

If theming is important for your application then you should consider it just like any control or feature. You should definitely include it in your check list so you can cross compare your results.

3. Evaluate Cost

At this point you’ve already determined that purchasing a control suite is more cost effective than building one yourself. Before you waste time further evaluating and prototyping, you may be able to eliminate a contender just on pricing and licensing. It’s relatively a simple task. Most 3rd party control vendors offer competitive pricing and licensing models with royalty-free distribution, so they may seem the same. But they actually differ when you get into the specifics. Questions to ask include:

Are there discounts for buying multiple licenses (more than 10)?

Do I need additional licenses for build machines and servers?

If my developer has 2 computers do I need to buy him 2 licenses?

What is the renewal price each year?

Most companies will include free licenses for additional machines and offer you discounts when purchasing for a team of 5 or more. You may not easily find this information on their web site, so it’s best to build up the nerve to talk to a sales rep. You can do this quite easily in a live web chat in most cases. Comparing the cost of each control suite is just as important as comparing features, especially if more than one offer the controls and features you’re looking for. Of course, you want to show your boss that you saved some money on your choice. In some cases, a control suite may match your needs so well above the others that price becomes irrelevant.

4. Narrow the Field & Make an Initial Choice

By this point you may have already eliminated some contending suites and you may have a winner in mind. If you have more time and resources to devote to this decision, you can actually narrow the field down to maybe 2 or 3 control vendors before moving to the next step. Otherwise you can narrow it down to just one. Based on initial data like features and pricing, you should be able to make this initial “best choice” decision before you even begin coding. If you had some ‘?’ marks during your evaluation, you can give those control suites less weight in your overall grading. In the next steps you will solidify your decision and flush out any uncertainties. Or perhaps you may end up going back to the drawing board.

5. Test and Build a Prototype

Once you have an initial control suite or suites in mind, it’s time to get your hands dirty. Most 3rd party control vendors offer you a 30 day trial. Use this time to not only evaluate but start to build a prototype. You should try to use your company’s real data, or at least simulate how you will be loading the data into the UI controls.

Also use this time to look at how you will need to implement each of the required features. Most 3rd party controls make this task easy (i.e. just set a few properties), but some may require more work. Just because you see the feature in a beautiful demo, does not mean it will definitely work with your data. A lot of 3rd party control vendors polish their demos beyond realistic scenarios, such as using fake data that too perfectly fits the advertised feature. For instance, it would stink to find out too late in the process that the grouping feature only works if your data source is of a specific type of object, when you’re planning on using another. That’s why it’s important to prototype your biggest requirements before you pay.

If the prototype and testing phase fails for one or all of your selected suites, then you need to go back to step 2 and try with another control suite. If it’s a success then you are almost ready to make that final decision.

6. The Final Decision…

There are a few last things you need to consider before making that final decision, including documentation, support, scalability and overall reliability.

Documentation

A great .NET component suite needs great documentation and resources to help you along the way. Let’s face it; you can’t build your entire application during the trial phase so you won’t know every hurdle before you face it with no turning back (unless returns are allowed). During the prototype phase you should naturally take a look at the documentation. After you complete a typical “How do I do this” query ask yourself how easy it was to find the information.

Also keep in mind that most companies offer a community knowledgebase or forum that you should also search for help. Sometimes the knowledgebase may have more answers than the documentation, so don’t give up after just looking in one place. One company may have great documentation but not offer a complimentary knowledgebase that you can easily search and filter through. That can be a major strike against them. With a good community you have fellow developers asking the same questions you will have.

Support

Next, check out the support offerings for your component suite. What will you do if you hit a limitation or find a bug? Some companies charge more for immediate support, but most will offer free online support with up to 3 or 5 business days for responses. Which do you prefer? Responses to support issues are only half of the equation. Also you need to know how often the company releases patches or updates to their control suite. If you report a bug in January you would expect a fix within a couple weeks perhaps. Most 3rd party control vendors do not release updates that frequently and you may have to wait 4-6 months before getting a fix!

Scalability

Before making a purchase of an entire suite, it is also important to keep the future of your product in mind. You should ensure that your product will grow with technology changes and increased demands. This means that the toolkit you’re using needs to be robust and powerful enough to meet the needs of any future programming. Questions to ask include:

Will the control suite suit your needs on multiple platforms and devices?

Are the controls built upon industry standards, ensuring longevity (i.e. HTML5, CSS3, jQuery)?

Does the suite support emerging technologies (i.e. AngularJS, Knockout, WinRT)?

Reliability

Finally, consider that your component suite purchase is an investment. Make sure you choose a trustworthy company that is known for delivering quality products and one that will be around for the duration of your development cycle. Newer/smaller companies can be a greater risk to purchase from. The best way to gauge that is to see how long they have been in business providing the services and products you are about to purchase.

Conclusion

After working through the six steps above, the .NET component suite that best fits your needs should be more apparent and you should feel more confident in committing to your choice. Throughout the entire process keep in mind that the choice you’re making is a big one because it’s not easy to ‘undo’ a control suite once it’s locked into your application. Many companies wind up feeling trapped into a specific suite they later realized did not meet their full expectations. You want to avoid making a bad decision because you can’t always easily strip out the controls or rewrite the software. It’s a big decision that needs the right amount of time and resources devoted to making the best choice. Hopefully the steps described in this paper will help you and your company with this process