<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0"><channel><title>DotNetNuke Blogs On DNN, For DNN</title><link>http://www.dotnetnukeblogs.com</link><description>RSS Feed for DotNetNuke Blogs On DNN, For DNN</description><ttl>120</ttl><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/DotnetnukeBlogs" type="application/rss+xml" /><item><title>DotNetNuke Tips and Tricks #12: Creating your own Authentication Provider</title><link>http://feedproxy.google.com/~r/DotnetnukeBlogs/~3/xPX8PJHdXcw/DotNetNuke-Tips-and-Tricks-12-Creating-your-own.aspx</link><description>&lt;p&gt;&lt;a title="DotNetNuke" href="http://www.dotnetnuke.com/" target="_blank"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; margin-left: 0px; border-left-width: 0px; margin-right: 0px" title="AuthProviderDemoLogin" border="0" alt="AuthProviderDemoLogin" align="right" src="http://blog.theaccidentalgeek.com/image.axd?picture=WindowsLiveWriter/DotNetNukeTipsandTricks12Creatingyourown_7389/AuthProviderDemoLogin_87948ec3-c8a3-466b-8257-3acced10a3ac.png" width="285" height="252" /&gt; DotNetNuke&lt;/a&gt; has a lot of great features that come built-in, but there are often situations where the default implementation is not what the customer wants for their website.  This was a big limitation of early versions of DotNetNuke – changing basic functionality often required the user to customize the core DotNetNuke code.  &lt;/p&gt;  &lt;p&gt;In DotNetNuke 2.0 all of that began to change with the introduction of Providers in the framework.  This is also where we began focusing on a rich extensibility model that would allow users to install skins, skin objects, and modules as separate packaged extensions.  Over time, the framework has evolved to include different extension types, and in DotNetNuke 5.0 we moved to a unified extension model that treats all extension types in a similar manner during the install and uninstall process.&lt;/p&gt;  &lt;p&gt;One of the extension types that was added in the last couple of years was the Authentication Provider.  Unlike most other providers, an authentication provider is not configured in the web.config and actually looks and behaves more like a module than an actual provider.  &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blog.theaccidentalgeek.com/image.axd?picture=WindowsLiveWriter/DotNetNukeTipsandTricks12Creatingyourown_7389/LiveLogin_2.png"&gt;&lt;img style="border-right-width: 0px; margin: 0px 10px 10px 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="LiveLogin" border="0" alt="LiveLogin" align="left" src="http://blog.theaccidentalgeek.com/image.axd?picture=WindowsLiveWriter/DotNetNukeTipsandTricks12Creatingyourown_7389/LiveLogin_thumb.png" width="220" height="262" /&gt;&lt;/a&gt;An authentication provider installs up to 3 UI elements that the framework cares about – a login control, a settings control and optionally a logout control.  It is certainly possible to use more controls if needed, but these are the only three the core framework interacts with directly. Once installed the authentication provider can appear as one option in the standard DNN login.  In the image to the left you can see the standard login on DotNetNuke.com with the LiveID tab selected.  This clearly shows a different UI than the standard username and password. &lt;/p&gt;  &lt;p&gt;Recently there has been a lot of discussion around a change made to recent versions of DotNetNuke.  In the past, it was possible to define a custom login page and put the Account Login module on the page.  This allowed you to create an SSL enabled login page or to put a login control directly on the home page.  Unfortunately, users would sometimes change the custom login page setting without putting a login module on the page.  In other cases, the login module would be added to the page, but the user wouldn’t have permission to see the page or the control.  Recent versions of DotNetNuke try to detect this situation and prevent you from setting the custom login page to a location without a login control that is visible to unauthenticated users.&lt;/p&gt;  &lt;p&gt;Unfortunately, there are a number of third party login modules currently on the market which are not implemented as Authentication Providers and this new behavior makes it impossible to use them with the latest DNN release.  We’ll work on the behavior change to make it possible to use these modules but I thought that this highlights one of the issues with DNN.  When we introduce an official extensibility point, we then start coding the core to use and rely on extensions which conform to the extensibility model.  If you are coding a skin object that doesn’t conform to the official model then we may well break your skin object in future DNN releases.  The same is true with Authentication Providers.  Had these modules been code as Authentication Providers instead of Modules then they would have continued to function.&lt;/p&gt;  &lt;p&gt;The real failure in this case rests with the core team and not the module vendors.  When we introduce new features we often haven’t had the resources to fully document how to take advantage of the new feature.  This is especially true for core API changes.  The end result is that the core team ends up coding to the new APIs long before 3rd party vendors start upgrading their extensions.  The biggest reason for this is because we haven’t done a good enough job in documenting how to use the new feature.&lt;/p&gt;  &lt;p&gt;With all of this as background, I thought it would be good to run through exactly how to create your own custom Authentication Provider.  In this example, I am going to start from the standard DotNetNuke Authentication Provider.  For the sake of simplicity, I am going to code this as a WSP project, although the techniques apply just the same to a WAP project (LiveID, &lt;a href="http://openid.net/" target="_blank"&gt;OpenID&lt;/a&gt; and AD providers are all WAP based implementations).&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blog.theaccidentalgeek.com/image.axd?picture=WindowsLiveWriter/DotNetNukeTipsandTricks12Creatingyourown_7389/AuthProviderDemo_2.png"&gt;&lt;img style="border-right-width: 0px; margin: 0px 10px 10px 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="AuthProviderDemo" border="0" alt="AuthProviderDemo" align="left" src="http://blog.theaccidentalgeek.com/image.axd?picture=WindowsLiveWriter/DotNetNukeTipsandTricks12Creatingyourown_7389/AuthProviderDemo_thumb.png" width="201" height="260" /&gt;&lt;/a&gt; The first thing I do is make a copy of the DNN Authentication provider which is located in the DesktopModules/AuthenticationServices/DNN folder.  I have renamed my copy to Demo so that we can distinguish it from the original.  I have gone into the Login and Settings controls and changed the namespaces to avoid collision and changed them from &lt;em&gt;DotNetNuke.Modules.Admin.Authentication&lt;/em&gt; to &lt;em&gt;DotNetNuke.Modules.Admin.Demo.Authentication.&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;At this point I have a useable Auth Provider, but I don’t have a method to install it.  I could use the Host/Extensions page to create a new package but since this is my first time I decided to build my manifest file using the manifest from the LiveID Authentication Provider as a template.  After making a few modifications to the manifest to add a CSS file (more on that in a minute) and to fix some file names, I am almost ready to zip everything up.&lt;/p&gt;  &lt;div style="clear: both"&gt;   &lt;pre class="xml" name="code"&gt;&lt;dotnetnuke type="Package" version="5.0"&gt;
    &lt;packages&gt;
        &lt;package name="DNN_DemoAuthentication" type="Auth_System" version="01.00.00"&gt;
            &lt;friendlyname&gt;DotNetNuke Demo Authentication Project&lt;/friendlyname&gt;
            &lt;description&gt;The DotNetNuke Demo Authentication Project is an Authentication provider for DotNetNuke that shows how easy it is to create your own custom auth provider.&lt;/description&gt;
            &lt;owner&gt;
                &lt;name&gt;DotNetNuke Corporation&lt;/name&gt;
                &lt;organization&gt;DotNetNuke Corporation&lt;/organization&gt;
                &lt;url&gt;www.dotnetnuke.com&lt;/url&gt;
                &lt;email&gt;support@dotnetnuke.com&lt;/email&gt;
            &lt;/owner&gt;
            &lt;license src="license.txt" /&gt;
            &lt;releaseNotes src="ReleaseNotes.txt" /&gt;
            &lt;dependencies&gt;
                &lt;dependency type="CoreVersion"&gt;05.00.00&lt;/dependency&gt;
            &lt;/dependencies&gt;
            &lt;components&gt;
                &lt;component type="AuthenticationSystem"&gt;
                    &lt;authenticationService&gt;
                        &lt;type&gt;Demo&lt;/type&gt;
                        &lt;settingsControlSrc&gt;DesktopModules/AuthenticationServices/Demo/Settings.ascx&lt;/settingsControlSrc&gt;
                        &lt;loginControlSrc&gt;DesktopModules/AuthenticationServices/Demo/Login.ascx&lt;/loginControlSrc&gt;
                        &lt;logoffControlSrc/&gt;
                    &lt;/authenticationService&gt;
                &lt;/component&gt;
                &lt;component type="File"&gt;
                    &lt;files&gt;
                        &lt;basePath&gt;DesktopModules/AuthenticationServices/Demo&lt;/basePath&gt;
                        &lt;file&gt;
                            &lt;path&gt;App_LocalResources&lt;/path&gt;
                            &lt;name&gt;Login.ascx.resx&lt;/name&gt;
                        &lt;/file&gt;
                        &lt;file&gt;
                            &lt;path&gt;App_LocalResources&lt;/path&gt;
                            &lt;name&gt;Settings.ascx.resx&lt;/name&gt;
                        &lt;/file&gt;
                        &lt;file&gt;
                            &lt;name&gt;Login.ascx&lt;/name&gt;
                        &lt;/file&gt;
                        &lt;file&gt;
                            &lt;name&gt;Settings.ascx&lt;/name&gt;
                        &lt;/file&gt;
                        &lt;file&gt;
                            &lt;name&gt;Login.ascx.vb&lt;/name&gt;
                        &lt;/file&gt;
                        &lt;file&gt;
                            &lt;name&gt;Settings.ascx.vb&lt;/name&gt;
                        &lt;/file&gt;
                        &lt;file&gt;
                            &lt;name&gt;license.txt&lt;/name&gt;
                        &lt;/file&gt;
                        &lt;file&gt;
                            &lt;name&gt;ReleaseNotes.txt&lt;/name&gt;
                        &lt;/file&gt;
                        &lt;file&gt;
                            &lt;name&gt;DemoAuth.css&lt;/name&gt;
                        &lt;/file&gt;
                    &lt;/files&gt;
                &lt;/component&gt;
            &lt;/components&gt;
        &lt;/package&gt;
    &lt;/packages&gt;
&lt;/dotnetnuke&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt;Before packaging the system however, I want to make some changes to the login controls just to make it a little clearer when I am using my new control versus the standard DNN version.  The DNN login uses tables for handling the form layout, and I am going to use a definition list.  I also want to get rid of the help icons next to the form labels and use some different styling on the actual textboxes.  Finally, I want to get rid of the Captcha control.&lt;/p&gt;

&lt;p&gt;The first step is to clean up the login HTML&lt;/p&gt;

&lt;pre class="xml" name="code"&gt;&lt;%@ Control language="vb" Inherits="DotNetNuke.Modules.Admin.Demo.Authentication.Login" CodeFile="Login.ascx.vb" AutoEventWireup="false" Explicit="True" %&gt;

&lt;dl id="DemoLogin"&gt;
    &lt;dt&gt;&lt;asp:label id="plUsername" controlname="txtUsername" runat="server" resourcekey="Username" /&gt;&lt;/dt&gt;
    &lt;dd&gt;&lt;asp:textbox id="txtUsername" columns="9" width="150" cssclass="NormalTextBox" runat="server" /&gt;&lt;/dd&gt;
    &lt;dt&gt;&lt;asp:label id="plPassword" controlname="txtPassword" runat="server" resourcekey="Password" /&gt;&lt;/dt&gt;
    &lt;dd&gt;&lt;asp:textbox id="txtPassword" columns="9" width="150" textmode="Password" cssclass="NormalTextBox" runat="server" /&gt;&lt;/dd&gt;
    &lt;dt id="verifyLabel" runat=server visible="false" &gt;&lt;dnn:label id="plVerification" controlname="txtVerification" runat="server"/&gt;&lt;/dt&gt;
    &lt;dd id="verifyControl" runat=server  visible="false"&gt;&lt;asp:textbox id="txtVerification" columns="9" width="150" cssclass="NormalTextBox" runat="server" /&gt;&lt;/dd&gt;
