﻿<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">
  <channel>
    <title>Most recent blog entries</title>
    <description>DotNetNuke is an open source web application framework ideal for creating, deploying and managing interactive web, intranet, and extranet sites securely.</description>
    <link>http://www.dotnetnuke.com/Community/Blogs/tabid/825/Default.aspx</link>
    <language>en-US</language>
    <managingEditor>admin1@dotnetnuke.com</managingEditor>
    <webMaster>admin1@dotnetnuke.com</webMaster>
    <pubDate>Thu, 21 Aug 2008 19:40:18 GMT</pubDate>
    <lastBuildDate>Thu, 21 Aug 2008 19:40:18 GMT</lastBuildDate>
    <docs>http://backend.userland.com/rss</docs>
    <generator>Blog RSS Generator Version 3.4.0.39853</generator>
    <item>
      <title>Links Module version 04.00.01 released</title>
      <description>&lt;p&gt;Today, DotNetNuke Links module version 04.00.01 was released. There was only one issue that needed fixing: the compatible versions node in the dnn file prevented the module to be installed in DNN 4.7.0, and it would also not install in DNN 4.9.0.&lt;/p&gt;
&lt;p&gt;The new version can be downloaded from &lt;a href="http://downloads.dotnetnuke.com"&gt;http://downloads.dotnetnuke.com&lt;/a&gt;, and will be included in DNN 4.9.0&lt;/p&gt;</description>
      <link>http://www.dotnetnuke.com/Community/Blogs/tabid/825/EntryID/1955/Default.aspx</link>
      <author>erik.vanballegoij@dotnetnuke.com</author>
      <comments>http://www.dotnetnuke.com/Community/Blogs/tabid/825/EntryID/1955/Default.aspx#Comments</comments>
      <guid isPermaLink="true">http://www.dotnetnuke.com/Default.aspx?tabid=825&amp;EntryID=1955</guid>
      <pubDate>Thu, 21 Aug 2008 21:09:00 GMT</pubDate>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.dotnetnuke.com/DesktopModules/Blog/Trackback.aspx?id=1955</trackback:ping>
    </item>
    <item>
      <title>Have you used the User Defined Table module? You should!</title>
      <description>&lt;p mce_keep="true"&gt;I must say a few things about the &lt;a href="http://www.dotnetnuke.com/Products/Development/Forge/ModuleUserDefinedTable/tabid/877/Default.aspx" mce_href="http://www.dotnetnuke.com/Products/Development/Forge/ModuleUserDefinedTable/tabid/877/Default.aspx"&gt;&lt;u&gt;&lt;font color="#800080"&gt;User Defined Table (UDT)&lt;/font&gt;&lt;/u&gt;&lt;/a&gt; module for DotNetNuke, I have seen it, but hardly ever used it. I had a site that was using it that I needed to make some changes to tonight, I've been putting off the changes because I was afraid of them.&lt;/p&gt;
