Learn More





DNN Community Blog

The Community Blog is a personal opinion of community members and by no means the official standpoint of DNN Corp or DNN Platform. This is a place to express personal thoughts about DNNPlatform, the community and its ecosystem. Do you have useful information that you would like to share with the DNN Community in a featured article or blog? If so, please contact .

The use of the Community Blog is covered by our Community Blog Guidelines - please read before commenting or posting.

Help! How do I do THIS in the DNN API (Part 2 of 3)?

The API documentation has grown tremendously

When I started to create the MSDN style help file 2 years back (the help files for DNN 4.8.4), the resulting .chm file was about 10Mb in size. For the current DNN 5.5, the help file has grown from 10Mb to almost 30Mb!

The documentation grew, because DNN developers, and also the DNN Corp. developers, spend more time on putting structured documentation right into the (new and enhanced) source code. The community benefits from the work of the employees of DNN Corp!

Work of the Reference team

But it was not only DNN Corp. developers who documented source code. Also, in the DNN Reference team, we assigned ourselves tasks to improve the existing documentation (or should I say: create the missing documentation).

I used one of the main base classes of the DNN (PortalInfo.vb) to create the standard for source code documentation.

If you have a look at an “old” version of the MSDN style help file (have a look at an old download from, you will find meagre and missing documentation in the entry PortalInfo Class at the main entry DotNetNuke.Entities.Portals. This is how it looks in the old (DNN 484) .chm help file:

MSDN Style help file for DNN 5.0

Documentation is missing (the red text) and for the rest it is mostly only the automatically generated docs that is available, not much additional code comments have been added by the original developers of de code.

The improvement of PortalInfo.vb

I spend quit some time to create a standard how we would the API documentation to be: a well documented class, methods and properties. And, if possible, examples how to use that part of the API. And we (the DNN Reference team) are proud of the result.

As mentioned, I used PortalInfo class as THE example, you can find the source of this class in the folder ~\Solution\Library\Entities\Portal\PortalInfo.vb of the source pack of DNN.

If you have a look at the same PortalInfo Class documentation in the newly generated MSDN Style help file of DNN 5.5, you will find an abundance of API documentation, well ordered, structured, including see also, examples of use and more.

MSDN Style help file for DNN 5.5

Help file and intellisense both improved

If you compare the sources of PortalInfo.vb of DNN 5.5 with e.g. DNN DNN 5.0, you will see that all the info for the MSDN Style help file can be found as comment lines in the source code of PortalInfo.vb. This way, the documentation will not only be part of the (separate) MSDN style help file, it will also be part of intellisense in Visual Studio, if you are developing against DNN 5.5. The intellisense is contained within the XML documentation files that are (since DNN 5.2.0) distributed as part of a DNN release.

So our efforts for documentation multiplies itself: both into the .chm MSDN style help file as well as into the intellisense in Visual Studio.

But there is more

Tags van Technorati:

! In the last part of this blogs series I will illustrate how YOU can help in this process.


There are currently no comments, be the first to post one.

Comment Form

Only registered users may post comments.


2sic Daniel Mettler (125)
Aderson Oliveira (15)
Alec Whittington (11)
Alex Shirley (10)
Andrew Nurse (30)
Anthony Glenwright (5)
Antonio Chagoury (28)
Ash Prasad (22)
Ben Schmidt (1)
Benjamin Hermann (25)
Benoit Sarton (9)
Beth Firebaugh (12)
Bill Walker (36)
Bob Kruger (5)
Brian Dukes (2)
Brice Snow (1)
Bruce Chapman (20)
Bryan Andrews (1)
cathal connolly (55)
Charles Nurse (163)
Chris Hammond (203)
Chris Paterra (55)
Clinton Patterson (28)
Cuong Dang (21)
Daniel Bartholomew (2)
Dave Buckner (2)
David Poindexter (3)
David Rodriguez (2)
Doug Howell (11)
Erik van Ballegoij (30)
Ernst Peter Tamminga (74)
Geoff Barlow (6)
Gifford Watkins (3)
Gilles Le Pigocher (3)
Ian Robinson (7)
Israel Martinez (17)
Jan Blomquist (2)
Jan Jonas (3)
Jaspreet Bhatia (1)
Jenni Merrifield (6)
Joe Brinkman (270)
John Mitchell (1)
Jon Henning (14)
Jonathan Sheely (4)
Jordan Coopersmith (1)
Joseph Craig (2)
Kan Ma (1)
Keivan Beigi (3)
Ken Grierson (10)
Kevin Schreiner (6)
Leigh Pointer (31)
Lorraine Young (60)
Malik Khan (1)
Matthias Schlomann (15)
Mauricio Márquez (5)
Michael Doxsey (7)
Michael Tobisch (3)
Michael Washington (202)
Mike Horton (19)
Mitchel Sellers (28)
Nathan Rover (3)
Navin V Nagiah (14)
Néstor Sánchez (31)
Nik Kalyani (14)
Peter Donker (52)
Philip Beadle (135)
Philipp Becker (4)
Richard Dumas (22)
Robert J Collins (5)
Roger Selwyn (8)
Ruben Lopez (1)
Ryan Martinez (1)
Salar Golestanian (4)
Sanjay Mehrotra (9)
Scott McCulloch (1)
Scott S (11)
Scott Wilkinson (3)
Scott Willhite (97)
Sebastian Leupold (80)
Shaun Walker (237)
Shawn Mehaffie (17)
Stefan Cullmann (12)
Stefan Kamphuis (12)
Steve Fabian (31)
Timo Breumelhof (24)
Tony Henrich (3)
Torsten Weggen (2)
Vicenç Masanas (27)
Vincent Nguyen (3)
Vitaly Kozadayev (6)
Will Morgenweck (37)
Will Strohl (163)
William Severance (5)
Try Evoq
For Free
Start Free Trial
a Demo
See Evoq Live
Need More Information?