DotNetNuke Hosting with ASPHostPortal.com

BLOG about DotNetNuke CMS, latest technology and Special DotNetNuke Hosting Package with ASPHostPortal.com

DotNetNuke Hosting With ASPHostPortal.com :: How to Integrating the Google Tag Manager (GTM) into DNN

clock Maart 27, 2015 05:40 by author Mark

Today I will explains about Integrating the google tag manager (GTM) into DNN. Google has an awesome scripts-management engine called GTM (Google Tag Manager). Though it talks about managing tags, in reality it actually manages script-integration. Particularly Google-scripts (like Adwords and tracking stuff), but also jQuery and similar.

How does it work? In general you create a “set” of “tags” (read: scripts w/parameters) in a web-interface provided by google. Then you integrate that set with some iFrame/Script-HTML-snippet in your layout. If one day you would like to add another tag or change the tag-integration-rules, you do this on the GTM-System, without having to modify your page. Note that the GTM-System also allows various rules, like automatically integrating different scripts depending on the page that is being viewed; adding custom parameters etc. – very powerfull.

The integration is a bit tricky with DNN, because it uses an iFrame which must be added right after the tag and before the default tag.
To learn more about GTM, visit the Google Tag Manager website.
To integrate your tag, use this snippet in your default.ascx (remember to replace the xxxx with your code). Note: this works with DNN 6+ and 7+.

<script runat="server">
     protected override void OnInit(EventArgs e)
     {
         base.OnInit(e);
         var tp = (CDefault)Page;
         tp.FindControl("Body").Controls.AddAt(0, new Literal() { Text = "<!-- Google Tag Manager --><noscript><iframe      src='//www.googletagmanager.com/ns.html?id=GTM-XXXX'height='0'width='0'style='display:none;visibility:hidden'></iframe></noscript><script>function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':newDate().getTime(),event:'gtm.js'});varf=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src='//www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);})(window,document,'scr" + "ipt','dataLayer','GTM-XXXX');</scr" + "ipt><!-- End Google Tag Manager -->" });      
     }
 </script>

By the way – the easiest way to test and use this is by trying the DNN App for GTM I created.

Best DotNetNuke Hosting Recommendation

ASPHostPortal.com

ASPHostPortal.com provides its customers with Plesk Panel, one of the most popular and stable control panels for Windows hosting, as free. You could also see the latest .NET framework, a crazy amount of functionality as well as Large disk space, bandwidth, MSSQL databases and more. All those give people the convenience to build up a powerful site in Windows server. ASPHostPortal.com offers DotNetNuke hosting starts from $5/month only. We also guarantees 30 days money back and guarantee 99.9% uptime. If you need a reliable affordable DotNetNuke Hosting, we should be your best choice.



DotNetNuke Hosting With ASPHostPortal :: How to modify DotNetNuke Login Page? The Easy Way

clock Maart 16, 2015 05:42 by author Mark

The DNN login page is the most forgotten part in all DNN users and even some professional DNN portals like PokerDiy.com and neoteo.com. There are few modules that allow you to have a simplified login or pop up login like digg.com but you need to pay or it and it is not cheap and easy to change the design.
dnn-login-sample

In order to make changes to your DNN Login page, you have to understand the components in the login module. The DNN Login module consists of 4 parts which is the DNN Membership Authentication System, The Authentication Provider, The Login Module itself and the Language Resources Files (.resx).

The linkage of these components are as below:
Login Module loads Authentication Provider(s) into it and the provider as a gateway to the DNN Membership Authentication System. For example, if a user using LiveID to login your DNN Portal, the LiveID Authentication Provider redirect the user to MSN LiveID Gateway and then pass the credential back to your DNN Portal and match it with the DNN Membership Authentication System.

Login Structure

However, DNN Membership Authentication System also consist of Member Registration, Password Reminder and Forgot Password Question which makes the designing work on Login Works kinda tricky, not even need to mention the words that are loaded from the language resource files.
Ok, lets start changing those ugly interface! First we need to locate all the files that need to be changed. You will need to have FTP access to your DNN installation root.

Step 1: Changing the Login Module Container

The Login Module is basically the Admin’s Container by default where there is actually no login page but a “DNN Control” (Home/ctl/Login.aspx) unless you create a page and specified it in Admin > Site Setting > Advance Setting > Login Page.

Step 2: Locating Files that need to be changed

Now we need to locate the Login Authentication Providers at /DesktopModules/AuthenticationServices/ There will be 3 default providers which is DNN, LiveID and OpenID. You will find Login.aspx and Login.ascx.resx (under App_LocalResources) inside it and that are the files you are going to change it. For the DNN authentication files, you can get them at: /admin/Users/user.aspx and /admin/Authentication/login.aspx
Make sure you didn’t mixed up with login.aspx in providers.

Step 3: Changing the Text and Words

You can either change it using DNN Language editor which is located in Admin > Language in control panel are directly look for the files in FTP. I actually prefer the later method as it is more easier to read and modify using Visual Web Developer.
“Register” “Forgot and Password” at
/httpdocs/admin/Authentication/App_LocalResources/Login.ascx.resx
*If you have more than one portal, the file name will be “Login.ascx.Portal-0”

<data name="Remember.Text" xml:space="preserve">
     <value>Remember Login</value>
 </data>
 <data name="cmdForgotPassword.Text" xml:space="preserve">
    <value>Forgot Password ?</value>
 </data>
 <data name="cmdRegister.Text" xml:space="preserve">
     <value>Register</value>
 </data>

