<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
  <channel xmlns:blog="http://www.dotnetnuke.com/blog/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">
    <title>Michael Washington</title>
    <description>My personal DotNetNuke blog.</description>
    <link>http://www.dotnetnuke.com/Resources/Blogs/BlogId/77.aspx</link>
    <language>en-US</language>
    <webMaster>webmaster@adefwebserver.com</webMaster>
    <pubDate>Thu, 09 Feb 2012 07:46:31 GMT</pubDate>
    <lastBuildDate>Thu, 09 Feb 2012 07:46:31 GMT</lastBuildDate>
    <docs>http://backend.userland.com/rss</docs>
    <generator>Blog RSS Generator Version 4.0.0.0</generator>
    <item>
      <title>Quick And Easy Data Management With LightSwitch</title>
      <link>http://www.dotnetnuke.com/Resources/Blogs/EntryId/3168/Quick-And-Easy-Data-Management-With-LightSwitch.aspx</link>
      <description>&lt;p&gt;&lt;a href="http://www.dotnetnuke.com/Portals/25/Blog/Files/77/3168/Windows-Live-Writer-8367b809bbc4_72D3-image_31.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="/Portals/25/Blog/Files/77/3168/Windows-Live-Writer-8367b809bbc4_72D3-image_thumb_14.png" width="443" height="323" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;The &lt;a href="http://lightswitchhelpwebsite.com/"&gt;LightSwitchHelpWebsite.com&lt;/a&gt; now has multiple bloggers. I realized that the &lt;strong&gt;Tags&lt;/strong&gt; menu is really the only way for people to find past Blogs. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.dotnetnuke.com/Portals/25/Blog/Files/77/3168/Windows-Live-Writer-8367b809bbc4_72D3-image_2.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="/Portals/25/Blog/Files/77/3168/Windows-Live-Writer-8367b809bbc4_72D3-image_thumb.png" width="442" height="520" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;The &lt;strong&gt;Tags&lt;/strong&gt; that I created when I was the only blogger seem inadequate now, and I wanted to add new &lt;strong&gt;Tags&lt;/strong&gt; and reassign &lt;strong&gt;Tags&lt;/strong&gt; for existing Blog entries.&lt;/p&gt;  &lt;p&gt;My goal is to do this in a way that is fast and easy. Keep in mind that while the &lt;a href="http://lightswitchhelpwebsite.com/"&gt;LightSwitchHelpWebsite.com&lt;/a&gt; is focused on showing how you can use &lt;strong&gt;LightSwitch&lt;/strong&gt; for full enterprise applications, &lt;strong&gt;LightSwitch&lt;/strong&gt; was primarily designed to be used in the manner described in this article.&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;h2&gt;Create The Application&lt;/h2&gt;  &lt;p&gt;&lt;a href="http://www.dotnetnuke.com/Portals/25/Blog/Files/77/3168/Windows-Live-Writer-8367b809bbc4_72D3-image_4.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="/Portals/25/Blog/Files/77/3168/Windows-Live-Writer-8367b809bbc4_72D3-image_thumb_1.png" width="776" height="400" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;The first step is to create a &lt;strong&gt;LightSwitch&lt;/strong&gt; application.&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.dotnetnuke.com/Portals/25/Blog/Files/77/3168/Windows-Live-Writer-8367b809bbc4_72D3-image_6.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="/Portals/25/Blog/Files/77/3168/Windows-Live-Writer-8367b809bbc4_72D3-image_thumb_2.png" width="305" height="182" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;In the &lt;strong&gt;Solution Explorer&lt;/strong&gt;, &lt;em&gt;right-click&lt;/em&gt; on the &lt;strong&gt;Data Sources&lt;/strong&gt; folder, and select &lt;strong&gt;Add Data Source&lt;/strong&gt;.&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.dotnetnuke.com/Portals/25/Blog/Files/77/3168/Windows-Live-Writer-8367b809bbc4_72D3-image_8.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="/Portals/25/Blog/Files/77/3168/Windows-Live-Writer-8367b809bbc4_72D3-image_thumb_3.png" width="541" height="422" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Select &lt;strong&gt;Database&lt;/strong&gt;.&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.dotnetnuke.com/Portals/25/Blog/Files/77/3168/Windows-Live-Writer-8367b809bbc4_72D3-image_10.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="/Portals/25/Blog/Files/77/3168/Windows-Live-Writer-8367b809bbc4_72D3-image_thumb_4.png" width="462" height="679" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Enter connection information and click &lt;strong&gt;OK&lt;/strong&gt;.&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.dotnetnuke.com/Portals/25/Blog/Files/77/3168/Windows-Live-Writer-8367b809bbc4_72D3-image_12.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="/Portals/25/Blog/Files/77/3168/Windows-Live-Writer-8367b809bbc4_72D3-image_thumb_5.png" width="579" height="452" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.dotnetnuke.com/Portals/25/Blog/Files/77/3168/Windows-Live-Writer-8367b809bbc4_72D3-image_14.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="/Portals/25/Blog/Files/77/3168/Windows-Live-Writer-8367b809bbc4_72D3-image_thumb_6.png" width="580" height="456" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Select the tables related to Blog &lt;strong&gt;Tags&lt;/strong&gt;.&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.dotnetnuke.com/Portals/25/Blog/Files/77/3168/Windows-Live-Writer-8367b809bbc4_72D3-image_16.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="/Portals/25/Blog/Files/77/3168/Windows-Live-Writer-8367b809bbc4_72D3-image_thumb_7.png" width="295" height="259" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;The &lt;strong&gt;Entities&lt;/strong&gt; (tables) will show up in the &lt;strong&gt;Solution Explorer&lt;/strong&gt;. &lt;/p&gt;  &lt;p&gt;&lt;em&gt;Right-click&lt;/em&gt; on &lt;strong&gt;Screens&lt;/strong&gt; and select &lt;strong&gt;Add Screen&lt;/strong&gt;.&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.dotnetnuke.com/Portals/25/Blog/Files/77/3168/Windows-Live-Writer-8367b809bbc4_72D3-image_18.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="/Portals/25/Blog/Files/77/3168/Windows-Live-Writer-8367b809bbc4_72D3-image_thumb_8.png" width="671" height="399" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Select the &lt;strong&gt;List and Details Screen&lt;/strong&gt; template and the &lt;strong&gt;Blog_Entries&lt;/strong&gt; table for &lt;strong&gt;Screen Data&lt;/strong&gt;.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;LightSwitch&lt;/strong&gt; is able to see the foreign key relationships between the tables, and allow you to include the related tables.&lt;/p&gt;  &lt;p&gt;In this case we only want to add the &lt;strong&gt;Blog_Entry_Tags&lt;/strong&gt; table.&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.dotnetnuke.com/Portals/25/Blog/Files/77/3168/Windows-Live-Writer-8367b809bbc4_72D3-image_20.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="/Portals/25/Blog/Files/77/3168/Windows-Live-Writer-8367b809bbc4_72D3-image_thumb_9.png" width="756" height="518" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;The screen will show in the designer, and the only change we will want to make is to remove the &lt;strong&gt;Entry Tag ID&lt;/strong&gt; field because it is a&lt;strong&gt; auto number&lt;/strong&gt; field that we cannot edit anyway.&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;h2&gt;Run The Application&lt;/h2&gt;  &lt;p&gt;&lt;a href="http://www.dotnetnuke.com/Portals/25/Blog/Files/77/3168/Windows-Live-Writer-8367b809bbc4_72D3-image_22.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="/Portals/25/Blog/Files/77/3168/Windows-Live-Writer-8367b809bbc4_72D3-image_thumb_10.png" width="203" height="97" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;We hit &lt;strong&gt;F5&lt;/strong&gt; to run the application.&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.dotnetnuke.com/Portals/25/Blog/Files/77/3168/Windows-Live-Writer-8367b809bbc4_72D3-image_24.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="/Portals/25/Blog/Files/77/3168/Windows-Live-Writer-8367b809bbc4_72D3-image_thumb_11.png" width="666" height="484" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;We now have an application that allows us to select a Blog entry on the &lt;em&gt;left-hand&lt;/em&gt; side of the screen, and edit it’s tags on the right.&lt;/p&gt;  &lt;p&gt;Notice that &lt;strong&gt;LightSwitch&lt;/strong&gt; automatically created a drop down of all the possible &lt;strong&gt;Tags&lt;/strong&gt;. It is showing us the Tag name but correctly saving the Tag  id in the database. &lt;/p&gt;  &lt;p&gt;All of this is customizable, but &lt;strong&gt;LightSwitch&lt;/strong&gt; automatically tries to figure things out for you.&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.dotnetnuke.com/Portals/25/Blog/Files/77/3168/Windows-Live-Writer-8367b809bbc4_72D3-image_26.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="/Portals/25/Blog/Files/77/3168/Windows-Live-Writer-8367b809bbc4_72D3-image_thumb_12.png" width="629" height="373" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.dotnetnuke.com/Portals/25/Blog/Files/77/3168/Windows-Live-Writer-8367b809bbc4_72D3-image_28.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="/Portals/25/Blog/Files/77/3168/Windows-Live-Writer-8367b809bbc4_72D3-image_thumb_13.png" width="635" height="296" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;We can also make a screen that would allow us to create new &lt;strong&gt;Tags&lt;/strong&gt;.&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;h2&gt;Integrating DotNetNuke and LightSwitch&lt;/h2&gt;  &lt;p&gt;You can easily integrate any &lt;strong&gt;LightSwitch&lt;/strong&gt; application inside your &lt;strong&gt;DotNetNuke&lt;/strong&gt; website:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lightswitchhelpwebsite.com/Blog/tabid/61/EntryId/29/Easy-DotNetNuke-LightSwitch-Deployment.aspx"&gt;Easy DotNetNuke LightSwitch Deployment&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.codeproject.com/KB/silverlight/DNNThingsForSale.aspx"&gt;DotNetNuke Things For Sale&lt;/a&gt;&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;&lt;em&gt;This blog entry is cross posted on &lt;/em&gt;&lt;a href="http://LightSwitchHelpWebsite.com"&gt;&lt;em&gt;LightSwitchHelpWebsite.com&lt;/em&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;a href=http://www.dotnetnuke.com/Resources/Blogs/EntryId/3168/Quick-And-Easy-Data-Management-With-LightSwitch.aspx&gt;More ...&lt;/a&gt;</description>
      <author>webmaster@adefwebserver.com</author>
      <comments>http://www.dotnetnuke.com/Resources/Blogs/EntryId/3168/Quick-And-Easy-Data-Management-With-LightSwitch.aspx#Comments</comments>
      <slash:comments>0</slash:comments>
      <guid isPermaLink="true">http://www.dotnetnuke.com/Resources/Blogs/EntryId/3168/Quick-And-Easy-Data-Management-With-LightSwitch.aspx</guid>
      <pubDate>Mon, 05 Sep 2011 17:39:01 GMT</pubDate>
      <trackback:ping>http://www.dotnetnuke.comDesktopModules/BlogTrackback.aspx?id=3168</trackback:ping>
    </item>
    <item>
      <title>My DotNetNuke site after installing Active Social</title>
      <link>http://www.dotnetnuke.com/Resources/Blogs/EntryId/3088/My-DotNetNuke-site-after-installing-Active-Social.aspx</link>
      <description>&lt;p&gt;&lt;a href="http://www.dotnetnuke.com/Portals/25/Blog/Files/77/3088/Windows-Live-Writer-e30a109518d4_11740-image_2.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="/Portals/25/Blog/Files/77/3088/Windows-Live-Writer-e30a109518d4_11740-image_thumb.png" width="646" height="213" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Since I installed &lt;a href="http://www.activemodules.com/ActiveSocial.aspx"&gt;Active Social&lt;/a&gt; on &lt;a href="http://LightSwitchHelpWebsite.com"&gt;http://LightSwitchHelpWebsite.com&lt;/a&gt; in April, my traffic has increased…&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.dotnetnuke.com/Portals/25/Blog/Files/77/3088/Windows-Live-Writer-e30a109518d4_11740-image_4.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="/Portals/25/Blog/Files/77/3088/Windows-Live-Writer-e30a109518d4_11740-image_thumb_1.png" width="651" height="212" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;But the percentage of users who are new, has gone down. This is because users keep coming back and their percentage of total users rises.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.dotnetnuke.com/Portals/25/Blog/Files/77/3088/Windows-Live-Writer-e30a109518d4_11740-image_6.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="/Portals/25/Blog/Files/77/3088/Windows-Live-Writer-e30a109518d4_11740-image_thumb_2.png" width="657" height="216" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;The average time a user spends on the site has gone up. I think this is because the number of Forum posts (using the integrated Active Forums), rises and people spend more time reading them.&lt;/p&gt;    &lt;p&gt;&lt;a href="http://www.dotnetnuke.com/Portals/25/Blog/Files/77/3088/Windows-Live-Writer-e30a109518d4_11740-image_8.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="/Portals/25/Blog/Files/77/3088/Windows-Live-Writer-e30a109518d4_11740-image_thumb_3.png" width="151" height="183" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;The number of new users each month has been constantly rising.&lt;/p&gt;  &lt;p&gt;I bring this up, because as we move into DotNetNuke 6, we can expect new exciting things now that the DotNetNuke Corporation has acquired Active Modules, the creator of Active Social:&lt;/p&gt;  &lt;p&gt;&lt;a title="http://www.dotnetnuke.comhttp://www.dotnetnuke.com/News/Press-Releases/DotNetNuke-Corp.-Acquires-Active-Modules.aspx" href="http://www.dotnetnuke.com/News/Press-Releases/DotNetNuke-Corp.-Acquires-Active-Modules.aspx"&gt;http://www.dotnetnuke.comhttp://www.dotnetnuke.com/News/Press-Releases/DotNetNuke-Corp.-Acquires-Active-Modules.aspx&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;a href=http://www.dotnetnuke.com/Resources/Blogs/EntryId/3088/My-DotNetNuke-site-after-installing-Active-Social.aspx&gt;More ...&lt;/a&gt;</description>
      <author>webmaster@adefwebserver.com</author>
      <comments>http://www.dotnetnuke.com/Resources/Blogs/EntryId/3088/My-DotNetNuke-site-after-installing-Active-Social.aspx#Comments</comments>
      <slash:comments>11</slash:comments>
      <guid isPermaLink="true">http://www.dotnetnuke.com/Resources/Blogs/EntryId/3088/My-DotNetNuke-site-after-installing-Active-Social.aspx</guid>
      <pubDate>Thu, 23 Jun 2011 03:19:30 GMT</pubDate>
      <trackback:ping>http://www.dotnetnuke.comDesktopModules/BlogTrackback.aspx?id=3088</trackback:ping>
    </item>
    <item>
      <title>LightSwitch Things For Sale</title>
      <link>http://www.dotnetnuke.com/Resources/Blogs/EntryId/3076/LightSwitch-Things-For-Sale.aspx</link>
      <description>&lt;p&gt;&lt;a href="http://www.dotnetnuke.com/Portals/25/Blog/Files/77/3076/Windows-Live-Writer-cc6a5e8019a4_F7C-image_2.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="/Portals/25/Blog/Files/77/3076/Windows-Live-Writer-cc6a5e8019a4_F7C-image_thumb.png" width="201" height="244" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Years ago I created a &lt;a href="http://www.adefwebserver.com/DotNetNukeHELP/LinqTutorial/"&gt;series of tutorials&lt;/a&gt; for creating &lt;strong&gt;DotNetNuke&lt;/strong&gt; modules, using a sample application called &lt;strong&gt;ThingsForSale&lt;/strong&gt;.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.dotnetnuke.com/Portals/25/Blog/Files/77/3076/Windows-Live-Writer-cc6a5e8019a4_F7C-image_4.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="/Portals/25/Blog/Files/77/3076/Windows-Live-Writer-cc6a5e8019a4_F7C-image_thumb_1.png" width="244" height="195" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;The application allows &lt;strong&gt;Registered&lt;/strong&gt; users to create posts of items they want to sale. They have to post their email address, because that is the only way for a visitor to contact them.&lt;/p&gt;  &lt;p&gt;To demonstrate the productivity that &lt;strong&gt;LightSwitch&lt;/strong&gt; provides, I recreated the application in &lt;strong&gt;LightSwitch&lt;/strong&gt;, with the added feature that it allows visitors to send messages, and the poster to respond to them.&lt;/p&gt;  &lt;p&gt;The entire application can be created in under an hour.&lt;/p&gt;  &lt;p&gt;The tutorial is here:&lt;/p&gt;  &lt;p&gt;&lt;a title="http://www.codeproject.com/KB/silverlight/DNNThingsForSale.aspx" href="http://www.codeproject.com/KB/silverlight/DNNThingsForSale.aspx"&gt;http://www.codeproject.com/KB/silverlight/DNNThingsForSale.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;I also have the application running live, in my &lt;strong&gt;DotNetNuke&lt;/strong&gt; website here:&lt;/p&gt;  &lt;p&gt;&lt;a title="http://lightswitchhelpwebsite.com/Demos/ThingsForSale.aspx" href="http://lightswitchhelpwebsite.com/Demos/ThingsForSale.aspx"&gt;http://lightswitchhelpwebsite.com/Demos/ThingsForSale.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;Note: This is cross posted with my blog on &lt;a href="http://OpenLightGroup.net"&gt;http://OpenLightGroup.net&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;a href=http://www.dotnetnuke.com/Resources/Blogs/EntryId/3076/LightSwitch-Things-For-Sale.aspx&gt;More ...&lt;/a&gt;</description>
      <author>webmaster@adefwebserver.com</author>
      <comments>http://www.dotnetnuke.com/Resources/Blogs/EntryId/3076/LightSwitch-Things-For-Sale.aspx#Comments</comments>
      <slash:comments>0</slash:comments>
      <guid isPermaLink="true">http://www.dotnetnuke.com/Resources/Blogs/EntryId/3076/LightSwitch-Things-For-Sale.aspx</guid>
      <pubDate>Mon, 13 Jun 2011 08:14:05 GMT</pubDate>
      <trackback:ping>http://www.dotnetnuke.comDesktopModules/BlogTrackback.aspx?id=3076</trackback:ping>
    </item>
    <item>
      <title>Easy DotNetNuke LightSwitch Deployment</title>
      <link>http://www.dotnetnuke.com/Resources/Blogs/EntryId/3063/Easy-DotNetNuke-LightSwitch-Deployment.aspx</link>
      <description>&lt;a style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; color: #007cbc; text-decoration: none; padding-top: 0px" href="http://lightswitch.adefwebserver.com/portals/0/blog/Easy-DotNetNuke-LightSwitch-Deployment_11CC0/image.png"&gt;&lt;img style="background-image: none; padding-bottom: 0px; border-right-width: 0px; margin: 0px; padding-left: 0px; width: 294px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; height: 180px; border-left-width: 0px; padding-top: 0px" title="image" alt="image" src="http://lightswitch.adefwebserver.com/portals/0/blog/Easy-DotNetNuke-LightSwitch-Deployment_11CC0/image_thumb.png" /&gt;&lt;/a&gt;  &lt;div class="tags"&gt;Tags: Applications,DotNetNuke&lt;/div&gt;</description>
      <author>webmaster@adefwebserver.com</author>
      <comments>http://www.dotnetnuke.com/Resources/Blogs/EntryId/3063/Easy-DotNetNuke-LightSwitch-Deployment.aspx#Comments</comments>
      <slash:comments>4</slash:comments>
      <guid isPermaLink="true">http://www.dotnetnuke.com/Resources/Blogs/EntryId/3063/Easy-DotNetNuke-LightSwitch-Deployment.aspx</guid>
      <pubDate>Mon, 23 May 2011 08:00:00 GMT</pubDate>
      <trackback:ping>http://www.dotnetnuke.comDesktopModules/BlogTrackback.aspx?id=3063</trackback:ping>
      <blog:tag blog:url="http://www.dotnetnuke.com/Resources/Blogs/TagID/211.aspx">Applications</blog:tag>
      <blog:tag blog:url="http://www.dotnetnuke.com/Resources/Blogs/TagID/4.aspx">DotNetNuke</blog:tag>
    </item>
    <item>
      <title>LightSwitch and DotNetNuke</title>
      <link>http://www.dotnetnuke.com/Resources/Blogs/EntryId/3040/LightSwitch-and-DotNetNuke.aspx</link>
      <description>&lt;p&gt;I just posted an article on deploying a &lt;strong&gt;Microsoft Visual Studio LightSwitch&lt;/strong&gt; application to your &lt;strong&gt;DotNetNuke&lt;/strong&gt; website. &lt;/p&gt;  &lt;p&gt;An important thing to note, is that you can use your existing &lt;strong&gt;DotNetNuke&lt;/strong&gt; users and roles with your &lt;strong&gt;LightSwitch&lt;/strong&gt; applications. This is really important because you already have accounts and roles. You don’t want to require your users to learn a new username and password, and need to log into, each application. Deploying your &lt;strong&gt;LightSwitch&lt;/strong&gt; applications in &lt;strong&gt;DotNetNuke&lt;/strong&gt; allows a seamless user experience.&lt;/p&gt;  &lt;h2&gt;The Entire Page Issue&lt;/h2&gt;  &lt;p&gt;&lt;strong&gt;LightSwitch&lt;/strong&gt; has a problem that I call “the Entire Page issue”. &lt;strong&gt;LightSwitch&lt;/strong&gt; wants to fill the entire screen. In the business world, users usually use more than one business application. They want to switch between, say the &lt;strong&gt;Accounting&lt;/strong&gt; application, and the &lt;strong&gt;Shipping&lt;/strong&gt; application easily. Users also want to log in one time and access all the applications.&lt;/p&gt;  &lt;p&gt;DotNetNuke is perfect for scenarios like this. &lt;/p&gt;  &lt;p&gt;I believe that &lt;strong&gt;DotNetNuke&lt;/strong&gt;, because it is a powerful &lt;strong&gt;Application Framework&lt;/strong&gt;, not just a &lt;em&gt;content management application&lt;/em&gt;, provides the best deployment for &lt;strong&gt;LightSwitch&lt;/strong&gt; applications. &lt;strong&gt;DotNetNuke&lt;/strong&gt; is already a proven deployment tool for other &lt;strong&gt;Silverlight&lt;/strong&gt; applications, I have &lt;strong&gt;DotNetNuke Silverlight&lt;/strong&gt; applications, posted over several years at: &lt;a title="http://dnnsilverlight.adefwebserver.com/" href="http://dnnsilverlight.adefwebserver.com/"&gt;http://dnnsilverlight.adefwebserver.com/&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;You can see the tutorial for deploying &lt;strong&gt;LightSwitch&lt;/strong&gt; applications in &lt;strong&gt;DotNetNuke&lt;/strong&gt; at:&lt;/p&gt;  &lt;p&gt;&lt;a title="http://lightswitchhelpwebsite.com/Blog/tabid/61/EntryId/15/Deploy-Your-LightSwitch-Application-As-A-DotNetNuke-Module.aspx" href="http://lightswitchhelpwebsite.com/Blog/tabid/61/EntryId/15/Deploy-Your-LightSwitch-Application-As-A-DotNetNuke-Module.aspx"&gt;http://lightswitchhelpwebsite.com/Blog/tabid/61/EntryId/15/Deploy-Your-LightSwitch-Application-As-A-DotNetNuke-Module.aspx&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;a href=http://www.dotnetnuke.com/Resources/Blogs/EntryId/3040/LightSwitch-and-DotNetNuke.aspx&gt;More ...&lt;/a&gt;</description>
      <author>webmaster@adefwebserver.com</author>
      <comments>http://www.dotnetnuke.com/Resources/Blogs/EntryId/3040/LightSwitch-and-DotNetNuke.aspx#Comments</comments>
      <slash:comments>0</slash:comments>
      <guid isPermaLink="true">http://www.dotnetnuke.com/Resources/Blogs/EntryId/3040/LightSwitch-and-DotNetNuke.aspx</guid>
      <pubDate>Sat, 23 Apr 2011 22:11:05 GMT</pubDate>
      <trackback:ping>http://www.dotnetnuke.comDesktopModules/BlogTrackback.aspx?id=3040</trackback:ping>
    </item>
    <item>
      <title>MyStudioServer goes Open Source</title>
      <link>http://www.dotnetnuke.com/Resources/Blogs/EntryId/2930/MyStudioServer-goes-Open-Source.aspx</link>
      <description>&lt;p&gt;&lt;a href="http://www.dotnetnuke.com/Portals/25/Blog/Files/77/2930/Windows-Live-Writer-MyStudioServer.com-goes-Open-Source_909B-image_6.png" shape="rect"&gt;&lt;img width="244" height="77" title="image" style="border-width: 0px; border-style: solid; padding-top: 0px; padding-right: 0px; padding-left: 0px; display: inline; background-image: none;" alt="image" src="/Portals/25/Blog/Files/77/2930/Windows-Live-Writer-MyStudioServer.com-goes-Open-Source_909B-image_thumb_2.png"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;A year ago Ian Lackey and I decided to create a &lt;a href="http://DotNetNuke.com" shape="rect"&gt;DotNetNuke&lt;/a&gt; site that allowed users to upload .Mp3 files and play them using Silverlight visualizations. We planned to expand the site and to make a SDK so that people can create their own visualizations. However, we became busy with our latest &lt;a href="http://openlightgroup.net/" shape="rect"&gt;DotNetNuke book&lt;/a&gt;,  and other projects, and we never got around to making the enhancements.&lt;/p&gt;
