In December the DotNetNuke project made a large upgrade to our issue tracker which had been stuck on an old version for the last couple of years. We have been using Gemini from Countersoft for the last 6 years and it has served us well. Unfortunately, earlier versions were having performance problems with the amount of issues we were tracking across all the module projects along with the Core framework. Countersoft made a decision when moving from 2.x to 3.x to completely overhaul the security model. If you ever had to use Gemini 2.x for a large project like ours you would have found that the task for migrating the old security settings was enormous. We had over 40 projects each with security configuration affecting hundreds of users. As a result of the shear amount of work involved, we avoided upgrades long past the time when an upgrade was warranted.
In December, we hired some additional staff on the Quality and Maintenance team at DotNetNuke Corporation. At this same time we had made the decision that all of our module projects were going to move to CodePlex. As a result we greatly reduced the amount of work required to perform the upgrade at the same time that I had new staff members who could be dedicated to the task. As Phil Beadle indicated in his blog post, the initial upgrade to Gemini 3.5.4 occurred in early December. This upgrade resolved some of our longstanding issues, but unfortunately it resulted in new issues which in many respects were just as severe as the old issues which required the upgrade to begin with.
Having just completed the DotNetNuke 5.2.2 release this week, we had a little downtime while we scope out our next release. This was the perfect opportunity to work on fixing the remaining problems with the issue tracker. After getting no-where with trying to troubleshoot the individual symptoms, we decided to just go ahead and perform an upgrade to Gemini 3.6 which added many new enhancements.
That is the best decision I have made in a while. The latest version of Gemini appears to have resolved almost all of our outstanding issues (we still have an email issue to resolve). In addition, I have to say that I am very impressed with the latest Gemini version. This version not only resolved the performance problems we were experiencing, but it added in a ton of AJAX functionality which greatly simplified managing issues.
The following example highlights how the use of AJAX in Gemini greatly improved usability. This is just one example, but there are many other places where Countersoft has used AJAX to great effect. Today was the day we had set aside for reviewing outstanding bugs and identifying those that will be fixed in the next stabilization release that is due out in mid-February. In the previous versions of Gemini, we would use the issue filters to identify all of the outstanding bugs to be corrected. These issues would be listed in a large grid. To add an issue to the roadmap for the next version, you would click on the issue link to bring up the issue details. Then you would click a link to open the issue for editing which required a postback and a complete page reload. At that point you would specify the version where you planned to fix the bug and press the update button. Finally, you would click a link to return to the list of issues where you had started the process. In total, the process required 4 different postbacks and page reloads. Clearly this was not an efficient way to work through a list of bugs.
With Gemini 3.6, this process is greatly streamlined. Now when I am looking at my list of outstanding issues, I can customize the columns that are visible in my issue grid. For this particular task, I enabled the display of the Roadmap version in my issue list. Since Gemini 3.6 includes full inline editing, I am able to click on an individual value in my grid and change the setting directly. Once I have entered the correct value I can click a little “ok” icon and the value is updated. The new process does not require a single postback or page reload. What used to take minutes now takes seconds for each issue. The real benefit of this feature is that now reviewing issues does not require a huge time commitment. I can review and update an issue quickly and easily which increases the likelihood that I won’t fall behind in this critical task.
Overall, I am extremely pleased with this latest upgrade. Not only have we gotten rid of the bulk of our performance problems, but we have received great new functionality in the process.
The DotNetNuke team has long believed that the best way to move forward on a problem is one step at a time. While it can occasionally cause difficulties, in the end we find that it provides the most efficient use of our resources. I know that there may still be some problems with the current configuration but we are a 100% better off than we were 2 months ago. If you find any issues, please don’t hesitate to post them here or in the forums and we will work on getting them resolved.