All you need to to change the text inside between the “value” attribute. I’d not recommend you to put html/css into it as it will increase the load time and may messing up xhtml coding standard…

Step 4: Changing the files.

First, we need to deal with the Login Tabs which is using the DNNTabStrip webcontrol. You can find this file at:
/httpdocs/admin/Authentication/Login.ascx
Inside the file, look for:

<DNN:DNNTabStrip
 ID="tsLogin"
 runat="server"
 TabRenderMode="All"
 CssTabContainer="LoginTabGroup"
 CssContentContainer="LoginContainerGroup"
 DefaultContainerCssClass="LoginContainer"
 DefaultLabel-CssClass="LoginTab"
 DefaultLabel-CssClassHover="LoginTabHover"
 DefaultLabel-CssClassSelected="LoginTabSelected"
 visible="false" />

The Css Classes are located at /Portals/_default/default.css by default. You can either change the css file, override it in skin.css / portal.css or redefine the classes in login.ascx
If you look at the pokerDIY login tabs, you will see that the tabs have been pushed into 2 lines which makes the layout very messy. You can simply widen it by changing the “width=160” to a larger number in the following lines and you will have the problem solved.

<asp:panel id="pnlLogin" runat="server" Visible="false">
     <table cellspacing="0" cellpadding="3" border="0" summary="SignIn Design Table" width="160">

Ok, now you have change the “Register” and “Forgot Password?” text but what about the design? For these, you need to look for “cssclass=”CommandButton” in the following lines located inside the same login.ascx.

<asp:Linkbutton id="cmdRegister" resourcekey="cmdRegister" cssclass="CommandButton" text="Register" runat="server"/>
 <asp:Linkbutton id="cmdPassword" resourcekey="cmdForgotPassword" cssclass="CommandButton" text="Forgot Password?" runat="server" />

We’ll leave the other parts of codes inside the file and CSS coding for a moment. Now we proceed to change another login.ascx which is located in:
/DesktopModules/AuthenticationServices/DNN.ascx
There are few basic things you need to change to make your login looks beautiful which are: The width, Label text/icon, login button, input box and the text inside it. You can find them in these lines:

<dnn:label id="plUsername" controlname="txtUsername" runat="server" resourcekey="Username" />
 <dnn:label id="plPassword" controlname="txtPassword" runat="server" resourcekey="Password" />
 <asp:textbox id="txtUsername" columns="9" width="150" cssclass="NormalTextBox" runat="server" />
 <asp:textbox id="txtPassword" columns="9" width="150" textmode="password" cssclass="NormalTextBox" runat="server" />
 <asp:button id="cmdLogin" resourcekey="cmdLogin" cssclass="DNNLogin" text="Login" runat="server" />

Like many others, you probably thought of removing the stupid help icon in the login page. It is simple if you’re only having a single language website version. All you need is to replace the <dnn:label to standard html code.
If you need to persevered the language resources function, you may substitute the dnn label control into standard asp label control as follow:

<asp:label id="plUsername" controlname="txtUsername" runat="server" resourcekey="Username" />

To change the textbox design as well as the font inside, simply look for <asp:textbox and change the cssclass value and thing applies to <asp:button for the login button.
After you’ve changed all the cssclass value in dnn.ascx, you may proceed to LiveID.ascx and OpenID.ascx using the same method.

Step 5: CSS Styling codes

Now we’ve reached into the hardest part where we need to use css to make a stylish login page. First, I would suggest you to put a new name for each of the value inside the CssClass attribute. This is because the default value are general classes which are shared with other modules and controls in the whole portal.

Best DotNetNuke Hosting Recommendation

ASPHostPortal.com provides its customers with Plesk Panel, one of the most popular and stable control panels for Windows hosting, as free. You could also see the latest .NET framework, a crazy amount of functionality as well as Large disk space, bandwidth, MSSQL databases and more. All those give people the convenience to build up a powerful site in Windows server. ASPHostPortal.com offers DotNetNuke hosting starts from $5/month only. We also guarantees 30 days money back and guarantee 99.9% uptime. If you need a reliable affordable DotNetNuke Hosting, we should be your best choice.



DotNetNuke Hosting - ASPHostPortal.com :: How To Integrating your Zoom search page into DNN

clock Maart 15, 2015 11:36 by author Mark

Integrating your Zoom search page into DNN

At this point, you should have a working search page which you can access and perform search queries on as seen above. You can use your search page just as it is, and simply modify the "search_template.html" file to match the look of your site. However, if you want to further integrate the search page inside your DNN website (so that it will maintain the same skinning and various modules you are using), then read on.
First, we need to "Add" a new page in DNN to serve as your new Search Page. This will contain a search form, and your search results. You can name this something appropriate like "Site search".
On this new page, we will need to add an IFRAME module (if you do not see "IFRAME module" in the Modules list, you will need to login as "host" and "Find/Install additional modules"). You can title this added module as "Search" or something similar. Now click on the "Edit IFrame Options" button.
Here you should specify the Link Type as a URL, and copy and paste the URL of your working search page (from before) in the "Location:" text box as seen below. For the width, specify "100%" and we recommend a decent height of something around 600 pixels (or enable Auto height if your search page is on the same domain as your DNN site).

 

Next, click on the expand box next to the "QueryString Parameters" heading. We will need to add all the parameters that Zoom will use so that the page can pass these parameters along to the actual "search.asp" script within the IFrame. Click on the "Add QueryString Parameter" link and specify the following:

 

