DotNetNuke Hosting with ASPHostPortal.com

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

ASPHostPortal.com Expand Further into Asia with New Data Center in Singapore

clock Mei 21, 2013 08:02 by author Jervis

ASPHostPortal.com is a premiere web hosting company that specialized in Windows and ASP.NET-based hosting, announces their global expansion into Asia with a new datacenter location in Singapore. Advanced Windows 2008/R2 hosting and SQL hosting are available in the new Singapore-based datacenter.

This Singapore Data Center is supported with Multiple connections to major Internet backbone carriers via SingTel, SingNet, NTT Communication, Deutsche Telekom AG, Hurricane Electric and PCCW with OC-12 connections using BGP-4 routing protocol. This Singapore Data centre hosting is suitable to anyone who plans to do an online business in Asia or it is suitable to those who are targetting Asian markets.

“We have a large Asia customer base and we wanted to address their concerns of website latency issues due to data transport over long distances,” said Dean Thomas, Manager at ASPHostPortal. “We are serious in global hosting business and this is why we provide options to our customers to select from our three data centres.”

“From now, customer can select the data center location where they desire to host their website as part of our online ordering process and after successful order submission, the website account will be instantly setup. And we did not leave out our existing customers; we have a team ready to assist in datacenter location migration," added Dean Thomas. “We are extremely proud with this new launch of Asia data center.”

ASPHostPortal.com Singapore Data centre hosting server supports the newest Intel Xeon Processor with a minimum 8 GB RAMs and 2000 Mbps connection line. All the latest ASP.NET Framework  and SQL 2012 hosting are ready on all the servers. This data centre is provided as an addition to our two existing data centres, i.e. Houston (US Data center) and Amsterdam (European Data center).

