“Please send us a sample project”
If you have contacted Telerik’s support before, chances are that you have been asked to send us a sample project. In our daily routine, we try to avoid requesting such as much as possible, but there are cases in which we simply cannot move forward without a project that would allow us to reproduce a specific problem locally. We usually ask for isolated sample only after:
- we have failed to reproduce the reported problem by following your instructions
- we have failed to reproduce the reported problem by running the code provided
- we have failed to reproduce the reported problem by intelligently predicting/guessing where the problem might be
We perfectly understand that in most cases we are talking about huge project with large (often confidential) database and complex logic that cannot easily be re-created in a separate project. Our experience however, shows that the time invested in isolating the problem before opening a ticket is well paid-off. Such tickets receive quick response and usually a solution in only one or two replies. The reason is simple – once the support engineer starts working on the case, her efforts are aimed at finding and providing a quick solution of a problem instead of trying to find a way to reproduce it first.
In addition, the statistics shows that in 95% of the cases the problem is not database-related and can be relatively easily isolated by following several simple rules. Below, we have tried to summarize these rules and to provide some general tips that would allow you to isolate a sample project.
Database: Most often than not, the problem is not database–related. It would be great if you can use a dummy DB that allows the database-driven control to appear on the page. Please check this Code Library article for more information on how to create and use dummy datasource with RadGrid. The same logic can be applied to other data-bound controls.
Simplifying: Usually, this is the most time-consuming part of the task. Let’s say that you have a huge project that contains MasterPages / content forms / user controls etc.
1. Selecting the right form/page to work on:
If the problem is reproducible on one form only, you will have to work with that form. If the problem however, can be reproduced in all forms where the corresponding control(s) appears, then it is better to work with the form that has the least number of controls in it as it would be easier to isolate the problem in it.
2. Isolating the reproduction steps:
Try isolating the steps that allow you to reproduce the problem in a written list. Make sure that these steps reproduce the problem every time. There are cases where the problem appears from time to time only - in such cases, make sure that the steps that you have isolated will reproduce the problem if repeated number of times.
3. Removing the surplus:
Determine which are the controls that are not used in the reproduction steps above. Remove them (comment their code) and try the steps again. If the problem still exists – go to the next step. If the problem does not appear, start bringing back the controls one by one and see when the problem starts appearing again.
Once you removed all controls that
a) Do not participate in the reproduction steps and
b) Are not needed for reproducing the problem
Try removing some of the other controls and skipping the corresponding steps from the reproduction scenario. Often there are only 2 or 3 controls that are directly involved with a given problem. For example if you have a RadSplitter that contains panes containing RadTreeview, RadComboBox and RadTooltip, the problem might be related to RadSplitter and RadTreeview only.
4. Moving in a separate project
Once you have minimized the number of controls that reproduce the problem, copy that page/form to a new project that uses the same DLLs as your original project. Make sure that the form can be run from that project and that it still reproduces the problem. There are cases where the reasons for the problem might be in your project settings (web.config, app.config, etc), so if you cannot reproduce the problem after copying the file, try copying your configuration files as well.
Sending the project:
Zip the project and attach it in a support ticket along with the following information:
OS / Browser (if applicable) / Control(s) version / .Net version
Description of the expected behavior
In addition, sometimes it helps to send some screenshots or a movie that show the problem on your side. If you need a capturing software, you could use Jing
or other product that suits your needs.