This allows the main search query to be passed to this page. If you would like to have more parameters in your custom search forms (search forms that you will place on other pages of your site), then you will need to add them here as well. If you are not familiar with the idea of the custom search form or what other parameters are necessary, don't worry, as this will be explained a little later below and you can come back here to add more parameters as needed.

 

Now click "Save" to return to your search page. You should now see your Zoom search page loaded within the IFrame of your DNN search page!

 

Run a few test searches and you should find that everything should be working within your new DNN search page.
If you wish to modify the text or layout (or the colours and fonts of the search results) within the IFrame, you will need to change the "search_template.html" file. Please see chapter 6 of the Users Guide ("How do I customize the look of my search page?") for more information.

Note: You may notice that when you click on a search result, the link opens within the IFrame of the search page. If you wish to change this behaviour, go to the Zoom Configuration window, and select the "Search Page" tab. Under "Results linking", change the selected option to "Frame or window:" and enter "_top" (without the quote characters, but note that the underscore is important) in the text box next to this option. Re-index your website and upload the files for this change to take effect. You will now find your search result links will open outside of the IFrame.

Additional note: If you make the IFRAME very tall, you'll find that when you click on the "Next >>" results link down at the bottom of the search results page, the browser would not scroll back to the top of the frame automatically. To fix this, edit your "search_template.html" file and replace the <body> tag with the following:

<body onload="location.href='#'">

Best DotNetNuke Hosting Recommendation

ASPHostPortal.com provides its customers with Plesk Panel, one of the most popular and stable control panels for Windows hosting, as free. You could also see the latest .NET framework, a crazy amount of functionality as well as Large disk space, bandwidth, MSSQL databases and more. All those give people the convenience to build up a powerful site in Windows server. ASPHostPortal.com offers DotNetNuke hosting starts from $5/month only. We also guarantees 30 days money back and guarantee 99.9% uptime. If you need a reliable affordable DotNetNuke Hosting, we should be your best choice.



DotNetNuke Hosting With ASPHostPortal :: How To Setting up the DotNetNuke Blog Module

clock Maart 12, 2015 06:06 by author Mark

This article will walk you through this module and how to successfully configure it on a page within your DNN portal.This article assumes that you have downloaded and installed this version of the module in your website.  This article also discusses creating a blog that is to be used only by the individual configuring the blog, so you will want to login as the blog owner before continuing with this tutorial.  For this example we will be creating a blog for use by the “Admin” of the site.

Creating the Blog!

To get started we will add a new page and call it “Blog”, you complete this step by clicking the   icon in the control panel.  Input the following information for the blog page, or feel free to input your own specific information.
This creates a page that is visible to all users that will contain our blog.  Now, we will want to add an instance of the blog to this newly created page.  Select “Blog” from the list of available modules in the control panel and then select “Add”

Now right away you will notice that the blog module has now added a total of 5 new module displays to your page; most recent blog entries, blog list, new blog, search blog and blog archive.  We will work with each of the controls individually to properly configure the blog for display.

Lets start with the “New Blog” module, this is an administrative module that is used to manage the blogs that are part of the module so we will first want to change the display properties of this module to disable viewing by all users.  Hover over the action menu and select “Settings” to enter the module settings.  In the permissions section, uncheck the “Inherit View Permissions from Page” and ensure that no values are selected, then click “Update”.  The module should now show that it is only available for administrators.

This view control is the one that you will use to create and manage the properties for your blog and sub-blogs.  Once you have the view listed above click on “Create My Blog” to start the configuration of the blog module.  You will be presented with a “Create new Blog” page that will prompt you for various bits of information; each of these will be discussed below.

  • Title – This is the display title for your blog, it is displayed at the top of the entry listing and in the blog directory.  For this example we will call our blog “Test Blog”
  • Description – This is a short description to the purposes of the blog.  This content is displayed on RSS feeds and as general blog information..  For this example we will use the text “Demonstration blog description text”.
  • Blog Options – This section is a collection of checkboxes and looks like this, each setting will be discussed below.
  • Make this blog public – This option is used to make the blog visible to the public
  • Allow users to post comments – This allows registered users to post comments to your blog
  • Approval for user comments required – This option is only enabled for selection if user comments are allowed.  If enabled this option will prevent any comments from displaying publicly until they are approved
  • Allow anonymous users to post comments – this allows anonymous users to post comments to your blog
  • Approval for anonymous comments required – Just like the rule for user comments this adds an approval processes to the anonymous comments.
  • Allow Trackback Comments – This option allows users of other blogs to link back to your blog inputting a comment automatically
  • Approval for trackback comments – Just like the other items this will enable an approval process flow
  • Trackback auto discovery – This is a mode that will allow trackbacks to be discovered automatically
  • Send mail notifications - This option will send an e-mail notification to the blog owner after each blog comment and/or trackback
  • Use CAPTCHA for comments – This option will require the completion of a visual CAPTCHA before a comment can be submitted.