&lt;/dl&gt;
&lt;asp:button id="cmdLogin" resourcekey="cmdLogin" cssclass="StandardButton" text="Login" runat="server" /&gt;&lt;/pre&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;After making these changes I make the corresponding changes in my code-behind to remove references to the captcha control and to update the visibility code for the verification control/label.  This is pretty much all that is needed for the Login control.&lt;/p&gt;

&lt;p&gt;The next set of changes are made to the settings control.  We need to make sure that we are saving our control settings using unique settings keys (although you are free to store your settings using whatever method you are comfortable with).  In this case I create a new DemoAuthConfig class to replace the core AuthenticationConfig class.  I then go back and update the settings and login pages to reference my new config class rather than the old class.  I also remove all references to the captcha setting since I am not using it here.&lt;/p&gt;

&lt;p&gt;Finally, I want my login control to have it’s own look which I may choose to surface on the settings page at some point.  To handle this I include a CSS file in my project since I don’t want end users to have to muck around trying to edit core CSS files.  My CSS file changes the way the definition list is displayed to show up as two columns.&lt;/p&gt;

&lt;p&gt;One last bit that I need to update is to edit the login.ascx.resx resource file.  This resource file contains the&lt;em&gt; Title.Text&lt;/em&gt; resource which controls the tabname that is used when displaying the various login controls.  In my case I used “Demo Auth” for my Title.Text.&lt;/p&gt;

&lt;p&gt;At this point I am ready to package everything up in a zip file so that it is ready for installation.  Installing an authentication provider in DotNetNuke 5.0 is exactly the same as installing a module.  Navigate to the &lt;em&gt;Host/Extensions&lt;/em&gt; page and select the “Install Extension Wizard” option from the module action menu.  This will walk you through the installation process.  &lt;/p&gt;

&lt;p&gt;Once the provider is complete, you will need to go to the Host/Extensions page and edit the new Authentication Provider settings to make sure it is enabled (it should be enabled by default).  To edit the settings, click the edit (pencil) icon next the the DNN_DemoAuthentication extension listing.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://blog.theaccidentalgeek.com/image.axd?picture=WindowsLiveWriter/DotNetNukeTipsandTricks12Creatingyourown_7389/HostSettingsAuthSys_2.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="HostSettingsAuthSys" border="0" alt="HostSettingsAuthSys" src="http://blog.theaccidentalgeek.com/image.axd?picture=WindowsLiveWriter/DotNetNukeTipsandTricks12Creatingyourown_7389/HostSettingsAuthSys_thumb.png" width="520" height="137" /&gt;&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;You should see the following settings which allow you to enable or disable this authentication provider for all portals.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://blog.theaccidentalgeek.com/image.axd?picture=WindowsLiveWriter/DotNetNukeTipsandTricks12Creatingyourown_7389/HostSettingsAuthSysSettings_2.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; margin-left: 0px; border-left-width: 0px; margin-right: 0px" title="HostSettingsAuthSysSettings" border="0" alt="HostSettingsAuthSysSettings" src="http://blog.theaccidentalgeek.com/image.axd?picture=WindowsLiveWriter/DotNetNukeTipsandTricks12Creatingyourown_7389/HostSettingsAuthSysSettings_thumb.png" width="520" height="208" /&gt;&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;Once the provider is enabled at the Host level, you are now free to go to each portal and enable the provider for each portal where you wish to use it.  Just go to the Admin/Extensions page and click on the edit (pencil) icon for the demo auth provider to bring up our custom settings page.  Now we can enable our new AuthenticationProvider.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://blog.theaccidentalgeek.com/image.axd?picture=WindowsLiveWriter/DotNetNukeTipsandTricks12Creatingyourown_7389/AdminAuthSysSettings_2.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="AdminAuthSysSettings" border="0" alt="AdminAuthSysSettings" src="http://blog.theaccidentalgeek.com/image.axd?picture=WindowsLiveWriter/DotNetNukeTipsandTricks12Creatingyourown_7389/AdminAuthSysSettings_thumb.png" width="520" height="270" /&gt;&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;If you have followed along to this point, when you go to the login page, you should see two authentication types – Standard and Demo Auth.  If you look at the Demo Auth page, you will notice that the “help” icons are removed and the text boxes are displayed  using a custom style.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://blog.theaccidentalgeek.com/image.axd?picture=WindowsLiveWriter/DotNetNukeTipsandTricks12Creatingyourown_7389/AuthProviderDemoLogin_2.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="AuthProviderDemoLogin" border="0" alt="AuthProviderDemoLogin" src="http://blog.theaccidentalgeek.com/image.axd?picture=WindowsLiveWriter/DotNetNukeTipsandTricks12Creatingyourown_7389/AuthProviderDemoLogin_thumb.png" width="332" height="282" /&gt;&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;At this point you should be ready to create your own custom Authentication provider which plugs into the standard login system.  This is the recommended method for providing custom layouts and authentication types for DotNetNuke and I highly recommend you check it out.&lt;/p&gt;