&lt;p mce_keep="true"&gt;Wow, the UDT module rocks, if you haven't used it check it out, I will try to do a full writeup on the module soon, but long story short. You can create a lot of different formats with your data using the XSL, but even if you don't know or feel comfortable with XSL check out the XSL generator that is included in the module! It makes like way easier!&amp;l</description>
      <link>http://www.dotnetnuke.com/Community/Blogs/tabid/825/EntryID/1954/Default.aspx</link>
      <author>chris.hammond@dotnetnuke.com</author>
      <comments>http://www.dotnetnuke.com/Community/Blogs/tabid/825/EntryID/1954/Default.aspx#Comments</comments>
      <guid isPermaLink="true">http://www.dotnetnuke.com/Default.aspx?tabid=825&amp;EntryID=1954</guid>
      <pubDate>Thu, 21 Aug 2008 04:07:00 GMT</pubDate>
      <slash:comments>1</slash:comments>
      <trackback:ping>http://www.dotnetnuke.com/DesktopModules/Blog/Trackback.aspx?id=1954</trackback:ping>
    </item>
    <item>
      <title>Creating Testable Modules - The MVP Pattern</title>
      <description>&lt;p&gt;&lt;span class="DNNAlignleft" id="dnn_ctr2612_ContentPane"&gt;&lt;span id="dnn_ctr2612_MainView_ViewBlog_lstBlogView_ctl04_lblDescription"&gt;At this years Open Force Europe conference, I will be doing&amp;nbsp; a presentation on Testable Modules.&amp;nbsp; In preparation for that talk, I have been researching and developing examples.&amp;nbsp; In the second part of this series of blogs I introduce the Model-View-Presenter (MVP) design pattern.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;</description>
      <link>http://www.dotnetnuke.com/Community/Blogs/tabid/825/EntryID/1953/Default.aspx</link>
      <comments>http://www.dotnetnuke.com/Community/Blogs/tabid/825/EntryID/1953/Default.aspx#Comments</comments>
      <guid isPermaLink="true">http://www.dotnetnuke.com/Default.aspx?tabid=825&amp;EntryID=1953</guid>
      <pubDate>Wed, 20 Aug 2008 08:00:00 GMT</pubDate>
      <slash:comments>1</slash:comments>
      <trackback:ping>http://www.dotnetnuke.com/DesktopModules/Blog/Trackback.aspx?id=1953</trackback:ping>
    </item>
    <item>
      <title>Ways to present content using Announcement templates</title>
      <description>&lt;p&gt;The Announcements module is one of the original DotNetNuke modules which on the surface appears to offer much the same functionality as when it was originally created. However the latest versions have a new settings that provide great control over the history of items displayed, the length of search and RSS description as well as the layout of each record through the use of templates. &lt;strong&gt;This blog post looks at customizing your Announcements using these templates and provides access to download four different templates.&lt;/strong&gt;&lt;/p&gt;</description>
      <link>http://www.dotnetnuke.com/Community/Blogs/tabid/825/EntryID/1952/Default.aspx</link>
      <author>lorraine.young@dotnetnuke.com</author>
      <comments>http://www.dotnetnuke.com/Community/Blogs/tabid/825/EntryID/1952/Default.aspx#Comments</comments>
      <guid isPermaLink="true">http://www.dotnetnuke.com/Default.aspx?tabid=825&amp;EntryID=1952</guid>
      <pubDate>Wed, 20 Aug 2008 07:51:00 GMT</pubDate>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.dotnetnuke.com/DesktopModules/Blog/Trackback.aspx?id=1952</trackback:ping>
    </item>
    <item>
      <title>The Events team wil miss the effort of team member Michael Kamp</title>
      <description>&lt;p&gt;Michael was, until recently, a very active Evenst team member. Long recovery of problems with his eyes forced him to do a step back.&lt;/p&gt;</description>
      <link>http://www.dotnetnuke.com/Community/Blogs/tabid/825/EntryID/1950/Default.aspx</link>
      <author>ernstpeter.tamminga@dotnetnuke.com</author>
      <comments>http://www.dotnetnuke.com/Community/Blogs/tabid/825/EntryID/1950/Default.aspx#Comments</comments>
      <guid isPermaLink="true">http://www.dotnetnuke.com/Default.aspx?tabid=825&amp;EntryID=1950</guid>
      <pubDate>Sun, 17 Aug 2008 09:14:41 GMT</pubDate>
      <slash:comments>3</slash:comments>
      <trackback:ping>http://www.dotnetnuke.com/DesktopModules/Blog/Trackback.aspx?id=1950</trackback:ping>
    </item>
    <item>
      <title>IWeb reaches 1000</title>
      <description>&lt;p&gt;Today IWeb reached 1000 members. This is not a big number because the DotNetNuke project can grow by 1000 members in a single day. However, IWeb is just a small project that provides code to call web service methods inside DotNetNuke. It is not really designed for end-users. When a project with such a small user base reaches 1000 members it says a lot about the health and growth of the main DotNetNuke project.&lt;br /&gt;