The final option in this section is the “When displaying your identity use” option.  This allows you to use either your username or full name as the identifying name for blog postings.
Typically when configuring modules we would enable comments for registered users without approval and for anonymous users with approval.  These will be the options that are selected for this tutorial.

  • Syndication Options – This collection of settings relates to RSS feeds and if/how they will be created.  Each option will be described below.
  • Syndicate this blog – If this is enabled the content for this blog will be introduced into an RSS feed
  • Syndicate independently – If this is enabled the blog will be syndicated as its own separate RSS feed.  You can use this with child blogs to prevent them from all being listed in 1 feed.
  • Managing Editor - This textbox is where you can put an e-mail address that should be listed as the managing editor for the RSS feed.  This is something that should be populated with a valid e-mail address as it provides a method for feedback and questions from consumers of the RSS feed.
  • Date and Time Options – These options are used to control how the dates and times are displayed in the blog.  This is where you select the time zone for your postings as well as your desired date format.  Below is an example of the default setting for US Central time.

Once you have gone through these settings you can skip past the “Child Blogs” section as this section is outside the scope of this article.  After clicking on “Update” your blog will be created.

Configuring your page layout

Now that we have created a blog it is a bit easier to see what each of these individual modules on our page are used for.  Lets take a bit of time to organize and discuss each of these modules.  The following steps will take you through a process to provide you meaningful information for each control as well as will give you instructions on how to rename the components to be more descriptive.

New_Blog

This control is the first control that we worked with an serves as an administration module, initially used to create the blog and eventually used to modify blog settings and to add new blog entries.  Typically renaming this module to “Administration” is helpful as it makes it easy to remember what its purpose is.  You can click in the module title to use the inline editor to change the name of the module.
It is also very common to move this module to the left pane to condense it’s display.  The module display provides you with three options.

Blog Settings

Clicking on this link will return you to the blog settings page that we used above to create your blog; you can use this to administer the various configuration elements of your blog.

View My Blog

Clicking on this link is the same as clicking your specific blog form the “Blog_List” module; it simply updates the “Most recent blog entries” window to show your blog listing.

Add Blog Entry

This is where you can make a new post to your blog.  You will be presented with an input screen that will provide you with fields for entry date, blog, title, summary, and blog.  Each of these fields are fairly self explanatory you can use these fields to control the CONTENT of your blog post.  You additionally have an “Entry Options” section where you can set options for your blog.  These items exist to allow you to “publish” a blog, to allow comments, and/or to display a copyright notice at the bottom of your blog posting.  Below is an example of these settings under their defaults
After you populate all values for the fields you may press “update” to actually make your new blog post!  It is that easy!

Blog_Archive

This module is a simple calendar that shows days that have blog posts and allow users to navigate the blog based on a date range.  Typically this module is renamed to “Archive” or something of that nature.  This is another control that for both space and usability is typically moved to the “RightPane” to allow it to display alongside the blog postings.  An example of the interface after modifying this control and the previous control is below.
As you can see we are starting to create something that looks more like a blog that you might expect to see.

Blog_List

This module is a control that allows users to select the various views from your blog.  They are presented options for “View All Recent Entries” which will display recent entries from any and all blogs and child blogs.  They are also given the ability to click on each individual blog and they will be displayed that information.  This is another control that condenses display very nicely and is deserving of a new name and location.  Typically this is found on the “LeftPane” of a site and is called “Navigation” or “Blogs” something a bit more descriptive to your users.
The action menu for this module provides you access to the “Blog Settings” page and “Add New Blog” pages.  This makes the “Administration” module unneeded for administration purposes now that you have created your blog.  Some individuals remove the module entirely but most just leave it for administration display.

Search Blog

This module is the search feature for the blog module itself allowing users to search for desired content, again this is a module that can condense to display in smaller areas and is typically located near the “Archive “ control as they are similar in function.  For this example we will rename it to “Search” and place it directly below the “Archive” module.
This module has no configuration options and provides users basic searching of blog content.

Most Recent Blog Entries

This module is the actual display control for the module that will show your blog posts to your users and allow them to view/leave comments.  The view of this specific module changes depending on how the other modules are configured.  You can view summary information for you blog postings and then drill down into the full detail display.
This module does have a configuration element that is accessible via the action menu by selecting “Module Options”.  These options apply to the blog module as a whole and will be discussed in two separate sections.

Basic Settings

These settings are basic settings that control the display of the blog and the input of content for the module.  Below are the default settings for this module.  They are all fairly self explanatory and are used to mostly limit the content to ensure that you have a proper display on your site for content length, search results length, and RSS feed length.

Advanced Settings

These settings are more advanced topics and relate to integration and other elements of the blog module.  Each of these values will be discussed below.

  • Allow Upload Options – Can blog posters upload items to their posting?
  • Show Blog Summary – Is the summary displayed when viewing the single blog detail?  Typically this is disabled as your summary is the first portion of your full blog post and it wouldn’t make sense to display it before the blog content.
  • Show unique title – If enabled this module will use a blog specific title to describe the content of the page.  For SEO this is a very good practice!
  • Personal Blog Page – If you want to display 1 and ONLY 1 blog on the page you can select the blog that is associated with the module here.  This essentially disables the function of the “Navigation”/”Blog_List” module discussed earlier and selects the given blog directly.
  • Enable DNN Search – This option is disabled by default.  If selected the module will use the ISearchable interface to provide the core DNN search engine with information about your blog postings.

Summary

After walking through this example you should now have a blog page that looks something like the following.

Best DotNetNuke 7.4 Hosting Recommendation

ASPHostPortal.com

