Blogs

DotNetNuke Core Modules and AJAX (Round 2)

26 Apr

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.

The Modules

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.

  • Announcements
  • Documents
  • Forum
  • Gallery
  • Links

Announcements

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.

Documents

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.

Module Conclusion

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.

Forum

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.

Gallery

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.

Links

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.

Conclusion

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.

tags: DNN, Product Review
comments powered by Disqus

Content provided in this blog is provided "AS-IS" and the information should be used at your own discretion.  The thoughts and opinions expressed are the personal thoughts of Mitchel Sellers and do not reflect the opinions of his employer.

Connect with Mitchel

I hope the information here has been helpful. To stay connected you can also subscribe to blog updates via email, contact Mitchel about consulting services, or reach out for assistance via CodeMendor

Content Copyright

Content in this blog is copyright protected.  Re-publishing on other websites is allowed as long as proper credit and backlink to the article is provided.  Any other re-publishing or distribution of this content is prohibited without written permission from Mitchel Sellers.