Actually I think I was the one who posted the comment about dog time.
We have been working very hard on the Store module and tried really hard to get the code included in the 4.3.5 release of DotNetNuke. Just as the deadline approached, we there were a few showstoppers that we simply could not workaround in time. At this point, most Gemini issues have been resolved, although we have created some new issues along the way. Here is a overview of what happened just before release...
Solution File Structure
The first serious issue was the simple fact that we had reached the limit of path/file lengths using Visual Studio. Even a stock setup would fail for either the source or installation version. This meant the solution of about 20 projects had to be reorganized into shorter filenames and paths. It only took a few days to make the necessary adjustments to the source including the project structure, libraries and namespaces.
Then it took a few more days to just to get it working again. The provider mechanism was also based on the file locations and now with more providers they all had to be fixed.
Versions
The next real jump was a decision to go ahead with ASP.NET 2.0 development. At one point I was personally working with five different versions of the Module (1.0.0, 1.0.1, 1.1.3, 1.1.4 and a custom version) and it became quite an act to keep it together. When Robert and I discussed the issue we decided to proceed with 1.1.4 (for 4.x/2.0) and would post 1.1.3 (3.x/1.1) version afterwards.
Missing Data
Just as we were about to post to results near the end of September, we noted a few more problems from the initial design. While it might have worked to process a few orders in testing, it would have been a real problem if your order history started losing bill to and ship to addresses. This ID issue also lives in the order details - if you deleted an item, it would disappear from order detail history. This simply could not be released as is.
IPortable
Releasing an upgrade involves existing user data. It is nice to work with an empty Store and demo data, but there may be some people with information that should not be destroyed. Since the new version supports the IPortable interface, you can export and import data for the first time.
Well, you could quite easily with simple categories. As per Gemini, I had introduced a ParentID field to support parent categories and a separate ProductCatagory table to support products under multiple categories. While this works quite well with new data, the data schema breaks the IPortable mechanism.
Should we now scrap the new tables and category functionality, the IPortable interface, or both - just to get it out the door?
Where do we put a warning not to uninstall the Store module or your data will be deleted?
Should we remove the uninstall script for future versions?
Gemini
I have solved and resolved many of the outstanding Gemini issues, and have created just as many new ones as those that have been fixed. My only complaint is that I could not add Gemini issues or update their progress as I was working on the issues.
I’m the low guy on the totem pole so I literally cut & pasted every Gemini issue into my overall work log. Otherwise you could have watched the progress of every issue as it was resolved (or created).
Next Steps
My goal was to have the Store work out of the box.
When I signed up for this I did not intend to go one step forward and two steps back. What I did discover is that the project needed a little more than bodywork before you could really race it on the track. I still believe there are a few fundamental refactoring issues to be resolved before this thing really takes off but I promise you that once it does it will be worth the effort.
Throwing 10 people at the project would not have helped at all. It would have made things much worse especially with the solution reorganization. Someone just needed to sit down and get it done. I never dreamed it would be as much work to get it working again.
Tomorrow
I agree that the updates should be visible on Gemini. I suggest that we get this as close as we can in the shortest time possible and start fresh with Gemini and this release. Once we get past any biggies, there is no reason to prevent the project from being released on a much tighter, regular schedule.
For those who noticed that my posts have slowed recently, I have fractured my thumb and find it a little difficult to type.