&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:fb3a1972-4489-4e52-abe7-25a00bb07fdf:d596e7d2-ee09-40ea-b6d9-dfa54bc9b527" class="wlWriterEditableSmartContent"&gt;&lt;p&gt;Download the demo code &lt;a href="http://blog.theaccidentalgeek.com/file.axd?file=WindowsLiveWriter/DotNetNukeTipsandTricks12Creatingyourown_7389/DemoAuth.zip" target="_blank"&gt;DemoAuth.zip&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TheAccidentalGeek-Dotnetnuke/~4/-6kWHd7C9Rw" height="1" width="1"/&gt;&lt;img src="http://feeds.feedburner.com/~r/DotnetnukeBlogs/~4/xPX8PJHdXcw" height="1" width="1"/&gt;</description><thumbnail /><dc:creator>Joe Brinkman</dc:creator><pubDate>Mon, 13 Jul 2009 15:55:29 GMT</pubDate><guid isPermaLink="false">d57fa7c0-dec9-480f-87c6-b0fb1762995f</guid><feedburner:origLink>http://www.dotnetnukeblogs.com/Home/Articles/itemId/27467/DotNetNuke-Tips-and-Tricks-12-Creating-your-own.aspx</feedburner:origLink></item><item><title>New Samples Site for Tressleworks Modules</title><link>http://feedproxy.google.com/~r/DotnetnukeBlogs/~3/8gAHBFubddY/New-Samples-Site-for-Tressleworks-Modules.aspx</link><description>&lt;p style="text-align: left"&gt;In recent weeks, I have been working on a sample site for all of the Modules currently available from Tressleworks.  There have been examples on my site, but they had been rather limited.  So I have created a child site off &lt;a target="_blank" href="http://www.tressleworks.ca"&gt;www.tressleworks.ca&lt;/a&gt; called &lt;a target="_blank" href="http://www.tressleworks.ca/samples"&gt;www.tressleworks.ca/samples&lt;/a&gt;.  Original n'pas?&lt;/p&gt;
&lt;p style="text-align: left"&gt; &lt;/p&gt;&lt;a href=http://www.tressleworks.ca/Blog/tabid/73/EntryId/55/New-Samples-Site-for-Tressleworks-Modules.aspx&gt;More...&lt;/a&gt;&lt;img src="http://feeds.feedburner.com/~r/DotnetnukeBlogs/~4/8gAHBFubddY" height="1" width="1"/&gt;</description><thumbnail /><dc:creator>TressleWorks</dc:creator><pubDate>Thu, 09 Jul 2009 00:48:00 GMT</pubDate><guid isPermaLink="false">0cd5a939-437f-45ed-bf03-3b7ad1c95902</guid><feedburner:origLink>http://www.dotnetnukeblogs.com/Home/Articles/itemId/27465/New-Samples-Site-for-Tressleworks-Modules.aspx</feedburner:origLink></item><item><title>Open Source = Open Door to Hackers?</title><link>http://feedproxy.google.com/~r/DotnetnukeBlogs/~3/hKt7uYCovbY/Open-Source--Open-Door-to-Hackers.aspx</link><description>Is open source software more or less secure than proprietary software?&lt;img src="http://feeds.feedburner.com/~r/Apptheory_DotNetNuke_Blog/~4/O8IeVHIZWuY" height="1" width="1"/&gt;&lt;img src="http://feeds.feedburner.com/~r/DotnetnukeBlogs/~4/hKt7uYCovbY" height="1" width="1"/&gt;</description><thumbnail /><dc:creator>AppTheory DotNetNuke Blog</dc:creator><pubDate>Wed, 08 Jul 2009 21:38:01 GMT</pubDate><guid isPermaLink="false">7490750c-df33-4da8-908f-b0a51ed2c02e</guid><feedburner:origLink>http://www.dotnetnukeblogs.com/Home/Articles/itemId/27462/Open-Source--Open-Door-to-Hackers.aspx</feedburner:origLink></item><item><title>Lost Admin/Host Password in DNN</title><link>http://feedproxy.google.com/~r/DotnetnukeBlogs/~3/5klz-YEt3Ts/Lost-AdminHost-Password-in-DNN.aspx</link><description>&lt;p&gt;I had someone forget their admin password to a portal I installed 5 years ago, apparently the sticky note fell off the site administrators monitor and got thrown away (#grin*). They called me to get it back but of course I had them change it when I left. Thinking this is a problem for others I have the standard database hack/solution for this that works for the DNN user system.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;font color="#ff0000"&gt;*&lt;/font&gt;&lt;/strong&gt;You need access to the database to do this:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Create a new user account by registration (this time, please remember the password you enter!) &lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;If "register" is not displayed for the portal, go to table "Portals"  in your database and enter value "2" into column "UserRegistration". &lt;/li&gt;   &lt;/ul&gt;    &lt;li&gt;Go to database, enter table "ASPNet_Membership" &lt;/li&gt;    &lt;li&gt;Go to new user account (usually the last one) and copy the encrypted values of columns "Password" and "PasswordSalt" into the same columns of user account "host" (usually the first entry in this table)  &lt;/li&gt;    &lt;li&gt;Login as user "host" using the new password and delete the newly created user. &lt;/li&gt;    &lt;li&gt;If you changed the “Portals” table, revert UserRegistration mode in Site Settings.&lt;/li&gt;    &lt;li&gt;Remember your password!!!!!!!&lt;/li&gt; &lt;/ol&gt;&lt;img src="http://feeds.feedburner.com/~r/DotnetnukeBlogs/~4/5klz-YEt3Ts" height="1" width="1"/&gt;</description><thumbnail /><dc:creator>DotNetNuke Blog from CodeMyPantsOff</dc:creator><pubDate>Wed, 08 Jul 2009 16:34:28 GMT</pubDate><guid isPermaLink="false">b6ee2c8b-7f63-44bb-a327-9e1adbaba28f</guid><feedburner:origLink>http://www.dotnetnukeblogs.com/Home/Articles/itemId/27466/Lost-AdminHost-Password-in-DNN.aspx</feedburner:origLink></item><item><title>Using Active Directory in Dotnetnuke 5.x</title><link>http://feedproxy.google.com/~r/DotnetnukeBlogs/~3/loKpG9SH1Gs/Using-Active-Directory-in-Dotnetnuke-5x.aspx</link><description>&lt;p&gt;Active Directory Integration has changed a bit since DNN 4.  This guide is intended to help you setup Active Directory on your &lt;a target="_blank" href="http://www.dotnetnuke.com"&gt;Dotnetnuke&lt;/a&gt; 5.x website. &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/DotnetnukeBlogs/~4/loKpG9SH1Gs" height="1" width="1"/&gt;</description><thumbnail /><dc:creator>Hilbert Solutions, LLC</dc:creator><pubDate>Wed, 08 Jul 2009 15:25:26 GMT</pubDate><guid isPermaLink="false">75b1daf9-e6b6-4809-b396-b3c3e701eac2</guid><feedburner:origLink>http://www.dotnetnukeblogs.com/Home/Articles/itemId/27460/Using-Active-Directory-in-Dotnetnuke-5x.aspx</feedburner:origLink></item><item><title>Active Forums 4.2 - Configuration and Permission Sets</title><link>http://feedproxy.google.com/~r/DotnetnukeBlogs/~3/Qzi67sR3g7g/Active-Forums-42--Configuration-and-Permission-S.aspx</link><description>Active Forums 4.2 is going to address several items, but also introduce some changes that will greatly improve performance and scalability.  Active Forums 4.0 was a completely new module and data structure when compared to previous versions.  I have been told before that I'm an extremist when it comes to performance, but performance is the key ingredient to a successful product.  This has  always been the strong point of Active Forums.  However, with Active Forums 4.x it takes a little more to make it truly perform it's best.  Now, 80% of all sites using Active Forums will never notice any sort of performance degradation.  The remaining 20% represent a combination of sites with high traffic, large volumes of content  or simply poor server resources.  We could have simply written some documentation or raised the minimum requirements, but that really doesn't solve the problem.  &lt;br /&gt;&lt;br /&gt;Another strong point of Active Forums is the lengthy and flexible feature set.  While addressing some of the performance issues, we also wanted to improve individual forum configuration.   We also needed to make configuration options easy to access.  Active Forums 4.2 will introduce a new feature called "Config Sets".  A "Config Set" is the collection of all the settings that are available for a forum.  This gives you the ability to define a set of features and apply them to any forum.  You can define a Config Set before you even create the forum.  You can also create a Config Set based off of an existing forum.  Super Users have the option to mark a Config Set as "global" or "global default".  The global setting makes the config set visible to all module instances across all portals.  Global default replaces the Active Forums default configuration across all portals.  Many other features are on the road map that are specific to Super User configuration, but those will be after the 4.2 release.  For instance, we want to give the Super User the option to lock configurations.  This would mean that a portal owner or module admin would have to select from a list of predefined configurations.  Of course, the default behavior would be just as it has always been.  &lt;br /&gt;&lt;br /&gt;Permission Sets are very similar to Config Sets.  Permissions will be separate from configurations.  When we were going through various scenarios and use cases we found that you would end up with more Config Sets when permissions were included. &lt;br /&gt;&lt;br /&gt;How does this help performance?  It really comes down to the way we store and retrieve the settings with each page request.  We are able to cache this information in a much more efficient way that works well across various server configurations.  Our database queries are optimized so that they are retrieving less data and focused on content rather than configuration.  We have eliminated the need to store specific settings for each forum which reduces database size and memory utilization.  Even if you wish to have unique settings for each forum, fewer resources will be used and you will still see better performance.&lt;br /&gt;&lt;br /&gt;I'm sure there are more than a couple customers thinking this sounds like the makings of a painful upgrade.  This will be a direct upgrade, just like all others with the exception of 3.7 to 4.0.  The upgrade process does make several database changes and migrate data.  We have added several precautions to make sure the upgrade will not cause any downtime for your site.  First, we are not going to delete anything.  We will leave the structure for your old settings untouched for several releases.  Second,  the conversion to Config and Permission Sets is the very last part of upgrade install.  If the script fails Active Forums will still use your old settings, but display a message in the Active Forums control panel telling you to contact support.  The majority of the install problems we see are related to installs where data was imported from another product.  We have been testing with several large installations and have not encountered any upgrade issues yet.&lt;br /&gt;&lt;br /&gt;The upgrade process will attempt to consolidate your current settings into new permission and config sets.  The worse case scenario is that you will end up with unique config sets for each forum.  All it will take is for one setting to be different and a new config set will be created.  The upgrade script also scans the database looking for any forums that are inheriting settings from a group.  If any are found it will create a config set based upon the group and apply that to the proper forums.&lt;br /&gt;&lt;br /&gt;What excites me the most about the Config Set feature is how we have made it easier for you to manage your forums.  You can manage forums the same way you always have or use some of the new features.  All Config Sets are listed in the Active Forums Control Panel.  Each Config Set lists the forums where it is currently being used.  If you have the proper permissions, you can also view and/or edit the forum configuration without accessing the control panel.  This should make Active Social customers extremely happy since they will be able to manage group forums from within the Active Social Control Panel.  &lt;br /&gt;&lt;br /&gt;Active Forums 4.2 will be feature complete this week.  The following week will be nothing but internal QA and security testing.  A release date will be set the week after.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://feeds.feedburner.com/~r/DotnetnukeBlogs/~4/Qzi67sR3g7g" height="1" width="1"/&gt;</description><thumbnail /><dc:creator>Active Modules, Inc.</dc:creator><pubDate>Tue, 07 Jul 2009 16:14:42 GMT</pubDate><guid isPermaLink="false">0652bf0a-9b5e-45b1-9b70-f386a1f8fce6</guid><feedburner:origLink>http://www.dotnetnukeblogs.com/Home/Articles/itemId/27459/Active-Forums-42--Configuration-and-Permission-S.aspx</feedburner:origLink></item><item><title>Silverlight 3 Launch Confirmed for July 10</title><link>http://feedproxy.google.com/~r/DotnetnukeBlogs/~3/4XBUeh5g4w8/Silverlight-3-Launch-Confirmed-for-July-10.aspx</link><description>Microsoft confirmed rumors in their MCP newsletter "MSDN Flash" last night that they are launching Silverlight 3 on July 10. The new version of the platform...&lt;img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dotnetnukeconsulting.wordpress.com&amp;blog=4043690&amp;post=88&amp;subd=dotnetnukeconsulting&amp;ref=&amp;feed=1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/DotnetnukeBlogs/~4/4XBUeh5g4w8" height="1" width="1"/&gt;</description><thumbnail /><dc:creator>DotNetNuke Consultant Blog - Arrow Consulting &amp; De</dc:creator><pubDate>Tue, 07 Jul 2009 12:25:55 GMT</pubDate><guid isPermaLink="false">ca065bdf-7a93-4d34-82a0-b68714cd0a4f</guid><feedburner:origLink>http://www.dotnetnukeblogs.com/Home/Articles/itemId/27458/Silverlight-3-Launch-Confirmed-for-July-10.aspx</feedburner:origLink></item><item><title>Display on All Pages -- got that wrong!</title><link>http://feedproxy.google.com/~r/DotnetnukeBlogs/~3/4FJhDN6QgoM/Display-on-All-Pages--got-that-wrong.aspx</link><description>&lt;p style="text-align: left"&gt;It seems that I was thinking too hard when I attempted to understand how "Display on All Pages" might be implemented.  Well I was all wrong and have been living under a misconception for quite some time.  There were clues that my conceptualization was incorrect, but I ignored them because I was right -- and it must be something else ... yes -- pure ignorance.&lt;/p&gt;
&lt;p style="text-align: left"&gt;OK, so how is this feature implemented and what are some of the issues associated with it? &lt;/p&gt;
&lt;p style="text-align: left"&gt; &lt;/p&gt;
&lt;p style="text-align: left"&gt; &lt;/p&gt;&lt;a href=http://www.tressleworks.ca/Blog/tabid/73/EntryId/53/Display-on-All-Pages-got-that-wrong.aspx&gt;More...&lt;/a&gt;&lt;img src="http://feeds.feedburner.com/~r/DotnetnukeBlogs/~4/4FJhDN6QgoM" height="1" width="1"/&gt;</description><thumbnail /><dc:creator>TressleWorks</dc:creator><pubDate>Mon, 06 Jul 2009 17:34:00 GMT</pubDate><guid isPermaLink="false">254546b5-0171-4e9f-b2e8-fe007f5020c7</guid><feedburner:origLink>http://www.dotnetnukeblogs.com/Home/Articles/itemId/27463/Display-on-All-Pages--got-that-wrong.aspx</feedburner:origLink></item><item><title>DotNetNuke Control Panel View Modes</title><link>http://feedproxy.google.com/~r/DotnetnukeBlogs/~3/QB7zZIYBEvs/DotNetNuke-Control-Panel-View-Modes.aspx</link><description>Every so often we get a panicked DotNetNuke user call or email and tell us one of the two below statements. 