ASPHostPortal.com is the leading provider of Windows hosting and affordable DotNetNuke Hosting. DotNetNuke Hosting from ASPHostPortal.com provides a safe, reliable and performance-driven foundation for your DotNetNuke website. DotNetNuke is the perfect Content Management System for managing and developing your website with one of ASPHostPortal’s Hosting plans. ASPHostPortal has ability to support the latest Microsoft and ASP.NET technology, such as: WebMatrix, WebDeploy, Visual Studio 2015, .NET 5/ASP.NET 4.5.2, ASP.NET MVC 6.0/5.2, Silverlight 6 and Visual Studio Lightswitch, ASPHostPortal guarantees the highest quality product, top security, and unshakeable reliability, carefully chose high-quality servers, networking, and infrastructure equipment to ensure the utmost reliability



DotNetNuke Hosting With ASPHostPortal :: How To Manage Pages in DNN

clock Maart 4, 2015 05:20 by author Mark

Manage Pages in DNN

To create a new page in DNN is pretty simple. After you login on the site, look for the menu Pages and hover your mouse into the menu, a sub menu will appear under the menu. Click the option Add New Page.

Page Properties in DNN

Below is the main properties that you will basically utilize in daily use.

  • Page Name : Page name must unique and can not be duplicate or has the same name with other pages. What ever you type in here, it will appear exactly in the site menu.
  • Page Title : Page Title is used for meta tag Title. You can optimize your site by specifying individual unique title for each page.
  • Page URL : You can define your own custom url in here. This will help optimize your site for SEO purposes.
  • Description : This will be used in meta tag description. You can include a brief description about this page.
  • Keywords : This will be used in meta tag keyword. You can separate a keyword by comma.

"Note: most search engine will no longer consider the meta keyword as important factor for search engine search".

  • Include in Menu : By untick this one, the menu will be hidden and will not be visible in the site menu.

Manage Page's Permission

The page permission will list available roles in the current site portal. By default Administrators, All Users, Registered Users, Subscribers, Translators, Unauthenticated Users, and Unverified Users are predefined in DNN. What we interest most are probably All Users which cover all user roles, Registered Users which cover registered members only and Administrators which covers admin account only.

If you want to make the site visible to all users then you should tick All Users View Option. The Edit option, give ability to specific role to edit the content of the page. The content in here are the modules of the page, it could be HTML modules, news modules etc. If you do not want any public users able to view this page, you can set to Registered Users. But if you want to give the page visibility to admin only, then you should choose Administrators.

Alternatively, you can use Page Managements to manage your site pages easily. This menu is available under the Site menu.
All your pages will be displayed in a tree menu on the left hand side. To edit the page, you can just click the menu name. If you want to delete the page, you can just simple right click the menu link.

Best DotNetNuke 7.4 Hosting Recommendation

ASPHostPortal.com

ASPHostPortal.com is the leading provider of Windows hosting and affordable DotNetNuke Hosting. DotNetNuke Hosting from ASPHostPortal.com provides a safe, reliable and performance-driven foundation for your DotNetNuke website. DotNetNuke is the perfect Content Management System for managing and developing your website with one of ASPHostPortal’s Hosting plans. ASPHostPortal has ability to support the latest Microsoft and ASP.NET technology, such as: WebMatrix, WebDeploy, Visual Studio 2015, .NET 5/ASP.NET 4.5.2, ASP.NET MVC 6.0/5.2, Silverlight 6 and Visual Studio Lightswitch, ASPHostPortal guarantees the highest quality product, top security, and unshakeable reliability, carefully chose high-quality servers, networking, and infrastructure equipment to ensure the utmost reliability



DotNetNuke Hosting With ASPHostPortal :: How I Get My DotNetNuke To Run So Fast

clock Maart 2, 2015 06:56 by author Mark

One of the most common questions that I get via the forums on this site, or via e-mail is "How do you get your sites to run so fast".  Although not perfect, my sites typically run a bit faster than your average DotNetNuke sites.  Previously I have kept the exact specifics of my changes to myself, however, with a litle encouragement from the community I have decided to share the full context of the changes that I make to a default DotNetNuke installation to get better baseline performance, as well as extra items that I do to help when I really need that "boost".

Overview

First of all I want to start out by saying that a lot of the information that is displayed here can be found in previous blog postings.  Posts such as DotNetNuke Host Settings Explained, DotNetNuke Scheduler Explained, DotNetNuke Performance Settings Explained, and Simple DotNetNuke Performance Enhancements.  Are good starting points for some of the detail behind my recommended changes.
The following changes are simply the configurations that I have found to be the best "baseline" configurations.  Consideration is needed in regards to the site setup, update frequency, traffic, hosting environment and users to ensure that you have the proper setup for your specific environment.  I will discuss the settings section by section, simply noting the changes that are made.  Please reference the specific "Detail" document for more information.
DISCLAIMER: Follow these recommendations as a guide only, I am not responsible for any effects of implementing these changes.

Host -> Host Settings Changes

The first place I visit is the Host Settings page.  There are a number of key updates and changes needed in this section.  Again, only changes are noted here.

Appearance

In this section I uncheck the "Show Copyright Credits" box

Advanced -> Authentication Settings

In this section I uncheck "Enabled" for any provider that will not be used in the portal, typically the LiveId and OpenId providers

Advanced -> Performance Settings

In this section I change the "Module Caching Method" to Memory.  the "Performance Setting" to HeavyCaching.  And the "Compression Setting" to GZip Compression.

Advanced -> Other Settings

In this section I change the "Scheduler Mode" to Timer.  I enable the "Event Log Buffer" and I disable the "Auto-Sync File System" option
These are the most common Host Settings changes that I complete.  Depending on the site I'll make a few other small edits.

Host -> Scheduler Changes

