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.
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.
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:
Iana Tsolova is Product Manager at Telerik’s DevTools division. She joined the company back in the beginning of 2008 as a Support Officer and has since occupied various positions at Telerik, including Senior Support Officer, Team Lead at one of the ASP.NET AJAX teams and Technical Support Director. Iana’s main interests are web development, reading articles related to geography, wild nature and latest renewable energy technologies.