Help, all my content is gone!
My user account is screwed up and I cannot edit any modules!&lt;img src="http://feeds.feedburner.com/~r/Apptheory_DotNetNuke_Blog/~4/rtEtfbI3HUc" height="1" width="1"/&gt;&lt;img src="http://feeds.feedburner.com/~r/DotnetnukeBlogs/~4/QB7zZIYBEvs" height="1" width="1"/&gt;</description><thumbnail /><dc:creator>AppTheory DotNetNuke Blog</dc:creator><pubDate>Sun, 05 Jul 2009 23:39:00 GMT</pubDate><guid isPermaLink="false">66d172f4-e53a-4fec-bf11-ccabea671fef</guid><feedburner:origLink>http://www.dotnetnukeblogs.com/Home/Articles/itemId/27461/DotNetNuke-Control-Panel-View-Modes.aspx</feedburner:origLink></item><item><title>Social Networking DNN Module Suites: 300-Level Comparison</title><link>http://feedproxy.google.com/~r/DotnetnukeBlogs/~3/qK0uVo_0TVI/Social-Networking-DNN-Module-Suites-300Level-Com.aspx</link><description>&lt;p&gt;There are two well-known module suites for the DotNetNuke® web application framework.  First, there is the Open Smart offering by Smart-Thinker, and then there’s the Active Social offering by Active Modules.  We are going to briefly compare the two right now.&lt;/p&gt;  &lt;p&gt;Before I begin, please know that I have not been compensated in any way, and do not have any affiliation with either module suite, or their respective owner(s). &lt;/p&gt;  &lt;h4&gt;Smart-Thinker: Open Smart&lt;/h4&gt;  &lt;p&gt;Smart-Thinker is a company and website run solely by Rodney , who is also known for PokerDIY.com.  In fact, his modules were originally written for his poker site.  He released these modules to the public as a commercial product.  At this time, I do not remember the price for the individual modules, but they each had to be purchased separately.  Now they are all offered for free, and are open source.  This is very important to me for any module.  I love having source code to build, and implement custom business logic into.&lt;/p&gt;  &lt;p&gt;I was happy to find that these modules are built to work on DotNetNuke version 4.06.02 and higher.  This is no longer an issue for me, but the site I was considering putting the modules on was running that version at the time.  It has since been upgraded.  &lt;/p&gt;  &lt;p&gt;Upon installing the modules, I had no issues at all.  There were no errors on the installation log, or in the Event Viewer.  I am the type of person that, when it comes to modules, I do not like reading the documentation until after I have tried to run the module and explored its features and settings.  This presented a HUGE problem with this module suite.  Why?  Well, once installed, this module suite becomes a 21 installed modules, or module views.  When you look at the list of modules to choose from in your module drop down list, it is overwhelming to say the least.&lt;/p&gt;  &lt;p&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="Smart-Thinker: Module Listing" border="0" alt="Smart-Thinker: Module Listing" src="http://www.willstrohl.com/Portals/1/Blog/Files/3/430/WLW-SocialNetworkingDNNModuleSuitesCompared_DA9B-smartthinker_module_list_3.png" width="344" height="342" /&gt; &lt;/p&gt;  &lt;p&gt;I don’t know about you, but my time is worth money.  Every moment that I do not spend working on some that is going to give me a quick turn around is wasted time, and wasted money.  I tried dropping one of the modules on to the page, and gave up.  I went on the Smart-Thinker website to look for documentation, and didn’t find anything.  Instead, I found a document that was put together by a Smart-Thinker customer.  While it was a great document, it did not help me get through the set-up of the module suite any faster.&lt;/p&gt;  &lt;p&gt;I ended up giving up on this module suite after a while.  It is simply too difficult to get all of the modules on pages where they need to be.&lt;/p&gt;  &lt;h4&gt;Active Modules: Active Social&lt;/h4&gt;  &lt;p&gt;Unlike Open Smart, Active Social was very easy to install and configure, and it is not free at $$$.  However, they do have a very well-written document that gets you started with the suite.  From my testing, I do not think I would have really needed it.  Once you figure out the key to their “views” that are switched in the module settings, the rest is easy.  I did use the documentation though.  It was written in a way that was easy to understand, and easily followed for those who are like me and are always in a rush.  Following the documentation, I literally had a social site up and running within 30 minutes.&lt;/p&gt;  &lt;p&gt;The Active Social suite already has most of the feature that any social network implementation would need.  I did find a few bugs and reported them immediately.  They were not show stoppers by any means though.  The suite has many points of customization, allowing you to easily change the way the module suite works for your visitors, and quite possibly making two different sites function completely differently.&lt;/p&gt;  &lt;p&gt;I have met Will Morgenweck at the Day of DotNetNuke® not long ago.  Will impressed me when I spoke to him about his module suite.  His current road map is aggressive, and it has all of the features that I was looking for that I didn’t find during my demo.  Everything that I am looking for should be in the module suite in the next 2 months.&lt;/p&gt;  &lt;h4&gt;The Bottom Line&lt;/h4&gt;  &lt;p&gt;If you want a high-quality module suite for your online social network, and you have time to waste, the Open Smart module suite can do the job.  If you want a social networking website and time is precious to you, then Active Social is for you.  Sure, you’ll spend a little money buying the module suite, but at least you will have a fast, reliable, and stable module.&lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:c823471b-8d63-4ad0-9bfa-11b1ff70c091" class="wlWriterEditableSmartContent"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/DotNetNuke" rel="tag"&gt;DotNetNuke&lt;/a&gt;,&lt;a href="http://technorati.com/tags/DNN" rel="tag"&gt;DNN&lt;/a&gt;,&lt;a href="http://technorati.com/tags/DNN+Blogs" rel="tag"&gt;DNN Blogs&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Social+Networking" rel="tag"&gt;Social Networking&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Modules" rel="tag"&gt;Modules&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Review" rel="tag"&gt;Review&lt;/a&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/WillStrohl-Professional/~4/DImtYqFFO74" height="1" width="1"/&gt;&lt;img src="http://feeds.feedburner.com/~r/DotnetnukeBlogs/~4/qK0uVo_0TVI" height="1" width="1"/&gt;</description><thumbnail /><dc:creator>The Mighty Blog</dc:creator><pubDate>Sat, 04 Jul 2009 17:10:00 GMT</pubDate><guid isPermaLink="false">55b11e9a-55b5-4f2a-87a4-78625d7d5361</guid><feedburner:origLink>http://www.dotnetnukeblogs.com/Home/Articles/itemId/27457/Social-Networking-DNN-Module-Suites-300Level-Com.aspx</feedburner:origLink></item><item><title>Modifying the Default DotNetNuke Module Templates</title><link>http://feedproxy.google.com/~r/DotnetnukeBlogs/~3/m0aed7ZJMkI/Modifying-the-Default-DotNetNuke-Module-Templates.aspx</link><description>&lt;p&gt;A great feature of &lt;a href="http://www.dotnetnuke.com" target="_blank"&gt;DotNetNuke®&lt;/a&gt; is that each version comes with project templates for both the website, skins, and modules.  What is a project template?  Well, if you want to build your first module, then executing the project template inside of Visual Studio will give you a really great starting point, instead of having to figure out the files and file structure all on your own.  The project template puts all of that together for you.  All you have to do is give it a name, and then rename/change the code and files as you see fit.  (And then build your module of course.)&lt;/p&gt;  &lt;p&gt;Any developer though has their own style of both creating the files and code within their user controls, and other related code files.  For example, you might have a specific namespace that you always like to work in, or you might always have specific properties that you create each time you build a user control.  Luckily, the project templates can be easily easily altered to remember the way you like to start with a module.&lt;/p&gt;  &lt;h4&gt;Where are the Project Templates?&lt;/h4&gt;  &lt;p&gt;I am not going to walk you through creating a new project template from scratch.  Instead, I will be showing you how to change a previously installed project template.  IN order to do that, you need to know where the template files are found.  They can be found at the following path:&lt;/p&gt;  &lt;p&gt;C:\Documents and Settings\[Username]\My Documents\[Visual Studio Version]\Templates\ItemTemplates    &lt;br /&gt;C:\Documents and Settings\[Username]\My Documents\[Visual Studio Version]\Templates\ProjectTemplates&lt;/p&gt;  &lt;p&gt;The Item templates are where you’ll find the simple module and skin templates.  The Project templates is where you’ll find the DNN website template, and the compiled module template.  At this time, module templates only are available for VB, and not C#.&lt;/p&gt;  &lt;h4&gt;What are the Templates?&lt;/h4&gt;  &lt;p&gt;The templates themselves are zip files, named as follows (the availability of the templates below will vary, depending on the DNN StarterKit(s) you have installed):&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;Module_VB.zip&lt;/strong&gt; – This is a WSP version of a module template that has a DAL. &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Simple_VB.zip&lt;/strong&gt; – This is as WSP version of a module template that does not have a DAL &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Skin.zip&lt;/strong&gt; – This is a skin package template &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Module_Compiled_VB.zip&lt;/strong&gt; – This is a VB version of a WAP module &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Module_Compiled_CS.zip&lt;/strong&gt; – This is a C# version of a WAP module &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;DotNetNuke.zip&lt;/strong&gt; – This is the DNN website template, which gets you started on a working instance of DNN &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;font size="2"&gt;If you extract the contents of one of those archives into a folder, you will see a familiar folder structure for the Module_VB and Module_Simple templates (that is, if you’ve ever looked at the file system for a DNN instance.  The compiled versions will look much different, and since they are much more complicated for this type of article, I will focus on the WSP modules.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;Before you modify the default templates, I would suggest saving a copy of them to help you restore them later, if necessary.  Additionally, it would be a good idea to just work out of your own archive and files, resulting in you generating your own template.&lt;/font&gt;&lt;/p&gt;  &lt;h4&gt;Modifying the Templates&lt;/h4&gt;  &lt;p&gt;Modifying the templates is easier than you might imagine.  Since they are just archives, it literally can be as simple as extracting the files, changing them, and putting them back into the original archive.  Modifications will need to be made in one or more of the following places.  The most important place to make a change, is in the &lt;strong&gt;.vstemplate&lt;/strong&gt; file.  Even though it does not have the XML extension, it is just an XML file.  Open it with your favorite text editor.&lt;/p&gt;  &lt;p&gt;Most of the XML should be self-explanatory, if you understand XML.  In fact, it carries several similarities to the DNN manifest file.  For example, it allows you define the template name, folders, and files, much like the DNN manifest does for a module.  Here is a quick run-down of the XML elements you need to know.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;DefaultName&lt;/strong&gt; – This is the name that Visual Studio will use to name your folders, when created. This is used due to a limitation in the templating system. &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Name&lt;/strong&gt; – This is the name that you wish to show up in the dialog that appears when Visual Studio reads and loads the templates.  This happens when the New Item or New Project dialogs are opened. &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Description&lt;/strong&gt; – This is mostly necessary for yourself, but does appear as a tooltip in the Visual Studio IDE. &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;ProjectType&lt;/strong&gt; and &lt;strong&gt;ProjectSubType&lt;/strong&gt; – These values are mainly used for the folder structure within the templates directory.  I suggest you leave them alone, unless you really know what you’re doing. &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Icon&lt;/strong&gt; – This names the icon file that needs to be in the root of the template archive.  If you wish to have something other than the DNN icon, put it in the root of the archive, and then name it here. &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Folder&lt;/strong&gt; – This node names and then defines the folder(s), and the subsequent files that should be put into those folders.  A Folder element can have another child element of the same name. &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;ProjectItem&lt;/strong&gt; – This element allows you to define a file within a folder.  Using the &lt;font face="Courier New"&gt;$fileinputname$&lt;/font&gt; parameter, you can customize the file name, as you will see with the DNN manifest file. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;font size="2"&gt;Now that you know what the elements are, and how they are used, we can concentrate on the things that you really want to worry about, the code files.&lt;/font&gt;&lt;/p&gt;  &lt;h4&gt;Modifying the Template Code Files&lt;/h4&gt;  &lt;p&gt;&lt;font size="2"&gt;If you open any of the class files, you will immediately see a familiar parameter from the previous step, namely &lt;font face="Courier New"&gt;$fileinputname$&lt;/font&gt;.  This allows you to customize things like class names, namespaces, property names, and so on.  Simply insert the parameter into your code files where you would like it to be replaced with the name value entered by the person creating the project in the Visual Studio New Item dialog.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;You should now continue to alter the code as you see fit.  For example, changing the namespaces to match yours, adding namespaces, and so on.  Once you do, simply save the file and place it into your template archive.  If you add any new files or folders, do so but make sure that you add the folder and files to the .vstemplate configuration file.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2" face="Courier New"&gt;Deploying the Template&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;Deploying the template is extremely easy, though I am not telling you the standard way.  Instead, I am going to tell you the easy way.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;Hopefully, you have created a copy of the template archive, and renamed it to something more meaningful to you.  After doing so, save a new copy of the archive into the same directory that you pulled the original archive out of.  That’s it!  Nothing messy here.  You don’t need to unzip it or anything.  Visual Studio will do the rest of the work for you.&lt;/font&gt;&lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:d5e0860e-a12f-4a48-9efe-f662db1eaf27" class="wlWriterEditableSmartContent"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/DotNetNuke" rel="tag"&gt;DotNetNuke&lt;/a&gt;,&lt;a href="http://technorati.com/tags/DNN" rel="tag"&gt;DNN&lt;/a&gt;,&lt;a href="http://technorati.com/tags/DNN+Blogs" rel="tag"&gt;DNN Blogs&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Development" rel="tag"&gt;Development&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Templates" rel="tag"&gt;Templates&lt;/a&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/WillStrohl-Professional/~4/AVrd5Nmc7_k" height="1" width="1"/&gt;&lt;img src="http://feeds.feedburner.com/~r/DotnetnukeBlogs/~4/m0aed7ZJMkI" height="1" width="1"/&gt;</description><thumbnail /><dc:creator>The Mighty Blog</dc:creator><pubDate>Sat, 04 Jul 2009 08:22:00 GMT</pubDate><guid isPermaLink="false">504161fb-bd81-4cd2-b83f-3655cb4074f8</guid><feedburner:origLink>http://www.dotnetnukeblogs.com/Home/Articles/itemId/27456/Modifying-the-Default-DotNetNuke-Module-Templates.aspx</feedburner:origLink></item><item><title>Improving the Debugger Experience Using Attributes</title><link>http://feedproxy.google.com/~r/DotnetnukeBlogs/~3/-lY2VD7eSZI/Improving-the-Debugger-Experience-Using-Attributes.aspx</link><description>&lt;p&gt;I have often found that when debugging applications that a lot of time is spent drilling down into the various custom objects to see what the values are of specific instance methods.  In this blog posting I will demonstrate the default behavior of Visual Studio when debugging a class, I will then show how you can improve the debugging experience with the addition of a simple attribute.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/DotnetnukeBlogs/~4/-lY2VD7eSZI" height="1" width="1"/&gt;</description><thumbnail /><dc:creator>Mitchel Sellers DotNetNuke Blog</dc:creator><pubDate>Fri, 03 Jul 2009 14:44:00 GMT</pubDate><guid isPermaLink="false">c02b58fb-6ca2-499b-944a-618bba8f917f</guid><feedburner:origLink>http://www.dotnetnukeblogs.com/Home/Articles/itemId/27455/Improving-the-Debugger-Experience-Using-Attributes.aspx</feedburner:origLink></item><item><title>Changes to Future Blog Programming!</title><link>http://feedproxy.google.com/~r/DotnetnukeBlogs/~3/UtvseZLdhrw/Changes-to-Future-Blog-Programming.aspx</link><description>&lt;p&gt;After doing this blog for almost three years I have came to a conclusion that I need to take a step back, and re-focus a bit and manage the content a bit more.  To do this, I am making a few changes, don't worry not only will you keep getting the same quality of content, but you will start seeing more content and a better organization system behind the scenes.  Overall this is a three step process, each phase of the changes will be outlined below.&lt;/p&gt;
&lt;h2&gt;Changes to Blogging on MitchelSellers.com&lt;/h2&gt;
&lt;p&gt;The first stage of change here is working to solidify the types of articles that will continue to be published via the communication channel.  I will continue blogging about .NET and DotNetNuke technical topics, as well as product reviews.  Therefore trying to stay with a more technical focus.&lt;/p&gt;
&lt;p&gt;In addition to this, as part of becoming a C# MVP, you will start to see more C# articles here as well.&lt;/p&gt;
&lt;h2&gt;New Blog at IowaComputerGurus.com&lt;/h2&gt;
&lt;p&gt;The second stage of change is the introduction of a new blog on the company website, &lt;a href="http://www.iowacomputergurus.com" target="_blank"&gt;IowaComputerGurus.com&lt;/a&gt;.  This blog will become the new home for the best practices, case study, and "doing business" blog articles.  Trying to focus a bit on the proper implementation/leveraging of both the .NET and DotNetNuke platforms from a business perspective.  These articles will be less technical in nature and are geared more towards doing business, we hope to include success stories of DotNetNuke implementations as well.&lt;/p&gt;
&lt;p&gt;NOTE: if you are an existing IowaComputerGurus customer and would like your project featured in a case study on the new blog, please e-mail me &lt;a href="javascript:location.href='mailto:'+String.fromCharCode(109,115,101,108,108,101,114,115,64,105,111,119,97,99,111,109,112,117,116,101,114,103,117,114,117,115,46,99,111,109)+'?'"&gt;msellers@iowacomputergurus.com&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;Tutorials Aggregation&lt;/h2&gt;
&lt;p&gt;The final stage of change will come from a future "tutorial aggregation" system.  This will be a new place for the storage of items that are currently being posted to this blog that are much more directly "tutorial" related; items such as the DotNetNuke installation, upgrade, backup and restore tutorials.  Right now, although very popular articles these are a bit harder for individuals to identify and access.&lt;/p&gt;
&lt;p&gt;The exact plan and home of this new system is unknown, therefore, all blogs of this nature that are created will be tagged with the "Tutorials" tag, so they can still be easily identified.&lt;/p&gt;
&lt;h2&gt;Comments/Suggestions Appreciated&lt;/h2&gt;
&lt;p&gt;As with any change, some people will not like the direction that things are going, I welcome comments and suggestions on better ways to manage this information.  Otherwise, stay tuned for future blogs and announcements.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/DotnetnukeBlogs/~4/UtvseZLdhrw" height="1" width="1"/&gt;</description><thumbnail /><dc:creator>Mitchel Sellers DotNetNuke Blog</dc:creator><pubDate>Thu, 02 Jul 2009 20:16:00 GMT</pubDate><guid isPermaLink="false">afe66e32-ee7f-4cd1-b23d-c0470a51a082</guid><feedburner:origLink>http://www.dotnetnukeblogs.com/Home/Articles/itemId/27452/Changes-to-Future-Blog-Programming.aspx</feedburner:origLink></item><item><title>New ArrowDesigns.com Site Launched!</title><link>http://feedproxy.google.com/~r/DotnetnukeBlogs/~3/V0Ctw2_GqN8/New-ArrowDesignscom-Site-Launched.aspx</link><description>I’m very excited to announce our new website at www.ArrowDesigns.com. We’ve spent several months tweaking it and getting it just right and I’m really proud of what we have. Check it out and drop me a line to let me know what you think – ryan atsign arrowdesigns dot com.
Some of the highlights:

Software Consulting
Web Design [...]&lt;img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dotnetnukeconsulting.wordpress.com&amp;blog=4043690&amp;post=82&amp;subd=dotnetnukeconsulting&amp;ref=&amp;feed=1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/DotnetnukeBlogs/~4/V0Ctw2_GqN8" height="1" width="1"/&gt;</description><thumbnail /><dc:creator>DotNetNuke Consultant Blog - Arrow Consulting &amp; De</dc:creator><pubDate>Thu, 02 Jul 2009 16:26:43 GMT</pubDate><guid isPermaLink="false">862cdf88-d471-4b05-bb58-27a7bfd88e74</guid><feedburner:origLink>http://www.dotnetnukeblogs.com/Home/Articles/itemId/27440/New-ArrowDesignscom-Site-Launched.aspx</feedburner:origLink></item><item><title>Upcoming .Net Community Events in Florida</title><link>http://feedproxy.google.com/~r/DotnetnukeBlogs/~3/-PXCbZ_anAs/Upcoming-Net-Community-Events-in-Florida.aspx</link><description>&lt;p&gt;There are quite a few events coming up in Florida in the next few months. They are all free, and most will give you the opportunity to win free stuff just for showing up. Awesome!  If you find yourself in or around any of these events, I strongly recommend you stop by.  I have been to most of them, and they are great.&lt;/p&gt;  &lt;p&gt;All of the following information came from the &lt;a href="http://orlando.dotnetnukeug.net/" target="_blank"&gt;Orlando DotNetNuke® Users Group&lt;/a&gt; (&lt;a href="http://orlando.dotnetnukeug.net/" target="_blank"&gt;ODUG&lt;/a&gt;) website.  See our &lt;a href="http://orlando.dotnetnukeug.net/Events.aspx" target="_blank"&gt;events page&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;July 9&lt;/strong&gt; - &lt;a href="http://orlando.dotnetnukeug.net/WhatsNew/Events/tabid/91/ctl/Details/Mid/428/ItemID/107/Default.aspx?selecteddate=7/9/2009" target="_blank"&gt;Orlando DotNetNuke® Users Group&lt;/a&gt;    &lt;br /&gt;Will Strohl (nobody) will be talking about the Core DNN Blog Module.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;July 14&lt;/strong&gt; – &lt;a href="http://opass.org" target="_blank"&gt;Orlando PASS&lt;/a&gt;    &lt;br /&gt;Chad Miller will be discussing Powershell with SQL Server.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;July 15&lt;/strong&gt; – &lt;a href="http://www.scdnug.org/Events.aspx" target="_blank"&gt;Space Coast .Net User Group&lt;/a&gt;    &lt;br /&gt;Oleg Sych will be presenting on VSTS and TFS.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;July 16&lt;/strong&gt; – &lt;a href="http://www.onetug.org/sf/events/onetugevents.aspx" target="_blank"&gt;Orlando .Net User Group&lt;/a&gt;    &lt;br /&gt;Joe Healy (Microsoft Developer Evangelist) will be speaking about the developer features in IE8.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;July 16&lt;/strong&gt; – &lt;a href="http://spacecoast.sqlpass.org/" target="_blank"&gt;Space Coast SQL User Group&lt;/a&gt;    &lt;br /&gt;Don King and Clay Seifert will be each presenting a different session. They will be speaking about SQL Server 2005 Clustering and SQL Server Analysis Services, respectively.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;July 21&lt;/strong&gt; – &lt;a href="http://www.cfdotnet.org/" target="_blank"&gt;Lakeland .Net User Group&lt;/a&gt;    &lt;br /&gt;This user group will be holding a session entitled “Lakeland’s .Net Speaker Idol” and it promises to be a fun time, where you will see speakers compete against each other for prizes.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;August 4&lt;/strong&gt; – &lt;a href="http://orlando.dotnetnukeug.net/WhatsNew/Events/tabid/91/ctl/Details/Mid/428/ItemID/115/Default.aspx?selecteddate=8/4/2009" target="_blank"&gt;Orlando DotNetNuke® Users Group&lt;/a&gt;    &lt;br /&gt;DNN author, Darren Neese will be showing the new features in the DNN skinning engine.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;August 18&lt;/strong&gt; – &lt;a href="http://www.scdnug.org/Events.aspx" target="_blank"&gt;Space Coast .Net User Group&lt;/a&gt;    &lt;br /&gt;Topic and speaker TBA. (sorry…)&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;August 20&lt;/strong&gt; – &lt;a href="http://www.onetug.org/sf/events/onetugevents.aspx" target="_blank"&gt;Orlando .Net User Group&lt;/a&gt;    &lt;br /&gt;Christopher Bennage (MVP) will be showing the attendees SilverArcade.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;August 20&lt;/strong&gt; – &lt;a href="http://spacecoast.sqlpass.org/" target="_blank"&gt;Space Coast SQL User Group&lt;/a&gt;    &lt;br /&gt;Joe Healy (Microsoft Developer Evangelist) shows the group SQL Server 2008 enhancements from a developers perspective.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;August 29&lt;/strong&gt; – &lt;a href="http://www.jaxcodecamp.com" target="_blank"&gt;Jacksonville Code Camp&lt;/a&gt;    &lt;br /&gt;The Jax Code Camp crew overcame some very challenging obstacles last year. I was extremely impressed.  I expect them to put on a great event again this year.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;September 5&lt;/strong&gt; – &lt;a href="http://tlhdotnet.org/CodeCampV/tabid/155/Default.aspx" target="_blank"&gt;Tallahassee Code Camp&lt;/a&gt;    &lt;br /&gt;Tallahassee Code Camp was a great time last year.  They always have some great presenters on-hand.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;September 10&lt;/strong&gt; – &lt;a href="http://spacecoast.sqlpass.org/" target="_blank"&gt;Space Coast SQL User Group&lt;/a&gt;    &lt;br /&gt;Jack Corbett will be presenting a yet to be determined topic.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;November 5&lt;/strong&gt; – &lt;a href="http://orlando.dotnetnukeug.net/WhatsNew/Events/tabid/91/ctl/Details/Mid/428/ItemID/108/Default.aspx?selecteddate=11/5/2009" target="_blank"&gt;Orlando DotNetNuke® Users Group&lt;/a&gt;    &lt;br /&gt;DNN Blog Project Team Lead, Antonio Chagoury, will be presenting “Mashing Up Your DotNetNuke Using RESTful APIs.”&lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:7a6eea05-ee4f-4386-841a-d1cd36fb8012" class="wlWriterEditableSmartContent"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/DotNetNuke" rel="tag"&gt;DotNetNuke&lt;/a&gt;,&lt;a href="http://technorati.com/tags/DNN" rel="tag"&gt;DNN&lt;/a&gt;,&lt;a href="http://technorati.com/tags/DNN+Blogs" rel="tag"&gt;DNN Blogs&lt;/a&gt;,&lt;a href="http://technorati.com/tags/.Net" rel="tag"&gt;.Net&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Code+Camp" rel="tag"&gt;Code Camp&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Events" rel="tag"&gt;Events&lt;/a&gt;,&lt;a href="http://technorati.com/tags/User+Group" rel="tag"&gt;User Group&lt;/a&gt;,&lt;a href="http://technorati.com/tags/ODUG" rel="tag"&gt;ODUG&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Orlando+DotNetNuke+Users+Group" rel="tag"&gt;Orlando DotNetNuke Users Group&lt;/a&gt;,&lt;a href="http://technorati.com/tags/ONETUG" rel="tag"&gt;ONETUG&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Orlando+.Net+User+Group" rel="tag"&gt;Orlando .Net User Group&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Space+Coast+SQL+User+Group" rel="tag"&gt;Space Coast SQL User Group&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Space+Coast+.Net+User+Group" rel="tag"&gt;Space Coast .Net User Group&lt;/a&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/WillStrohl-Professional/~4/l0xqI3x_8Mw" height="1" width="1"/&gt;&lt;img src="http://feeds.feedburner.com/~r/DotnetnukeBlogs/~4/-PXCbZ_anAs" height="1" width="1"/&gt;</description><thumbnail /><dc:creator>The Mighty Blog</dc:creator><pubDate>Thu, 02 Jul 2009 12:10:00 GMT</pubDate><guid isPermaLink="false">3cf5d929-511a-4c4a-9b2e-f602e7bcd212</guid><feedburner:origLink>http://www.dotnetnukeblogs.com/Home/Articles/itemId/27451/Upcoming-Net-Community-Events-in-Florida.aspx</feedburner:origLink></item><item><title>Kudos ODUG</title><link>http://feedproxy.google.com/~r/DotnetnukeBlogs/~3/9jCwH813hJI/Kudos-ODUG.aspx</link><description>&lt;p&gt;Today marks the day when the &lt;a href="http://orlando.dotnetnukeug.net/" target="_blank"&gt;Orlando DotNetNuke&lt;/a&gt; User group officially has 200 members. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/bscarbeau/WindowsLiveWriter/KudosODUG_F901/image_2.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://geekswithblogs.net/images/geekswithblogs_net/bscarbeau/WindowsLiveWriter/KudosODUG_F901/image_thumb.png" width="153" height="147" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;It was a year and half ago that I started this group with about 7 members who came and met on a Saturday morning to discuss issues relating to the best open source web portal, DotNetNuke. Will Strohl was there along with a co-worker. Will has been a great member and now great leader of the group.&lt;/p&gt;  &lt;p&gt;More recently, Will was in charge of putting together the &lt;a href="http://dayofdnn.com/" target="_blank"&gt;Day of DotNetNuke&lt;/a&gt; held last month at the Microsoft Office in Tampa, FL. &lt;/p&gt;  &lt;p&gt;Many members are benefitting from this user group and I wish it continued grown and success. &lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:9690298a-7407-4151-8eb9-dacebc58030f" class="wlWriterEditableSmartContent"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/ODUG" rel="tag"&gt;ODUG&lt;/a&gt;,&lt;a href="http://technorati.com/tags/DotNetNuke" rel="tag"&gt;DotNetNuke&lt;/a&gt;&lt;/div&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=133199"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=133199" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;Task=Get&amp;PageID=31016&amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;Task=Get&amp;Browser=NETSCAPE4&amp;NoCache=True&amp;PageID=31016&amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;Task=Click&amp;Mode=HTML&amp;SiteID=1&amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;Task=Get&amp;Mode=HTML&amp;SiteID=1&amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/bscarbeau/aggbug/133199.aspx" width="1" height="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/DotnetnukeBlogs/~4/9jCwH813hJI" height="1" width="1"/&gt;</description><thumbnail /><dc:creator>Brian Scarbeau</dc:creator><pubDate>Wed, 01 Jul 2009 21:42:32 GMT</pubDate><guid isPermaLink="false">5f156de2-5a13-4b96-b8b6-2fd63bb14a48</guid><feedburner:origLink>http://www.dotnetnukeblogs.com/Home/Articles/itemId/27438/Kudos-ODUG.aspx</feedburner:origLink></item><item><title>Peter Donker to present at OpenForce 2009 EU</title><link>http://feedproxy.google.com/~r/DotnetnukeBlogs/~3/YakN8yygZ0Y/Peter-Donker-to-present-at-OpenForce-2009-EU.aspx</link><description>&lt;p&gt;After the good news for OpenForce US for this year (see this post) I am very pleased to have been selected to present at OpenForce EU as well. The sessions are entitled "Advanced Module Development in DNN", and "Extension Software Protection in DNN".&lt;/p&gt;&lt;a href=http://www.bring2mind.net/Company/News/tabid/155/EntryId/61/Peter-Donker-to-present-at-OpenForce-2009-EU.aspx&gt;More...&lt;/a&gt;&lt;img src="http://feeds.feedburner.com/~r/DotnetnukeBlogs/~4/YakN8yygZ0Y" height="1" width="1"/&gt;</description><thumbnail /><dc:creator>Peter Donker</dc:creator><pubDate>Wed, 01 Jul 2009 19:42:05 GMT</pubDate><guid isPermaLink="false">041d9faf-e309-418f-8e08-9aae3974f4cb</guid><feedburner:origLink>http://www.dotnetnukeblogs.com/Home/Articles/itemId/27437/Peter-Donker-to-present-at-OpenForce-2009-EU.aspx</feedburner:origLink></item><item><title>Reorganizing the bookshelf at the local Borders</title><link>http://feedproxy.google.com/~r/DotnetnukeBlogs/~3/Xv9gznCt5TA/Reorganizing-the-bookshelf-at-the-local-Borders.aspx</link><description>&lt;p&gt;So tonight after work and before the St. Louis .Net User Group meeting I ran to Borders to see if I could find &lt;a href="http://bit.ly/dnnbook/" target="_blank"&gt;my book&lt;/a&gt; on the shelf. Well guess what, I did!&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.flickr.com/photos/chammond/3674511612/"&gt;&lt;img alt="My book at Border's" src="http://farm4.static.flickr.com/3571/3674511612_a3bfe9d675_m.jpg" width="240" height="180" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;I was pretty stoked to find it, but was shocked to only see the DNN4 book on the shelf, not any of the other &lt;a href="http://www.dotnetnuke.com/" target="_blank"&gt;DNN&lt;/a&gt; books. Well after digging around for a while I found them on another section, so I took the opportunity to organize a little :D Here’s the result.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.flickr.com/photos/chammond/3674512460/"&gt;&lt;img alt="DotNetNuke Books at Border's" src="http://farm3.static.flickr.com/2080/3674512460_1b60e8b998_m.jpg" width="240" height="180" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/DotnetnukeBlogs/~4/Xv9gznCt5TA" height="1" width="1"/&gt;</description><thumbnail /><dc:creator>ChrisHammond.com</dc:creator><pubDate>Tue, 30 Jun 2009 05:09:38 GMT</pubDate><guid isPermaLink="false">c1c0391a-a926-4ffe-b69c-b134e822bd09</guid><feedburner:origLink>http://www.dotnetnukeblogs.com/Home/Articles/itemId/27434/Reorganizing-the-bookshelf-at-the-local-Borders.aspx</feedburner:origLink></item><item><title>Issue 46 - DotNetNuke ASCX Skinning and Open Web Studio Tutorials</title><link>http://feedproxy.google.com/~r/DotnetnukeBlogs/~3/DqnDVKJZcaA/Issue-46--DotNetNuke-ASCX-Skinning-and-Open-Web-S.aspx</link><description>&lt;em&gt;July 2009&lt;/em&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Welcome to issue 46 of DNN Creative Magazine&lt;/strong&gt;
&lt;p&gt;     &lt;img hspace="15" height="250" border="0" align="left" width="250" vspace="5" src="http://www.dnncreative.com/Portals/0/pics/issues/46/issue46_250.jpg" alt="Issue 46 - DotNetNuke ASCX Skinning and Open Web Studio Tutorials" /&gt; &lt;/p&gt;
&lt;p&gt;     In this issue we look at the professionals method for creating DotNetNuke skins,     ASCX skinning.&lt;br /&gt;
&lt;br /&gt;
We did some quick research via twitter for the preferred method of skinning with     the DotNetNuke professionals in the community and 100% of the skinners preferred     the ASCX method for skinning.&lt;br /&gt;
&lt;br /&gt;
ASCX skinning provides you with several benefits over the other methods of skinning     in DotNetNuke. The main benefit is that it is much quicker to create a skin in DotNetNuke     using the ASCX method.&lt;br /&gt;
&lt;br /&gt;
Further benefits include you can make changes live on the website without re-parsing     or re-installing the skin, you can instantly see edits and changes you make to your     skin code, you can view at a glance all of a skin tokens properties, and a really     useful feature is that if you are using Visual Web Developer Express it will suggest     the attributes that are available for each of the DotNetNuke tokens.&lt;br /&gt;
&lt;br /&gt;
We demonstrate all of these techniques and show you how to get started with ASCX     skinning in DotNetNuke.&lt;br /&gt;
&lt;br /&gt;
Accompanying the skinning, we have part four in our series on the Open Web Studio     Tutorials. In this episode we demonstrate how to add personalisation to the knowledgebase     module using InterModule Communications and creating a ‘my saved articles’     module. We also demonstrate how to create a Tooltip using JQuery, how to change     the “fetching data” message, how to enable Rich Text / HTML articles     and how to create a multi-category selection for each knowledgebase article.&lt;br /&gt;
&lt;br /&gt;
Finally, we have a podcast covering the latest DotNetNuke News as well as more tips     and tricks.&lt;br /&gt;
&lt;br /&gt;
&lt;/p&gt;
&lt;p&gt;     &lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;This issue comes complete with 11 Video Tutorials and 1 Podcast!&lt;/strong&gt;&lt;span&gt;         &lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Tutorials:&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table cellspacing="5" cellpadding="10"&gt;
    &lt;tbody&gt;
        &lt;tr&gt;
            &lt;td style="width: 271px;"&gt;             Skinning:&lt;br /&gt;
            &lt;br /&gt;
             &lt;a href="http://www.dnncreative.com/Tutorials/SkinningTutorials/DotNetNukeASCXSkinning/tabid/504/Default.aspx"&gt;&lt;img height="319" width="250" alt="ASCX Skinning for DotNetNuke Professionals" src="http://www.dnncreative.com/Portals/0/pics/issues/46/ASCX_Skinning_250.jpg" /&gt;&lt;/a&gt;         &lt;/td&gt;
            &lt;td&gt;             &lt;a href="http://www.dnncreative.com/Tutorials/SkinningTutorials/DotNetNukeASCXSkinning/tabid/504/Default.aspx"&gt;                 DotNetNuke ASCX Skinning for Professional Skinners&lt;/a&gt;&lt;br /&gt;
            (6 videos - 58mins)         &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="width: 271px;"&gt;             Module Development Series:&lt;br /&gt;
            &lt;a href="http://www.dnncreative.com/Tutorials/DNNTutorialsforThirdPartyModules/OWSPart4/tabid/505/Default.aspx"&gt;                 &lt;img height="291" width="250" alt="R2i OWS Tutorial Part 4" src="http://www.dnncreative.com/Portals/0/pics/issues/46/R2i_part4_250.jpg" /&gt;&lt;/a&gt;         &lt;/td&gt;
            &lt;td&gt;             &lt;a href="http://www.dnncreative.com/Tutorials/DNNTutorialsforThirdPartyModules/OWSPart4/tabid/505/Default.aspx"&gt;                 Personalization, Text Editor, Logging and Reporting in Open Web Studio – Part 4                 of 6 – How to Build a Public Knowledge Base with OWS&lt;/a&gt;&lt;br /&gt;
            (5 videos - 58mins)         &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="width: 271px;"&gt;             Podcasts:&lt;br /&gt;
            &lt;br /&gt;
            &lt;a href="http://www.dnncreative.com/Reviews/Podcasts/DotNetNukeNewsPodcastJune18th09/tabid/506/Default.aspx"&gt;                 &lt;img height="250" width="250" alt="DNNCreative Podcast with Lee and Rich" src="http://www.dnncreative.com/Portals/0/pics/issues/36/DNN_podcast_lee_rich_250.jpg" /&gt;&lt;/a&gt;         &lt;/td&gt;
            &lt;td&gt;             &lt;a href="http://www.dnncreative.com/Reviews/Podcasts/DotNetNukeNewsPodcastJune18th09/tabid/506/Default.aspx"&gt;                 DotNetNuke News, DataSprings Dynamic Forms, DNN 5.1 Professional, Openforce 09,                 Snapsis PageBlaster&lt;/a&gt;&lt;br /&gt;
            (25mins)         &lt;/td&gt;
        &lt;/tr&gt;
    &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;     &lt;a href="http://www.dnncreative.com/Home/Issues/Volume4/Issueno46/tabid/507/Default.aspx"&gt;         View issue 46 to download all of the videos in one zip file&lt;/a&gt;&lt;br /&gt;