&lt;br /&gt;
This milestone sticks out for me personally because IWeb started as a small idea. It has grown and taken a life of its own. Eventually it has grown bigger than me and taught me a lot about what Open Source is really about.&lt;br /&gt;
&lt;br /&gt;
Initially IWeb was just a code sample. Nearly two years ago, I needed to call a web service that was inside a DotNetNuke module. I found an article on wwwcoder.com. My example used the new (at the time) WSP dynamic compilation model so I decided to publish the code.&lt;br /&gt;
&lt;br /&gt;
After I published the code a lot of discussion with Shawn Mehaffie, Andrew Nurse, and Rutger Buijzen led to the creation of a method to secure the web service methods. IWeb allows you to secure each individual method by role and to optionally encrypt the transmission.&lt;br /&gt;
&lt;br /&gt;
Then I had what I thought was a brilliant idea. I could create a “mini-framework” that would allow developers to create web service methods and share them with other developers. This “bright idea” stands out because it was a total failure. Ian Lackey is the only person to ever contribute any web service methods to the project. However the methods he contributed were for file management. His web service methods, together with a Windows Forms client he also provided, allow you to upload and download files into your DotNetNuke site through web services.&lt;br /&gt;
&lt;br /&gt;
It was Ian’s contribution which took the project from about 200 members in its first year, to 1000 members 9 months later. “Web service methods” is an abstract idea, but moving files without FTP using a windows forms client is useful and exciting.&lt;br /&gt;
&lt;br /&gt;
In his desire to allow for large file uploads via web services, Ian started work on IWebCF which is a version of IWeb that uses Windows Communication Foundation. His expert grasp of the complexities of implementing WCF led me to the decision to step aside and name him the project leader of the IWeb project.&lt;br /&gt;
&lt;br /&gt;
The experience of the IWeb project and its unanticipated evolution has led me to two conclusions:&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;It’s not the code it’s the people. IWeb grew not because I wrote a good module; it grew because of the influence of its members. I would not have put in the role based security had Shawn not suggested it. I considered a simple file upload but it was Ian who decided to make a full featured file manager and took the time to make it a reality.&lt;/li&gt;
    &lt;li&gt;An Open Source project can only survive when its team uses the project regularly themselves. We take for granted that the DotNetNuke team uses DotNetNuke not only for DotNEtNuke.com but in their personal and professional projects. This allows you to be constantly dedicated to a project and to continually fix it. With IWeb, I needed to constantly update the security methods because I needed them for my DotNetNuke AJAX projects and later my Silverlight code. The last major addition I made was a C# version of IWeb because... well basically *I* needed it for my own use. Ian spent a massive amount of time working on IWebCF challenges because he wanted to use WCF with DotNetNuke.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Today the majority of my time is spent working on a DotNetNuke module of SilverlightDesktop.net. This is a project that borrowed all of its web service code from the IWeb project. This web service code represents about 30% of its current code. I have another project in the planning stages that may need to use WCF certificates so don’t be surprised if you see me “getting my hands dirty” with IWebCF in the future.&lt;br /&gt;