The biggest change that I make here is to change the "SearchEngineScheduler" task to run typically once every 12/24 hours.  This reduces a big load on the server.

Other Changes

From a DotNetNuke configuration change that is all that I modify.  Overall those changes typically result in very noticable performance improvements, but many times it just isn't enough to keep the sites running as smooth as possible.  So depending on the situation I have a number of other items that I work with.

Regular Purging of Event Log

As most people that have used DotNetNuke have discovered the EventLog table can become a very troublesome hinderance on the performance side of a site.  Enabling the Event Log Buffer helps reduce the effects of a large EventLog, however, the best policy is to clean the EventLog on a regular basis.
I do this one of two ways.  On my own sites I have an SSIS package within SQL Server that truncates the table every 24 hours.  On client sites I utilize my Scheduled SQL Jobs module to keep a 7 day rolling history of the EventLog data.  The key here is that we MUST keep the event log small.

Skin Selection and Menu Provider

The next item of consideration is a multi-part consideration.  I focus on finding CSS based skin layouts that utilize third party menu components such as Telerik and Css NavMenu.  With a simple skin change to sites I have noticed page load times that have reduced by over 50%.
Finding a good designer that creates well laid-out skins with third party menu providers has been a key performance enhancement, at least in the page.  I have NOT benchmarked these numbers though since DNN , so the core menu provider might have better performance.

Compression/Caching Modules

As a last step, if I really need to get the most performance out of a site I will tend to lean towards Snapsis PageBlaster as a good option.  I currently use PageBlaster on this site only and have had very good luck with it, although when configuring the module you must be careful to test all functionality first.  This was another change that once implemented I noticed very visible performance improvements.

Summary

There you have it, that is my secret trick to improving DotNetNuke site performance!  Many people charge a lot of money to make these simple performance tweaks and I just laid them all out on the table for you free of charge.

Best DotNetNuke 7.4 Hosting Recommendation

ASPHostPortal.com

ASPHostPortal.com is the leading provider of Windows hosting and affordable DotNetNuke Hosting. DotNetNuke Hosting from ASPHostPortal.com provides a safe, reliable and performance-driven foundation for your DotNetNuke website. DotNetNuke is the perfect Content Management System for managing and developing your website with one of ASPHostPortal’s Hosting plans. ASPHostPortal has ability to support the latest Microsoft and ASP.NET technology, such as: WebMatrix, WebDeploy, Visual Studio 2015, .NET 5/ASP.NET 4.5.2, ASP.NET MVC 6.0/5.2, Silverlight 6 and Visual Studio Lightswitch, ASPHostPortal guarantees the highest quality product, top security, and unshakeable reliability, carefully chose high-quality servers, networking, and infrastructure equipment to ensure the utmost reliability



DotNetNuke 7.4 Hosting - ASPHostPortal.com :: How to Improved event logging in DNN 7.4

clock Februarie 25, 2015 06:06 by author Mark

Today I will explains about How to Improved event logging in DNN 7.4, let me to tell you ..

Everyone who has opened up the event log in DNN has undoubtedly been struck by the fact that there is a lot of information there. The event log is like a huge bin into which the platform and modules can drop anything they wish to log. To help you navigate the flood of information we use color coding and filters. This will allow you to answer questions like “User X had an error when they went to page Y. What happened?” You’d probably want to know when user X had this experience as the log is basically just a chronological list of events. But the event log is not able to answer the question “Who else had this error?” and “Is this error recurring often?” The event log was simply not designed to answer those questions. To address this, I’ve made a few changes to the framework which I’ll elaborate on.

An important shortcoming in the old event log design

The way the old event log worked was that it logged things like portal id, user id, tab id, time and type of event (error, information, etc) into separate fields in the EventLog table in SQL. But the most important parts of an error were stuffed into an XML blurb that was stored in a field (called LogProperties) of type “Text”. This makes it extremely complicated to drill down to the questions mentioned above in SQL. What you see on screen is that XML pumped through some XSL to make it look nice. But there is no way to select and sort by the various details of an error. Only on the main fields like user id, etc.

Solution approach

The way I’ve approached this is to first change the data layer without changing anything further up in the application. In other words: you won’t notice any changes (yet) in the UI. But we should begin logging the specifics of errors (i.e. exceptions) in a way that allows us to filter by them and get meta information. Like how often a specific error occurs, etc.
In the future I’d love to revise the event log module to allow users to quickly drill down into issues plaguing their DNN installation. But given that we are in a transition period where admin module will be broken out of the main platform into their own projects, it is not the right moment to start working on this.

Changes

If we’re logging an exception what we’ll do is to create a (MD5) hash of the complete StackTrace field of that exception. The exception is stored into its own table called Exceptions and the hash serves as the key. The ExceptionHash field is added to the Eventlog so for error events we can link to the exception. Obviously, if we have the exception already in the table, we don’t create a new record. We also no longer log the exception in the LogProperties blurb. This should save on the total size of the EventLog table.
Secondly we create a table ExceptionEvent which attaches to the EventLog table to just add a few typical fields if an exception is being logged like portal id, tab id, and user id. The changed result in the following structure:

Final words

As said before there is still work to be done to improve the event log (notably in the UI). This is but a first step and from now on people will be logging the exceptions in their own table. For those of you who work in support: you can already leverage these changes by going to SQL directly to analyze errors.

Best DotNetNuke 7.4 Hosting Recommendation

ASPHostPortal.com

