August 2007


Well, I’ve already run into an interesting problem as I looked over the latest iteration of the website — I forgot my passwords! It isn’t that huge of a deal, since I can create new users, but some of the users were already setup in the database with classes, study groups, etc., so it’ll be a slight pain to hookup the test data again. Bleah.

Anyhow, the main goal of this iteration is to try out the MVP pattern on an existing page. For now, I believe that I’ll start with viewing the list of my classes as a student. Provided that this is successful, and that this proves to be a better development approach, I’ll then look to converting viewing the students in a class, and also viewing my profile.

The iterations will be a little different from the summer. Although I’m still aiming for 2 week iterations, I’ll probably go for less “chunks” of new features/changes, and blog a little less often. It was good in the summer to establish a rhythm, but as the basic features got implemented, it became more difficult and time-consuming for each “chunk” to get finished.

As part of the iterations, I’m also incorporating work on my literature review. For this release, I want to update my existing collection of articles, and add some sources for Bloom’s mastery learning approach. This means roughly that I’ll need to spend the first week finding the new sources, and the second week reading through them. I may find more sources than can be read in a week, but the important thing is to start with the core readings, and then expand out in the coming weeks if there is more reading to be done.

As I mentioned earlier, I have been re-reading one of my ASP books, as well as various articles on the MVP design pattern under ASP.

I finished the ASP book (Programming ASP.NET by Jesse Liberty) yesterday, and it was definitely more enlightening than the first time around. There were some sections on deployment and web services that I skimmed through, as I won’t be doing much of that with this release. I do feel that it was a helpful exercise to go through the book again, though, and I would heartily recommend anyone learning ASP to do something similar to me — read the first 6-10 chapters or so to get an overview of the basics, then try first-hand a bunch of ASP programming, and then read the whole book again from cover-to-cover to get a broader and deeper understanding.

I also read various articles on the MVP pattern, specifically as its implemented in ASP. I was a little surprised at first at the different ways it has been implemented, as I was hoping for more of a “one-way-to-rule-them-all” approach, but it helped to nail down better what the gist of the pattern was.

As I was reading, I was getting a little concerned, though, as it seems like it might require working around some of the way things are already setup in ASP, especially some of the more complex existing web controls built into .NET. I know… these were the very controls I was complaining about being overly abstracted and confusing. But now that I’ve used them and am facing the possibility of writing some of the code that it takes care of in the background… I guess I have a greater appreciation, and a higher tolerance for its quirks and limitations.

Anyhow, I do want to try out the MVP pattern regardless. The good news is that it doesn’t have to be a top-to-down architectural change — I can start with a specific page and implement it there, and see how that compares to my previous approaches. This will probably be the major goal of the next iteration, and determine the approach used for the rest of this semester.

Here are the articles on the MVP pattern I read, if you’re interested:

I’ve spent most of the week doing several readings on ASP and coming up with a rough schedule for this semester.  After several unsuccessful attempts to make things fit into the schedule and my upcoming wedding this November, I think it would be better to take a more reasonable approach and pace, and see how things are about halfway into the semester.

So here is a simple proposed breakdown for the weeks to follow (the date is when the work listed in the bulleted points begins):

8/27/07

  • Finish up the ASP book, readings on MVP pattern

9/3/07

  • Iteration 0.1.4 -Experiment with MVP pattern, convert some existing pages to use the new pattern
  • Update my bibliography with new literature, especially material on Bloom’s mastery learning

9/17/07

  • Iteration 0.1.5 – Complete the student data model, and associated account management and basic records views
  • Complete literature review outline

10/1/07

  • Iteration 0.1.6 -  Complete the class data model, views of class enrollment, class info
  • Finish one major section in lit review

10/15/07

  • Iteration 0.1.7 – Complete the curriculum data model, views of lessons, lesson scheduling and assessment
  • Finish one major section in lit review

The schedule above will take me to October 29, which is about halfway through the semester, and also right before what will likely be two weeks off, with my wedding on November 2, and honeymoon up til November 11.

I’ve been back from China for about two weeks now, and the official start of the new semester is today, so it’s time for an update.

When we last left off,  release 0.1.3 was finished, and I was musing over how to develop in ASP in a more test-driven way.  As it turns out, since I’ve been back, I’ve had the chance to run into two strong leads for switching gears.

First, I’ve been reading articles on a programming design pattern called Model View Presenter. If you’re not a programmer, this might be more info than you really need. But in a nutshell, programmers use design patterns to implement solutions to programming problems that are frequently encountered. It’s a way of leveraging the lessons that other programmers have learned.

Model View Presenter is a recent pattern from Martin Fowler, who actually retired it and divided it into two different patterns, the Supervising Controller and the Passive View. I won’t get into the details here, but the MVP pattern and its derivatives are often used in conjunction with a testing approach called mocking. I found a few articles that discuss how to do mock tests in ASP using the MVP pattern, so I’m very intrigued to find out more.

Second, when I got back, I went back to Jesse Liberty’s Programming ASP.NET book. This was the book that I had initially started with earlier in the project, and was a little overwhelmed with, due to the enormous scope of its contents. Well, now that I have a few iterations under my belt, I decided to try reading it again, and to my delight it’s a lot easier the second time around.

I am about half way through now (it’s 700+ pages) and already have several ideas on how to address some of the issues I had in earlier iterations. In particular, though, hidden at the end of the chapter on ADO.NET, was a little section on designing ASP with business logic objects. I guess I missed it the first time because I wasn’t sure to what degree I would be needing ADO.NET and quickly skimmed. Actually, I think that might’ve been the chapter where I gave up the first time and switched to a different book. Anyhow, it describes another approach that I could use if the MVP pattern is giving me problems.

So what’s on the agenda now?

I have to figure out a rough schedule for this semester; one that includes the possibility of finishing up by the end of the year. This might be difficult, since I will be getting married in November (yay!), and you know how that goes. But I’ll try and see if I can come up with a workable schedule — if it’s too ambitious then I’ll probably fall back on a 2 semester timeline.

I also want to finish the Liberty ASP.NET book, now that I can understand it a little better. I’ll also be looking at those articles on the MVP pattern in ASP and perhaps experimenting with that a little.

I think this will pretty much keep me busy for the week, but I plan to go back to the iterations beginning next week. Stay tuned!