&lt;br /&gt;
A small idea now has 1000 people joined in a common purpose and desire. I find that exciting.&lt;/p&gt;
&lt;p&gt;The IWeb project can be found here: &lt;a href="http://iweb.adefwebserver.com/"&gt;http://iweb.adefwebserver.com/&lt;/a&gt;&lt;/p&gt;</description>
      <link>http://www.dotnetnuke.com/Community/Blogs/tabid/825/EntryID/1951/Default.aspx</link>
      <author>webmaster@adefwebserver.com</author>
      <comments>http://www.dotnetnuke.com/Community/Blogs/tabid/825/EntryID/1951/Default.aspx#Comments</comments>
      <guid isPermaLink="true">http://www.dotnetnuke.com/Default.aspx?tabid=825&amp;EntryID=1951</guid>
      <pubDate>Sun, 17 Aug 2008 08:00:00 GMT</pubDate>
      <slash:comments>1</slash:comments>
      <trackback:ping>http://www.dotnetnuke.com/DesktopModules/Blog/Trackback.aspx?id=1951</trackback:ping>
    </item>
    <item>
      <title>New windows from your menu item?</title>
      <description>&lt;p&gt;I saw a lot of posts asking about how to open a link in a new window from the menu URL. I posted a simple solution in the old days of the asp.net forums for dotnetnuke and today I decided to blog about it becuase I think it could be useful&lt;/p&gt;</description>
      <link>http://www.dotnetnuke.com/Community/Blogs/tabid/825/EntryID/1949/Default.aspx</link>
      <author>locopon@tiendaboliviana.com</author>
      <comments>http://www.dotnetnuke.com/Community/Blogs/tabid/825/EntryID/1949/Default.aspx#Comments</comments>
      <guid isPermaLink="true">http://www.dotnetnuke.com/Default.aspx?tabid=825&amp;EntryID=1949</guid>
      <pubDate>Fri, 15 Aug 2008 04:00:00 GMT</pubDate>
      <slash:comments>8</slash:comments>
      <trackback:ping>http://www.dotnetnuke.com/DesktopModules/Blog/Trackback.aspx?id=1949</trackback:ping>
    </item>
    <item>
      <title>Creating Testable Modules - Introduction</title>
      <description>&lt;p&gt;At this years Open Force Europe conference, I will be doing&amp;nbsp; a presentation on Testable Modules.&amp;nbsp; In preparation for that talk, I have been researching and developing examples.&amp;nbsp; In this series of blogs I will be building the concepts for creating Testable Modules.&amp;nbsp; My goal here is to show you how to adapt your Module Development process to make your modules more testable.&lt;/p&gt;</description>
      <link>http://www.dotnetnuke.com/Community/Blogs/tabid/825/EntryID/1948/Default.aspx</link>
      <comments>http://www.dotnetnuke.com/Community/Blogs/tabid/825/EntryID/1948/Default.aspx#Comments</comments>
      <guid isPermaLink="true">http://www.dotnetnuke.com/Default.aspx?tabid=825&amp;EntryID=1948</guid>
      <pubDate>Thu, 14 Aug 2008 08:00:00 GMT</pubDate>
      <slash:comments>3</slash:comments>
      <trackback:ping>http://www.dotnetnuke.com/DesktopModules/Blog/Trackback.aspx?id=1948</trackback:ping>
    </item>
    <item>
      <title>Solved the annoying A1ert Error</title>
      <description>&lt;p&gt;As many of you know by now - if you type a1ert into a forum post (Note- I am using the number 1 in place of the lower case l) - then all the content after the aforesaid word is removed.&lt;/p&gt;