ASPHostPortal.com is one of the Microsoft recommended hosting partner (http://www.microsoft.com/web/hosting/HostingProvider/Details/962) that provide most stable and reliable web hosting platform. With this new data center, it will continue to keep ASPHostPortal.com as one of the front runners in the web hosting market.

About ASPHostPortal.com:

ASPHostPortal.com is a hosting company that best support in Windows and ASP.NET-based hosting. Services include shared hosting, reseller hosting, and sharepoint hosting, with specialty in ASP.NET, SQL Server, and architecting highly scalable solutions. As a leading small to mid-sized business web hosting provider, ASPHostPortal.com strive to offer the most technologically advanced hosting solutions available to all customers across the world. Security, reliability, and performance are at the core of hosting operations to ensure each site and/or application hosted is highly secured and performs at optimum level.



DotNetNuke Hosting - How to Set Up the DotNetNuke Blog Module Documentation

clock Mei 15, 2013 10:49 by author Ben

Here, I am using DotNetNuke 6.01.04 and Blog module 4.1.1. The DotNetNuke Blog set of modules provide blogging functionality for your DotNetNuke website. Different modules in the package provide a variety of function. The Blog package provides each of your authorized users with their own blog.

A blog is simply a set of posts grouped by author in order by date. Each blogger can have child blogs to divide that authors posts by subject. You can set up categories to organize posts by subject across authors. You can create tags for each post as another means of filtering the posts.

 

Open the DotNetNuke Blogs page, listed above, so you can refer back to it for reference.

I. Install the Blog Module
First download the DotNetNuke Blog module from the codeplex link listed above. You should back up your database and website code before installing a new module, so you can revert back if things go badly.
Add the Blog Module to your DotNetNuke installation.
On DNN 6, you install modules by going to Host, Extensions.

II. Create a Role for Bloggers
You will probably want to restrict who can blog on your website. Go to Admin, Security Roles and set up a new role, say Bloggers. Do not check Auto nor Public, as you will want to assign each blogger individually.

III. Create a Blog Page and Add the Blog Module
Create a new page to display your blogs. Add the Blog module to your page. I titled my module Blog.
Blog adds several modules to your page, giving all of them the same title, so they are a little hard to tell apart. You need to configure each one. Each Blog module has settings you can use to configure the Blog. All the Blog modules have the regular Settings link that all DotNetNuke modules have. Some of the Blog modules have an extra tab with additional settings. A few Blog modules have additional functionality under module management at the top under Edit options. On DNN 6, you can see the Edit options by pointing your mouse at the Manage button overlaying each Blog title. You can get to each module's settings by pointing your mouse at the Manage button and finding the Settings link under Admin options. You can also get to Settings by clicking the gear symbol on the right edge of the module. From top to bottom, these are the nine modules Blog added to my page.

1. Main Blog Module
The first blog module has the bolg configuration options. This module also displays the blog entries. Keep this module at the top of the Content section of your page. This module has two places to change settings. The first is under Settings, where you can change the title for your Blog. On DotNetNuke.com, they title this module DNN Blog. To get to the main configure options, under Manage click Module Options. The top part of his module, which is only visible to administrators, lets you add any of the other eight modules to the page. Since the other eight modules are already on the page, we do not need to add any now. If we deleted some, this would be a way to add them back.

The eight blog module parts are:
1. Blog List
2. New Blog
3. Search Blog
4. Blog Archive
5. Recent Entries
6. Recent Comments
7. Blog Categories
8. Blog Tags

2. Blog List
The next module lists all the Blogs. Go into Settings and change the title. On DotNetNuke.com, they title this module DNN Bloggers. Since this is a list of Blogs, you will want to put this module on the side. Point your mouse at Manage, under Move click To Left Pane. Under Manage, Edit this module also has two functions, one to update the settings of your individual blog and one for you to add an post to your blog. We have not created your blog yet, so these are not of any use right now.

3. New Blog
This module lets you create your blog. Under Settings change the title to My Blog. You want to restrict this module to Bloggers. Under Settings, Permissions, uncheck Inherit View permissions from Page. Next to Bloggers check both View Module and Edit Module. Under Manage, under Move, move this module to the left pane. If you are going to be one of the Bloggers, go ahead and click Create My Blog. Fill out the information about your blog as you feel appropriate.

4. Search Blog
The Search Blog module lets you search the blog posts, surprise. Change the title of the module. On DotNetNuke.com they use the title Search DNN Blogs. Move this module to the left pane, your choice as to where to position the blog. You can use the DotNetNuke Blogs page as a model.

5. Blog Archive
The next module is the Blog Archive, which is organized by date, which I find completely useless, but the calendar looks cool. Change the title, DotNetNuke.com uses Archive. Move to the left pane.

6. Recent Entries
The next module lists the title of Recent Blog Entries. Change the title to something like Recent Blog Entries. Leave this module where it is, or move to the top of the page or to the left pane. Under Settings there is an extra tab Recent Blog Entries Settings, which lets you configure how to display the entries. You can show the whole post, if you like. Point your mouse at the blue ? box to get a list of the control variables you can use. Here is how I configure mine.

<div class="Blog_RecentEntries">
<a href="/Blogs/tabid/281/BlogID/[BLOGID]/Default.aspx">[USERFULLNAME]</a>:
<a href="[PERMALINK]" class="Blog_RecentEntries_Title">[TITLE]</a>
-
<span class="Blog_RecentEntries_Dateline"> [ADDEDDATE]</span>
</div>

This displays the author, title and date. The author links to the author's blog. If you use this code, you will need to change the tabid to whatever tabid your blog page is on.

7. Recent Comments
This is similar to the Recent Entries module. You should know enough now to decide for yourself what you want to do with this module. I changed the titel and left the rest as is.

8. Blog Categories and Blog Tags
Their use is self explanatory. Change the titels and move both of these to the left pane.



DotNetNuke Hosting - Tips and Trick to Optimize DotNetNuke

clock April 25, 2013 10:41 by author andy_yo

A typical DNN install requires considerable server resources, and creates significant traffic between the database & web server. These techniques aim to reduce both of these where-ever possible, along with some other optimizations. Some of these may not apply to you, and I advise you to exert discretion in deciding which of these work best for you.

 

About ASPHostPortal.com
ASPHostPortal.com is Microsoft No #1 Recommended Windows and ASP.NET Spotlight Hosting Partner in United States. Microsoft presents this award to ASPHostPortal.com for ability to support the latest Microsoft and ASP.NET technology, such as: WebMatrix, WebDeploy, Visual Studio 2012, ASP.NET 4.5, ASP.NET MVC 4.0, Silverlight 5 and Visual Studio Lightswitch. Click here for more information

DNN Optimization:

  1. Host Settings
    1. Set the "Performance Setting" to "Heavy Caching".
    2. Depending upon Hosting resources, set the "Compression Setting" to "Deflate Compression" or "GZip Compression".
    3. Depending upon Hosting resources, enable "Whitespace filter" (not of much use, if you have also enabled compression).
    4. Disable "Users Online" for Installations on which "Users Online" module is NOT used.
    5. Set the "Scheduler Mode" to "Timer Method". "Request Mode" causes the Scheduler to be invoked on every request to a page of your installation.
    6. On sites where Logging is NOT mission critical, enable "Event Log Buffer", so that log entries are buffered before being flushed.
    7. On sites where the Site files do NOT update frequently, disable "Auto-sync filesystem".
    8. Uncheck "Enable Ajax" on portals that are just informative, and do NOT involve management tasks.
  2. Admin Settings
    1. On DNN 5 portals, unselect "Enable Skin Widgets" if they are not being used to prevent redundant skin file downloads.
  3. Log Settings
    Disable all Logs NOT required on an installation. In particular,
    1. Disable "Application Start".
    2. Disable "Application End".
    3. You might also want to disable others like "Scheduler Started", "Scheduler Event Started" etc. depending upon if they are not much useful to you. However, "Sceduler event Failure" should not be disabled to enable debugging of any scheduler issues.
  4. Schedule Settings
    Disable or customize all Schdules NOT required on an installation. In particular,
    1. Configure "DotNetNuke.Services.Scheduling.PurgeScheduleHistory, DOTNETNUKE" to run every 5 days (or whatever fits best to your portal depending upon how much Schedule Log your portal generates).
    2. Configure "DotNetNuke.Services.Search.SearchEngineScheduler, DOTNETNUKE" to run every 5 days and retry after 1 day (again depending upon what fits best to your portal. There is no one size fits all approach here).
  5. Javascript & CSS Optimization
    1. Manually optimize all css & js files to remove redundant white-space (or use a free or paid DNN module e.g. Page Blaster to manage this task for you).
    2. Zero out portal.css (if you dont use it, or better still, delete it).
    3. Check ~/portals/_default/default.css for any styles not being used on your portal.
    4. Try to use any other menu except SolPart Menu.
    5. Try NOT to use table based skins (improves the perceived rendering of your page).
  6. Cookies: Set the appropriate value for Persistent & Session cookies in web.config.
  7. Compilation: If you are compiling DotNetNuke or any Extension from source, make sure that you compile the project in Release mode. Moreover, make sure you have debug="false" in web.config for your production sites.



DotNetNuke 7 Hosting - Features That Must Implement in DNN Module to Maximize SEO

clock Maart 21, 2013 11:35 by author andy_yo

SEO and DotNetNuke is a topic increasingly discussed with the growing awareness of site owners and webmasters of the need for building DNN websites that maximise the chances of being rated highly in search engine results pages. Following are the features that your DNN Module must have to maximize the SEO aspects.

 

About ASPHostPortal.com
ASPHostPortal.com is Microsoft No #1 Recommended Windows and ASP.NET Spotlight Hosting Partner in United States. Microsoft presents this award to ASPHostPortal.com for ability to support the latest Microsoft and ASP.NET technology, such as: WebMatrix, WebDeploy, Visual Studio 2012, ASP.NET 4.5, ASP.NET MVC 4.0, Silverlight 5 and Visual Studio Lightswitch. Click here for more information

1. Allow customisation of every aspect of the Url for the page

The Url is so important for the page. It tells the user what is on the page by looking at it, and it’s one of the most important things you can put keywords into for your page.   For the Url Master and Friendly Url Provider modules, the most common request I get is ‘can I get rid of the ‘articleId/entryId/propertyId/categoryId’ from the ‘News Articles/Blog/Property Agent/Catalook’ module? This is because people are stuck with Urls like /articleType/viewType/articleId/3/my-article-name.aspx’, and they just want ‘/articles/my-article-name.aspx’ – or, in my case, they just want ‘/blog/blog-entry-name.aspx’ or similar. The point is, developers, you have wean yourself off just throwing in a database-id into the query string and calling it finished. It’s a lot more work, sure, but it’s the most important thing you can do to a module.

2. Don’t allow duplicate Urls for the same content

Duplicate content is something we must all watch out for. You don’t want the same page being accessed by more than one Url. If you do have more than one Url, you should have 301 redirects back to your chosen ‘canonical’ Url.    This means making sure, that in your code, if you are generating links between pages of content, you don’t generate multiple versions of Urls back to the same address.

3. Allow customisation of the Page Title, Meta Description and Meta Keywords for the page

This is a very common problem. The base DNN page information allows the specification of the Page Title, Description and Keywords. Once you add a module displaying ‘dynamic’ content, driven by query string values, the content probably won’t match the ‘generic’ Title, description and Keywords.

The Title and Description are important, because of the Search Engine Result Pages, or ‘SERPs’. Everyone is familiar with the ‘clickable’ header on the SERP, and the short two or three line description.   In many cases, the Html Page title is the header, and the Html Meta Description tag is the two or three line description. It’s here where you need to convert people looking at a page full of results to actually click on your page – particularly if you aren’t ranked number 1 for the result.    By allowing crafting of individual Descriptions and Page titles separate to any other page content, you allow site authors to fine-tune their SERP results without affecting what the actual page looks like.

Many modules available just throw an automatically generated value into the Page description, and title, or, worse, don’t even change it from what the base page value is.

4. Don’t use AJAX for content display

I love using AJAX pages – where they are suitable.  If you’re displaying static content to a user (and 90% of all websites do exactly this) then don’t use AJAX. There’s no point. People expect to see a page refresh when they click on a link. Leave AJAX for more complicated editing tasks where it is really useful. AJAX has the ability to hide lots of good content behind postbacks and javascript, where search engine spiders won’t find it.

5. Allow customisation of the anchor text for all links

This is something that most modules actually do a reasonable job of, but it’s worth repeating – if you are generating links to different parts of your content, allow the author to customise the text of that link. Perhaps there is a particular keyword they’d like to link with, which is different to the ‘title’ or ‘name’ or whatever. Let them customise the link text.

6. Use simple layouts and CSS design

Early DNN was table heavy – and I’m not part of the crusading crowd that wants to run the sword through any website that dares to put a table in for display purposes. Sometimes a table is necessary, sometimes not.   But don’t force tables on your websites. Just keep it simple with div and span elements, and let CSS do the heavy lifting of organising the content. That way, skilled authors will be able to modify the CSS and change the layout quite easily. They’ll be thankful, but, most importantly, the Html will be cleaner and more likely to be indexed effectively by search engine spiders.

7. Use H1, H2 and H3 tags for headings, instead of the ‘Head’ class

Most people who have studied SEO techniques know that you need to use emphasis on the keywords of your content, so that the search engines know what the page is about. The search engines know that ‘h1’ and ‘bold’ and ‘em’ mean that the particular words inside are important to the overall meaning of the page.

So use the H1, H2, H3 tags where suitable. There is an in-built DNN CSS class called ‘Head’, and you should avoid it. That’s what ‘H1’ is for. 



DotNetNuke 7 Hosting - Why Choosing DotNetNuke 7

clock Februarie 27, 2013 06:23 by author andy_yo

There are many changes with DNN 7 that are aimed at making content and site maintenance easier.  Here are our top 4 reasons why an upgrade to DNN 7 is going to save you time and generally make your life easier.

 

About ASPHostPortal.com
ASPHostPortal.com is Microsoft No #1 Recommended Windows and ASP.NET Spotlight Hosting Partner in United States. Microsoft presents this award to ASPHostPortal.com for ability to support the latest Microsoft and ASP.NET technology, such as: WebMatrix, WebDeploy, Visual Studio 2012, ASP.NET 4.5, ASP.NET MVC 4.0, Silverlight 5 and Visual Studio Lightswitch. Click here for more information

1. Auto-save

We’ve all been there, you work hard at something, get it just how you want it then you hit the wrong key (or the browser crashes) and there goes all your work down the drain. Not anymore, with DNN 7 auto-save ensures your work is saved as you go, avoiding any mishaps and lost work. Sure to be the saviour of web content editors across the globe.

2. Bookmarked settings

DNN 7 has a completely different control panel from previous editions with a very visually appealing tab interface for both admin and hosts.  The new interface completely changes the way we use DotNetNuke and one of the best new additions is the ability to bookmark favourite settings. Keeping all your favourite settings in one easy to reach spot and at the click of a button is a massive time saver.

3. Drag and drop

Gone are the days of trying to format your pages behind the scenes. You want to add new modules, move an image or move a text box; you pick it up and put it where you want. The ease and simplicity of the new DNN 7 drag and drop feature gives you a whole lot of flexibility and control over your website, without pulling your hair out. 

4. Version Comparison

Ever edited something then thought hang on, I’m not sure that’s better, what did it look like before? With DNN 7 you can easily compare versions in either the rich text or html editors. Just tick the compare box and the text or code differences are highlighted for you. You can then choose which option you want to go with from the version history and save second guessing yourself.

In short, DNN 7 is an intuitive user friendly CMS that makes editing and maintaining your website content quicker and easier than ever before. These new improvements are sure to increase your productivity in 2013.



DotNetNuke 7 Hosting - Optimize Your DotNetNuke Sites

clock Februarie 8, 2013 08:02 by author andy_yo

A typical DNN install requires considerable server resources, and creates significant traffic between the database & web server. These techniques aim to reduce both of these where-ever possible, along with some other optimizations. Some of these may not apply to you, and We advise you to exert discretion in deciding which of these work best for you.

About ASPHostPortal.com
ASPHostPortal.com is Microsoft No #1 Recommended Windows and ASP.NET Spotlight Hosting Partner in United States. Microsoft presents this award to ASPHostPortal.com for ability to support the latest Microsoft and ASP.NET technology, such as: WebMatrix, WebDeploy, Visual Studio 2012, ASP.NET 4.5, ASP.NET MVC 4.0, Silverlight 5 and Visual Studio Lightswitch. Click here for more information

DNN Optimization:

  1. Host Settings
    1. Set the "Performance Setting" to "Heavy Caching".
    2. Depending upon Hosting resources, set the "Compression Setting" to "Deflate Compression" or "GZip Compression".
    3. Depending upon Hosting resources, enable "Whitespace filter" (not of much use, if you have also enabled compression).
    4. Disable "Users Online" for Installations on which "Users Online" module is NOT used.
    5. Set the "Scheduler Mode" to "Timer Method". "Request Mode" causes the Scheduler to be invoked on every request to a page of your installation.
    6. On sites where Logging is NOT mission critical, enable "Event Log Buffer", so that log entries are buffered before being flushed.
    7. On sites where the Site files do NOT update frequently, disable "Auto-sync filesystem".
    8. Uncheck "Enable Ajax" on portals that are just informative, and do NOT involve management tasks.
  2. Admin Settings
    1. On DNN 5 portals, unselect "Enable Skin Widgets" if they are not being used to prevent redundant skin file downloads.
  3. Log Settings
    Disable all Logs NOT required on an installation. In particular,
    1. Disable "Application Start".
    2. Disable "Application End".
    3. You might also want to disable others like "Scheduler Started", "Scheduler Event Started" etc. depending upon if they are not much useful to you. However, "Sceduler event Failure" should not be disabled to enable debugging of any scheduler issues.
  4. Schedule Settings
    Disable or customize all Schdules NOT required on an installation. In particular,
    1. Configure "DotNetNuke.Services.Scheduling.PurgeScheduleHistory, DOTNETNUKE" to run every 5 days (or whatever fits best to your portal depending upon how much Schedule Log your portal generates).
    2. Configure "DotNetNuke.Services.Search.SearchEngineScheduler, DOTNETNUKE" to run every 5 days and retry after 1 day (again depending upon what fits best to your portal. There is no one size fits all approach here).
  5. Javascript & CSS Optimization
    1. Manually optimize all css & js files to remove redundant white-space (or use a free or paid DNN module e.g. Page Blaster to manage this task for you).
    2. Zero out portal.css (if you dont use it, or better still, delete it).
    3. Check ~/portals/_default/default.css for any styles not being used on your portal.
    4. Try to use any other menu except SolPart Menu.
    5. Try NOT to use table based skins (improves the perceived rendering of your page).

  6. Cookies: Set the appropriate value for Persistent & Session cookies in web.config.

  7. Compilation: If you are compiling DotNetNuke or any Extension from source, make sure that you compile the project in Release mode. Moreover, make sure you have debug="false" in web.config for your production sites.


DotNetNuke 7 Hosting - DotNetNuke 7 Key Features

clock Januarie 30, 2013 10:05 by author andy_yo

DotNetNuke 7 provides support for active directory authentication and includes a SharePoint connector which enables fast and secure publishing of SharePoint documents to websites, intranets and extranets. It also includes a brand new intuitive control panel and now provides support for SharePoint Lists.

The DotNetNuke 7 professional and enterprise editions now ships with an auto save feature which provides the ability to automatically save the content in the background. This will enable users to recover the content in the event of a browser crash.

DotNetNuke 7 includes drag and drop modules, cross site module sharing, actions menu instead of manage button as in previous version, a new data access layer named DAL2 which includes micro-ORM and support for ASP.NET Razor in addition to a brand new simplified installer.

About ASPHostPortal.com

ASPHostPortal.com is Microsoft No #1 Recommended Windows and ASP.NET Spotlight Hosting Partner in United States. Microsoft presents this award to ASPHostPortal.com for ability to support the latest Microsoft and ASP.NET technology, such as: WebMatrix, WebDeploy, Visual Studio 2012, ASP.NET 4.5, ASP.NET MVC 4.0, Silverlight 5 and Visual Studio Lightswitch. Click here for more information

The difference can DotNetNuke 7 make in the development of websites

There are a number of features that differentiate DotNetNuke 7.0 for website development which ultimately enable a broad range of users to be more productive:

Web content editors

A rich text editor with a new auto-save and recover feature prevents editors from losing their work. It also enables them to easily track content changes and compare versions of both rich text and HTML content. DNN 7.0 allows modules to be shared between multiple DotNetNuke websites for greater consistency and ease of maintenance.

Enterprises

DNN 7.0 makes it easier for enterprise users to log in to their DotNetNuke sites with new support for Active Directory authentication. It also now enables bi-directional support for popular Microsoft SharePoint Lists, which are used widely by businesses to improve operations, promote team project collaborations, keep employees up to date on current business projects and tasks, manage employees more effectively, and improve business productivity.

Developers

Web developers can build and expose secure web services through the DNN Services Framework, which is now based on Microsoft’s web API. Data access has been simplified through the introduction of a micro-ORM, allowing simpler and more elegant database interactions with less code.

ASP.NET Razor is now optimized for developing dynamic extensions, combining code and content in a fluid and expressive manner. The included jQuery, jQueryUI and Knockout.js libraries make it even easier for developers to consume Web services and create modern, interactive client-side applications.

The newest release has graduated to ASP.NET 4.0 as its baseline platform requirement but is also fully compatible with latest generation Microsoft technology including Windows 8, Windows Server 2012, IIS8, ASP.NET 4.5, Visual Studio 2012 and SQL Server 2012.

Designers

An overhauled Cascading Style Sheets (CSS) foundation makes it easier for designers to create beautiful and engaging websites, enabling improved cross-browser compatibility, extending standards compliance and increasing site performance. Additionally, DNN 7.0 includes standard form patterns that designers can reuse or extend to build frequently used user interface elements.

The DNN 7 different from previous versions

DotNetNuke 7.0 provides a revamped UI/UX that makes it easier for content editors to build and manage websites. It also provides a suite of new features that improve productivity through a drag and drop and an updated rich text editor that includes auto-save and version comparison features.

It  improves enterprise integration with an active directory authentication provider and by adding support for SharePoint List to our SharePoint Connector. This latest version provides our most advanced development framework with a web serves framework built on Microsoft's Web API.

The opportunity that DotNetNuke provide to ASP.NET developers

DotNetNuke provides a robust and powerful web development framework for ASP.NET developers. DNN7 provide support for the most recent versions of ASP.NET, and enable developers to embrace both Web Forms and WebAPI development methods.

The development framework greatly reduces the amount of code required to build applications by providing support for tasks like Security, Authentication, Installation and Upgrades. Developers can also distribute applications commercially on the DotNetNuke store where thousands of modules and skins are for sale.

The different of DotNetNuke with open source platforms like DotNetBlogEngine, Joomla and WordPress

DotNetNuke (DNN) is the most widely deployed content management platform and web development framework for Microsoft .NET. Organizations that have standardized on Microsoft technologies and have Microsoft development skills often prefer DNN over open source CMS offerings like Joomla and Wordpress which are built on the LAMP technology stack. These organizations also need a full featured Web CMS that provides features beyond blogging.

Can DotNetNuke run on MySQL backend?

DNN support Microsoft SQL Server out of the box. Third party providers for other databases are available and developers can create their own providers.



DNN 7 Hosting - ASPHostPortal :: Using DNN Data Caching In Custom Modules

clock Desember 18, 2012 06:25 by author Jervis

One of the biggest concerns for developers these days is how to increase the performance of delivered applications. User expectations have changed over the past few years and the expectations are very, very high in regards to page load times and how quickly information should be returned to the users. Thankfully, as part of DotNetNuke there are a number of different features that can help applications work quickly. Some of these features are known by everyone, things such as the DotNetNuke performance settings under "Host Settings", Cache Time settings on a module by module basis, and if on Professional Edition the built in page Output Cache Provider. However, one often overlooked API that is helpful for developers is the DataCache API. In this post I'll do a deep dive into why this API is so helpful and some scenarios where leveraging this API it can reduce page load times and system resources needed for each page request.

What is the DataCache

Before I get into the specifics of how to use the DataCache API I want to give a bit of detail on what exactly DataCache is. If you are an experienced ASP.NET developer you should be familiar with the ASP.NET Application object, a cache repository for storing information at the application level. Items stored in application are stored using code like the following. Application["MyKey"] = MyObject; This shouldn't be anything new to you, but within DotNetNuke, just like "SessionState" it is a recommended practice to not utilize this object due to the fact that Application is not aware of the DotNetNuke caching API's or Web Farm configurations. Enter the DataCache API.

DotNetNuke's DataCache object comes in to fill the gap, used at the base level in a very similar fasion it allows you to store any object that you desire using the DotNetNuke cache provider. If the site is configured to use File caching your content is stored in a file, if Memory it wil be stored in memory. With this you can rest assured that your cached objects will work just like the rest of the DotNetNuke infrastructure.

What do I Cache?

So great, we know we can cache objects, but what do we cache? This is the age old question and something that I cannot give a 100% answer here that will be a solution for everyone reading this. The key here is that we can store ANY objects necessary. A few examples of diffent cache strategies can be illustrated by discussing what I do with two of our most popular open source modules. You can cache individual objects, and implement this caching seamlessly in your controller class. We are doing this for the our custom settings for the "Expandable Text/HTML" module. The advantage here is that if you are calling ExpandableTextController.GetSettings(12) with cache checking code inside the "GetSettings" method we can be sure that we only hit the database if the object isn't in cache already. This helps reduce database hits for commonly used objects.

In addition to doing this you can also cache generated content. Lets assume that we have a module that grabs a number of objects from the database and then does a bunch of processing and eventually loads the content to an ASP.NET Literal control on the UI. Sure, we could cache the database objects to prevent the database call, but we could also think about storing the fully generated content. Doing this, even with a 15 minute cache time can reduce CPU usage, Memory usage, and page load times for your custom modules.

Using the DataCache Object

When it comes to using the data cache object there are a number of situations where a similar pattern can be used to help gain access to the Cache and store items. To help take away some of the duplicate code that can occur I often include a "CacheHelper" object that helps greatly. Looking at the code snippet below you can see what we use on all projects.


1: public static bool CacheExists(string key)
2: {
3: return DataCache.GetCache(key) != null;
4: }
5: 
6: public static void SetCache<T>(T toSet, string key)
7: {
8: DataCache.SetCache(key, toSet);
9: }
10: 
11: public static T GetItemFromCache<T>(string key
12: {
13: return (T) DataCache.GetCache(key);
14: }

This makes the process this much easier for you as a developer you don't need to perform casting along the way and you can use very simple patterns to get objects from cache. For example I can do something like this: var myObject = CacheHelper.CacheExists("MyItem") ? CacheHelper.GetCache("MyItem") : new MyType();. As you can see one line process to get my object, or a new object if the item isn't contained within the cache. You can easily expand on this to help with your specific application.

Conclusion

Application performance is something that as web developers we need to be working on every day. Using DotNetNuke's built in cache system gives us a helpful tool to improve performance, and also ensures that applications we develop can easily scale to Web Farm environments. Please feel free to share comments/questions below.



DotNetNuke 6.2 Hosting - ASPHostPortal :: How to Solve Error of Modules in DotNetNuke 6.2

clock November 26, 2012 08:29 by author Jervis

Sometimes, you’ll see this error when trying to add an new article, there is the error.

Error: DNNArticle Edit is currently unavailable. DotNetNuke.Services.Exceptions.ModuleLoadException: This property cannot be set to an empty string. Parameter name: value ---> System.ArgumentException: This property cannot be set to an empty string. Parameter name: value at System.Net.Mail.SmtpClient.set_Host(String value) at DotNetNuke.Services.Mail.Mail.SendMailInternal(MailMessage mailMessage, String subject, String body, MailPriority priority, MailFormat bodyFormat, Encoding bodyEncoding, IEnumerable`1 attachments, String smtpServer, String smtpAuthentication, String smtpUsername, String smtpPassword, Boolean smtpEnableSSL) at DotNetNuke.Services.Mail.Mail.SendMail(String mailFrom, String mailTo, String cc, String bcc, String replyTo, MailPriority priority, String subject, MailFormat bodyFormat, Encoding bodyEncoding, String body, List`1 attachments, String smtpServer, String smtpAuthentication, String smtpUsername, String smtpPassword, Boolean smtpEnableSSL) at DotNetNuke.Services.Mail.Mail.SendMail(String mailFrom, String mailTo, String cc, String bcc, String replyTo, MailPriority priority, String subject, MailFormat bodyFormat, Encoding bodyEncoding, String body, String[] attachments, String smtpServer, String smtpAuthentication, String smtpUsername, String smtpPassword, Boolean smtpEnableSSL) at DotNetNuke.Services.Mail.Mail.SendMail(String mailFrom, String mailTo, String cc, String bcc, MailPriority priority, String subject, MailFormat bodyFormat, Encoding bodyEncoding, String body, String attachment, String smtpServer, String smtpAuthentication, String smtpUsername, String smtpPassword, Boolean smtpEnableSSL) at DotNetNuke.Services.Mail.Mail.SendMail(String mailFrom, String mailTo, String cc, String bcc, MailPriority priority, String subject, MailFormat bodyFormat, Encoding bodyEncoding, String body, String attachment, String smtpServer, String smtpAuthentication, String smtpUsername, String smtpPassword) at ZLDNN.Modules.DNNArticle.PubEditor.SendEmail(DNNArticleInfo objDNNArticle, Boolean NewArticle, Boolean JustApproved, PortalSettings PortalSettings, Hashtable Settings, Boolean IsSendEmail, String Email, String EmailSubject, String EmailTemplate, String NewArticleEmailSubject, String NewArticleEmailTemplate, String ApprovedArticleEmailSubject, String ApprovedArticleEmailTemplate, Int32 SubscribeModule, String SubscribeEmailSubject, String SubscribeEmailTemplate) at ZLDNN.Modules.DNNArticle.BaseEditor.SendEmail(DNNArticleInfo objDNNArticle, Boolean NewArticle, Boolean JustApproved) at ZLDNN.Modules.DNNArticle.EditDNNArticle.SaveArticle() at ZLDNN.Modules.DNNArticle.EditDNNArticle.cmdUpdate_Click(Object sender, EventArgs e) --- End of inner exception stack trace ---

The issue is caused by new send email API in DNN 6.2. If the SMTP server is not set up, when the send email API is called, it will throw the error. To fix it is simple, you can set up the SMTP server in host->host settings. Or you can disable the email notification in module settings. It will solve your problem.

 



DotNetNuke Hosting - ASPHostPortal :: Speed Up your DotNetNuke 6 Design

clock Oktober 11, 2012 08:28 by author Jervis

In this post, I'm going to take a bit more of a 'code-centric" no-nonsense approach to what your form should really look like, I hope that this helps you. To help make this post as helpful as I can, I'm going to start out with some key CSS Classes then I'll move into the actual form pattern.

CSS Classes

The following is a listing of the new CSS classes that I've been using and found to be key to working with the new form pattern.

CSS Class

Purpose

dnnForm

Used on a "div" element to wrap the entire contents of a form.

dnnFormItem

Used on a "div" element to construct an individual item in a form

dnnClear

Used to ensure that floating content has been cleared

dnnFormRequired

Used to indicate with the red indicator bar that a form field is required. Typically used on TextBoxes

dnnFormError & dnnFormMessage

Combined when added to a RequiredFieldValidator or similar control will enusre that the display is shown using the consistent error display that is used on all DNN forms.

dnnActions

Used on a "ul" to hold a listing of buttons for actions within a form

dnnPrimaryAction

Used on a "button" to have it styled as the primary action.

dnnSecondaryAction

Used on a "button" to have it styled as the secondary action, typically just as a link

dnnFormSectionHead

Used on "h2" or similar element to style an item as a section heading

Now the above listing is just a subset of the CSS Classes that were added, but these are the basic ones that I needed to get my forms updated to the new standard.

Coding the Form

So, it is all fine and dandy that I have these items defined, but what does it actually take to get the form coded? Actually it is very simple, and I'll break it down into a number of steps for you.


Form Overview

To ensure that we start out on the right foot, lets take a high level look at what a form should look like:

<div class="dnnForm dnnClear">

    <ul class="dnnActions dnnClear">
        <li><asp:LinkButton id="btnSubmit" runat="server"
                  CssClass="dnnPrimaryAction" text="Submit" />
        </li>
    </ul>
</div>


As you can see here it is pretty simple, a div to contain the entire form, then at the bottom an actions list to handle your operations.


Form Items

Once we have the overview of the form created, we can add our items. In the most basic structure items should look like the following.


<div class="dnnFormItem">
    <label>My Label</label>
    <asp:TextBox id="txtMyTextbox" runat="server" CssClass="dnnFormRequired" />
    <asp:RequiredFieldValidator id="myValidator" runat="server"
        ControlToValidate="txtMyTextbox" Text="My Error"
        CssClass="dnnFormMessage dnnFormError" display="Dynamic" />
</div>


Now, notice here that we have an individual div for each item, within this we have a HTML label and then our control(s). If you are used to using the DotNetNuke Label control for providing localized labels and help information you can substitute that control for the label as used in the above example.

To continue building out your form, simply add additional Form Item Div's as needed within the dnnForm div created above and your will be set to go.

I hope that this basic overview of the general form structure has been helpful. In future posts I will show how to create expanding/collapsing sections using the jQuery helpers

 



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