On a sadder note, NDoc has officially died under very unfortunate circumstances.
This is basically a reminder post, but you might find it useful.
In the development I have been doing in the last few months, I have been doing a lot of config based assembly loading. Trying to find out why an assembly doesn’t load can be very difficult though. Check out Suzanne Cook’s post about fuslogvw.exe.
NDoc has been a valuable tool for many years. Unfortunately, like many 3rd party free software projects, it is hard to publish version after version for a market that has time to use it, but a developer that doesn’t have time to develop it (I feel your pain Kevin!). As much as I would like to see NDoc mature to the 2.0 framework, it looks like Microsoft are finally going to roll their own project. Read about SandCastle here and here. It should be released as a CTP soon.
I have been working on a fun project recently. I have put together a VirtualThemeProvider that uses the VirtualPathProvider in the 2.0 framework.
The VirtualThemeProvider provides functionality for flexible ASP.Net theme support. It provides the ability to merge theme directories with a global theme directory and theme directory filtering.
Full source is provided with this project. I would like to get any feedback, comments and suggestions that you have for this project. If you have any, please visit the forum.
I have written an article that provides more detail about this project and how to use it.
ASP.Net 2.0 is bundled with some great technology, especially what is available through the provider model. One of the new providers in 2.0 is the VirtualPathProvider. Scott Guthrie put out some information about this provider, as has David Ebbo in this post. My VirtualThemeProvider uses the ASP.Net VirtualPathProvider to provide flexible theme support for ASP.Net projects. There were two primary objectives for this provider. Firstly, I wanted to support the ability to filter directories and files that are available in a theme directory for a given named value. Secondly, I wanted to support a global theme concept that included the ability to merge the theme directory with the global directory.
Take the example of a web project that has mutliple themes that are assigned depending on the type of user. Each theme has a subset of styles that display that theme according to different accessibility requirements (such as vision impared users).
It has been quite a while since my last grading as I have spent this year focusing on the club and the students along with the other instructors. I was keen to move forward again, so my head instructor told me two weeks ago that I would be doing a triple grading, followed by a competition the week after that.
Yesterday was the grading/graduation. On the whole, it went really well. I graduated with three others, one beginner and two other advanced students. My wife and parents were there to support me which was really great.
The graduation started with kicking exercises which was a serious workout in itself. After the kicking exercises, we went into the patterns. We were asked to perform Gibbon Poomse and Taeguk Il Jang along with the beginner graduate. The other three of us were then asked to perform Taeguk Chil Jang and Taeguk Pal Jang. These last two are the ones that I have to perform at the competition next week. There were a few things that I could have done better with these yesterday so I will have the next week to work through that.
I wonder what I was supposed to see.
I have been reading up on naming standards today. It has been quite a while since I challenged by naming convention habits.
This has all come about because I was using GhostDoc today to quickly put in the bulk of comments in an assembly for me to then go through and tweak.What I found was that GhostDoc didn’t like some of my parameter naming. This was the catalyst for my reading about naming standards after thinking about naming standards for quite a while.
I read Microsoft’s naming guidelines, but it seemed to not address the naming standards of member level variables. The closest discussion it seemed to get on the issue was guidelines for static fields. What standards are people using for member level variables? I read a recent post where it seems that everyone has a different opinion.
I have recently fixed up some code from another developer. There were a few things in the code that I got a little chuckle about. The weird thing is that I have seen these coding behaviors in a few jobs that I have had.
First one that I have to laugh about (to avoid crying) is when developers comment out code blocks, then put a modified version of that code block below the commented version. Maybe this isn’t a bad idea, but seriously, if you are using a source control system then what is the point? Isn’t that what version control is all about? You can look at older versions of the same file, and usually, you can even compare the files to see what was changed.
The second one is when I come across code that basically says if true, do something, if false, then do something, else do something else. How is the else statement ever going to get hit? I’m all for defensive coding, but is this going too far?
I came across a third one last week, but I think I’ll keep that gem to myself.