ASPHostPortal.com is the leading provider of Windows hosting and affordable DotNetNuke Hosting. DotNetNuke Hosting from ASPHostPortal.com provides a safe, reliable and performance-driven foundation for your DotNetNuke website. DotNetNuke is the perfect Content Management System for managing and developing your website with one of ASPHostPortal’s Hosting plans. ASPHostPortal has ability to support the latest Microsoft and ASP.NET technology, such as: WebMatrix, WebDeploy, Visual Studio 2015, .NET 5/ASP.NET 4.5.2, ASP.NET MVC 6.0/5.2, Silverlight 6 and Visual Studio Lightswitch, ASPHostPortal guarantees the highest quality product, top security, and unshakeable reliability, carefully chose high-quality servers, networking, and infrastructure equipment to ensure the utmost reliability



DotNetNuke Hosting With ASPHostPortal :: How to Set up a Temporary URL in DotNetNuke

clock Februarie 16, 2015 05:24 by author Mark

Set up a Temporary URL to Access Servers

Some of clients migrate from other hosting providers. They want to verify their site is functioning properly before contacting their registrater to either point their 'A' record to the IP address of their server or change their name servers to our name servers. Other clients have a new site and have not yet registered their domain name with a registrar. The following steps outline how you add a temporary URL so you can view your website on servers before you make your website on the servers live.
If you are unsure of which version of Plesk Control Panel is controlling the web services of your server, see  How do I Determine What Version of Plesk Control Panel I am Using?

Set up a Temporary URL

  • Log in to your Plesk Control Panel
  • In Plesk 11.x click on Subscriptions tab, click on your domain.Click on the Websites & Domains tab.  Then click on Add New Domain Alias, at the bottom of the page.
  • In Plesk 9.x go to Domains > [your domain] > domain aliases
  • Add a domain alias called [your domain].dnnmax.com.
  • Enable all options and click OK.
  • Log in to your database using SQL Server Managment Studio.
  • Navigate to your database and expand [your database] > Tables.
  • Right click on dbo.PortalAlias then click Edit Top 200 Rows.
  • Click on the last row. Leave the first column default.
  • Second column is your portal number (default is 0).
  • In the third column enter your temporary URL ( [your domain].com).
  • Save the settings by tabbing to the next row, committing the change to the table.
  • Recycle your application pool so the addition to the PortalAlias table will take effect.

Recycle the Application Pool for Websites using Plesk 11.x

  • Log into your Control Panel.
  • Click the Subscriptions tab, select Manage Hosting for the domain.
  • Select the Websites & Domains tab.
  • Below Web Hosting Access select Show Advanced Operations.
  • To recycle your application pool select Dedicated IIS Application Pool for your websites.
  • Select the Recycle button to recycle the application pool.