&lt;/p&gt;
&lt;br /&gt;
&lt;hr width="100%" size="2" /&gt;
&lt;br /&gt;
&lt;a href="http://www.dnncreative.com"&gt;DNN Creative Magazine for DotNetNuke Web Designers&lt;/a&gt;&lt;br /&gt;
Covering DotNetNuke module video reviews, video tutorials, mp3 interviews, resources and web design tips for working with DotNetNuke.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;In 46 issues we have created 441 videos!&lt;/strong&gt;&lt;img src="http://feeds.feedburner.com/~r/DotnetnukeBlogs/~4/DqnDVKJZcaA" height="1" width="1"/&gt;</description><thumbnail /><dc:creator>DNN Creative Magazine</dc:creator><pubDate>Mon, 29 Jun 2009 22:26:00 GMT</pubDate><guid isPermaLink="false">bbc4ce5f-37bb-4131-b158-9bba3fbe9f12</guid><feedburner:origLink>http://www.dotnetnukeblogs.com/Home/Articles/itemId/27433/Issue-46--DotNetNuke-ASCX-Skinning-and-Open-Web-S.aspx</feedburner:origLink></item><item><title>Engage: Publish 5.4 Released</title><link>http://feedproxy.google.com/~r/DotnetnukeBlogs/~3/kL3_fiEPInU/Engage-Publish-54-Released.aspx</link><description>So it’s been way too long, 6 months to be pretty exact, since we had a new release for Engage: Publish . Well last Thursday it finally came! We released Publish 5.4 on our website, though without announcement because of everything else we have had going...(&lt;a href="http://weblogs.asp.net/christoc/archive/2009/06/29/engage-publish-5-4-released.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=7136818" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/DotnetnukeBlogs/~4/kL3_fiEPInU" height="1" width="1"/&gt;</description><thumbnail /><dc:creator>DotNetNuke Developer</dc:creator><pubDate>Mon, 29 Jun 2009 21:37:25 GMT</pubDate><guid isPermaLink="false">31142934-80c1-4f45-af48-08ae39f2ef4d</guid><feedburner:origLink>http://www.dotnetnukeblogs.com/Home/Articles/itemId/27429/Engage-Publish-54-Released.aspx</feedburner:origLink></item><item><title>The Onion Of URL Rewriting</title><link>http://feedproxy.google.com/~r/DotnetnukeBlogs/~3/ozbBneM_je8/The-Onion-Of-URL-Rewriting.aspx</link><description>We had a DotNetNuke client report today that they could not directly access .xml or .swf files that they could previously get to from their portal. So of course the first thing we did verify the files in question were actually on the file system, they were. We knew this particular client had moved hosts recently so we checked al the IIS configurations and the file mime types were registered and allowed to be served so that was not it. We were then made aware that the sites 3rd party URL rewriting had recently been updated. This peaked our interest an after a little digging we discovered that with this particular URL rewriter you had to explicitly ignore file extensions through regular expression matching exposed as a property on the friendly URL provider. After adding the ignores for said extensions everything was back to normal. So if you see anomalies in content being served and you have verified IIS is setup correctly. Then the next place to look on a DotNetNuke installation is typically the portals friendly URL provider.&lt;img src="http://feeds.feedburner.com/~r/Apptheory_DotNetNuke_Blog/~4/yoFW4lXfnwk" height="1" width="1"/&gt;&lt;img src="http://feeds.feedburner.com/~r/DotnetnukeBlogs/~4/ozbBneM_je8" height="1" width="1"/&gt;</description><thumbnail /><dc:creator>AppTheory DotNetNuke Blog</dc:creator><pubDate>Mon, 29 Jun 2009 00:35:00 GMT</pubDate><guid isPermaLink="false">b125ed09-4ef1-44fa-b19c-0325b6a0a3b8</guid><feedburner:origLink>http://www.dotnetnukeblogs.com/Home/Articles/itemId/27427/The-Onion-Of-URL-Rewriting.aspx</feedburner:origLink></item><item><title>How to Manually Delete A DotNetNuke Module</title><link>http://feedproxy.google.com/~r/DotnetnukeBlogs/~3/peyJxtT3GeA/How-to-Manually-Delete-A-DotNetNuke-Module.aspx</link><description>&lt;p&gt;I was recently asked how someone could manually delete a module once it is installed. The number of use cases where this would be useful is limited, but it is still a valid scenario that needs to be considered – especially during development.  Here is a walk through of the general steps required to delete a module manually.&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Run the Uninstall script (if necessary) &lt;/li&gt;    &lt;li&gt;Delete the module files from the &lt;font face="Courier New"&gt;DesktopModules&lt;/font&gt; and &lt;font face="Courier New"&gt;App_Code&lt;/font&gt; folder &lt;/li&gt;    &lt;li&gt;Grab the &lt;font face="Courier New"&gt;DesktopModuleId&lt;/font&gt; &lt;/li&gt;    &lt;li&gt;Delete the permissions associated with the module &lt;/li&gt;    &lt;li&gt;Delete the module from the database &lt;/li&gt;    &lt;li&gt;Refresh the site cache to update the UI with your changes &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;&lt;font size="2"&gt;While I have not fully verified these steps to be the same in DNN version 5.x, they should generally be the same.  Here is some guidance to follow each of the defined steps above…&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;&lt;font color="#ff0000"&gt;&lt;strong&gt;WARNING!&lt;/strong&gt;  Performing these steps incorrectly could result in your DNN site being broken and/or no longer accessible.  In some cases, this might be permanent.  It is HIGHLY recommended that you perform a complete backup of your database and file system before performing these steps.  Doing so will give you a restore point, should something go wrong.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;  &lt;h4&gt;Run the Uninstall Script&lt;/h4&gt;  &lt;p&gt;&lt;font size="2"&gt;Not all modules require a Data Access Layer (DAL), as some modules only perform utility functions and do not need to save and retrieve information from the database.  The majority of the module out there do have a DAL though, and in turn will have an uninstall script in their folder.  Look for a file named &lt;strong&gt;Uninstall.SqlDataProvider&lt;/strong&gt; in the DesktopModules folder for the module you’re deleting.  Here is a reference path for you to use:&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2" face="Courier New"&gt;~/DesktopModules/&lt;module name&gt;/Uninstall.SqlDataProvider&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;Assuming your module is named “WNSUtility”, the above path would look like this:&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2" face="Courier New"&gt;~/DesktopModules/WNSUtility/Uninstall.SqlDataProvider&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;Using the &lt;strong&gt;SQL Module&lt;/strong&gt; in the &lt;strong&gt;Host Menu&lt;/strong&gt;, execute this script.  Be sure to load the script, and then check the checkbox for &lt;strong&gt;Run as Script&lt;/strong&gt; before you execute it.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;&lt;u&gt;Please Note&lt;/u&gt;:  If you are using a different Data Provider, the file extension for your uninstall script will be different.&lt;/font&gt;&lt;/p&gt;  &lt;h4&gt;Delete the Module Files&lt;/h4&gt;  &lt;p&gt;&lt;font size="2"&gt;Deleting the files from a module is easy.  Find the module directory for your module.  Using the example from above, it would be:&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2" face="Courier New"&gt;~/DesktopModules/WNSUtility/&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;Delete all files from that directory, and the directory itself.  You might run into one or more errors do to files being loaded into memory.  Should this happen, you can release the file(s) from memory by recycling the Application Pool, or restarting IIS.&lt;/font&gt;&lt;/p&gt;  &lt;h4&gt;Grab the DesktopModuleId&lt;/h4&gt;  &lt;p&gt;&lt;font size="2"&gt;This is a very important step, as the final two steps would be incredibly difficult without the &lt;strong&gt;DesktopModuleId&lt;/strong&gt;.  There is not always an exact science to finding the DesktopModuleId, but we will need it for the following steps.  In most cases, I simply perform the following query on the database:&lt;/font&gt;&lt;/p&gt;  &lt;div style="border-bottom: gray 1px solid; border-left: gray 1px solid; padding-bottom: 4px; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; padding-left: 4px; width: 500px; padding-right: 4px; font-family: consolas, 'Courier New', courier, monospace; max-height: 200px; font-size: 8pt; overflow: auto; border-top: gray 1px solid; cursor: text; border-right: gray 1px solid; padding-top: 4px"&gt;   &lt;div style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, 'Courier New', courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;     &lt;pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, 'Courier New', courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #0000ff"&gt;SELECT&lt;/span&gt; * &lt;span style="color: #0000ff"&gt;FROM&lt;/span&gt; [dbo].[DesktopModules] &lt;/pre&gt;

    &lt;pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, 'Courier New', courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #0000ff"&gt;WHERE&lt;/span&gt; [IsAdmin] = 0 &lt;/pre&gt;

    &lt;pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, 'Courier New', courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #0000ff"&gt;ORDER&lt;/span&gt; &lt;span style="color: #0000ff"&gt;BY&lt;/span&gt; [FriendlyName] &lt;/pre&gt;

    &lt;pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, 'Courier New', courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #008000"&gt;-- or &lt;/span&gt;&lt;/pre&gt;

    &lt;pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, 'Courier New', courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #0000ff"&gt;SELECT&lt;/span&gt; * &lt;span style="color: #0000ff"&gt;FROM&lt;/span&gt; {databaseOwner}{objectQualifier}DesktopModules &lt;/pre&gt;

    &lt;pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, 'Courier New', courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #0000ff"&gt;WHERE&lt;/span&gt; [IsAdmin] = 0 &lt;/pre&gt;

    &lt;pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, 'Courier New', courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #0000ff"&gt;ORDER&lt;/span&gt; &lt;span style="color: #0000ff"&gt;BY&lt;/span&gt; [FriendlyName] &lt;/pre&gt;

    &lt;pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, 'Courier New', courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt; &lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;&lt;font size="2"&gt;From the above script, locating the module in question is usually easy.  Simply find the module using its Friendly Name, and then record the DesktopModuleID associated with it. &lt;/font&gt;&lt;/p&gt;

