New Community Website

Ordinarily, you'd be at the right spot, but we've recently launched a brand new community website... For the community, by the community.

Yay... Take Me to the Community!

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 3 of 3)?

Everybody has access to the source code

Since all elements of the API documentation are retrieved from the source code comments automatically, downloading and unzipping the DNN source code pack is the first step to start working on documentation. The DNN source is wonderful study material for any .NET developer wanting to learn more about advanced .NET programming.

Choose anything you want to learn about

The current MSDN style .CHM help file is a great starting point for getting an idea about the wealth of the DNN API. If you start clicking around and reading bits, you will stumble upon parts (methods, properties, etc.), that are not documented to the level that you expect or want.

Now it is time to really start learning!

Have a look at your unzipped source pack and find the .vb source file that contains the class, methods or property you are interested in. This is a great way to learn about the structure of the whole DNN solution as well.

Document your learning

While you have opened the .vb source file in your Visual Studio and start learning: why not document the things you are learning about? A very good way to learn about things is to write about it. Use the standard VB.NET code comment tags. Just type 3 quotes on the appropriate place and the base comment structure will be generated by Visual Studio for you. Couldn’t be easier. In PortalInfo.vb you can find reference samples of the code comments, e.g.

#Region "Constructors"
        ''' <summary>
        ''' Create new Portalinfo instance
        ''' </summary>
        ''' <remarks>
        ''' <example>This example illustrates the creation of a new <c>PortalInfo</c> object
        ''' <code lang="vbnet">
        ''' For Each portal As PortalInfo In New PortalController().GetPortals
        '''     Dim portalID As Integer = portal.PortalID
        '''     ...
        ''' Next
        ''' </code>
        ''' </example>
        ''' </remarks>
        Public Sub New()
        End Sub
#End Region

A remark I want to make here is the attribute lang=”vbnet” in the code sample. Since the documentation compiler (MS) has a default of C#, this will signal the doc compiler to treat this as VB.NET sample code and apply the appropriate formatting.

If you do more than a single line of code documentation, you may want to consider installing ghostdoc, which is a nice (free) Visual Studio Add In that helps to create structured code comments even better than the default Visual Studio way.

Share your efforts

DotNetNuke = Open Source = Community = Sharing.

if you understand this equation, you should be more than willing to share your learning process with documentation to all other 800.000+ registered members of the DNN community. And there is a structured way how to do this, well documented in a blog by Philip Beadle, have a look. Although this blog talks about DNN 5.4.3, the procedure it is not linked to any specific version of DNN. It takes a little time to set it up, but it works like charm.

The basics of this procedure is that you create a difference (patch) file with your additions to the code in such a way, that it can be implemented easily by DNN core developers.

If you share your efforts I am sure that your contribution (you) will get a recognition from the community!

Become involved

If you are willing to learn a lot, document your learning in the .vb code, why not become a member of the DNN Reference team? There is no better way to have your learning experiences multiplied 800.000 fold.

Contact me at ernstpeter.tamminga AT if you believe in the equation.


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

Comment Form

Only registered users may post comments.


Aderson Oliveira (22)
Alec Whittington (11)
Alessandra Davies (3)
Alex Shirley (10)
Andrew Hoefling (3)
Andrew Nurse (30)
Andy Tryba (1)
Anthony Glenwright (5)
Antonio Chagoury (28)
Ash Prasad (37)
Ben Schmidt (1)
Benjamin Hermann (25)
Benoit Sarton (9)
Beth Firebaugh (12)
Bill Walker (36)
Bob Kruger (5)
Bogdan Litescu (1)
Brian Dukes (2)
Brice Snow (1)
Bruce Chapman (20)
Bryan Andrews (1)
cathal connolly (55)
Charles Nurse (163)
Chris Hammond (213)
Chris Paterra (55)
Clint Patterson (108)
Cuong Dang (21)
Daniel Bartholomew (2)
Daniel Mettler (181)
Daniel Valadas (48)
Dave Buckner (2)
David Poindexter (12)
David Rodriguez (3)
Dennis Shiao (1)
Doug Howell (11)
Erik van Ballegoij (30)
Ernst Peter Tamminga (80)
Francisco Perez Andres (17)
Geoff Barlow (12)
George Alatrash (12)
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 (274)
John Mitchell (1)
Jon Henning (14)
Jonathan Sheely (4)
Jordan Coopersmith (1)
Joseph Craig (2)
Kan Ma (1)
Keivan Beigi (3)
Kelly Ford (4)
Ken Grierson (10)
Kevin Schreiner (6)
Leigh Pointer (31)
Lorraine Young (60)
Malik Khan (1)
Matt Rutledge (2)
Matthias Schlomann (16)
Mauricio Márquez (5)
Michael Doxsey (7)
Michael Tobisch (3)
Michael Washington (202)
Miguel Gatmaytan (3)
Mike Horton (19)
Mitchel Sellers (40)
Nathan Rover (3)
Navin V Nagiah (14)
Néstor Sánchez (31)
Nik Kalyani (14)
Oliver Hine (1)
Patricio F. Salinas (1)
Patrick Ryan (1)
Peter Donker (54)
Philip Beadle (135)
Philipp Becker (4)
Richard Dumas (22)
Robert J Collins (5)
Roger Selwyn (8)
Ruben Lopez (1)
Ryan Martinez (1)
Sacha Trauwaen (1)
Salar Golestanian (4)
Sanjay Mehrotra (9)
Scott McCulloch (1)
Scott Schlesier (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)
Steven Fisher (1)
Timo Breumelhof (24)
Tony Henrich (3)
Torsten Weggen (3)
Tycho de Waard (4)
Vicenç Masanas (27)
Vincent Nguyen (3)
Vitaly Kozadayev (6)
Will Morgenweck (40)
Will Strohl (180)
William Severance (5)
What is Liquid Content?
Find Out
What is Liquid Content?
Find Out
What is Liquid Content?
Find Out