&lt;p&gt;We decided to publish the source code for the site as Open Source, because… well… we can &lt;img class="wlEmoticon wlEmoticon-smile" alt="Smile" src="/Portals/25/Blog/Files/77/2930/Windows-Live-Writer-MyStudioServer.com-goes-Open-Source_909B-wlEmoticon-smile_2.png"&gt;&lt;/img&gt;.&lt;/p&gt;
&lt;p&gt;By using &lt;a href="http://DotNetNuke.com" shape="rect"&gt;DotNetNuke&lt;/a&gt; for the site, we did not have to put that much work into it, and other than registering the domain name, and buying a skin,  we put no money into the site. When you use DotNetNuke as the base for your website, you do not have to create the majority of your site. Things like the look and feel (you can simply buy a skin), page management, menus, user registration, password recovery, security, roles, permissions, error logging, are all created for you. Using the directions such as the tutorials I have published at: &lt;a href="http://www.adefwebserver.com/DotNetNukeHELP/" shape="rect"&gt;DotNetNuke® Module Development Help Website&lt;/a&gt;, you can quickly create the custom functionality you need. &lt;/p&gt;
&lt;p&gt;For Silverlight and DotNetNuke code, you can find plenty of free code an examples at: &lt;a href="http://dnnsilverlight.adefwebserver.com/" title="http://dnnsilverlight.adefwebserver.com/" shape="rect"&gt;http://dnnsilverlight.adefwebserver.com/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;You can download all the custom code and modules for MyStudioServer.com and adapt it for your own uses at:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://mystudioserver.codeplex.com/" title="http://mystudioserver.codeplex.com/" shape="rect"&gt;http://mystudioserver.codeplex.com/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.dotnetnuke.com/Portals/25/Blog/Files/77/2930/Windows-Live-Writer-MyStudioServer.com-goes-Open-Source_909B-image_2.png" shape="rect"&gt;&lt;img width="247" height="396" title="image" style="border-width: 0px; border-style: solid; padding-top: 0px; padding-right: 0px; padding-left: 0px; display: inline; background-image: none;" alt="image" src="/Portals/25/Blog/Files/77/2930/Windows-Live-Writer-MyStudioServer.com-goes-Open-Source_909B-image_thumb.png"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.dotnetnuke.com/Portals/25/Blog/Files/77/2930/Windows-Live-Writer-MyStudioServer.com-goes-Open-Source_909B-image_4.png" shape="rect"&gt;&lt;img width="247" height="263" title="image" style="border-width: 0px; border-style: solid; padding-top: 0px; padding-right: 0px; padding-left: 0px; display: inline; background-image: none;" alt="image" src="/Portals/25/Blog/Files/77/2930/Windows-Live-Writer-MyStudioServer.com-goes-Open-Source_909B-image_thumb_1.png"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br&gt;
&lt;/br&gt;&lt;/p&gt;
&lt;p&gt;This blog post is &lt;strong&gt;cross-posted&lt;/strong&gt; from my &lt;strong&gt;personal blog site (&lt;a href="http://openlightgroup.net/Blog/tabid/58/EntryId/155/MyStudioServer-goes-Open-Source.aspx" shape="rect"&gt;http://openlightgroup.net/Blog/tabid/58/EntryId/155/MyStudioServer-goes-Open-Source.aspx&lt;/a&gt;)&lt;/strong&gt;.&lt;/p&gt;&lt;br /&gt;&lt;a href=http://www.dotnetnuke.com/Resources/Blogs/EntryId/2930/MyStudioServer-goes-Open-Source.aspx&gt;More ...&lt;/a&gt;</description>
      <author>webmaster@adefwebserver.com</author>
      <comments>http://www.dotnetnuke.com/Resources/Blogs/EntryId/2930/MyStudioServer-goes-Open-Source.aspx#Comments</comments>
      <slash:comments>0</slash:comments>
      <guid isPermaLink="true">http://www.dotnetnuke.com/Resources/Blogs/EntryId/2930/MyStudioServer-goes-Open-Source.aspx</guid>
      <pubDate>Fri, 31 Dec 2010 08:00:00 GMT</pubDate>
      <trackback:ping>http://www.dotnetnuke.comDesktopModules/BlogTrackback.aspx?id=2930</trackback:ping>
    </item>
    <item>
      <title>A DotNetNuke Silverlight Expense Report Module</title>
      <link>http://www.dotnetnuke.com/Resources/Blogs/EntryId/2766/A-DotNetNuke-Silverlight-Expense-Report-Module.aspx</link>
      <description>&lt;p&gt;&lt;img alt="" src="http://silverlight.adefwebserver.com/articles/expensereports/img4.jpg" width="331" height="258" /&gt;&lt;/p&gt;  &lt;p&gt;I just posted a new DotNetNuke Silverlight 4 View Model (MVVM) module. This module allows you to easily gather, and process &lt;strong&gt;Expense Reports&lt;/strong&gt;, from users in your &lt;strong&gt;DotNetNuke&lt;/strong&gt; portal.&lt;/p&gt;  &lt;h4&gt;Advantages of Using Silverlight&lt;/h4&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;It is faster&lt;/strong&gt; - When viewing the Expense Reports for a single user, there are no post-backs. The application moves considerably faster than a normal web application. &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;It will not time-out&lt;/strong&gt; - Normal web applications require you to input something every 20 minutes, or you will be timed-out, and will lose any un-saved information. &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Large file uploads&lt;/strong&gt; - Users can upload scans of any size. &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;It can be re-designed with no code &lt;/strong&gt;- This application was created using View Model / MVVM. This allows a designer, to completely redesign this application using &lt;strong&gt;Microsoft Expression Blend&lt;/strong&gt;, with no code changes. Simply open the source up and make changes. When you compile the changes, it will create a "&lt;em&gt;&lt;strong&gt;ExpenseReports.xap&lt;/strong&gt;&lt;/em&gt;" file. Simply replace the file in the "&lt;em&gt;&lt;strong&gt;DesktopModules\ExpenseReports\ClientBin&lt;/strong&gt;&lt;/em&gt;" directory and you're done!&lt;/li&gt; &lt;/ul&gt; You can use the live demo and download the module and full source code &lt;a href="http://dnnsilverlight.adefwebserver.com/Silverlight40/ExpenseReport/tabid/88/Default.aspx"&gt;at this link&lt;/a&gt;.  &lt;br /&gt;&lt;a href=http://www.dotnetnuke.com/Resources/Blogs/EntryId/2766/A-DotNetNuke-Silverlight-Expense-Report-Module.aspx&gt;More ...&lt;/a&gt;</description>
      <author>webmaster@adefwebserver.com</author>
      <comments>http://www.dotnetnuke.com/Resources/Blogs/EntryId/2766/A-DotNetNuke-Silverlight-Expense-Report-Module.aspx#Comments</comments>
      <slash:comments>5</slash:comments>
      <guid isPermaLink="true">http://www.dotnetnuke.com/Resources/Blogs/EntryId/2766/A-DotNetNuke-Silverlight-Expense-Report-Module.aspx</guid>
      <pubDate>Sun, 29 Aug 2010 21:13:47 GMT</pubDate>
      <trackback:ping>http://www.dotnetnuke.comDesktopModules/BlogTrackback.aspx?id=2766</trackback:ping>
    </item>
    <item>
      <title>DotNetNuke Web Service Authentication Methods</title>
      <link>http://www.dotnetnuke.com/Resources/Blogs/EntryId/2742/DotNetNuke-Web-Service-Authentication-Methods.aspx</link>
      <description>&lt;p&gt;When using web services with DotNetNuke, there are three primary methods to secure the web services that I use:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;Using Http Context&lt;/strong&gt; – When a user logs into your DotNetNuke website, their web browser is given a “authentication token” in the form of a cookie. Web service calls made using Ajax or Silverlight, use this cookie for authentication. This cookie will “time out” like a normal log in if it is not used for a period of time (usually 20 minutes). &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Using A “Custom Token”&lt;/strong&gt; – SilverlightDesktop.net uses this to provide a token that wont time out. &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Authenticating Manually&lt;/strong&gt; – IWeb uses this method to allow you the most flexible authentication. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt; &lt;/p&gt;  &lt;h2&gt;Using HTTP Context&lt;/h2&gt;  &lt;p&gt;&lt;img alt="" src="http://www.adefwebserver.com/DotNetNukeHELP/Misc/Silverlight/HelloWorld3/images/img74.jpg" width="400" height="101" /&gt;&lt;/p&gt;  &lt;p&gt;This is the simplest method. You can download a simple module that demonstrates this &lt;a href="http://dnnsilverlight.adefwebserver.com/Silverlight30/Silverlight3HelloWorld/tabid/79/Default.aspx"&gt;at this link&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;First, the user must be using a web browser (this includes Ajax), or a plug-in running in a web browser such as Silverlight (this does not cover Silverlight running out of browser or on Windows Phone 7).&lt;/p&gt;  &lt;p&gt;Next, you just use a web method such as this:&lt;/p&gt;  &lt;pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;[WebMethod]
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;string&lt;/span&gt; GetUsername() 
&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;{            
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;  &lt;span style="color: #0000ff"&gt;string&lt;/span&gt; strUsername = "&lt;span style="color: #8b0000"&gt;World!&lt;/span&gt;";
&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;  &lt;span style="color: #008000"&gt;// Get the current user&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;  
&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;  UserInfo objUserInfo = UserController.GetCurrentUserInfo();   
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;  &lt;span style="color: #008000"&gt;// If the user is not -1 they are logged in           &lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;  
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;  &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (objUserInfo.UserID &gt; -1)           
&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;  {              
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;    strUsername = objUserInfo.DisplayName;    
&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;  }      
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;  
&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;  &lt;span style="color: #0000ff"&gt;return&lt;/span&gt; strUsername;  
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;}&lt;/pre&gt;&lt;/pre&gt;

&lt;p&gt;That's it. if they are logged in, their UserID will be greater then –1. The only problem with this method:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;They will time-out if they have not made any calls, and their &lt;a href="http://msdn.microsoft.com/en-us/library/aa292114(VS.71).aspx"&gt;IIS authorization token&lt;/a&gt; has expired&lt;/li&gt;

  &lt;li&gt;This will not work with any non web browser (or web browser plug-in) situation&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt; &lt;/p&gt;

&lt;h2&gt;Authentication Using Custom Token&lt;/h2&gt;

&lt;p&gt;&lt;img title="silverlightdesktopoverview_small.jpg" alt="silverlightdesktopoverview_small.jpg" src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=SilverlightDesktop&amp;DownloadId=47368" /&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://silverlightdesktop.net/"&gt;SilverlightDesktop.net&lt;/a&gt; creates a special “user authentication token” and passes it to the Silverlight application:&lt;/p&gt;

&lt;pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;objUser = DotNetNuke.Entities.Users.UserController.GetCurrentUserInfo();
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;&lt;span style="color: #0000ff"&gt;string&lt;/span&gt; strSilverlightPassword = Authendication.SetSilverlightKey(objUser, ModuleId, strIPAddress);&lt;/pre&gt;&lt;/pre&gt;

&lt;p&gt;The application uses this password on all web service calls. The advantage of this approach, is that the password will not “time-out”. The user can keep the screen open for hours and never need log-in again. Also, their real password is not transmitted over the network.&lt;/p&gt;

&lt;p&gt;The “SetSilverlightKey” code is a bit complex, because it contains code that prevents a hacker from trying to guess passwords (scrambles the password on each bad attempt), or locking a user out by guessing wrong (it tracks the last IP address a user has used, and only scrambles a password if it came from the same IP “block” that the user last logged on to). It also prevents a hacker from using the correct password if it comes from a different IP block.&lt;/p&gt;

&lt;p&gt;Ripping out the “SetSilverlightKey” code for your own use is easy, as SilverlightDesktop.net provides you with full source code.&lt;/p&gt;

&lt;p&gt;The negative of this approach is:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;This will not work with any non web browser (or web browser plug-in) situation&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt; &lt;/p&gt;

&lt;h2&gt;Authenticating Manually&lt;/h2&gt;

&lt;p&gt;&lt;img border="0" src="http://www.adefwebserver.com/DotNetNukeHELP/Misc/images/Temp.h9.jpg" width="451" height="408" /&gt;&lt;/p&gt;

&lt;p&gt;You may have heard of &lt;a href="http://iweb.adefwebserver.com/"&gt;IWeb&lt;/a&gt;. This is a long running project created by &lt;a href="http://openlightgroup.net/"&gt;The Open Light Group&lt;/a&gt; (Ian Lackey and myself). &lt;/p&gt;

&lt;p&gt;&lt;img border="0" src="http://www.adefwebserver.com/DotNetNukeHELP/Misc/images/Temp.h8.jpg" width="519" height="307" /&gt;&lt;/p&gt;

&lt;p&gt;The real purpose of this module is to allow you to easily warehouse web methods for enterprise situations. It allows you to easily set security access of Web methods you create, by DotNetNuke role.&lt;/p&gt;

&lt;p&gt;The thing that it does in relationship to this article, is that it authenticates a user from outside of DotNetNuke. This will work for things such as Windows Phone 7, and out of browser Silverlight applications.&lt;/p&gt;

&lt;p&gt;You do not need to use IWeb if you don’t need all it’s features, you can just grab the source code from &lt;a title="http://iweb.adefwebserver.com" href="http://iweb.adefwebserver.com"&gt;http://iweb.adefwebserver.com&lt;/a&gt;. It’s available in VB and C#.&lt;/p&gt;

&lt;p&gt;Basically, start ripping out the code starting with the code in Webservice.cs (or .vb) that looks like this:&lt;/p&gt;

&lt;pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;IWebAuthendication objIWebAuthendication = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; IWebAuthendication(IWebCredentials);
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;&lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (!(objIWebAuthendication.ValidAndAuthorized()))
&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;{
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt; &lt;span style="color: #0000ff"&gt;return&lt;/span&gt; "&lt;span style="color: #8b0000"&gt;0,Not Authorized&lt;/span&gt;";
&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;}&lt;/pre&gt;&lt;/pre&gt;

&lt;p&gt;This article covers using IWeb with Ajax and you may also find it helpful:&lt;/p&gt;

&lt;p&gt;&lt;a title="http://www.adefwebserver.com/DotNetNukeHELP/Misc/Dotnetnuke_Secure_AJAX_webservices.htm" href="http://www.adefwebserver.com/DotNetNukeHELP/Misc/Dotnetnuke_Secure_AJAX_webservices.htm"&gt;http://www.adefwebserver.com/DotNetNukeHELP/Misc/Dotnetnuke_Secure_AJAX_webservices.htm&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The negative of this approach is:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;You are transmitting the Users DotNetNuke username and password with each web service call. However, you can transmit using SSL, and IWeb does allow you to encrypt passwords (you use the same “encryption key” on both the client and the server).&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;&lt;a href=http://www.dotnetnuke.com/Resources/Blogs/EntryId/2742/DotNetNuke-Web-Service-Authentication-Methods.aspx&gt;More ...&lt;/a&gt;</description>
      <author>webmaster@adefwebserver.com</author>
      <comments>http://www.dotnetnuke.com/Resources/Blogs/EntryId/2742/DotNetNuke-Web-Service-Authentication-Methods.aspx#Comments</comments>
      <slash:comments>0</slash:comments>
      <guid isPermaLink="true">http://www.dotnetnuke.com/Resources/Blogs/EntryId/2742/DotNetNuke-Web-Service-Authentication-Methods.aspx</guid>
      <pubDate>Sun, 15 Aug 2010 14:41:54 GMT</pubDate>
      <trackback:ping>http://www.dotnetnuke.comDesktopModules/BlogTrackback.aspx?id=2742</trackback:ping>
    </item>
    <item>
      <title>Localize Your Modules For Free</title>
      <link>http://www.dotnetnuke.com/Resources/Blogs/EntryId/2725/Localize-Your-Modules-For-Free.aspx</link>
      <description>&lt;p&gt;At the last &lt;a href="http://www.socaldug.org/"&gt;Southern California DotNetNuke Users Group&lt;/a&gt;, we had &lt;strong&gt;&lt;a href="http://www.devconnections.com/shows/FALL2010DN/default.asp?c=2&amp;s=158&amp;i=2423"&gt;Chad Nash&lt;/a&gt;&lt;/strong&gt; From &lt;a href="http://www.datasprings.com"&gt;Data Spings&lt;/a&gt;. He talked about using JQuery in DotNetNuke modules and all the tips and tricks he has learned. &lt;/p&gt;  &lt;p&gt;At one point he casually mentions that &lt;strong&gt;Data Spings&lt;/strong&gt; has two free services:&lt;/p&gt;  &lt;p&gt;&lt;b&gt;RESX Translate – A free service of Data Springs, Inc.&lt;/b&gt; &lt;/p&gt;  &lt;p&gt;This service can be accessed via &lt;a href="http://www.resxtranslate.com"&gt;www.resxtranslate.com&lt;/a&gt;. This is a very useful tool that will translate your modules (or any ASP.NET application that has RESX files in it). The module will translate via google translator every RESX file property from one of 30+ languages. The module will send a report of the translation to an email address and also will rezip the files with the exact file path/structure in place (i.e. app_localresources). For users of DNN, the filename extensions will automatically match with the DNN extension for the language they selected. &lt;/p&gt;  &lt;p&gt;&lt;b&gt;RESX Spell Check – A free service of Data Springs, Inc.&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;This service can be accessed via &lt;a title="http://datasprings.com/Resources/RESXLocalizationSpellChecker.aspx" href="http://datasprings.com/Resources/RESXLocalizationSpellChecker.aspx"&gt;http://datasprings.com/Resources/RESXLocalizationSpellChecker.aspx&lt;/a&gt;. Similar to the translation service but there is no zip file, just a report. You can still choose from 30+ languages for the spell check. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.dotnetnuke.com/DesktopModules/Admin/Banners/BannerClickThrough.aspx?BannerId=1329&amp;VendorId=55&amp;PortalId=25"&gt;&lt;img border="0" alt="DotNetNuke Connections" src="/Portals/25/Marketing/OpenForce/DNN_Connections10_3.gif" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Also note, &lt;strong&gt;Chad Nash&lt;/strong&gt; will be speaking at DotNetNuke Connections '10.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Register before September 1st and save $100 on your conference registration fee!&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;a title="http://www.dotnetnuke.comhttp://www.dotnetnuke.com/News/Events/DotNetNukeConnections10/tabid/1512/Default.aspx" href="http://www.dotnetnuke.com/News/Events/DotNetNukeConnections10/tabid/1512/Default.aspx"&gt;http://www.dotnetnuke.comhttp://www.dotnetnuke.com/News/Events/DotNetNukeConnections10/tabid/1512/Default.aspx&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;a href=http://www.dotnetnuke.com/Resources/Blogs/EntryId/2725/Localize-Your-Modules-For-Free.aspx&gt;More ...&lt;/a&gt;</description>
      <author>webmaster@adefwebserver.com</author>
      <comments>http://www.dotnetnuke.com/Resources/Blogs/EntryId/2725/Localize-Your-Modules-For-Free.aspx#Comments</comments>
      <slash:comments>0</slash:comments>
      <guid isPermaLink="true">http://www.dotnetnuke.com/Resources/Blogs/EntryId/2725/Localize-Your-Modules-For-Free.aspx</guid>
      <pubDate>Fri, 06 Aug 2010 02:31:20 GMT</pubDate>
      <trackback:ping>http://www.dotnetnuke.comDesktopModules/BlogTrackback.aspx?id=2725</trackback:ping>
    </item>
    <item>
      <title>Upgrading DotNetNuke to ASP.NET 4.0</title>
      <link>http://www.dotnetnuke.com/Resources/Blogs/EntryId/2619/Upgrading-DotNetNuke-to-ASP-NET-4-0.aspx</link>
      <description>&lt;p&gt;&lt;a href="http://www.dotnetnuke.com/Portals/25/Blog/Files/77/2619/WLW-UpgradingDotNetNuketoASP.NET4.0_518C-image_2.png"&gt;&lt;img width="402" height="42" title="image" style="display: inline;border: 0px solid;" alt="image" src="http://www.dotnetnuke.com/Portals/25/Blog/Files/77/2619/WLW-UpgradingDotNetNuketoASP.NET4.0_518C-image_thumb.png" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I want to use &lt;a href="http://openlightgroup.net/Blog/tabid/58/EntryId/100/Simple-Example-To-Secure-WCF-Data-Service-OData-Methods.aspx"&gt;OData&lt;/a&gt; to make DotNetNuke modules. For that, I need ASP.NET 4.0. I develop on a Windows 7 computer using IIS7. My DotNetNuke website runs under ASP.NET 3.5. This is what I did to run it under ASP.NET 4.0...&lt;/p&gt;</description>
      <author>webmaster@adefwebserver.com</author>
      <comments>http://www.dotnetnuke.com/Resources/Blogs/EntryId/2619/Upgrading-DotNetNuke-to-ASP-NET-4-0.aspx#Comments</comments>
      <slash:comments>4</slash:comments>
      <guid isPermaLink="true">http://www.dotnetnuke.com/Resources/Blogs/EntryId/2619/Upgrading-DotNetNuke-to-ASP-NET-4-0.aspx</guid>
      <pubDate>Tue, 25 May 2010 13:33:35 GMT</pubDate>
      <trackback:ping>http://www.dotnetnuke.comDesktopModules/BlogTrackback.aspx?id=2619</trackback:ping>
    </item>
  </channel>
</rss>
