This is a DotNetNuke module providing Administration features. Currently, 2 admin features are supported, and the list might be expanded in the future.
1) Installation Backup - The module creates a complete backup of your physical DNN installation in zip format (only File system files and folders, excluding the database), and places the backup in your Hosting space. This feature was created because some Hosting
providers either do not provide a convenient way to backup the installation, while on some others, the process times out & generates an error while trying to backup the installations of the size of typical DNN footprint.
2) DNN Tab Caching - A typical DNN page goes through a long life-cycle of events before getting rendered to the browser. This poses some serious performance issues, user experience problems, not to mention the load on the DB & the Hosting server. This could
be a serious problem in Shared Hosting environments.
A common application of DotNetNuke is to create web portals for providing information to the audience. Most of the stuff is static which is updated only occasionally. This feature can be used to cache such tabs so that the output is generated once, which is
cached for a configurable duration. This provides better response times to subsequent users, and less load on Hosting.
However, Tab Caching has some quirks which are quickly summarized below:
1) The tab content can vary with users. Thus, this feature works only if an unlogged user is accessing the portal. For a logged-in user, it automatically routes the request through the normal DNN life-cycle.
2) This feature can be used only for tabs visible to all users. Again, the reason remains the same. If someone needs to login to view a tab, the content might be customized, and there is no logic for caching it. (One thing, that is always customized for a logged-in
user is the Display Name shown on a DNN portal. Obviously, this information cannot be cached and shared between users).
3) Caching works only for GET requests. POST requests are automatically routed normally (this again has been done due to POST request nature, and is not a limitation of the module).
4) Only Default.aspx based tabs are cached. SiteMap.aspx, KeepAlive.aspx etc. are not involved in the caching.
The Administrator can individually switch Caching on/off for portals. Individual tab Caching can further be controlled, with on/off switch for each eligible tab (eligible=>Visible to All Users tab), configurable cache time for each tab. Also, you can makr
each tab for force expiration, so that the next request for the tab is not served from the cache.
The Module is currently in beta, for testing.
How to use this Module
You need a working installation of DotNetNuke. This module has been tested on DNN 4.8.0 upwards uptill DNN 5.0.0. Install the module normally, it registers configuration information automatically on installation. You can verify this in event Viewer.
However, there seems to be a problem with Module installer on DNN 5.0.0. I have reported this problem on official DNN forums, but if you are using DNN 5, you need to manually add these lines to web.config after installing the module Remember, to keep these
lines on the TOP of the respective module sections.
i) Add this to <httpModules> under <system.web>
<add name="TabCachingModule" type="Imbibe.DNN.Modules.Administration.Caching.TabCacheModule" />
ii) Add this to <modules> under <system.webServer>
<add name="TabCachingModule" type="Imbibe.DNN.Modules.Administration.Caching.TabCacheModule" preCondition="managedHandler" />
After installation, drop the module on a page. By default, Tab Caching is not enabled. Go to Tab Caching section of the module, and check the checkbox on the top that says, "Enable Portal Tab Caching". Here you can also specify caching settings for
individual tabs. Click Update and there you go.
To verify that caching is been done, login from a separate browser window, modify the content (say of a Html module on some "All Users" visible page) and logout. Now as you are not logged-in, you should see the stale cached content that was not updated.
However, remember that you could easily have marked this tab for forceExpiration after updating it in the Tab Caching section of the module, and you would have seen the updated content.
See it in action
You can experience the module live at http://tcmengineering.com
. This is a College Website with most of the content static most of the time. Before jumping to any conclusions, consider that the site is hosted at a $3/mo
Hosting space. (However, I must admit that ASP.NET 3.5 with Sql Server 2005 is a throwaway deal at that much cost with other facilities that are being provided).Even without this module enabled, the site was performing reasonably well for a DNN portal.
As the traffic on the site is not too much, the first time you visit a page, it might go through the routine DNN life cycle, and then get cached. You can feel the difference by immediately visiting the same page again, as this time it would be served from the
cache (you cannot be sure of this, if someone else has visited the same page before you and before the cache item expired, you might get the cached page the first time even, and thus feel no performance difference).
Also, the feedback page is NOT cached, due to dynamic captchas on that page.