v2 Progress

Coordinator
Mar 2, 2009 at 7:06 AM
I spent some time this weekend starting on v2, updating the code to .NET 3.5 / DNN 5. I branched the code in the source code repository, to allow for continued updates/fixes to the v1 code line.

I've decided to move the code to a IRepository pattern to simplify the data access layer (DAL) of the code. With the new design, there are five methods (all(), find(id), save, delete, and one more I can't think of) that call into the database for each object type (guild rosters, guild entries, entry stats, errors, etc) - so I'm hoping to reduce down the number of stored procedures down to about 20-25 total. From this point, the filtering and sorting is all done in the business layer using LINQ (new to .NET 3.5).

At the moment, I've created the repository classes for the guild entries, guild rosters, and errors - and all three are interacting with the database just fine. I'm also running a unit testing framework over top of the classes as I create them (which should really help as I start layering on more complex code).

Next steps are rebuilding the business layer using LINQ to replace all of the old data access code. I'm then going to rebuild the caching system. In v1, I built the caching using a dataset model, which had all kinds of complexity to it. In v2, I'm going to cache the object collections, storing the actual GuildEntries in memory instead of the database tables. This was a mess in .NET 3.0, but LINQ seems to make this a lot easier so far...and it follows better design practices by doing a clear separation of the layers. As well, it will make creating the DNN DAL much much easier...hopefully removing some of the clunky workarounds I currently have in the code (e.g., having to pull the version numbers at the bottom of the page to ensure the right business controller was loaded).

Anyway, this is a many week project getting v2 up and running - but I thought I would share the progress.
Coordinator
Apr 21, 2009 at 7:43 PM
I thought I would update this thread.

I did rebuild most of the business layer using LINQ - and it works beautifully. The code BL assembly works flawlessly. The next step is to rebuild out the DNN implementation. This will likely happen in the month of May.
Jul 8, 2009 at 10:13 PM

Sounds wonderful. Any luck with DNN rebuild?

Coordinator
Jul 9, 2009 at 11:55 PM

Beyond the work in April on the port to base business logic, I didn't make much progress beyond.

...this borders on TMI, but anyway...I had some issues getting my guild site updated to DNN 5 when I had been looking at that in early May. I got distracted from the module work with trying to fix some DNN issues on the weekend...and then my wife and I started doing birthing classes as we prepare for our baby next month. So this all got put on the back burner; and my laptop has been rebaselined to Win7, which means having to reset up the dev environment (relatively minor task, but still another blocker). :)

I want to give this a solid update before the baby arrives, and will try to get it done. As pointed out in another thread, there are some issues that have developed with the current code base over time: professions are a bit funky in the skills table (I have a few ideas why, but would rather get v2 implemented and do it right, rather than fixing the couple hacks that are in place right now and having to mess with all the stored procedures), the reputation updates are really funky (I think from the same hacks that are clouding professions), and it still doesn't support the dual specs.

The v2 code is there (and works well for what it does) - I just need to pick it back up again one last time before the baby comes.