Recycle the Application Pool for Websites using Plesk 9.x

  • Log into your Control Panel
  • Click on Home on the top of the page. This will take you to the welcome screen of your subscription. (If the correct domain isn't listed, choose the subscription for it from the drop down menu in the upper right.)
  • On the home screen, click on Domains, then select your domain.
  • Under Additional Tools select IIS Application Pool.
  • Select the Recycle button to recycle the application pool.

Best Recommended DotNetNuke Hosting

ASPHostPortal.com

ASPHostPortal.com is the leading provider of Windows hosting and affordable DotNetNuke Hosting. DotNetNuke Hosting from ASPHostPortal.com provides a safe, reliable and performance-driven foundation for your DotNetNuke website. DotNetNuke is the perfect Content Management System for managing and developing your website with one of ASPHostPortal’s Hosting plans. ASPHostPortal has ability to support the latest Microsoft and ASP.NET technology, such as: WebMatrix, WebDeploy, Visual Studio 2015, .NET 5/ASP.NET 4.5.2, ASP.NET MVC 6.0/5.2, Silverlight 6 and Visual Studio Lightswitch, ASPHostPortal guarantees the highest quality product, top security, and unshakeable reliability, carefully chose high-quality servers, networking, and infrastructure equipment to ensure the utmost reliability.



DotNetNuke Hosting with ASPHostPortal :: How To Uninstall DNN Module Programmatically

clock Februarie 11, 2015 17:38 by author Mark

Uninstall DNN Module programmatically

To uninstall the DNN module is actually quite complex via code. There are couple of table modules related and depends on each other. Fortunately, the DNN framework has a built in delete method for these modules. There are 3 tables in the database that are related to the module definitions. They are: DesktopModules, ModuleDefinitions and PortalDesktopModules. The DesktopModules and ModuleDefinitions tables are global tables that are linked to all portals. While PortalDesktopModules table contains a relationship between each portals and what modules can be used by each individual portal.
Lets say you want to remove a list of modules containing a name started with MyModule_.

/* Firstly, you need to include these namespaces on the top of the code */
/* This namespace for Dictionary collection */
using System.Collections;
/* These namespaces for module collection */
using DotNetNuke.Entities.Modules;
using DotNetNuke.Entities.Modules.Definitions;

The next part is to grab a list of module definitions collection and compare if the name contains MyModule_

/* Declare ModuleDefinitionController object */
ModuleDefinitionController objModuleDefinitionController = new ModuleDefinitionController();
/* Declare DesktopModuleController object */
DesktopModuleController objDesktopModuleController = new DesktopModuleController();
/* Get dictionary module collection */
Dictionary<int, ModuleDefinitionInfo>  moduleList = ModuleDefinitionController.GetModuleDefinitions();
/* Perform a looping in the module list */
foreach (int i in moduleList.Keys) {
    /* We only delete the module friendly name contains MyModule_ */
    if (moduleList[i].FriendlyName.IndexOf("MyModule_") >= 0) {
        /* Delete the module from table module definitions */
        objModuleDefinitionController.DeleteModuleDefinition(moduleList[i].ModuleDefID);
        /* Delete the module from table desktop modules */
        objDesktopModuleController.DeleteDesktopModule(moduleList[i].DesktopModuleID);
        /* Delete the module from portal desktop modules */
        DesktopModuleController.RemoveDesktopModuleFromPortal(PortalId, moduleList[i].DesktopModuleID, true);
    }
}

Best Recommended DotNetNuke Hosting

ASPHostPortal.com

ASPHostPortal.com is the leading provider of Windows hosting and affordable DotNetNuke Hosting. DotNetNuke Hosting from ASPHostPortal.com provides a safe, reliable and performance-driven foundation for your DotNetNuke website. DotNetNuke is the perfect Content Management System for managing and developing your website with one of ASPHostPortal’s Hosting plans. ASPHostPortal has ability to support the latest Microsoft and ASP.NET technology, such as: WebMatrix, WebDeploy, Visual Studio 2015, .NET 5/ASP.NET 4.5.2, ASP.NET MVC 6.0/5.2, Silverlight 6 and Visual Studio Lightswitch, ASPHostPortal guarantees the highest quality product, top security, and unshakeable reliability, carefully chose high-quality servers, networking, and infrastructure equipment to ensure the utmost reliability.



DotNetNuke Hosting With ASPHostPortal :: How to Automate the Packaging of your DNN Module

clock Februarie 9, 2015 15:53 by author Mark

Today we will learn How to Automate the Packaging of your DNN Module, let me to show you step by step :

 

  • Delete all source code and start over from scratch with my templates installed.
  • Open your project in Visual Studio
  • Install the MSBuildTasks project from Nuget:

   PM> Install-Package MSBuildTasks

  • Create a BuildScripts folder in your project
  • Add two files (source for each here)
  • ModulePackage.targets
  • MSBuild.Community.Tasks.Targets
  • Right click on the project in Visual Studio Solution Explorer and choose “Unload Project”
  • Save changes if prompted
  • Right click on the unloaded project and choose the Edit option
  • At the bottom of the file, before the </Project> section add

        <PropertyGroup>
          <Extension>zip</Extension>
          <DNNFileName>CHANGEME.dnn</DNNFileName>
          <PackageName>CHANGEME</PackageName>
          <MSBuildCommunityTasksPath>$(SolutionDir)\Build</MSBuildCommunityTasksPath>
        </PropertyGroup>
        <Import Project="BuildScripts\ModulePackage.Targets" />
        <Target Name="AfterBuild" DependsOnTargets="PackageModule">
        </Target>
        <Import Project="$(SolutionDir)\.nuget\nuget.targets" />

  • Change the “CHANGEME” text to match the name of your .DNN file and the name of the ZIP file that you want the package created as.
  • Save the Project changes.
  • Right click on the project in Solution Explorer and choose Reload Project.
  • Switch into Release mode in Visual Studio and do a Build of your project.

This should create two files, ModuleName_Version#_Install.zip and ModuleName_Version#_Source.zip.
What I typically do then is install the module to a test DNN install to make sure that everything is working correctly. You’ll want to make sure that the ZIP files created contain all the right files, and they get installed correctly, so a test installation is the best way to go through that process.
If something fails, try to track it down, then do another Build in Release mode, rinse and repeat the installation process in your test install until you get everything working properly.

Now going forward, after you do a release, you go into your AssemblyInfo file, change your version number there, and into your .DNN File and change your Version number there. Next time you build in Release mode the module will create a new VERSION number ZIP file, leaving your last version builds there as well.

Best Recommended DotNetNuke Hosting

ASPHostPortal.com

ASPHostPortal.com is the leading provider of Windows hosting and affordable DotNetNuke Hosting. DotNetNuke Hosting from ASPHostPortal.com provides a safe, reliable and performance-driven foundation for your DotNetNuke website. DotNetNuke is the perfect Content Management System for managing and developing your website with one of ASPHostPortal’s Hosting plans. ASPHostPortal has ability to support the latest Microsoft and ASP.NET technology, such as: WebMatrix, WebDeploy, Visual Studio 2015, .NET 5/ASP.NET 4.5.2, ASP.NET MVC 6.0/5.2, Silverlight 6 and Visual Studio Lightswitch, ASPHostPortal guarantees the highest quality product, top security, and unshakeable reliability, carefully chose high-quality servers, networking, and infrastructure equipment to ensure the utmost reliability.



About ASPHostPortal.com

We’re a company that works differently to most. Value is what we output and help our customers achieve, not how much money we put in the bank. It’s not because we are altruistic. It’s based on an even simpler principle. "Do good things, and good things will come to you".

Success for us is something that is continually experienced, not something that is reached. For us it is all about the experience – more than the journey. Life is a continual experience. We see the Internet as being an incredible amplifier to the experience of life for all of us. It can help humanity come together to explode in knowledge exploration and discussion. It is continual enlightenment of new ideas, experiences, and passions

Author Link


 photo ahp banner aspnet-01_zps87l92lcl.png

Corporate Address (Location)

ASPHostPortal
170 W 56th Street, Suite 121
New York, NY 10019
United States

Tag cloud

Sign in