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 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.


2sic Daniel Mettler (124)
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?