&lt;h4&gt;Delete the Module Permissions&lt;/h4&gt;

&lt;p&gt;&lt;font size="2"&gt;This step gets executed in three parts.  As long as there aren’t a lot of instances of the module in your site, these queries should execute quickly, and error free.&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font size="2"&gt;Using the DesktopModuleId from the previous step, execute the &lt;strong&gt;GetModuleDefinitions&lt;/strong&gt; stored procedure, taking note of each &lt;strong&gt;ModuleDefID&lt;/strong&gt;.  For each module definition returned, you will next need to execute the &lt;strong&gt;GetPermissionsByModuleDefID&lt;/strong&gt; stored procedure, this time taking note of each &lt;strong&gt;PermissionID&lt;/strong&gt;.  Finally, execute the &lt;strong&gt;DeletePermission&lt;/strong&gt; stored procedure for each PermissionID that was returned.&lt;/font&gt;&lt;/p&gt;

&lt;h4&gt;Delete the Module from the Database&lt;/h4&gt;

&lt;p&gt;&lt;font size="2"&gt;Now, we actually delete the module.  Doing so is very easy.  Like the previous step, we just need to execute a stored procedure using the DesktopModuleID we grabbed a little while ago.  Execute the &lt;strong&gt;DeleteDesktopModule&lt;/strong&gt; stored procedure to delete the module.&lt;/font&gt;&lt;/p&gt;

