As promised this article is an update with more testing results of DNN core
modules and the enabling of AJAX. I will investigate multiple core modules and
will provide the test results for each of the modules, regardless of success or
failure, to give you an idea of where each of these modules are for potential
use of AJAX.
In this article I will cover my testing results for the below list of modules.
As with my previous article and all other articles that I have written these
results are from MY testing only and do no represent the opinions provided by
DotNetNuke or the respective module development teams. I am testing the
AJAX implementation on a CLEAN DNN 4.5.1 installation using the DNN Horizontal
Blue Fixed default skin.
The first module up for testing was the announcements module, this module only
has three controls, a view, edit, and settings control. After looking at this
module it is not all that interactive and in all honesty no areas of this
module would be benefited by enabling AJAX support, therefore I did not attempt
any modifications to the module definition for this module.
Next was the documents module, this module although quite complex is all
contained within 3 controls, one for viewing, one for editing, and one for
settings. Below I will discuss my findings regarding AJAX and each of these
particular display controls.
View Control (Document.ascx)
As of the current tested version there are no client selectable events that
cause postbacks as the download links simply are links to linkclick.aspx,
therefore, there was no potential benefits from enabling AJAX
Settings Control (EditDocumentsSettings.ascx)
Those that are familiar with the Documents module are all too familiar with the
"Display Columns" option within the module settings. You can rearrange the
columsn moving them up and down the tree but each time you move an item it
causes a postback and you have to scroll back to the bottom of the settings
page. Another item that always caused me pain was the "Add Sort Order" item,
this also caused a postback. Well after I enabled partial rendering for this
control, it was able to quickly move columns around and add/remove sort order
items from the listing.
At no time did I notice any errors with AJAX enabled so I would say it is "safe"
with testing to enable AJAX for this control
Edit Control (EditDocs.ascx)
The documents module edit page is where you upload/edit documents. I tested this
page with AJAX enabled and was NOT successful. All fuctionality worked with the
exception of uploading new documents. THis error appears to be due to the
DotNetNuke Link control implementation used in the module.
You can obtain benefits in one area of the Documents module by enabling AJAX
support, for my users this area in the administration section was VERY helpful
as it allowed them to configure the module in a much more timely fashion. I
will revisit this investigation when the new version of the documents module
has been released.
The forum is an incredibly complex piece of functionality within DotNetNuke and
from my testing I was unable to find a single control that could safely be AJAX
enabled without causing problems with the forum display. Additionally
much of the transition areas in the forum is from control to control which
would not be benefited by AJAX functionality.
Next I looked at the DotNetNuke Gallery module, this module is another one that
has multiple controls therefore I am not going to list each of the modules
individually, however, I will say that in my testing there were NO controls
that I could enable AJAX on on and notice a performance improvement. Some
controls are performing internal Response.Redirects() that stop the AJAX
request process therefore no benefit was gained. I did personally test
all controls within the module and none were successful.
The links module is another control that is fairly simple as it only has three
display controls. I was unable to successfully enable AJAX on both the Edit and
Settings controls due to their use of the "Link" control provided by the
DotNetNuke framework. I was however able to enable AJAX successfully for the
View control. This provided a VERY nice interface if you have the "Info"
option enabled for your links where you can show the description. This
quick fix makes for a great improvement in module performance.
This wraps up my second round of AJAX testing for DotNetNuke 4.5.1 and the
DotNetNuke core modules. Look for future blog articles to cover the remaining
core modules, I will then start testing some third party modules that I use on
a regular basis. If you have a module you would like me to review or if you
have any feedback/questions please share it below.