05-16-2005, 07:34 AM
Does VB .Net have a tool similar to Java's javadoc?
I was researching if it was possible to create documentation in this fashion but can't find any information.
07-22-2009, 11:43 PM
the closest thing is using three apostrophes and have the documentation auto set
There are plenty of documentation generators available, the most popular one I believe is NDoc (http://ndoc.sourceforge.net/). I've never personally used the tool, but I'm under the impression that it'll work for C# as well as VB.NET, but you can properly find out more in the user guide (http://ndoc.sourceforge.net/usersguide.html).
If it does not suit your need, google does have a whole list of documentation generators (http://lmgtfy.com/?q=vb.net+documentation+generator).
07-24-2009, 09:39 AM
There's not a whole lot of love for document generation in the .NET world.
Doxygen is a multi-language, GPL documentation generator, but I didn't see VB .NET in its list of supported languages. A little searching makes it look like there's a way to get it to work, but I've never tried.
(Skip this paragraph if you want facts but not a funny story.)
I wouldn't use NDoc. See how the last news update was in 2005? Here's the story (it's one of my favorites for some reason!) NDoc was written in the .NET 1.1 timeframe, and it was awesome because it was the only way to generate MSDN-style documentation for .NET source code. When VS 2005 released, there were a few language features that NDoc choked on. The major thing it couldn't do was generics; List(Of T) would get documented as List`1. The developer was working on it, but suddenly had a meltdown. He complained that he was the only person working on it and didn't have enough time to do work that paid the bills and work on NDoc. He further complained that, in all the time NDoc was developed, he'd only had a few donations. He proclaimed that since people didn't want to fund his development of NDoc he quit. That was the last day there was any activity on the project. This was, simply put, the stupidest rant I've ever seen. Open-source projects by definition should have more than one developer. There were over a dozen people who had tried to submit features, but all were rejected. This guy wanted to be the ONLY developer on the project, but then complained that he didn't have enough time? Furthermore, it was a FREE, OPEN-SOURCE project (though the "free" and "open" aspect is in question since I see no license information.) No one was obligated to donate. You don't make money off of a project like this by asking people to pay for it, you make money by putting "I'm the dude who wrote NDoc, which I know you use" on your resume!
Anyway. As of the last time I used NDoc it didn't support generics. I know that someone, somewhere has added the support because I just might know a product that uses it. The last source commit was a year ago, so I'm not sure what kind of development is still ongoing.
The alternative is Microsoft Sandcastle (http://en.wikipedia.org/wiki/Sandcastle_%28software%29). It was announced really soon after the NDoc meltdown. It's supposedly the tool MS uses to generate MSDN documentation, and I must admit it makes some pretty files. The last I used it, there wasn't a GUI for it, but this was years ago and I hear there's some neat ones now. I'd recommend this, since MS is making it. It's a shame it took them 3 versions of .NET to release a doc tool.
Both NDoc and Sandcastle use XML documentation comments (http://msdn.microsoft.com/en-us/library/b2s063f7%28VS.71%29.aspx), which for some reason are considered a C# feature even though the VB IDE supports it. To document a member, you use triple-comment syntax:
''' Does something really amazing
Public Class AmazingCode
All in all, I wish I could just say "use this" on a particular tool, but MS is really not treating documentation generation as an important thing. I blame this on my observations that MS cares primarily about application developers, demoting library developers to 2nd-class citizens. This is foolish, because good app developers have to write libraries too!