&lt;h4&gt;Refresh the Site Cache&lt;/h4&gt;

&lt;p&gt;&lt;font size="2"&gt;The final thing to do is to clear the cache on the site to remove the module from all of the user interface, such as the drop down lists.  You just need to clear the cache on the site.  I have blogged about &lt;a href="http://www.willstrohl.com/DNNCache.aspx" target="_blank"&gt;clearing the DNN site cache&lt;/a&gt; before.&lt;/font&gt;&lt;/p&gt;

&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:c2727dd4-d0c2-4b4b-889f-6418cb64f222" class="wlWriterEditableSmartContent"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/DotNetNuke" rel="tag"&gt;DotNetNuke&lt;/a&gt;,&lt;a href="http://technorati.com/tags/DNN" rel="tag"&gt;DNN&lt;/a&gt;,&lt;a href="http://technorati.com/tags/DNN+Blogs" rel="tag"&gt;DNN Blogs&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Module+Development" rel="tag"&gt;Module Development&lt;/a&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/WillStrohl-Professional/~4/XtlM7t5sX78" height="1" width="1"/&gt;&lt;img src="http://feeds.feedburner.com/~r/DotnetnukeBlogs/~4/peyJxtT3GeA" height="1" width="1"/&gt;</description><thumbnail /><dc:creator>The Mighty Blog</dc:creator><pubDate>Sun, 28 Jun 2009 19:31:00 GMT</pubDate><guid isPermaLink="false">db074960-0e42-45eb-bef2-90281b43f5ee</guid><feedburner:origLink>http://www.dotnetnukeblogs.com/Home/Articles/itemId/27425/How-to-Manually-Delete-A-DotNetNuke-Module.aspx</feedburner:origLink></item><item><title>Changing the Default Favicon for Your Site</title><link>http://feedproxy.google.com/~r/DotnetnukeBlogs/~3/e7XKDDmu5Q4/Changing-the-Default-Favicon-for-Your-Site.aspx</link><description>&lt;p&gt;&lt;img style="border-bottom: 0px; border-left: 0px; margin: 0px 5px 5px 0px; display: inline; border-top: 0px; border-right: 0px" title="DotNetNuke Gear Logo" border="0" alt="DotNetNuke Gear Logo" align="left" src="http://www.willstrohl.com/Portals/1/Blog/Files/3/425/WLW-ChangingtheDefaultFaviconforYourSite_479-dnn_gear_white_bg_72x77_3.png" width="76" height="81" /&gt; In &lt;a href="http://www.dotnetnuke.com" target="_blank"&gt;DotNetNuke®&lt;/a&gt;, a favicon of the DNN gear logo is placed as the default favicon.  For some websites, this is no big deal.  However, for any site that requires its own branding, changing the favicon is a really big requirement.  Luckily, DNN makes changing this easy, and flexible.&lt;/p&gt;  &lt;p&gt;First of all, in the root of your DNN site, there are two favicons:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;favicon.ico&lt;/li&gt;    &lt;li&gt;DotNetNuke.ico&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;font size="2"&gt;Both files contain the same image, the DNN gear.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;You could just overwrite the favicon file with your own.  However, that is technically making a core code change, and if you end up putting a second portal on your DNN instance, both sites will be using the same favicon.  This will likely put you into the same position that you originally were in, in the first place.&lt;/p&gt;  &lt;p&gt;The real solution is to put your favicon into the root of your portal directory, saved as &lt;font face="Courier New"&gt;favicon.ico&lt;/font&gt;.  For example, for the root site, your file name and path might match the following:&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New"&gt;~/Portals/0/favicon.ico&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;When your site is loaded, the DNN framework will automatically grab and send the new favicon to the web browser, instead of the one on the root of your DNN installation.  This will work for each and every portal that you have as part of this single DNN instance.  For example, if you have 50 portals hosted in your DNN instance, each one can have its own unique favicon using this method.&lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:401ae43c-eb00-4241-894f-b95e4b68fbcc" class="wlWriterEditableSmartContent"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/DotNetNuke" rel="tag"&gt;DotNetNuke&lt;/a&gt;,&lt;a href="http://technorati.com/tags/DNN" rel="tag"&gt;DNN&lt;/a&gt;,&lt;a href="http://technorati.com/tags/DNN+Blogs" rel="tag"&gt;DNN Blogs&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Favicon" rel="tag"&gt;Favicon&lt;/a&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/WillStrohl-Professional/~4/x8cOsGxzKxw" height="1" width="1"/&gt;&lt;img src="http://feeds.feedburner.com/~r/DotnetnukeBlogs/~4/e7XKDDmu5Q4" height="1" width="1"/&gt;</description><thumbnail /><dc:creator>The Mighty Blog</dc:creator><pubDate>Sun, 28 Jun 2009 01:33:00 GMT</pubDate><guid isPermaLink="false">61afe745-cd3d-445b-b980-c903910aa7d5</guid><feedburner:origLink>http://www.dotnetnukeblogs.com/Home/Articles/itemId/27424/Changing-the-Default-Favicon-for-Your-Site.aspx</feedburner:origLink></item><item><title>SharePoint VS DotNetNuke, a Recap</title><link>http://feedproxy.google.com/~r/DotnetnukeBlogs/~3/d6DVttAhE5k/SharePoint-VS-DotNetNuke-a-Recap.aspx</link><description>&lt;p&gt;Yesterday afternoon &lt;a href="http://www.halhayes.com/blog/" target="_blank"&gt;Hal Hayes&lt;/a&gt; and I were invited to speak at the &lt;a href="http://www.sugdc.org" target="_blank"&gt;SharePoint Technology Conference&lt;/a&gt; hosted and organized by the &lt;a href="http://www.sugdc.org" target="_blank"&gt;SharePoint User Group DC&lt;/a&gt; (SUGDC). &lt;/p&gt;  &lt;p&gt;The event was packed with sessions hosted by leaders and top professionals in the Microsoft SharePoint space. I was quite honored to be invited to speak, and if that wasn’t enough, I was speaking more on behalf of DotNetNuke rather than SharePoint.&lt;/p&gt; &lt;a href=http://www.cto20.com/home/entryid/111/sharepoint-vs-dotnetnuke-a-recap.aspx&gt;More...&lt;/a&gt;&lt;img src="http://feeds.feedburner.com/~r/DotnetnukeBlogs/~4/d6DVttAhE5k" height="1" width="1"/&gt;</description><thumbnail /><dc:creator>CTO 2.0 - Antonio Chagoury</dc:creator><pubDate>Sun, 28 Jun 2009 00:32:49 GMT</pubDate><guid isPermaLink="false">808bff75-76e6-478d-a5ef-6643db1249c0</guid><feedburner:origLink>http://www.dotnetnukeblogs.com/Home/Articles/itemId/27422/SharePoint-VS-DotNetNuke-a-Recap.aspx</feedburner:origLink></item><item><title>ODUG Celebrates it’s One Year INETA Anniversary</title><link>http://feedproxy.google.com/~r/DotnetnukeBlogs/~3/MBRrVa6UwU0/ODUG-Celebrates-its-One-Year-INETA-Anniversary.aspx</link><description>&lt;p&gt;The &lt;a href="http://orlando.dotnetnukeug.net/" target="_blank"&gt;Orlando DotNetNuke® Users Group&lt;/a&gt; (&lt;a href="http://orlando.dotnetnukeug.net/" target="_blank"&gt;ODUG&lt;/a&gt;) is not very old.  We are still working toward finishing our second year as a user group.  Our first meeting was February of 2008.  However, it was several months later before we actually were able to claim our status as member of &lt;a href="http://www.ineta.org/" target="_blank"&gt;INETA&lt;/a&gt;.  Well, a few days ago I was reminded of this, as there was a package that showed up for me at work.&lt;/p&gt;  &lt;p&gt;Looking at the package, I was confused since it was from &lt;a href="http://www.ineta.org/" target="_blank"&gt;INETA&lt;/a&gt;.  I wasn’t expecting any packages, much less one from &lt;a href="http://www.ineta.org/" target="_blank"&gt;INETA&lt;/a&gt;.  When I opened it, I was greeted with a pleasant surprise.  It was a mounted certificate, celebrating our one year anniversary with the &lt;a href="http://www.ineta.org/" target="_blank"&gt;INETA&lt;/a&gt; user group program.&lt;/p&gt;  &lt;p&gt;For those of you who are not sure what that means… &lt;a href="http://www.ineta.org/" target="_blank"&gt;INETA&lt;/a&gt; sponsors user groups in a way that most other organizations cannot.  It gives support in a number of ways to user group leaders.  The most notable way they sponsor user groups comes in the form of flying in speakers.  &lt;a href="http://www.ineta.org/" target="_blank"&gt;INETA&lt;/a&gt; provides two speakers per year, with all of their expenses paid.  So far, we have only used one of these.  &lt;a href="http://www.ineta.org/" target="_blank"&gt;INETA&lt;/a&gt; flew in Chris Hammond to us earlier this year.  We are already planning to use our 2nd one in December of this year.&lt;/p&gt;  &lt;p&gt;I have only one thing to say, “Thank you, INETA!”&lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:8df8119d-0824-4952-90ae-82efb6fadbc2" class="wlWriterEditableSmartContent"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/DotNetNuke" rel="tag"&gt;DotNetNuke&lt;/a&gt;,&lt;a href="http://technorati.com/tags/DNN+Blogs" rel="tag"&gt;DNN Blogs&lt;/a&gt;,&lt;a href="http://technorati.com/tags/INETA" rel="tag"&gt;INETA&lt;/a&gt;,&lt;a href="http://technorati.com/tags/User+Group" rel="tag"&gt;User Group&lt;/a&gt;,&lt;a href="http://technorati.com/tags/ODUG" rel="tag"&gt;ODUG&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Orlando+DotNetNuke+Users+Group" rel="tag"&gt;Orlando DotNetNuke Users Group&lt;/a&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/WillStrohl-Professional/~4/ix2gk2RSc1g" height="1" width="1"/&gt;&lt;img src="http://feeds.feedburner.com/~r/DotnetnukeBlogs/~4/MBRrVa6UwU0" height="1" width="1"/&gt;</description><thumbnail /><dc:creator>The Mighty Blog</dc:creator><pubDate>Sat, 27 Jun 2009 21:06:00 GMT</pubDate><guid isPermaLink="false">2a046edb-1a41-4fda-8c08-a96d37cb431a</guid><feedburner:origLink>http://www.dotnetnukeblogs.com/Home/Articles/itemId/27423/ODUG-Celebrates-its-One-Year-INETA-Anniversary.aspx</feedburner:origLink></item></channel></rss>