&lt;p&gt;See the following Gemini Posts:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://support.dotnetnuke.com/issue/ViewIssue.aspx?p=0&amp;id=8220"&gt;DNN-8220&lt;/a&gt; DotNetNuke.PortalSecurity.FilterString truncates posts based on the word 'a1ert'&lt;/p&gt;
&lt;p&gt;&lt;a href="http://support.dotnetnuke.com/issue/ViewIssue.aspx?p=0&amp;id=7206"&gt;FOR-7206&lt;/a&gt; Forums module: the word "a1ert" disapears in Forum posts and subject&lt;/p&gt;
&lt;p&gt;&lt;a href="http://support.dotnetnuke.com/issue/ViewIssue.aspx?p=0&amp;id=7215"&gt;DNN- 7215&lt;/a&gt; Page names containing the word "a1ert" become uneditable in 4.8.2&lt;/p&gt;
&lt;p&gt;The problem was that a Regex filter introduced as part of a Security fix to remove any potential use of the javascript a1ert function was too agressive.&lt;/p&gt;
&lt;p&gt;The Regex was as follows:&lt;/p&gt;
&lt;p&gt;&lt;span id="_ctl0_Main_lblDesc"&gt;a1ert.*\(?'?""?'?""?\)?&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;The problem with this Regex is that after the t there is .* - the . indicates any character and the * indicates 0-n, so anytext after the offending word was also matched and removed.&lt;/p&gt;
&lt;p&gt;The goal of the Regex is to remove use-cases where the word is used as javascript but NOT the normal use of the word.&lt;/p&gt;
&lt;p&gt;After much fighting with Regex today - it is not my favourite language - I figured out the correct Regex to use:&lt;/p&gt;
&lt;p&gt;a1ert[\s(nbsp; )]*\([\s(nbsp; )]*'?[\s(nbsp; )]*"?[\s( nbsp;)]*'?[\s(nbsp; )]*"?[\s(nbsp; )]*\)&lt;/p&gt;
&lt;p&gt;The main change is to use \s (ie any white space) rather than . (any character). &lt;/p&gt;
&lt;p&gt;In addition we have to include the HTML Entity nbsp; (actually this is preceded by an &amp; in the actual regex, but the editor displays this as a "space"  &lt;img src="/Providers/HtmlEditorProviders/Fck/FCKeditor/editor/images/smiley/msn/regular_smile.gif" alt="" /&gt;)  as possible white space as the FCK Editor will replace extra spaces by  .&lt;/p&gt;
&lt;p&gt;Anyway - to cut a long story short, the new filter will trap&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;a1ert   (  )&lt;/li&gt;
    &lt;li&gt;a1ert  (  '  '  )&lt;/li&gt;
    &lt;li&gt;a1ert      ( "")&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;and any combination with variable whitespace (0-n).&lt;/p&gt;
&lt;p&gt;but NOT  a1ert when used in a normal word.&lt;/p&gt;
&lt;p&gt;As this is a long standing annoyance I have checked this into the 4.9.0 codebase so it will be fixed in the 4.9.0 Release.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;</description>
      <link>http://www.dotnetnuke.com/Community/Blogs/tabid/825/EntryID/1947/Default.aspx</link>
      <comments>http://www.dotnetnuke.com/Community/Blogs/tabid/825/EntryID/1947/Default.aspx#Comments</comments>
      <guid isPermaLink="true">http://www.dotnetnuke.com/Default.aspx?tabid=825&amp;EntryID=1947</guid>
      <pubDate>Wed, 13 Aug 2008 08:00:00 GMT</pubDate>
      <slash:comments>9</slash:comments>
      <trackback:ping>http://www.dotnetnuke.com/DesktopModules/Blog/Trackback.aspx?id=1947</trackback:ping>
    </item>
    <item>
      <title>Two features from .Net 3.5 SP1 that will benefit DotNetNuke module developers</title>
      <description>&lt;p&gt;It is hard enough to keep up with all the stuff coming out of Microsoft for developers. Although I don't think there will be rush to upgrade to the newly released SQL 2008, the case for .Net 3.5 SP1 and Visual Studio 2008 SP1 is different. ASP.NET Dynamic Data, Script Combining and AJAX History alone are features that make it almost irrestible to upgrade the .Net Framework and the tool used to program against it.&lt;/p&gt;
&lt;p&gt;I expect the second feature to be a strong one among DNN developers. Since scripts can be injected at many stages in DNN, there are performance challenges for modules that use multiple scripts and also a typical request can only do a couple of them in parallel. The problem is compound when you think about the sequential nature of javascript. The ability to use AJAX and combine script requests will help solve a bottleneck that affects performance in all ASP.NET applications, including DNN.&lt;/p&gt;
&lt;p&gt;Another common problem for those already leveraging AJAX is the management of history points. With the promise of better interactivity and UI feedback with reduced flickering, AJAX raised a problem of its own: complexity to restore navigation history and viewstate with the use of the back and forward buttons in the browser without. The latest Service Pack for the framework introduces AJAX Browser History, a feature that will help the developer control navigation within an application that uses AJAX. DNN's modularity will certainly benefit, by enabling module developers to encapsulate the history points logic into their modules. Although it is too early to be certain about architectural impact on the DNN Core (keep in mind the DNN Core is still using .net 2.0 libraries), I suspect an implementation of a core service that unifies access to this feature to avoid code duplication might be a nice addition.&lt;/p&gt;
&lt;p&gt;The best place to start learning about all the features available in these Service Packs is of course the Asp.net site. Videos, forums and other materials are already available so jump now to the &lt;a href="http://www.asp.net/downloads/3.5-sp1/"&gt;downloads page&lt;/a&gt; to find more about the .Net 3.5 SP1 and Visual Studio 2008 SP1&lt;/p&gt;
&lt;p&gt;Happy Coding!&lt;/p&gt;</description>
      <link>http://www.dotnetnuke.com/Community/Blogs/tabid/825/EntryID/1945/Default.aspx</link>
      <author>nestor.sanchez@dotnetnuke.com</author>
      <comments>http://www.dotnetnuke.com/Community/Blogs/tabid/825/EntryID/1945/Default.aspx#Comments</comments>
      <guid isPermaLink="true">http://www.dotnetnuke.com/Default.aspx?tabid=825&amp;EntryID=1945</guid>
      <pubDate>Tue, 12 Aug 2008 21:27:00 GMT</pubDate>
      <slash:comments>2</slash:comments>
      <trackback:ping>http://www.dotnetnuke.com/DesktopModules/Blog/Trackback.aspx?id=1945</trackback:ping>
    </item>
  </channel>
</rss>