<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Net Data Design, LLC Blog &#187; Web Development</title>
	<atom:link href="http://blog.nddllc.com/category/web-development/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.nddllc.com</link>
	<description>Software and Database Development Blog</description>
	<lastBuildDate>Wed, 28 Jul 2010 21:23:58 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1-alpha</generator>
		<item>
		<title>Active Social Reviewed, Part 1</title>
		<link>http://blog.nddllc.com/2010/07/16/active-social-reviewed-part1/</link>
		<comments>http://blog.nddllc.com/2010/07/16/active-social-reviewed-part1/#comments</comments>
		<pubDate>Fri, 16 Jul 2010 22:11:34 +0000</pubDate>
		<dc:creator>Chris Smith</dc:creator>
				<category><![CDATA[DotNetNuke]]></category>
		<category><![CDATA[Product Review]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[Active Forums]]></category>
		<category><![CDATA[Active Modules]]></category>
		<category><![CDATA[Active Social]]></category>
		<category><![CDATA[modules]]></category>
		<category><![CDATA[privacy]]></category>
		<category><![CDATA[social]]></category>
		<category><![CDATA[social networking]]></category>
		<category><![CDATA[Ventrain]]></category>

		<guid isPermaLink="false">http://blog.nddllc.com/?p=256</guid>
		<description><![CDATA[Recently we had a project that required a social networking set-up (like Facebook.), but without the nasty habit of selling users information to the highest bidder; but that&#8217;s another topic within itself. We have developed such a module ourselves, but this project had a number of requirements that fit Active Module&#8217;s Active Social better than [...]]]></description>
			<content:encoded><![CDATA[<p>Recently we had a project that required a social networking set-up (like Facebook.), but without the nasty habit of selling users information to the highest bidder; but that&#8217;s another topic within itself. We have developed such a module ourselves, but this project had a number of requirements that fit <a href="http://www.activemodules.com/" target="_blank">Active Module&#8217;s</a> <a href="http://www.activesocial.com" target="_blank">Active Social</a> better than our own. Humbling, but true. That said, we will not be developing our own module any longer. Active Social (AS) not only fit the bill for this project, but we&#8217;ll continue to use it for the reasons I&#8217;ll cover below.</p>
<p>The primary reason for using AS was the integration of <a href="http://www.activemodules.com/products/activeforums.aspx" target="_blank">Active Forums</a> (AF). Active Forums in my estimation is the best forum module for <a href="http://www.dotnetnuke.com/" target="_blank">DotNetNuke</a> (DNN). It is robust and feature rich and is far easier to set-up than any other. The user-interface (UI) is more intuitive than that of DNN&#8217;s core module and well worth the investment. I have used AF for many years with great success.</p>
<p>The other main reason was we needed to tie it into a blog/article module. AS had hooks for doing so with <a href="http://www.ventrian.com/" target="_blank">Ventrian&#8217;s</a> News Articles module. And while I&#8217;m covering this, with News Article v7.69 , Scott McCulloch (developer) includes an option for Active Social journal integration. <em>Sweet!</em> &lt;digression&gt;And if you haven&#8217;t used modules from Ventrian yet, I have a question&#8230;<strong>What the hell is wrong with you?</strong> Ventrian offers the best module subscription on the planet, period. &lt;/digression&gt;</p>
<p>First, setup was relatively easy armed with the products documentation and a wealth of knowledge at <a href="http://www.activemodules.com/" target="_blank">Active Modules</a> knowledge base and forums. The AS package includes two modules,  Active Social and Active Forums. The AS module once installed and placed on a page has 3 different set-up options.</p>
<p>The Simple install creates 4 pages that host modules for:</p>
<ul>
<li>Forums – Contains the Active Forums module, which has your discussion forums and your Active Social group forums.</li>
<li>Groups – A single page contains the Listing of all the Groups and  displays individual groups when selected.</li>
<li>Members – This page will show the member list and the profile of a  chosen member.</li>
<li>Inbox – Contains the private messaging interface.</li>
</ul>
<p>The Standard install contains 9 pages and has some definite SEO advantages, this was the configuration that we choose. Those pages are:</p>
<ul>
<li>Forums &#8211; Same as Simple</li>
<li>Group Directory – Contains the list of all the groups in the network.</li>
<li>Group Details – Default view of a group profile. Only visible once a group has been created.</li>
<li>Members – Searchable listing of all members of the network.</li>
<li>Profile – This is the page used to display a member&#8217;s profile.</li>
<li>Inbox – Same as Basic Configuration.</li>
<li>Social Summary – The Social Stream. This page will show you updates and activity for members and groups on the site. It can be filtered to show specific types of information or certain user types.</li>
<li>Login – Create a separate page containing only the active social login. This will be used for verified registration or other non-standard logins.</li>
<li>Sign-Up – A page containing the Active Social Sign-Up wizard. Set this page as the “User Page” in the site settings. It will automatically redirect users to their profile.</li>
</ul>
<p>Lastly there is the Expert Option, which is according to the user manual is not for the faint of heart and in fact isn&#8217;t really covered.</p>
<p>The next step is to configure the modules on the pages and set the functionality your looking for. This is probably a good place to stop and resign myself that there will be a part two of this blog.</p>
<p>Comments welcome&#8230;</p>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://blog.nddllc.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://blog.nddllc.com/2010/07/16/active-social-reviewed-part1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Microsoft&#8217;s WebMatrix, Development Suite</title>
		<link>http://blog.nddllc.com/2010/07/07/microsofts-webmatrix-development-suite/</link>
		<comments>http://blog.nddllc.com/2010/07/07/microsofts-webmatrix-development-suite/#comments</comments>
		<pubDate>Wed, 07 Jul 2010 20:37:20 +0000</pubDate>
		<dc:creator>Chris Smith</dc:creator>
				<category><![CDATA[Web Development]]></category>
		<category><![CDATA[ASP.NET MVC]]></category>
		<category><![CDATA[beta]]></category>
		<category><![CDATA[Microsoft]]></category>

		<guid isPermaLink="false">http://blog.nddllc.com/?p=250</guid>
		<description><![CDATA[WebMatrix is a stack of tools designed to make web development easy. The stack contains IIS Developer Express web server, SQL Server Compact Edition web database and the ASP.NET “Razor”. Razor is Microsoft&#8217;s new view engine for ASP.NET. WebMatrix was developed to be easy and focus on getting results for your website. It has integrated [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.asp.net/webmatrix">WebMatrix</a> is a stack of tools designed to make web development easy. The stack contains IIS Developer Express web server, SQL Server Compact Edition web  database and the ASP.NET “Razor”. <a href="http://weblogs.asp.net/scottgu/archive/2010/07/02/introducing-razor.aspx" target="_blank">Razor </a>is Microsoft&#8217;s new view engine for ASP.NET.</p>
<p>WebMatrix was developed to be easy and focus on getting results for your website. It has integrated the code editor, database editor, web server manager, all while focusing on SEO. And as your needs grow, you can seamlessly move to Visual Studio.</p>
<p>There are two ways to get started using WebMatrix once you have it installed (<a href="http://www.microsoft.com/web/webmatrix/download/" target="_blank">download here</a>). You can start with a your own project from scratch or start with one of the web popular Open Source web applications such as <a href="http://www.dotnetnuke.com/" target="_blank">DotNetNuke</a>, <a href="http://umbraco.org/" target="_blank">Umbraco</a>, <a href="http://wordpress.org/" target="_blank">WordPress</a> and <a href="http://www.joomla.org/" target="_blank">Joomla!</a>.</p>
<p>After you&#8217;ve begun working, because WebMatrix integrates with IIS Developer Express and is tightly linked  with the Web server components that your site runs on, you can directly monitor  real-time Web requests and responses to track down problems right at the  source. You can even resolve the little peeves like images that are missing.</p>
<p>SEO tools, much like those available in IIS 7.5 , make optimizing your web application easy and will even take you to your weak spots with suggested solutions.</p>
<p>WebMatrix is the easiest way to learn standards-based Web development  and makes it simple to build and publish Web sites on the internet.   Start with HTML, CSS and JavaScript and then seamlessly connect to a  database or add in dynamic server code using the new ‘Razor’ syntax for  ASP.NET Web pages. Your code is easy to read, simple to learn, short to  write and works with any text editor.  Use built-in helper functions to  connect to a database, display a Twitter feed, or embed a video.  And  with a seamless path to ASP.NET MVC it is now easier than ever to create  powerful ASP.NET Web applications.</p>
<p>I&#8217;ll provide some feedback as soon as I&#8217;ve had the time to fully &#8220;kick the tires.&#8221; Stay tuned.</p>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://blog.nddllc.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://blog.nddllc.com/2010/07/07/microsofts-webmatrix-development-suite/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Installing DotNetNuke on IIS 7.5</title>
		<link>http://blog.nddllc.com/2010/03/24/installing-dotnetnuke-on-iis-7-5/</link>
		<comments>http://blog.nddllc.com/2010/03/24/installing-dotnetnuke-on-iis-7-5/#comments</comments>
		<pubDate>Wed, 24 Mar 2010 17:41:59 +0000</pubDate>
		<dc:creator>Chris Smith</dc:creator>
				<category><![CDATA[Best Practices]]></category>
		<category><![CDATA[DotNetNuke]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[IIS 7.5]]></category>

		<guid isPermaLink="false">http://blog.nddllc.com/?p=176</guid>
		<description><![CDATA[There have been many questions on how to install and configure DotNetNuke on IIS 7.5 which ships in Windows 7 and Windows 2008 R2. I will outline the procedure I use to do so. For this example I will be using Windows 2008 R2 64-bit. When you first login to 2008 R2 you will be [...]]]></description>
			<content:encoded><![CDATA[<p>There have been many questions on how to install and configure DotNetNuke on IIS 7.5 which ships in Windows 7 and Windows 2008 R2. I will outline the procedure I use to do so. For this example I will be using Windows 2008 R2 64-bit.</p>
<p>When you first login to 2008 R2 you will be greeted with the Server Manager.</p>
<p style="text-align: left;">
<div id="attachment_178" class="wp-caption aligncenter" style="width: 310px"><a href="http://blog.nddllc.com/wp-content/uploads/2010/03/DNN-R2-001.png"><img class="size-full wp-image-178 " title="DNN-R2-001_" src="http://blog.nddllc.com/wp-content/uploads/2010/03/DNN-R2-001_.png" alt="Server Manager" width="300" height="225" /></a><p class="wp-caption-text">Server Manager</p></div>
<p style="text-align: left;">After you expand the Roles node and the Web Server node in the left pane you will be in the main IIS Manager.</p>
<p style="text-align: left;">
<div id="attachment_180" class="wp-caption aligncenter" style="width: 310px"><a href="http://blog.nddllc.com/wp-content/uploads/2010/03/DNN-R2-002.png"><img class="size-full wp-image-180" title="DNN-R2-002_" src="http://blog.nddllc.com/wp-content/uploads/2010/03/DNN-R2-002_.png" alt="IIS Manager 7.5" width="300" height="212" /></a><p class="wp-caption-text">IIS Manager 7.5 </p></div>
<p style="text-align: left;">Right Click on the &#8220;Sites&#8221; folder and select &#8220;Add Web Site.&#8221;</p>
<p style="text-align: left;">
<div id="attachment_182" class="wp-caption aligncenter" style="width: 310px"><a href="http://blog.nddllc.com/wp-content/uploads/2010/03/DNN-R2-003.png"><img class="size-full wp-image-182" title="DNN-R2-003_" src="http://blog.nddllc.com/wp-content/uploads/2010/03/DNN-R2-003_.png" alt="Add Web Site" width="300" height="225" /></a><p class="wp-caption-text">Add Web Site</p></div>
<p style="text-align: left;">In the next screen we enter the web sites specifics. Fill in the highlighted areas with your information. Note that as you enter your site name an new Application Pool is created.</p>
<p style="text-align: center;">
<div id="attachment_184" class="wp-caption aligncenter" style="width: 310px"><a href="http://blog.nddllc.com/wp-content/uploads/2010/03/DNN-R2-004.png"><img class="size-full wp-image-184" title="DNN-R2-004_" src="http://blog.nddllc.com/wp-content/uploads/2010/03/DNN-R2-004_.png" alt="Web Site Details" width="300" height="225" /></a><p class="wp-caption-text">Web Site Details</p></div>
<p>During the above process you will create a new directory to which you will deploy your DNN code.</p>
<p style="text-align: left;">
<div id="attachment_186" class="wp-caption aligncenter" style="width: 310px"><a href="http://blog.nddllc.com/wp-content/uploads/2010/03/DNN-R2-005.png"><img class="size-full wp-image-186" title="DNN-R2-005_" src="http://blog.nddllc.com/wp-content/uploads/2010/03/DNN-R2-005_.png" alt="Create Directory" width="300" height="225" /></a><p class="wp-caption-text">Create Website Directory</p></div>
<p>After this is complete, select Application Pools from the IIS Manager node. The detailed view should indicate that the AppPool is in Integrated Pipeline mode.</p>
<p style="text-align: left;">
<div id="attachment_188" class="wp-caption aligncenter" style="width: 310px"><a href="http://blog.nddllc.com/wp-content/uploads/2010/03/DNN-R2-006.png"><img class="size-full wp-image-188" title="DNN-R2-006_" src="http://blog.nddllc.com/wp-content/uploads/2010/03/DNN-R2-006_.png" alt="AppPool View" width="300" height="225" /></a><p class="wp-caption-text">AppPool View</p></div>
<p style="text-align: left;">If you have not already done so, copy your DNN files to your website directory. In IIS Manager right click your new website and:</p>
<ol>
<li>Select &#8220;Edit Permissions.&#8221;</li>
<li>Select the “Security” tab.</li>
<li>Click the “Edit” and then “Add” button</li>
<li>Click the “Locations” button and make sure you select your machine.</li>
<li>Enter “IIS AppPool\&lt;YourAppPoolName&gt;” in the “Enter the object names to select:” text box.</li>
<li>Click the “Check Names” button and click “OK”.</li>
<li>Grant &lt;YourAppPoolName&gt; modify permissions on the directory.</li>
</ol>
<p style="text-align: left;">
<div id="attachment_149" class="wp-caption aligncenter" style="width: 380px"><a href="http://blog.nddllc.com/wp-content/uploads/2010/03/AppPool04.png"><img class="size-full wp-image-149 " title="AppPool04" src="http://blog.nddllc.com/wp-content/uploads/2010/03/AppPool04.png" alt="Securing Resources" width="370" height="197" /></a><p class="wp-caption-text">Securing Resources for your Process  Identity</p></div>
<p style="text-align: left;">At this point you are ready to edit your web.config for your database connection., and get started.</p>
<p style="text-align: left;">If you have any questions on the Application pool details, I have covered this in an earlier Blog, you can <a href="http://blog.nddllc.com/2010/03/04/iis-7-5-apppool-identities/">read that here.</a></p>
<p style="text-align: left;">
<p style="text-align: center;">
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://blog.nddllc.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://blog.nddllc.com/2010/03/24/installing-dotnetnuke-on-iis-7-5/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>The new-look DotNetNuke</title>
		<link>http://blog.nddllc.com/2010/03/14/the-new-look-dotnetnuke-2/</link>
		<comments>http://blog.nddllc.com/2010/03/14/the-new-look-dotnetnuke-2/#comments</comments>
		<pubDate>Sun, 14 Mar 2010 18:46:45 +0000</pubDate>
		<dc:creator>Chris Smith</dc:creator>
				<category><![CDATA[DotNetNuke]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[DNN]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://blog.nddllc.com/?p=161</guid>
		<description><![CDATA[So, what do I mean by new look? Well, the powers-that-be have moved DotNetNuke (DNN) to an open repository. Since it&#8217;s inception from the iBuySpy days the repository has been closed.  I should note that the project has always released a &#8220;source&#8221; version of the application to the public, and for the first few years [...]]]></description>
			<content:encoded><![CDATA[<p>So, what do I mean by new look? Well, the powers-that-be have moved <a href="http://www.dotnetnuke.com/" target="_blank">DotNetNuke</a> (DNN) to an <a href="http://dotnetnuke.codeplex.com/" target="_blank">open repository</a>. Since it&#8217;s inception from the iBuySpy days the repository has been closed.  I should note that the project has always released a &#8220;source&#8221; version of the application to the public, and for the first few years this system worked for a majority of the DNN community.</p>
<p>Times change however, and<a href="http://www.dotnetnuke.com/About/Overview/tabid/822/Default.aspx" target="_blank"> DotNetNuke Corporation</a> is adapting to these changes. For instance the Issue Tracking has been reworked, and the new &#8220;Just like Clockwork&#8221; release dates. The later replacing the &#8220;When it&#8217;s Ready&#8221; policy. I was never a big fan of this policy but I do understand that a project that relied on a largely volunteer staff, this was a best fit model for DNN. Again, times change.</p>
<p>A few personal observations from someone (me) who has used, developed to and profited from DNN since version 1.5, the iBuySpy fork:</p>
<ol>
<li>I have noticed that the quality of releases since DNN incorporated has risen greatly. There seems to be more attention paid to details and the QA/Testing group appears to have things well in hand.</li>
<li>The security of a DNN build has always been handled well, but the newer releases have been outstanding with no critical issues in well over a year. Kudos go to Cathal Connolly for an outstanding effort.</li>
</ol>
<p>If you haven&#8217;t installed and tested this rich development platform, or perhaps you have in the past and lost favor; you need to check-it out. You&#8217;ll find a <a href="http://www.dotnetnuke.com/tabid/795/Default.aspx" target="_blank">robust community</a> and user-groups world-wide. Give it a shot.</p>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://blog.nddllc.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://blog.nddllc.com/2010/03/14/the-new-look-dotnetnuke-2/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Silverlight and Smooth Streaming – part 3</title>
		<link>http://blog.nddllc.com/2010/03/03/silverlight-and-smooth-streaming-%e2%80%93-part-3/</link>
		<comments>http://blog.nddllc.com/2010/03/03/silverlight-and-smooth-streaming-%e2%80%93-part-3/#comments</comments>
		<pubDate>Wed, 03 Mar 2010 20:43:21 +0000</pubDate>
		<dc:creator>Chris Smith</dc:creator>
				<category><![CDATA[Web Development]]></category>
		<category><![CDATA[audio]]></category>
		<category><![CDATA[IIS 7.5]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Silverlight]]></category>
		<category><![CDATA[Smooth Streaming]]></category>
		<category><![CDATA[video]]></category>

		<guid isPermaLink="false">http://blog.nddllc.com/?p=126</guid>
		<description><![CDATA[Mentioned in my previous two posts, Smooth Streaming  is Microsoft’s completion of HTTP-based adaptive streaming, which is a truly a hybrid media delivery method. It may act like streaming, but it is in fact based on HTTP progressive download. The HTTP downloads are performed in a series of small chunks, allowing the media to get [...]]]></description>
			<content:encoded><![CDATA[<p>Mentioned in my previous two posts, Smooth Streaming  is Microsoft’s completion of HTTP-based adaptive streaming, which is a truly a hybrid media delivery method. It may act like streaming, but it is in fact based on HTTP progressive download. The HTTP downloads are performed in a series of small chunks, allowing the media to get easily and cheaply cached along the edge of the network, closer to the end users. The Expression Encoder provides multiple encoded bitrates of the same media source also allows Silverlight clients to seamlessly and dynamically switch between bitrates depending on network conditions and CPU power. The end users experience is one of reliable, consistent playback without stutter, buffering or “last mile” pipe-line clog.</p>
<p>A Microsoft media format and no ASF? That’s right. Why MP4 and not ASF? Well, here are a few reasons:<br />
•    MP4 is a lighter container and uses less overhead.<br />
•    MP4 are easier to “digest” by .NET.<br />
•    MP4 is more widely supported.<br />
•    MP4 was architected with H.264 video codec support, although ASF can be as well, it’s not as native.<br />
•    MP4 was designed to natively support payload fragmentation</p>
<p>There are actually two parts to the Smooth Streaming format: the wire format and the disk file format. In Smooth Streaming, a video is recorded in full length to the disk as a single file (one file per encoded bit rate), but it&#8217;s transferred to the client as a series of small file chunks. The wire format defines the structure of the chunks that are sent by IIS to the client, whereas the file format defines the structure of the contiguous file on disk, enabling better file management. Fortunately, the MP4 specification allows MP4 to be internally organized as a series of fragments, which means that in Smooth Streaming the wire format is a direct subset of the file format.</p>
<p>So exactly what are these “fragments”? The basic unit of an MP4 file is called a &#8220;box.&#8221; These boxes can contain both data and metadata. The MP4 specification allows for various ways to organize data and metadata boxes within a file. In most media scenarios, it&#8217;s considered useful to have the metadata written before the data so that a player client application can have more information about the video/audio that it&#8217;s about to play before it plays it. However, in live streaming scenarios it&#8217;s often not possible to write the metadata up-front about the whole data stream because it&#8217;s simply not yet fully known.</p>
<p style="text-align: center;">The following figure is a high-level overview of what a Smooth Streaming file looks like on the inside:</p>
<p><img title="Fig1-FileFormat" src="http://blog.nddllc.com/wp-content/uploads/2010/02/Fig1-FileFormat.png" alt="Smooth Stream pic1" width="500" height="276" /></p>
<p style="text-align: center;">
<p>In a nutshell, the file starts with file-level metadata (‘moov‘) which generically describes the file, but the bulk of the payload is actually contained in the fragment boxes which also carry more accurate fragment-level metadata (‘moof‘) and media data (‘mdat‘). (The diagram only shows 2 fragments, but a typical Smooth Streaming file has a fragment per every 2 seconds of video/audio.) Closing the file is a ‘mfra‘ index box which allows easy and accurate seeking within the file.<br />
When a Silverlight client requests a video time slice from the IIS Smooth Streaming server, the server simply seeks to the approriate starting fragment in the MP4 file and then lifts the fragment out of the file and sends it over the wire to the client. This is why we refer to the fragments as the “wire format.” This technique greatly enhances the efficiency of the IIS server because it requires no remuxing or rewriting overhead.<br />
Here is what an MP4 fragment looks like in more detail:</p>
<p><img class="aligncenter size-full wp-image-136" style="width: 530px; height: 291px;" title="Fig2-FileFormat" src="http://blog.nddllc.com/wp-content/uploads/2010/03/Fig2-FileFormat.gif" alt="File Fragment" width="530" height="291" /></p>
<p>We say that the Smooth Streaming format is based on the MP4 file format because even though we’re following the ISO specification, we specify our own box organization schema and some custom boxes. In order to differentiate Smooth Streaming files from “vanilla” MP4 files, we use new file extensions: *.ismv (video+audio) and *.isma  (audio only). I keep forgetting to ask the IIS Media team what the acronyms exactly stand for, but my best guess would be “IIS Smooth Streaming Media Video (Audio)”.</p>
<p>Smooth Streaming Media Assets</p>
<p>A typical Smooth Streaming media asset therefore consists of the following files:</p>
<ul>
<li>MP4 files containing video/audio
<ul>
<li>*.ismv – contains video and audio, or only video
<ul>
<li>1 ISMV file per encoded video bitrate</li>
</ul>
</li>
<li>*.isma &#8211; contains only audio
<ul>
<li>In videos with audio, the audio track can be muxed into an ISMV file instead of a separate ISMA file</li>
</ul>
</li>
</ul>
</li>
<li>Server manifest file
<ul>
<li>*.ism</li>
<li>Describes the relationships between media tracks, bitrates and files on disk</li>
<li>Only used by the IIS Smooth Streaming server – not by client</li>
</ul>
</li>
<li>Client manifest file
<ul>
<li>*.ismc</li>
<li>Describes to the client the available streams, codecs used, bitrates encoded, video resolutions, markers, captions, etc.</li>
<li>It’s the first file delivered to the client</li>
</ul>
</li>
</ul>
<p>Both manifest file formats are based on XML. The server manifest file format is based specifically on the SMIL 2.0 XML format specification.</p>
<p>A folder containing a single Smooth Streaming media asset might look something like this:</p>
<div id="attachment_137" class="wp-caption aligncenter" style="width: 725px"><img class="size-full wp-image-137" style="width: 715px; height: 353px;" title="smooth_slide19" src="http://blog.nddllc.com/wp-content/uploads/2010/03/smooth_slide19.png" alt="Smooth Streaming media assets" width="715" height="353" /><p class="wp-caption-text">A folder containing a Smooth Streaming media assets</p></div>
<p>In this particular case the audio track is contained in the <em>NBA_3000000.ismv</em> file.</p>
<p><span style="text-decoration: underline;"><strong>Smooth Streaming  Manifest Files</strong></span></p>
<p>The Smooth Streaming Wire/File Format specification defines the  manifest XML language as well as the MP4 box structure. Because the  manifests are based on XML they are highly extensible. Among the  features already included in the current Smooth Streaming format  specification is support for:</p>
<ul>
<li>VC-1, WMA, H.264 and AAC codecs</li>
<li>Text streams</li>
<li>Multi-language audio tracks</li>
<li>Alternate video and audio tracks (i.e. multiple camera angles,  director’s commentary, etc.)</li>
<li>Multiple hardware profiles (i.e. same bitrates targeted at different  playback devices)</li>
<li>Script commands, markers/chapters, captions</li>
<li>Client manifest Gzip compression</li>
<li>URL obfuscation</li>
<li>Live encoding and streaming</li>
</ul>
<p><span style="text-decoration: underline;"><strong>Smooth Streaming  Playback: Bringing It All Home</strong></span></p>
<p>Microsoft’s adaptive streaming prototype (used for NBC  Olympics 2008) relied on physically chopping up long video files into  small file chunks. In order to retrieve the chunks for the web server,  the player client simply needed to download files in a logical sequence:  <em>00001.vid, 00002.vid, 00003.vid</em>, etc.</p>
<p>As I’ve explained in this and previous posts, Smooth Streaming uses a  more sophisticated file format and server design. The videos are no  longer split up into thousands of file chunks, but are instead  “virtually” split up into fragments (typically 1 fragment per video GOP)  and stored within a single contiguous MP4 file. This implies two  significant changes in server and client design too:</p>
<ol>
<li>The server must be able to translate URL requests into exact byte  range offsets within the MP4 file, and</li>
<li>The client can request chunks in a more developer-friendly manner,  such as by timecode instead of by index number</li>
</ol>
<p>The first thing a Silverlight client requests from the Smooth  Streaming server is the <strong>*.ismc</strong> client manifest. The  manifest tells it which codecs were used  to compress the content (so  that the Silverlight runtime can initialize the correct decoder and  build the playback pipeline), which bitrates and resolutions are  available, and a list of all the available chunks and either their start  times or durations.</p>
<p>With IIS7 Smooth Streaming, a client is expected to request fragments  in the form of<a title="RESTful" href="http://en.wikipedia.org/wiki/Representational_State_Transfer#RESTful_Web_services" target="_blank"> </a><a title="RESTful Web" href="http://en.wikipedia.org/wiki/Representational_State_Transfer#RESTful_Web_services" target="_blank">RESTful  URLs</a>:</p>
<pre>http://video.foo.com/NBA.ism/QualityLevels(<strong>400000</strong>)/Fragments(video=<strong>610275114</strong>)

http://video.foo.com/NBA.ism/QualityLevels(<strong>64000</strong>)/Fragments(audio=<strong>631931065</strong>)</pre>
<p>The values passed in the URL represent encoded bitrate (i.e. 400000)  and the fragment start offset (i.e. 610275114) expressed in an  agreed-upon time unit (usually 100 ns). These values are known from the  client manifest.</p>
<p>Upon receiving a request like this, the IIS7 Smooth Streaming  component looks up the quality level (bitrate) in the corresponding <strong>*.ism </strong>server manifest and maps it to a physical <strong>*.ismv</strong> or <strong>*.isma</strong> file on disk. It then goes and reads the  appropriate MP4 file, and based on its <em>‘tfra’</em> index box figures  out which fragment box (‘<em>moof’</em> + ‘<em>mdat’</em>) corresponds  to the requested start time offset. It then extracts the said fragment  box and sends it over the wire to the client as a standalone file. This  is a particularly important part of the overall design because the sent  fragment/file can now be automatically cached further down the network,  potentially saving the origin server from sending the same fragment/file  again to another client requesting the same RESTful URL.</p>
<p>As you can see, requesting chunks of video/audio from the server is  easy. But what about dynamic bitrate switching that makes adaptive  streaming so effective? This part of the Smooth Streaming experience is  implemented entirely in client-side Silverlight application code – the  server plays no part in the bitrate switching process. The client-side  code looks at chunk download times, buffer fullness, rendered frame  rates, and other factors – and based on them decides when to request  higher or lower bitrates from the server. Remember, if during the  encoding process we ensure that all bitrates of the same source are  perfectly frame aligned (same length GOPs, no dropped frames), then  switching between bitrates is completely seamless – and <span style="text-decoration: underline;">Smooth</span>.</p>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 805px; width: 1px; height: 1px; overflow: hidden;">
<p>We say that the Smooth Streaming format is <em>based</em> on the MP4  file format because even though we’re following the ISO specification,  we specify our own box organization schema and some custom boxes. In  order to differentiate Smooth Streaming files from “vanilla” MP4 files,  we use new file extensions: *.<strong>ismv</strong> (video+audio) and *.<strong>isma</strong> (audio only). I keep forgetting to ask the IIS Media team what the  acronyms exactly stand for, but my best guess would be “<strong>I</strong>IS  <strong>S</strong>mooth Streaming <strong>M</strong>edia <strong>V</strong>ideo  (<strong>A</strong>udio)”.</p>
<p><span style="text-decoration: underline;"><strong>Smooth Streaming  Media Assets</strong></span></p>
<p>A typical Smooth Streaming media asset therefore consists of the  following files:</p>
<ul>
<li>MP4 files containing video/audio
<ul>
<li>*.<strong>ismv</strong> – contains video and audio, or only video
<ul>
<li>1 ISMV file per encoded video bitrate</li>
</ul>
</li>
<li>*.<strong>isma</strong> &#8211; contains only audio
<ul>
<li>In videos with audio, the audio track can be muxed into an ISMV file  instead of a separate ISMA file</li>
</ul>
</li>
</ul>
</li>
<li>Server manifest file
<ul>
<li>*.<strong>ism</strong></li>
<li>Describes the relationships between media tracks, bitrates and files  on disk</li>
<li>Only used by the IIS Smooth Streaming server – not by client</li>
</ul>
</li>
<li>Client manifest file
<ul>
<li>*.<strong>ismc</strong></li>
<li>Describes to the client the available streams, codecs used, bitrates  encoded, video resolutions, markers, captions, etc.</li>
<li>It’s the first file delivered to the client</li>
</ul>
</li>
</ul>
<p>Both manifest file formats are based on XML. The server manifest file  format is based specifically on the <a href="http://www.w3.org/TR/SMIL20/">SMIL 2.0</a> XML format  specification.</p>
<p>A folder containing a single Smooth Streaming media asset might look  something like this:</p>
</div>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://blog.nddllc.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://blog.nddllc.com/2010/03/03/silverlight-and-smooth-streaming-%e2%80%93-part-3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Silverlight and Smooth Streaming &#8211; part 2</title>
		<link>http://blog.nddllc.com/2010/02/17/silverlight-and-smooth-streaming-part-2/</link>
		<comments>http://blog.nddllc.com/2010/02/17/silverlight-and-smooth-streaming-part-2/#comments</comments>
		<pubDate>Wed, 17 Feb 2010 18:55:45 +0000</pubDate>
		<dc:creator>Chris Smith</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[bandwidth]]></category>
		<category><![CDATA[Bit Rate Throttling]]></category>
		<category><![CDATA[IIS 7.5]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Silverlight]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://blog.nddllc.com/?p=120</guid>
		<description><![CDATA[In the last installment of this series I covered the basic tools and theories behind delivering great streaming content to your audience without breaking the bank. Either out of pocket or in bandwidth, so lets talk about Bit Rate Throttling to begin with. Imagine this &#8211; a client connects to your server, clicks on your [...]]]></description>
			<content:encoded><![CDATA[<p>In the last installment of this series I covered the basic tools and theories behind delivering great streaming content to your audience without breaking the bank. Either out of pocket or in bandwidth, so lets talk about Bit Rate Throttling to begin with.</p>
<p>Imagine this &#8211; a client connects to your server, clicks  on your featured video, watches 5 seconds of it to realize they have no  interest in watching further, and move on to the next video.</p>
<p>In  those 5 seconds, the server could have sent out 5 minutes worth of the  video, and you paid for 5 minutes worth of bandwidth! With the Bit Rate Throtter + media bitrate detection, the server would only end up  sending a little over 5 seconds worth, and you would end up paying only  for what was used.</p>
<p>Bit Rate Throttling (BRT) is a module plug-in for IIS 7 0r IIS 7.5. It&#8217;s an extension of the IIS Media Service. The IIS7 Bit Rate Throttling module was first announced at the National  Association of Broadcasters (NAB) <a title="NAB 2007 press  release" href="http://www.microsoft.com/presspass/press/2007/apr07/04-15WPFEPR.mspx" target="_blank">show</a> last April as part of the TCO advantage for <a title="Silverlight" href="http://www.microsoft.com/silverlight/" target="_blank">Silverlight</a>.  Enabling Web masters to throttle the delivery of any file  based on the file type. It also has additional functions for digital  audio/video files. Throttling can be set at the following levels within  Internet Information Services (IIS) Manager: server, site, virtual  directory, and file.</p>
<p>BRT contains the following features:</p>
<ul>
<li>Fast Start &#8211; the ability to send the first part of the media file  without rate limiting, to seed the playback buffer in the player and  make sure that playback can begin as soon as possible (most players try  to pre-buffer a certain amount of the video, often 5 seconds, before  starting playback). This also insures that if the connection suffers a hiccup, the playback can continue uninterrupted.</li>
<li>Disconnect detection<em> </em>- when the client stops watching the  video, goes to another page, or closes the video, the BRT  detects the connection closure and stops sending the file.</li>
<li>Built-in support for detecting the playback rate for common media  formats, including .asf, .avi, .flv, .m4v, .mov, .mp3, .mp4, .rm,  .rmvb, .wma, and .wmv.</li>
<li>Ability to configure static throttling rates, and media auto-detection  rates at any configuration level.</li>
</ul>
<p>It should also be noted you can configure the BRT module to handle static files as well, such as a large [progressive] .jpg file. So, if you feel you need to trim the bandwidth, Bit Rate Throttling module is a great place to start.</p>
<p>In the next segment I&#8217;ll focus on the Smooth Streaming IIS 7+ features and capabilities.</p>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://blog.nddllc.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://blog.nddllc.com/2010/02/17/silverlight-and-smooth-streaming-part-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Silverlight and Smooth Streaming</title>
		<link>http://blog.nddllc.com/2010/02/13/silverlight-and-smooth-streaming/</link>
		<comments>http://blog.nddllc.com/2010/02/13/silverlight-and-smooth-streaming/#comments</comments>
		<pubDate>Sat, 13 Feb 2010 19:40:26 +0000</pubDate>
		<dc:creator>Chris Smith</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[Expression Encoder 3]]></category>
		<category><![CDATA[Expression Studio]]></category>
		<category><![CDATA[Expression Web]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[IIS 7.5]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Silverlight]]></category>

		<guid isPermaLink="false">http://blog.nddllc.com/?p=114</guid>
		<description><![CDATA[At first glance Silverlight seems like just another platform for creating interactive website, desktop and mobile applications. Much like Adobe&#8217;s Flash or AIR. but there is a lot more to it. As I&#8217;ve mentioned before, I&#8217;m all about giving my clients a product that suites them best even though it may be outside of my [...]]]></description>
			<content:encoded><![CDATA[<p>At first glance Silverlight seems like just another platform for creating interactive website, desktop and mobile applications. Much like Adobe&#8217;s Flash or AIR. but there is a lot more to it. As I&#8217;ve mentioned before, I&#8217;m all about giving my clients a product that suites them best even though it may be outside of my &#8220;comfort zone.&#8221;</p>
<p>I have a client (to be named later) that had a need to deliver high-quality videos without breaking the budget. By budget I mean in terms of bandwidth, encoding, and preparation. We also host this clients website which was recently moved to a new server running Windows 2008 R2, with IIS 7.5. So in looking for a solution I came upon Silverlight, which is a natural fit with IIS 7.5&#8242;s  Media Services and Smooth Streaming.</p>
<p>To make this scenario work, you&#8217;ll need Microsoft&#8217;s Expression Web 3 or Microsoft&#8217;s Expression Studio 3. The Expression Encoder 3 is bundled with those packages with sell from (estimated) $150 to $500 dollars. Both packages offer a wide array of tools that will help in your video encoding as well as many other tasks such as website development and desktop applications.</p>
<p>With Expression Web 3 alone, you be able to code in PHP, HTML/XHTML, CSS, JavaScript, ASP.NET, ASP.NET AJAX, all using standards-based code (yes, I checked), however Expression Encoder is the key. It&#8217;s not only easy to navigate and use, but allows you to drop in QuickTime, AVI, MPEG, and other formats into the encoder, and utilize the latest quality and speed improvements to the VC-1 or H.264 codecs, choose a Silverlight template (or make your own), and publish directly to a web server using Expression Encoder Publishing Plug-in. It should be noted that the video can also be published locally and viewed.</p>
<p>Smooth Streaming is the production version of a technology first used by Microsoft to deliver on-demand video of the 2008 Summer Olympics for <a href="http://www.NBCOlympics.com" target="_blank">NBCOlympics.com</a>. By dynamically monitoring both local bandwidth and video rendering performance, Smooth Streaming optimizes playback of content by switching video quality in real-time.</p>
<p>Using Smooth Streaming, visitors with high bandwidth connections and modern computers can experience full HD quality streaming, while others with lower bandwidth or older computers receive the appropriate stream for their capabilities. The result is visitors across the board enjoy a compelling, uninterrupted streaming experience, which ultimately lead to extended visitor stays and increased revenue opportunities.</p>
<p>In my next installment of this topic, I&#8217;ll cover the nuts and bolts of Bit Rate Throttling and Smooth Streaming.</p>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://blog.nddllc.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://blog.nddllc.com/2010/02/13/silverlight-and-smooth-streaming/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Joomla! &#8211; A first re-look</title>
		<link>http://blog.nddllc.com/2010/01/26/joomla-a-first-re-look/</link>
		<comments>http://blog.nddllc.com/2010/01/26/joomla-a-first-re-look/#comments</comments>
		<pubDate>Tue, 26 Jan 2010 12:35:03 +0000</pubDate>
		<dc:creator>Chris Smith</dc:creator>
				<category><![CDATA[Software Development]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[CMS]]></category>
		<category><![CDATA[Joomla]]></category>
		<category><![CDATA[LAMP]]></category>
		<category><![CDATA[MySQL]]></category>

		<guid isPermaLink="false">http://blog.nddllc.com/?p=109</guid>
		<description><![CDATA[There are times when a product that you use, like, program for and have become very familiar with begins to lose it&#8217;s luster. I&#8217;m speaking of a very well known CMS, who will at this point remain nameless. We&#8217;ll just refer to it as BrandX for now. That time comes when you have this &#8220;feeling&#8221; [...]]]></description>
			<content:encoded><![CDATA[<p>There are times when a product that you use, like, program for and have become very familiar with begins to lose it&#8217;s luster. I&#8217;m speaking of a very well known CMS, who will at this point remain nameless. We&#8217;ll just refer to it as BrandX for now. That time comes when you have this &#8220;feeling&#8221; and its confirmed by a long-time good client. It&#8217;s at that point you know that ignoring it won&#8217;t make it go away.</p>
<p>Over the past year or so I have become more familiar with and almost comfortable with the LAMP stack (Linux, Apache, MySQL and PHP.) I have been a die-hard Microsoft developer and admit that my strength is in the IIS, MSSQL, and .NET stack. All developer have they&#8217;re comfort zone, but I digress. Lets talk <a href="http://www.joomla.org/" target="_blank">Joomla!</a>.</p>
<p>Lets start with the test server. It&#8217;s VM running <a href="http://www.ubuntu.com/products/whatisubuntu/serveredition" target="_blank">Ubuntu</a> 9.10 with the LAMP stack installed. A freshly downloaded copy of Joomla! 1.5 in place and the installation begins. Here is where some other CMS&#8217;s can take a lesson (including BrandX)! The installation was very straight forward and took literally a minute to complete! A few minor configuration settings,a database name, user and presto, your in business.</p>
<p>That was the easy part. Now what to do in this new interface? A new world compared to BrandX! As with any &#8220;new&#8221; product a learning curve is a certainty, but Joomla! is truly a whole new world. I&#8217;ll write back with my finding and I look forward tou your comments.</p>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://blog.nddllc.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://blog.nddllc.com/2010/01/26/joomla-a-first-re-look/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Amazon S3 and the SMB</title>
		<link>http://blog.nddllc.com/2010/01/07/amazon-s3-and-the-smb/</link>
		<comments>http://blog.nddllc.com/2010/01/07/amazon-s3-and-the-smb/#comments</comments>
		<pubDate>Thu, 07 Jan 2010 12:53:00 +0000</pubDate>
		<dc:creator>Chris Smith</dc:creator>
				<category><![CDATA[Best Practices]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[Amazon]]></category>
		<category><![CDATA[back-up]]></category>
		<category><![CDATA[backup]]></category>
		<category><![CDATA[off-site]]></category>
		<category><![CDATA[S3]]></category>
		<category><![CDATA[SMB]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://blog.nddllc.com/?p=100</guid>
		<description><![CDATA[We, as an SMB (small and medium business), have been using Amazon&#8217;s S3 for sometime now. We are a small software development company that specializes in web applications. We also host web applications and sites. The benefit of S3 is it gives us the ability to keep complete off-site back-ups as well as share certain [...]]]></description>
			<content:encoded><![CDATA[<p>We, as an SMB (small and medium business), have been using Amazon&#8217;s S3 for sometime now. We are a small software development company that specializes in web applications. We also host web applications and sites. The benefit of S3 is it gives us the ability to keep complete off-site back-ups as well as share certain files with outside contractors and clients.</p>
<p>This probably isn&#8217;t anything earth shattering to most, but it certainly beats our old system of taking back-up tapes and DVD off-site every night. That method had too many short-comings to say the least.</p>
<p>Recently, for one of our secure document storage web applications, we started incorporating a data provider that utilizes the S3 API. Setting a search provider for S3 proved to be a bit of a challenge, but so far it has worked out fairly well.</p>
<p>So lets get back to the topic at hand. For the SMB looking for a cost effective way to keep file storage organized and highly available, I&#8217;m hard pressed to come up with another viable solution. If you&#8217;re the owner of a SMB or work for one, what options have you explored? What method of [off-site] back-up are you using? I&#8217;d really like to hear from you&#8230;</p>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://blog.nddllc.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://blog.nddllc.com/2010/01/07/amazon-s3-and-the-smb/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>DotNetNuke 5.2.1 Released</title>
		<link>http://blog.nddllc.com/2009/12/29/dotnetnuke-5-2-1-released/</link>
		<comments>http://blog.nddllc.com/2009/12/29/dotnetnuke-5-2-1-released/#comments</comments>
		<pubDate>Tue, 29 Dec 2009 11:14:28 +0000</pubDate>
		<dc:creator>Chris Smith</dc:creator>
				<category><![CDATA[DotNetNuke]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[DNN]]></category>
		<category><![CDATA[portal]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[Telerik]]></category>

		<guid isPermaLink="false">http://blog.nddllc.com/?p=79</guid>
		<description><![CDATA[While the newest DotNetNuke release (5.2.1) is primarily a stabilization release, it does pack a much needed new caching provider that allows the application to run much better under load with improved performance. There have been a few cases, from what I can see, with some minor upgrade issues but as a whole this is [...]]]></description>
			<content:encoded><![CDATA[<p>While the newest <a href="http://www.dotnetnuke.com/" target="_blank">DotNetNuke</a> release (5.2.1) is primarily a stabilization release, it does pack a much needed new caching provider that allows the application to run much better under load with improved performance. There have been a few cases, from what I can see, with some minor upgrade issues but as a whole this is a worthwhile upgrade.</p>
<p>The major highlights are:</p>
<ul>
<li>Fixed issue where banners were not properly rotated according to the specified views/clicks.</li>
<li>Fixed issue where upgrades could fail if the the user account did not have permission to update objects in some db schemas.</li>
<li>Fixed issue where list values were visible outside of the Portal where they were created.</li>
<li>Fixed issue where caching providers were not rendering unicode characters properly.</li>
<li>Fixed issue with missing Telerik assembly in the source package.</li>
<li>Fixed issue where Ajax HostSetting was not properly set on upgrade from 4.x installations.</li>
<li>Fixed issues where upgrades would fail with a unique index violation.</li>
<li>Fixed issue with the Starter Kit which was missing HTML module files.</li>
<li>Fixed issue where page templates were not working correctly.</li>
<li>Fixed default settings for the module and output caching providers.</li>
<li>Fixed issue which prevented Blog module from working after some upgrades to 5.x.</li>
<li>Fixed issue when creating a new module in the Module Definition Wizard if the .ascx extension was not specified.</li>
<li>Fixed issue where localization was not working if the application virtual directory name was also part of the module name.</li>
<li>Fixed issue where the FriendlyName for Schedule Items was not being saved.</li>
<li>Fixed issue where GetUserCountByPortal was making excessive database calls instead of using cached values.</li>
<li>Added binding redirect setting in web.config to prevent versioning issues with Telerik assembly.</li>
</ul>
<p>Providers:</p>
<ul>
<li>FileModuleCachingProvider 05.02.01</li>
<li>MemoryModuleCachingProvider 05.02.01</li>
<li>SchedulingProvider 05.02.01</li>
</ul>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://blog.nddllc.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://blog.nddllc.com/2009/12/29/dotnetnuke-5-2-1-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
