<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://danbartels.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd"><channel><title>DanBartels</title><link>http://danbartels.com/b/</link><description>Part Soapbox, Part Sandbox</description><dc:language>en-US</dc:language><generator>Telligent Community 5.6.582.12701 (Build: 5.6.582.12701)</generator><item><title>Going Mac</title><link>http://danbartels.com/blog/b/danb/archive/2012/08/31/going-mac.aspx</link><pubDate>Fri, 31 Aug 2012 15:47:11 GMT</pubDate><guid isPermaLink="false">689e881c-f887-4caa-a108-8998bed89a27:750944</guid><dc:creator>DanB</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;On a recent trip to Microsoft, I found myself getting heckled for my trusty notebooks &amp;quot;Vista Basic&amp;quot; sticker.&amp;nbsp; A Toshiba Protege M700 which has served me well, has been upgraded to 4gb ram and an SSD, but shows its age because it has video driver issues with Windows 2008r2 HyperV and doesn&amp;#39;t support the hardware virtualization required by the new Windows 8 HyperV.&amp;nbsp; The biggest thing I didn&amp;#39;t like about the laptop was the screen resolution, it had a paultry 12.1&amp;quot; screen with a max resolution of 1280x800.&amp;nbsp; I couldn&amp;#39;t even run a standard 1024x768 remote desktop window without hiding the task bar.&lt;/p&gt;
&lt;p&gt;So while the M700 was still cool for its touch screen, led backlight, and I could get a respectable 4 - 6&amp;nbsp;hours of battery (with the extra slice) it was time for a change.&lt;/p&gt;
&lt;p&gt;Enter the Overkill.&lt;/p&gt;
&lt;p&gt;A decade or so ago, mac&amp;#39;s started to use Intel processors, and ever since, they have been assembling the &amp;quot;best&amp;quot; of everything.&amp;nbsp; The Macbooks are just that, all the best options available at the time in one package...&amp;nbsp; with quite a price penalty for all the goodies but...&lt;/p&gt;
&lt;p&gt;So I picked up a new 15&amp;quot; Mac Book Pro with Retina display...&amp;nbsp; Installed&amp;nbsp;Windows 8 via the Bootcamp Utility that comes pre-installed on the mac side, and now I have a Windows 8 desktop with a 7.2 Experience Index (7.2 comes from the nvidia graphics drivers otherwise it would be a 7.9 from the cpu).&amp;nbsp; That is running at 2880x1800 resolution.&amp;nbsp; Its nearly twice the physical size of the Toshiba, I need to run the Windows fonts around 125 - 150% to be able to read it at arms length, but as my piers and colleagues see this notebook, I am sure to sell a few Macbooks along the way.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://danbartels.com/aggbug.aspx?PostID=750944" width="1" height="1"&gt;</description></item><item><title>Sign-up to try the new Office 365 Preview</title><link>http://danbartels.com/blog/b/danb/archive/2012/07/17/sign-up-to-try-the-new-office-365-preview.aspx</link><pubDate>Tue, 17 Jul 2012 15:14:00 GMT</pubDate><guid isPermaLink="false">689e881c-f887-4caa-a108-8998bed89a27:750943</guid><dc:creator>DanB</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Yesterday Microsoft launched a beta of the new version of Microsoft Office 365.&amp;nbsp; &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://danbartels.com/blog/b/danb/archive/2012/07/17/sign-up-to-try-the-new-office-365-preview.aspx"&gt;(Please visit the site to view this video)&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://youtu.be/J-3uK2bRNnE"&gt;http://youtu.be/J-3uK2bRNnE&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I found the preivew links were fairly well hidden...&lt;/p&gt;
&lt;p&gt;Sign up for the preview / beta here&amp;nbsp; &lt;a href="http://www.microsoft.com/office/preview/en/try-office-preview"&gt;http://www.microsoft.com/office/preview/en/try-office-preview&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;here is a little blurb on whats new &lt;a href="http://www.microsoft.com/office/preview/en"&gt;http://www.microsoft.com/office/preview/en&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;While microsoft seems to be avoiding version numbers and naming at all costs...&amp;nbsp; the preivew / beta could represent Office version 15 or perhapse Office 2013; where the current released Office 365 could be considered Office 14.&lt;/p&gt;
&lt;p&gt;You can still sing up&amp;nbsp;to demo the current / released&amp;nbsp;version here &lt;a href="http://www.microsoft.com/en-us/office365/online-software.aspx"&gt;http://www.microsoft.com/en-us/office365/online-software.aspx&lt;/a&gt;...&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;-Dan&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://danbartels.com/aggbug.aspx?PostID=750943" width="1" height="1"&gt;</description><category domain="http://danbartels.com/blog/b/danb/archive/tags/Microsoft/default.aspx">Microsoft</category></item><item><title>Microsoft DNS for developers - .local wildcard</title><link>http://danbartels.com/blog/b/danb/archive/2012/05/04/microsoft-dns-for-developers-local-wildcard.aspx</link><pubDate>Fri, 04 May 2012 14:57:25 GMT</pubDate><guid isPermaLink="false">689e881c-f887-4caa-a108-8998bed89a27:750941</guid><dc:creator>DanB</dc:creator><slash:comments>1</slash:comments><description>&lt;p&gt;Wouldn&amp;#39;t it be great if the internet gods created a DNS top level domain for .local with a wildcard dns a record to 127.0.0.1... &amp;nbsp;If you don&amp;#39;t know what that would do, it would make any dns name ending in .local point to your local system... &amp;nbsp;IE myproject1.local and myproject2.local would resolve to your local system without any host file nonsense.&lt;/p&gt;
&lt;p&gt;While I don&amp;#39;t seem to have any pull with the internet gods these days. &amp;nbsp;It did occur to me that I can affect my only little part of the internet. &amp;nbsp;Here at home I run a domain controller, with that domain controller, I have an DNS server setup so my computers in the domain can resolve each other... &amp;nbsp;If you are like me, then the days of host file editing are over... &amp;nbsp;All you need to do is a couple of clicks away..&lt;/p&gt;
&lt;p&gt;Edit your DNS, and add a new authoritative domain in your &amp;quot;Forward Lookup Zones&amp;quot; for &amp;quot;local&amp;quot;.&lt;/p&gt;
&lt;p&gt;Expand your new &amp;quot;local&amp;quot; zone.&lt;/p&gt;
&lt;p&gt;&lt;img border="0" src="http://danbartels.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-00-00-04/7183.Local.dns.wildcard.PNG" alt=" " /&gt;&lt;/p&gt;
&lt;p&gt;Add a new &amp;quot;a-record&amp;quot; to your zone, &amp;nbsp;use an asterisk (*) for the &amp;quot;host&amp;quot; or &amp;quot;name&amp;quot; and use 127.0.0.1 for the ip address; and bam! &amp;nbsp;All of your PC&amp;#39;s will now have anything.local point to their local address.&lt;/p&gt;
&lt;p&gt;&lt;img border="0" src="http://danbartels.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-00-00-04/8585.Local.dns.wildcard.nslookup.PNG" alt=" " /&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://danbartels.com/aggbug.aspx?PostID=750941" width="1" height="1"&gt;</description><category domain="http://danbartels.com/blog/b/danb/archive/tags/Microsoft/default.aspx">Microsoft</category><category domain="http://danbartels.com/blog/b/danb/archive/tags/Windows+Server+2008/default.aspx">Windows Server 2008</category><category domain="http://danbartels.com/blog/b/danb/archive/tags/ASP-NET/default.aspx">ASP.NET</category><category domain="http://danbartels.com/blog/b/danb/archive/tags/IIS/default.aspx">IIS</category><category domain="http://danbartels.com/blog/b/danb/archive/tags/DNS/default.aspx">DNS</category></item><item><title>Big Social Developer Jam - Widget Plug-ins</title><link>http://danbartels.com/blog/b/danb/archive/2011/09/23/big-social-developer-jam-widget-plug-ins.aspx</link><pubDate>Fri, 23 Sep 2011 14:06:53 GMT</pubDate><guid isPermaLink="false">689e881c-f887-4caa-a108-8998bed89a27:750939</guid><dc:creator>DanB</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Just putting some finishing touches on my Developer Jam item.&lt;/p&gt;
&lt;p&gt;Well a bit of background...&amp;nbsp; What is the Big Social?&amp;nbsp; &lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;That&amp;#39;s our 2011 Telligent Conference that kicks off next week in Dallas... (&lt;a href="http://telligent.com/bigsocial/"&gt;http://telligent.com/bigsocial/&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;What is a Developer Jam? &lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;During the conference, we will have some development workstations setup for devs to get their hands dirty exploring some new features of our 6.0 Platform.&lt;/p&gt;
&lt;p&gt;My Developer Jam session is titled &amp;quot;Create a widget extension plug-in to integrate with an external site&amp;quot;&lt;/p&gt;
&lt;p&gt;Widget &amp;quot;plugins&amp;quot; are these powerful little classes that expose the public properties and methods&amp;nbsp;of an existing class to our velocity rendering engine, so you can use your custom class in our widget framework...&amp;nbsp; At my station you will create a plug-in that exposes some prewritten code to extend the platforms capability.&lt;/p&gt;
&lt;p&gt;I have one sample, pretty straight forward which pulls in TweetStharps API (wrappered by a custom business logic class); this sample shows how easily you can &amp;quot;pull in&amp;quot; data from external sources...&amp;nbsp; &lt;/p&gt;
&lt;p&gt;&lt;img src="http://danbartels.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-00-00-04/1614.Capture.PNG" border="0" alt=" " /&gt;&lt;/p&gt;
&lt;p&gt;But it doesn&amp;#39;t stop there, to truly integrate, you want to go one step further, to do this I have taken the MSDN Code Gallery sample app (CSASPNETAJAXWebChat) and wrapped the WCF class as a plug-in.&amp;nbsp; This allowed me to re-implement the UI with a couple of Telligent widgets, and create a Chat Application for Telligent Evolution 6.0.&amp;nbsp; This can be easily extended with some business logic to extend the chat to other public API&amp;#39;s like IRC or Skype with some minor authentication work and a background service to manage the data flow outside of the ASP.NET page life-cycle.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://danbartels.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-00-00-04/6180.Capture.PNG" border="0" alt=" " /&gt;&lt;/p&gt;
&lt;p&gt;The widgets themselves would still benefit from a &amp;quot;Long Polling&amp;quot; javascript strategy to make the updating of the web client more efficentthan polling; and the chat contents should probably have a mechanism to get archived into a search-able location (like a forum thread) on a periodic basis, but its a good start to show the integration capabilities of our new platform; come check it out!&lt;/p&gt;
&lt;p&gt;-Dan&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://danbartels.com/aggbug.aspx?PostID=750939" width="1" height="1"&gt;</description></item><item><title>Telligent Community List Users In Role</title><link>http://danbartels.com/blog/b/danb/archive/2010/11/17/telligent-community-list-users-in-role.aspx</link><pubDate>Wed, 17 Nov 2010 17:27:00 GMT</pubDate><guid isPermaLink="false">689e881c-f887-4caa-a108-8998bed89a27:748945</guid><dc:creator>DanB</dc:creator><slash:comments>0</slash:comments><description>&lt;P&gt;The Telligent Community / Community Server&amp;nbsp;control panel doesn't expose a nice list of users in a particular role, but for auditing purposes its sometimes useful to be able to view all members in a role.&amp;nbsp; If you have access to the database and SQL knowledge, this is fairly straightforward using the cs_Security_UsersRoles table (pre TC5 you would have looked in aspnet_UsersInRoles).&amp;nbsp; However you can also (as a site admin) easily use the v1 rest API's to accomplish this.&amp;nbsp; If your site has rest enabled (if not you will get a 503 error).&amp;nbsp; You can simply log in to your community, and browse to &lt;/P&gt;
&lt;P&gt;&lt;A href="http://[yourcommunity.com]/api/membership.ashx/users?role=[rolename"&gt;http://[yourcommunity.com]/api/membership.ashx/users?role=[rolename&lt;/A&gt;]&lt;/P&gt;
&lt;P&gt;This will present you with an XML list of all the users in the given role; by default the rest API will use a paged list with a page size of 20 items, you can navigate to subsequent pages by appending &amp;amp;pageindex=[page]&amp;nbsp; and or you can increase the items per page using &amp;amp;pagesize=[pagesize]&lt;/P&gt;
&lt;P&gt;-Dan&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://danbartels.com/aggbug.aspx?PostID=748945" width="1" height="1"&gt;</description></item><item><title>Telligent Evolution 5.5 Export Theme to SQL</title><link>http://danbartels.com/blog/b/danb/archive/2010/05/13/telligent-evolution-5-5-export-theme-to-sql.aspx</link><pubDate>Thu, 13 May 2010 14:11:00 GMT</pubDate><guid isPermaLink="false">689e881c-f887-4caa-a108-8998bed89a27:744083</guid><dc:creator>DanB</dc:creator><slash:comments>0</slash:comments><description>&lt;P&gt;&lt;SPAN class=mceItemHidden&gt;The Telligent Evolution Platform starting with version 5 has begun to store considerable amounts of the "Theme" configuration in the database.&amp;nbsp; Its is often necessary to take the theme configuration from one environment and apply it to another, or modify it in a "bulk" way (like when copying the theme layout from one theme name to another).&amp;nbsp; The easiest way to transfer a theme layout between two environments is simply a database backup.&amp;nbsp; When a backup however will not work or has undesired side affects, you can use the built in functionality of Telligent Community and Telligent Evolution to export the theme to XML and then re-import;&amp;nbsp; I have had mixed success with this result, and often find myself needing to tweak the the process in some way (Change a theme name, replace a particular control with another, or automatically import new layouts and widget configurations on a new community)...&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN class=mceItemHidden&gt;To make the process of transporting a themes widget layout and configuration easier, I have created a custom control panel page (Attached) named "&lt;SPAN class=mceItemHiddenSpellWord&gt;ExportThemeToSql&lt;/SPAN&gt;.&lt;SPAN class=mceItemHiddenSpellWord&gt;aspx&lt;/SPAN&gt;".&amp;nbsp; Just drop this page in your&amp;nbsp;/&lt;SPAN class=mceItemHiddenSpellWord&gt;controlpanel&lt;/SPAN&gt;/utility folder and&amp;nbsp;navigate to the page directly...&amp;nbsp; From it you can select the theme to export&lt;/SPAN&gt;&lt;SPAN class=mceItemHidden&gt;&amp;nbsp;and "click generate"&amp;nbsp; the entire theme configuration from the database will then be transformed into simple SQL statements, which can be run against your other communities or turned into a SQL Patch for your installer.&amp;nbsp; If you are wanting to copy a theme layout to a new theme, you can export the existing theme, and just search and replace the theme name in the SQL script.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN class=mceItemHidden&gt;There are a couple of limitations with this tool...&amp;nbsp; First off&amp;nbsp;it is designed only to export the "default" widget configurations, it does not export anything "saved contextually" as I am making the assumption that you are applying the scripts to differing environments and those environments would have different contextual ids.&amp;nbsp; Secondly, the new Telligent Evolution Platform 5.5 widget fields "&lt;SPAN class=mceItemHiddenSpellWord&gt;SourceContentFragmentTabId&lt;/SPAN&gt;" and "&lt;SPAN class=mceItemHiddenSpellWord&gt;SourceConfiguredContentFragmentId&lt;/SPAN&gt;" columns are transfered but don't have their corresponding ids smartly updated, additional logic will need to be added to the import to "repair" these ids should they be required for your theme.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN class=mceItemHidden&gt;This tool version works with Telligent Enterprise 2.5 and Telligent Community 5.5 only.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;Dan&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://danbartels.com/aggbug.aspx?PostID=744083" width="1" height="1"&gt;</description><enclosure url="http://danbartels.com" length="19930" type="application/xml" /><category domain="http://danbartels.com/blog/b/danb/archive/tags/Community+Server/default.aspx">Community Server</category><category domain="http://danbartels.com/blog/b/danb/archive/tags/Tips+and+Tricks/default.aspx">Tips and Tricks</category><category domain="http://danbartels.com/blog/b/danb/archive/tags/CS+API/default.aspx">CS API</category><category domain="http://danbartels.com/blog/b/danb/archive/tags/Telligent+Enterprise+2/default.aspx">Telligent Enterprise 2</category><category domain="http://danbartels.com/blog/b/danb/archive/tags/Telligent+Community+5/default.aspx">Telligent Community 5</category></item><item><title>Telligent Community 5.5 Sandbox Fiji Theme Variations</title><link>http://danbartels.com/blog/b/danb/archive/2010/02/22/telligent-community-5-5-sandbox-fiji-theme-variations.aspx</link><pubDate>Mon, 22 Feb 2010 14:58:00 GMT</pubDate><guid isPermaLink="false">689e881c-f887-4caa-a108-8998bed89a27:737057</guid><dc:creator>DanB</dc:creator><slash:comments>0</slash:comments><description>&lt;P&gt;&lt;A href="http://blog.danbartels.com/photos/content/picture737056.aspx" target=_blank&gt;&lt;IMG border=0 align=center src="http://blog.danbartels.com/photos/content/images/737056/original.aspx"&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;When working with Telligent Community Sandbox sites, I find it useful to create a couple of theme variations to help illustrate the power of Group and Blog themes, and the differences between the widget "Save as Default" and "Save Contextually" options...&amp;nbsp; I have attached four Blog and Group themes which are variations of the default fiji theme (red, greed, blue and yellow)...&amp;nbsp; You can drop these into your websites theme folder, and run the included SQL script to setup the widget layouts for the new themes.&lt;/P&gt;
&lt;P&gt;Install:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;Copy the included Themes folder to the root of your Telligent Community 5.5 website (this will place the new theme folders in the correct location)&lt;/LI&gt;
&lt;LI&gt;Run the included SQL script to copy the current Fiji theme widget layouts to the new Theme Variations (without this all the pages for the new themes would not have any widgets)&lt;/LI&gt;
&lt;LI&gt;From a group or blog, when logged into the community as an admin level user, selected "edit this group theme" and choose one of the new themes, and save.&lt;/LI&gt;&lt;/OL&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://danbartels.com/aggbug.aspx?PostID=737057" width="1" height="1"&gt;</description><enclosure url="http://danbartels.com" length="190238" type="application/x-zip-compressed" /></item><item><title>Copying Theme Configuration and Widget Layouts</title><link>http://danbartels.com/blog/b/danb/archive/2009/07/17/copying-theme-configuration-and-widget-layouts.aspx</link><pubDate>Fri, 17 Jul 2009 14:19:00 GMT</pubDate><guid isPermaLink="false">689e881c-f887-4caa-a108-8998bed89a27:716316</guid><dc:creator>DanB</dc:creator><slash:comments>0</slash:comments><description>&lt;P&gt;If you are running the new Telligent Community 5 (formerly known as Community Server 5 or CS5) or the new Telligent Enterprise 2 (formerly known as Community Server Evolution 2 or Evo2) and need to move your dynamic theme configurations and changes between two environments, you can use the control panel options.&lt;/P&gt;
&lt;P&gt;Under the main site theme, you can export the theme configuration and import it onto the other site, at this point, that process seems to be working successfully...&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Importing the site layout however doesn't seem to be working in all circumstances... you may find the this SQL script handy...&amp;nbsp; it assumes both databases are accessible on the same server&lt;/P&gt;
&lt;P&gt;Just replace the TARGETDB and SOURCEDB with the actual database names on your server...&lt;/P&gt;
&lt;P&gt;truncate table [TARGETDB].dbo.cs_ConfiguredContentFragments&lt;/P&gt;
&lt;P&gt;truncate table [TARGETDB].dbo.cs_ContentFragmentTabs&lt;/P&gt;
&lt;P&gt;truncate table [TARGETDB].dbo.cs_ContentFragmentPages&lt;/P&gt;
&lt;P&gt;set identity_insert [TARGETDB].dbo.cs_ContentFragmentPages on&lt;/P&gt;
&lt;P&gt;INSERT INTO [TARGETDB].[dbo].[cs_ContentFragmentPages]&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ([Id],[ThemeTypeId]&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,[ThemeContextId]&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,[ThemeName]&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,[PageName]&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,[LayoutType])&lt;BR&gt;select [Id],[ThemeTypeId]&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,[ThemeContextId]&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,[ThemeName]&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,[PageName]&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,[LayoutType]&lt;BR&gt;from [SOURCEDB].dbo.cs_ContentFragmentPages&lt;/P&gt;
&lt;P&gt;set identity_insert [TARGETDB].dbo.cs_ContentFragmentPages off&lt;/P&gt;
&lt;P&gt;set identity_insert [TARGETDB].dbo.cs_ContentFragmentTabs on&lt;/P&gt;
&lt;P&gt;INSERT INTO [TARGETDB].[dbo].[cs_ContentFragmentTabs]&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ([Id],[PageId]&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,[LayoutType]&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,[OrderNumber]&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,[Url]&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,[Name]&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,[IsLocked])&lt;BR&gt;select [Id],[PageId]&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,[LayoutType]&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,[OrderNumber]&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,[Url]&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,[Name]&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,[IsLocked]&lt;BR&gt;from [SOURCEDB].dbo.cs_ContentFragmentTabs&lt;/P&gt;
&lt;P&gt;set identity_insert [TARGETDB].dbo.cs_ContentFragmentTabs off&lt;/P&gt;
&lt;P&gt;set identity_insert [TARGETDB].dbo.cs_ConfiguredContentFragments on&lt;/P&gt;
&lt;P&gt;INSERT INTO [TARGETDB].[dbo].[cs_ConfiguredContentFragments]&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ([Id],[PageId]&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,[TabId]&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,[RegionName]&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,[Type]&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,[OrderNumber]&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,[Configuration]&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,[ShowHeader])&lt;BR&gt;select [Id],[PageId]&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,[TabId]&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,[RegionName]&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,[Type]&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,[OrderNumber]&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,[Configuration]&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,[ShowHeader]&lt;BR&gt;from [SOURCEDB].dbo.cs_ConfiguredContentFragments&lt;/P&gt;
&lt;P&gt;set identity_insert [TARGETDB].dbo.cs_ConfiguredContentFragments off&lt;/P&gt;
&lt;P&gt;Dan&lt;BR&gt;&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://danbartels.com/aggbug.aspx?PostID=716316" width="1" height="1"&gt;</description><category domain="http://danbartels.com/blog/b/danb/archive/tags/Community+Server/default.aspx">Community Server</category><category domain="http://danbartels.com/blog/b/danb/archive/tags/Telligent+Enterprise/default.aspx">Telligent Enterprise</category><category domain="http://danbartels.com/blog/b/danb/archive/tags/Telligent+Community/default.aspx">Telligent Community</category><category domain="http://danbartels.com/blog/b/danb/archive/tags/Telligent+Enterprise+2/default.aspx">Telligent Enterprise 2</category><category domain="http://danbartels.com/blog/b/danb/archive/tags/Telligent+Community+5/default.aspx">Telligent Community 5</category></item><item><title>Adding a site wide widget</title><link>http://danbartels.com/blog/b/danb/archive/2009/03/16/adding-a-site-wide-widget.aspx</link><pubDate>Tue, 17 Mar 2009 02:42:00 GMT</pubDate><guid isPermaLink="false">689e881c-f887-4caa-a108-8998bed89a27:689461</guid><dc:creator>DanB</dc:creator><slash:comments>0</slash:comments><description>&lt;P&gt;Starting with CS2008 telligent introduced the ContentFragementList as well as several out of the box widgets.&amp;nbsp; This is pretty much old news, but I thought it would be good to cover a very basic scenario...&lt;/P&gt;
&lt;P&gt;User story:&amp;nbsp; An admin of a site wants the ability to add a news flash from time to time, that appears on the right sidebar of all pages on their site..&lt;/P&gt;
&lt;P&gt;To accomplish this we will add a &amp;lt;CSControl:ContentFragmentList&amp;gt; to the master.Master in the left sidebar column (above the lcr content region)&lt;/P&gt;
&lt;P&gt;Add the following markup to the master.Master just about the LCR&amp;nbsp;&amp;lt;asp:ContentPlaceHolder&amp;gt;&amp;nbsp;: (Update the CssClasses as appropriate for your sidebar)&lt;/P&gt;&lt;FONT size=2&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&amp;lt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;CSControl&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;:&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;ContentFragmentList&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;&lt;FONT color=#ff0000 size=2&gt;runat&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;="server"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;&lt;FONT color=#ff0000 size=2&gt;Property&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;="SiteSideWidgets"&amp;gt;&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&amp;lt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;ItemTemplate&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&amp;gt;&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&amp;lt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;CSControl&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;:&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;ContentFragment&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;&lt;FONT color=#ff0000 size=2&gt;runat&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;="server"&amp;gt;&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&amp;lt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;LeaderTemplate&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&amp;gt;&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&amp;lt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;div&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;&lt;FONT color=#ff0000 size=2&gt;class&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;="CommonContentBox"&amp;gt;&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&amp;lt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;CSControl&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;:&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;ContentFragmentData&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;&lt;FONT color=#ff0000 size=2&gt;Property&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;="FragmentHeader"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;&lt;FONT color=#ff0000 size=2&gt;runat&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;="server"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;&lt;FONT color=#ff0000 size=2&gt;Tag&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;="H4"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;&lt;FONT color=#ff0000 size=2&gt;CssClass&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;="CommonContentBoxHeader"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;/&amp;gt;&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&amp;lt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;div&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;&lt;FONT color=#ff0000 size=2&gt;class&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;="CommonContentBoxContent"&amp;gt;&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&amp;lt;/&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;LeaderTemplate&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&amp;gt;&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&amp;lt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;TrailerTemplate&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&amp;gt;&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&amp;lt;/&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;div&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&amp;gt;&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&amp;lt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;CSControl&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;:&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;ContentFragmentData&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;&lt;FONT color=#ff0000 size=2&gt;ResourceName&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;="ViewMore"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;&lt;FONT color=#ff0000 size=2&gt;LinkTo&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;="More"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;&lt;FONT color=#ff0000 size=2&gt;runat&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;="server"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;&lt;FONT color=#ff0000 size=2&gt;Tag&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;="Div"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;&lt;FONT color=#ff0000 size=2&gt;CssClass&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;="CommonContentBoxFooter"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;/&amp;gt;&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&amp;lt;/&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;div&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&amp;gt;&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&amp;lt;/&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;TrailerTemplate&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&amp;gt;&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&amp;lt;/&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;CSControl&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;:&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;ContentFragment&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&amp;gt;&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&amp;lt;/&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;ItemTemplate&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&amp;gt;&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&amp;lt;/&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;CSControl&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;:&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;ContentFragmentList&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&amp;gt;&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;
&lt;P&gt;To make this new ContentFragmentList accessable for editing via the control panel; edit your theme.config file and add the following to your &amp;lt;dynamicConfiguration&amp;gt; section.&lt;/P&gt;
&lt;P&gt;Assuming you are using something similar to the Hawaii theme, you will already have a &amp;lt;propertyGroup&amp;gt; called sidebar, so add the following &amp;lt;property&amp;gt; to it...&lt;/P&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;
&lt;P&gt;&amp;lt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;property&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt; &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;&lt;FONT color=#ff0000 size=2&gt;id&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;=&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;"&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;SiteSideWidgets&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;"&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt; &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;&lt;FONT color=#ff0000 size=2&gt;Text&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;=&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;"&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Site Widgets&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;"&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt; &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;&lt;FONT color=#ff0000 size=2&gt;applicationTypes&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;=&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;"&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Core&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;"&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt; &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;&lt;FONT color=#ff0000 size=2&gt;dataType&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;=&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;"&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Custom&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;"&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt; &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;&lt;FONT color=#ff0000 size=2&gt;controlType&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;=&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;"&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;CommunityServer.Controls.ContentFragmentsCustomControl, CommunityServer.Controls&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;"&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&amp;gt;&lt;BR&gt;&amp;lt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;defaultValue&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&amp;gt;&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&amp;lt;/&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;defaultValue&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&amp;gt;&lt;BR&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&amp;lt;/&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;property&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&amp;gt;&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;
&lt;P&gt;We will leave the default template blank, so when the time comes, the administrator can go into "Site Administration" under the Control Panel, to the "Site Content" / "Site Theme" tab, and in this case, you should see a "Sidebar" tab in the theme editor, and on that page, see the widget box to configure your new site wide widget panel.&lt;/P&gt;
&lt;P&gt;Now the site admin, can add a highighted post, or even a "Generic Content" widget, to type an HTML note, all users will see on all pages of the site.&lt;/P&gt;
&lt;P&gt;You can find much more detail about these controls at Ben Tied's post on the subject.&lt;/P&gt;
&lt;P&gt;&lt;A href="http://getben.com/archive/2008/04/18/community-server-2008-how-to-support-widgets-in-a-custom-theme.aspx"&gt;http://getben.com/archive/2008/04/18/community-server-2008-how-to-support-widgets-in-a-custom-theme.aspx&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Note: even though you have defined this ContentFragmentList in a site wide location, because there are several different theme areas (a blog theme, and hub theme) you will need to add the &amp;lt;property&amp;gt; to a &amp;lt;DynamicConfiguration&amp;gt; &amp;lt;PropertyGroup&amp;gt; for each of these where you want the content to be visible.&amp;nbsp; It is not currently possible to have a ContentFragmentList share its configuration between different themes.&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://danbartels.com/aggbug.aspx?PostID=689461" width="1" height="1"&gt;</description><category domain="http://danbartels.com/blog/b/danb/archive/tags/Tips+and+Tricks/default.aspx">Tips and Tricks</category><category domain="http://danbartels.com/blog/b/danb/archive/tags/CS+2008/default.aspx">CS 2008</category></item><item><title>Installing telnet.exe on Windows 2008 Server</title><link>http://danbartels.com/blog/b/danb/archive/2009/01/20/installing-telnet-exe-on-windows-2008-server.aspx</link><pubDate>Wed, 21 Jan 2009 04:18:00 GMT</pubDate><guid isPermaLink="false">689e881c-f887-4caa-a108-8998bed89a27:677368</guid><dc:creator>DanB</dc:creator><slash:comments>0</slash:comments><description>&lt;P&gt;Open a command window and run&lt;/P&gt;
&lt;P&gt;servermanagercmd -install telnet-client&lt;/P&gt;
&lt;P&gt;and your windows will install telnet for you.&lt;/P&gt;
&lt;P&gt;Dan&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://danbartels.com/aggbug.aspx?PostID=677368" width="1" height="1"&gt;</description><category domain="http://danbartels.com/blog/b/danb/archive/tags/Windows+Server+2008/default.aspx">Windows Server 2008</category></item><item><title>Using the Telligent.Tasks service to send CommunityServer Emails</title><link>http://danbartels.com/blog/b/danb/archive/2008/09/09/using-the-telligent-tasks-service-to-send-communityserver-emails.aspx</link><pubDate>Tue, 09 Sep 2008 15:27:00 GMT</pubDate><guid isPermaLink="false">689e881c-f887-4caa-a108-8998bed89a27:658524</guid><dc:creator>DanB</dc:creator><slash:comments>3</slash:comments><description>&lt;P&gt;Telligent has a Windows Service job which can be run to offload some of the Tasks / Job processing from your web server...&amp;nbsp; The most common configuration is to use the task server for running the Enterprise Search Indexing jobs, although you could use it to do your Search Barrel Indexing as well...&amp;nbsp; &lt;/P&gt;
&lt;P&gt;The second most common item is to use the tasks service to send outgoing emails...&amp;nbsp; Communityserver queues emails into the SQL database by default, and uses a "job" to send them.&lt;/P&gt;
&lt;P&gt;The key to using the Telligent tasks service for a job that normally runs under the web site&amp;nbsp;is setting up the CommunityServer "context" in the task service...&lt;/P&gt;
&lt;P&gt;This involves copying a few items your cs site folders, into the tasks service folder:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;languages folder (and its sub folders)&lt;/LI&gt;
&lt;LI&gt;siteurls.config&lt;/LI&gt;
&lt;LI&gt;communityserver.config&lt;/LI&gt;
&lt;LI&gt;connectionstrings.config&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;dlls&amp;nbsp;from your web/bin folder&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;It is not necessary to remove any tasks from your communityserver.config, as the tasks service loads its task list from the tasks.config file...&lt;/P&gt;
&lt;P&gt;Finally you need to edit the tasks.config to set up the cs context object for your site..&amp;nbsp; To the tasks.config file&lt;/P&gt;
&lt;P&gt;Add to the \tasks node:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;lt;Sites&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;add name="[AppName from your aspnet_Applications table]&amp;nbsp;" siteUrl="[site url without http://]" /&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;lt;/Sites&amp;gt;&lt;BR&gt;&lt;/P&gt;
&lt;P&gt;and&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;lt;Modules&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;add name="SiteSettingsModule" type="Telligent.Tasks.CommunityServer.SiteSettingsModule, Telligent.Tasks.CommunityServer" /&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;add name="ServiceTaskModule" type="Telligent.Tasks.ServiceTaskModule, Telligent.Tasks" /&amp;gt;&lt;BR&gt;&amp;nbsp; &amp;lt;/Modules&amp;gt;&lt;BR&gt;&lt;/P&gt;
&lt;P&gt;and then you should be able to configure the email task by adding a thread to the \tasks\threads node&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Thread minutes="5"&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;task name = "Emails" type = "CommunityServer.MailRoom.Components.EmailJob, CommunityServer.MailGateway.MailRoom" enabled = "true" enableShutDown = "false" failureInterval = "1" numberOfTries = "10" /&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/Thread&amp;gt;&lt;BR&gt;&lt;/P&gt;
&lt;P&gt;This will use the SMTP server set in your database (its set via the administration section of the CommunityServer Control Panel / Settings / Email Settings; and send your emails to the SMTP server every 5 minutes.&lt;/P&gt;
&lt;P&gt;Dan&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://danbartels.com/aggbug.aspx?PostID=658524" width="1" height="1"&gt;</description><enclosure url="http://danbartels.com" length="6108" type="application/x-zip-compressed" /><category domain="http://danbartels.com/blog/b/danb/archive/tags/Community+Server/default.aspx">Community Server</category><category domain="http://danbartels.com/blog/b/danb/archive/tags/CS+2007/default.aspx">CS 2007</category><category domain="http://danbartels.com/blog/b/danb/archive/tags/CS+2008/default.aspx">CS 2008</category></item><item><title>Web browsers are good, everyone should have one</title><link>http://danbartels.com/blog/b/danb/archive/2008/09/03/web-browsers-are-good-everyone-should-have-one.aspx</link><pubDate>Wed, 03 Sep 2008 20:05:00 GMT</pubDate><guid isPermaLink="false">689e881c-f887-4caa-a108-8998bed89a27:657009</guid><dc:creator>DanB</dc:creator><slash:comments>0</slash:comments><description>&lt;P&gt;&lt;SPAN class=mceItemHidden&gt;Yes, well now it seems like everyone is making one; and many users have two or three...&amp;nbsp; &lt;SPAN class=mceItemHiddenSpellWord&gt;Google&lt;/SPAN&gt; has launched Chrome &lt;/SPAN&gt;&lt;A href="http://www.google.com/chrome"&gt;&lt;SPAN class=mceItemHidden&gt;&lt;SPAN class=mceItemHiddenSpellWord&gt;http&lt;/SPAN&gt;://&lt;SPAN class=mceItemHiddenSpellWord&gt;www&lt;/SPAN&gt;.&lt;SPAN class=mceItemHiddenSpellWord&gt;google&lt;/SPAN&gt;.com/chrome&lt;/SPAN&gt;&lt;/A&gt;&lt;SPAN class=mceItemHidden&gt;&amp;nbsp;the latest development in the browser wars...&amp;nbsp; We have IE8 shaping up (currently in beta 2 form) and &lt;SPAN class=mceItemHiddenSpellWord&gt;Firefox&lt;/SPAN&gt; 3 now out; and what seemed like a "nice try" by apple to bring Safari to the Windows world...&amp;nbsp; (Thats all of course failing to mention the exploding mobile browser market)&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN class=mceItemHidden&gt;It sure is hard to remember the good old days, when Microsoft crushed &lt;SPAN class=mceItemHiddenSpellWord&gt;netscape&lt;/SPAN&gt; and it looked like for better or worse there was only one browser that mattered.&amp;nbsp; All this competition is good, but it leaves the web developers in the middle, trying to support each browsers peculiarities in order to ensure site visitors a consistent experience.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;Dan&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://danbartels.com/aggbug.aspx?PostID=657009" width="1" height="1"&gt;</description></item><item><title>CS Membership for the Membershipless </title><link>http://danbartels.com/blog/b/danb/archive/2008/06/10/cs-membership-for-the-membershipless.aspx</link><pubDate>Wed, 11 Jun 2008 00:57:00 GMT</pubDate><guid isPermaLink="false">689e881c-f887-4caa-a108-8998bed89a27:607142</guid><dc:creator>DanB</dc:creator><slash:comments>3</slash:comments><description>&lt;P&gt;From time to time I find myself pulling down a live Community Server database for testing.&amp;nbsp; When the database also has a remote membership system it can be very time consuming to try to download and configure both a CS database and a Membership system and keeping those databases in sync.&lt;/P&gt;
&lt;P&gt;I have created a SQL script which can create simple membership data for all the membership in a CS database.&amp;nbsp; You set the application name, and&amp;nbsp;script allows you to specify the name of one user which will be added to the system administrator role.&amp;nbsp; It will create the asp.net membership tables and entries as necessary, it auto assigns all other users to the everyone role; and sets any user passwords to "password" (obviously this is just for local testing).&lt;/P&gt;
&lt;P&gt;This script builds an ASP.NET 2.0 Membership system, for use by CS2007 and CS2008 databases.&lt;/P&gt;
&lt;P&gt;Dan&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://danbartels.com/aggbug.aspx?PostID=607142" width="1" height="1"&gt;</description><enclosure url="http://danbartels.com" length="135800" type="application/octet-stream" /><category domain="http://danbartels.com/blog/b/danb/archive/tags/Community+Server/default.aspx">Community Server</category><category domain="http://danbartels.com/blog/b/danb/archive/tags/CS+2007/default.aspx">CS 2007</category><category domain="http://danbartels.com/blog/b/danb/archive/tags/CS+2008/default.aspx">CS 2008</category><category domain="http://danbartels.com/blog/b/danb/archive/tags/ASP-NET/default.aspx">ASP.NET</category></item><item><title>Integrating Graffiti Logins with an asp.net datastore (like CommunityServer)</title><link>http://danbartels.com/blog/b/danb/archive/2008/05/05/integrating-graffiti-logins-with-an-asp-net-datastore-like-communityserver.aspx</link><pubDate>Mon, 05 May 2008 19:17:00 GMT</pubDate><guid isPermaLink="false">689e881c-f887-4caa-a108-8998bed89a27:569605</guid><dc:creator>DanB</dc:creator><slash:comments>3</slash:comments><description>&lt;P&gt;As announced way back at CSDC 07 (&lt;A href="http://kevinharder.com/blog/live-blogging-the-csdc-part-3/"&gt;&lt;SPAN class=mceItemHidden&gt;&lt;SPAN class=mceItemHiddenSpellWord&gt;http&lt;/SPAN&gt;://&lt;SPAN class=mceItemHiddenSpellWord&gt;kevinharder&lt;/SPAN&gt;.com/&lt;SPAN class=mceItemHiddenSpellWord&gt;blog&lt;/SPAN&gt;/live-&lt;SPAN class=mceItemHiddenSpellWord&gt;blogging&lt;/SPAN&gt;-the-&lt;SPAN class=mceItemHiddenSpellWord&gt;csdc&lt;/SPAN&gt;-part-3/&lt;/SPAN&gt;&lt;/A&gt;) graffiti was designed to be able to integrate directly with an existing asp.net membership store...&amp;nbsp; the key is in the configuration....&lt;/P&gt;
&lt;P&gt;&lt;SPAN class=mceItemHidden&gt;So first thing is to get the membership set up...&amp;nbsp; this requires several changes to your web.&lt;SPAN class=mceItemHiddenSpellWord&gt;config&lt;/SPAN&gt; on your graffiti site...&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN class=mceItemHidden&gt;You will need a connection string in the &amp;lt;&lt;SPAN class=mceItemHiddenSpellWord&gt;ConnectionStrings&lt;/SPAN&gt;&amp;gt; section pointing to the database which has your asp.net &lt;SPAN class=mceItemHiddenSpellWord&gt;auth&lt;/SPAN&gt; tables.. it will look something like this...&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#0000ff size=2&gt;&amp;lt;&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;add&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;name&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;=&lt;/FONT&gt;&lt;FONT size=2&gt;"&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;SPAN class=mceItemHidden&gt;Graffiti_&lt;SPAN class=mceItemHiddenSpellWord&gt;ASPNetMembership&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;"&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;&lt;SPAN class=mceItemHidden&gt;&lt;SPAN class=mceItemHiddenSpellWord&gt;connectionString&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;=&lt;/FONT&gt;&lt;FONT size=2&gt;"&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;SPAN class=mceItemHidden&gt;server=(local);&lt;SPAN class=mceItemHiddenSpellWord&gt;uid&lt;/SPAN&gt;=;&lt;SPAN class=mceItemHiddenSpellWord&gt;pwd&lt;/SPAN&gt;=;Trusted_Connection=yes;database=&lt;SPAN class=mceItemHiddenSpellWord&gt;CommunityServer&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;"&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt; /&amp;gt;&lt;/P&gt;&lt;/FONT&gt;
&lt;P&gt;&lt;SPAN class=mceItemHidden&gt;Since I am using an active community, I will go to the CS site and create the default graffiti roles...&amp;nbsp; (&lt;SPAN class=mceItemHiddenSpellWord&gt;gAdmin&lt;/SPAN&gt;, &lt;SPAN class=mceItemHiddenSpellWord&gt;gManager&lt;/SPAN&gt;, and &lt;SPAN class=mceItemHiddenSpellWord&gt;gContributor&lt;/SPAN&gt;, and add you current &lt;SPAN class=mceItemHiddenSpellWord&gt;admin&lt;/SPAN&gt; to the &lt;SPAN class=mceItemHiddenSpellWord&gt;gAdmin&lt;/SPAN&gt; role)... Otherwise you need to run the script "Graffiti_&lt;SPAN class=mceItemHiddenSpellWord&gt;ASPNet&lt;/SPAN&gt;_Membership_Provider_Data.&lt;SPAN class=mceItemHiddenSpellWord&gt;sql&lt;/SPAN&gt;"; this script will try to create a new application so you really only want to run portions of it, ensuring the correct &lt;SPAN class=mceItemHiddenSpellWord&gt;applicationid&lt;/SPAN&gt; &lt;SPAN class=mceItemHiddenSpellWord&gt;guid&lt;/SPAN&gt; in order to have all logins under a single &lt;SPAN class=mceItemHiddenSpellWord&gt;aspnet&lt;/SPAN&gt; forms &lt;SPAN class=mceItemHiddenSpellWord&gt;auth&lt;/SPAN&gt; "application".&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;Next you need to update the "User Provider".&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#0000ff size=2&gt;&amp;lt;&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;add&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;key&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;=&lt;/FONT&gt;&lt;FONT size=2&gt;"&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;SPAN class=mceItemHidden&gt;Graffiti::Users::&lt;SPAN class=mceItemHiddenSpellWord&gt;IGraffitiUserController&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;"&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;value&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt; =&lt;/FONT&gt;&lt;FONT size=2&gt;"&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;SPAN class=mceItemHidden&gt;Graffiti.Core.&lt;SPAN class=mceItemHiddenSpellWord&gt;ASPNetGraffitiUserController&lt;/SPAN&gt;, Graffiti.Core&lt;/SPAN&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;"&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;/&amp;gt;&lt;/P&gt;&lt;/FONT&gt;
&lt;P&gt;&lt;SPAN class=mceItemHidden&gt;and finally uncomment the included &amp;lt;membership /&amp;gt;, &amp;lt;&lt;SPAN class=mceItemHiddenSpellWord&gt;roleManager&lt;/SPAN&gt; /&amp;gt; and &amp;lt;profile /&amp;gt; sections of the web.&lt;SPAN class=mceItemHiddenSpellWord&gt;config&lt;/SPAN&gt;; be sure to update the &lt;SPAN class=mceItemHiddenSpellWord&gt;applicationName&lt;/SPAN&gt; property of each by default graffiti uses "/graffiti" for the application name, by default cs uses "&lt;SPAN class=mceItemHiddenSpellWord&gt;dev&lt;/SPAN&gt;"&amp;nbsp; if you want to use existing cs users, you will need the application name that exists in your &lt;SPAN class=mceItemHiddenSpellWord&gt;aspnet&lt;/SPAN&gt;_&lt;SPAN class=mceItemHiddenSpellWord&gt;Applicaitons&lt;/SPAN&gt; table.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN class=mceItemHidden&gt;Thats it...&amp;nbsp; you should be able to log into graffiti using your existing cs users...&amp;nbsp; but wait, theres more...&amp;nbsp; we can now do shared authentication / single &lt;SPAN class=mceItemHiddenSpellWord&gt;signon&lt;/SPAN&gt; with a few more steps...&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN class=mceItemHidden&gt;First, you will need to specify validation and decryption keys for all the applications you want to share logins... this goes in the web.&lt;SPAN class=mceItemHiddenSpellWord&gt;config&lt;/SPAN&gt; under &amp;lt;system.web&amp;gt; (edit the &lt;SPAN class=mceItemHiddenSpellWord&gt;guids&lt;/SPAN&gt; a bit for security)&lt;/SPAN&gt;&lt;/P&gt;&lt;FONT color=#0000ff size=2&gt;
&lt;P&gt;&amp;lt;&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;SPAN class=mceItemHidden&gt;&lt;SPAN class=mceItemHiddenSpellWord&gt;machineKey&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt; &lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;&lt;SPAN class=mceItemHidden&gt;&lt;SPAN class=mceItemHiddenSpellWord&gt;validationKey&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;=&lt;/FONT&gt;&lt;FONT size=2&gt;"&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;F090935F6E49C2C797F69BBAAD8402ABD2EE0B667A8B4&lt;BR&gt;AD972A119482D15A4127461DB1DC347C1A63AE5F1CCFAACFF1B72A7F0A281B&lt;/FONT&gt;&lt;FONT size=2&gt;"&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt; &lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;&lt;SPAN class=mceItemHidden&gt;&lt;SPAN class=mceItemHiddenSpellWord&gt;decryptionKey&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;=&lt;/FONT&gt;&lt;FONT size=2&gt;"&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;ABAA84D7EC4BB56D75D217CECFFB9628809BDB8BF91CFCD64568A145BE59719F&lt;/FONT&gt;&lt;FONT size=2&gt;"&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;validation&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;=&lt;/FONT&gt;&lt;FONT size=2&gt;"&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;SHA1&lt;/FONT&gt;&lt;FONT size=2&gt;"&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;decryption&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;=&lt;/FONT&gt;&lt;FONT size=2&gt;"&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;AES&lt;/FONT&gt;&lt;FONT size=2&gt;"&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;/&amp;gt;&lt;/P&gt;&lt;/FONT&gt;
&lt;P&gt;*Note: if you are updating an existing applicaitons machine keys, you should really change the name of the "auth cookie" to prevent existing persisted logins from getting a decryption exception.&amp;nbsp; This will also force all users to re-login...&lt;/P&gt;
&lt;P&gt;As infered by the note above, we have to use the same cookie names for our applications... this is done by editing the &amp;lt;authentication&amp;gt; section of the web.config (I typically just link to the existing communityserver cookie, by changing the graffiti web.config as below)&lt;/P&gt;&lt;FONT color=#0000ff size=2&gt;
&lt;P&gt;&amp;lt;&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;authentication&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;mode&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;=&lt;/FONT&gt;&lt;FONT size=2&gt;"&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;Forms&lt;/FONT&gt;&lt;FONT size=2&gt;"&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&amp;gt;&lt;BR&gt;&amp;lt;&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;forms&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;name&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;=&lt;/FONT&gt;&lt;FONT size=2&gt;"&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;.CommunityServer&lt;/FONT&gt;&lt;FONT size=2&gt;"&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;protection&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;=&lt;/FONT&gt;&lt;FONT size=2&gt;"&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;All&lt;/FONT&gt;&lt;FONT size=2&gt;"&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;timeout&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;=&lt;/FONT&gt;&lt;FONT size=2&gt;"&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;60000&lt;/FONT&gt;&lt;FONT size=2&gt;"&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;loginUrl&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;=&lt;/FONT&gt;&lt;FONT size=2&gt;"&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;~/login/&lt;/FONT&gt;&lt;FONT size=2&gt;"&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;slidingExpiration&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;=&lt;/FONT&gt;&lt;FONT size=2&gt;"&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;true&lt;/FONT&gt;&lt;FONT size=2&gt;"&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;/&amp;gt;&lt;BR&gt;&amp;lt;/&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;authentication&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&amp;gt;&lt;/P&gt;&lt;/FONT&gt;
&lt;P&gt;*Note: you could redirect all users to the cs login page by providing an absolute path to the login url, the page will redirect back to the graffiti site properly; this also has the advantage of leveraging the CS registration forms and process.&lt;/P&gt;
&lt;P&gt;and finally we need to use the same cookie name for the &amp;lt;roleManager&amp;gt; by editing the cookieName property...&amp;nbsp; again I set the property in graffiti equal to the default cs value ".CSRoles" (without this step, your username will show in graffiti, but if you didn't use the graffiti login form, you would not have any more permissions on the site than anonymous, until you re-logged in).&lt;/P&gt;
&lt;P&gt;A few items of interest...&amp;nbsp; at this time it appears that graffiti lowercases all the user names, and uses that for the "ProperName" so CS users without an extended attribute "ProperName" will only see their lowercased user names, a CSModule would be a good way to keep display name in sync with this "ProperName" field.&amp;nbsp; Of course you will have to use the CS membership system to edit your users; but it appears that graffitis "people" page can only be used to edit users in the local graffiti database anyways (likely the only user you will see in graffiti is admin).&lt;/P&gt;
&lt;P&gt;Dan&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://danbartels.com/aggbug.aspx?PostID=569605" width="1" height="1"&gt;</description><category domain="http://danbartels.com/blog/b/danb/archive/tags/Community+Server/default.aspx">Community Server</category><category domain="http://danbartels.com/blog/b/danb/archive/tags/Graffiti/default.aspx">Graffiti</category><category domain="http://danbartels.com/blog/b/danb/archive/tags/ASP-NET/default.aspx">ASP.NET</category></item><item><title>CS REST in Javascript</title><link>http://danbartels.com/blog/b/danb/archive/2008/04/30/cs-rest-in-javascript.aspx</link><pubDate>Thu, 01 May 2008 03:12:00 GMT</pubDate><guid isPermaLink="false">689e881c-f887-4caa-a108-8998bed89a27:564050</guid><dc:creator>DanB</dc:creator><slash:comments>0</slash:comments><description>&lt;P&gt;CS Rest Endpoints return XML, but JSON is much cooler for working with the data in javascript, you can get the results back in JSON and actually iterate through collections and such...&amp;nbsp; To convert the data to JSON, in leu of server calls to do this, Thomas Frank has posted a nice JS library to pull this off...&lt;/P&gt;
&lt;P&gt;&lt;A href="http://www.thomasfrank.se/xml_to_json.html"&gt;http://www.thomasfrank.se/xml_to_json.html&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Dan&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://danbartels.com/aggbug.aspx?PostID=564050" width="1" height="1"&gt;</description><category domain="http://danbartels.com/blog/b/danb/archive/tags/Community+Server/default.aspx">Community Server</category><category domain="http://danbartels.com/blog/b/danb/archive/tags/REST/default.aspx">REST</category><category domain="http://danbartels.com/blog/b/danb/archive/tags/CS+API/default.aspx">CS API</category><category domain="http://danbartels.com/blog/b/danb/archive/tags/CS+2008/default.aspx">CS 2008</category></item><item><title>Color outside the lines with the CS API</title><link>http://danbartels.com/blog/b/danb/archive/2008/04/30/color-outside-the-lines-with-the-cs-api.aspx</link><pubDate>Wed, 30 Apr 2008 21:31:00 GMT</pubDate><guid isPermaLink="false">689e881c-f887-4caa-a108-8998bed89a27:563766</guid><dc:creator>DanB</dc:creator><slash:comments>0</slash:comments><description>&lt;P&gt;With the release of CS2008, we have released the REST webservice code for the first time...&amp;nbsp; This webservice has a client API which is used by the server, and actually is in the bin folder of your CS site...&amp;nbsp; CommunityServer.WebServices.dll.&amp;nbsp; Referencing this file in a project will allow you to do things like.&lt;/P&gt;
&lt;P&gt;Service rest = new Service("&lt;A href="http://localhost/cs"&gt;http://localhost/cs&lt;/A&gt;");&lt;BR&gt;List&amp;lt;BlogGroup&amp;gt; blogGroups = rest.Blogs.GetBlogGroups();&lt;/P&gt;
&lt;P&gt;This is all being documented here at &lt;A href="http://api.communityserver.org/"&gt;http://api.communityserver.org&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;There are some places however, where the client api might not yet have an implementation for accessing endpoints on the server.&amp;nbsp; For those cases I wrapped and exposed the communications calls in the dll.&amp;nbsp; Allowing for calls like.&lt;/P&gt;
&lt;P&gt;ManualRequest rest = new ManualRequest("&lt;A href="http://localhost/cs"&gt;http://localhost/cs&lt;/A&gt;");&lt;BR&gt;BlogGroupListSerialized blogGroupListSerialized = &lt;BR&gt;rest.Get(rest.Urls.BlogGroupsUrl()).GetResponseObject&amp;lt;BlogGroupListSerialized&amp;gt;();&lt;/P&gt;
&lt;P&gt;The methods return strings, which are XML..&amp;nbsp; So you can use the GetResponseObject to get the related Type, or just use XPath and open the doc as native XML.&lt;/P&gt;
&lt;P&gt;A place where we are missing some client api methods for example are things like post extedned attributes or ratings...&lt;/P&gt;
&lt;P&gt;RatingListSerialized ratingListSerialized = rest.Get(rest.Urls.BlogPostRatingUrl(blogId, blogPostId));&lt;/P&gt;
&lt;P&gt;or&lt;/P&gt;
&lt;P&gt;//rate a post with 4 stars&lt;BR&gt;&lt;FONT color=#0000ff size=2&gt;int &lt;/FONT&gt;&lt;FONT size=2&gt;responseRating = rest.Put(rest.Urls.BlogPostRatingUrl(blogId, blogPostId, username), "&amp;lt;int&amp;gt;4&amp;lt;/int&amp;gt;");&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;Extended attributes are availabe for "Section" objects, "Post" objects and "User" objects (except for posts in a group / hub)&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;endpoint urls would be like&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;/api/blogs.ashx/blogs/{blogid}/attributes returns an ExtendedAttributeListSerialized object which is a list of ExtendedAttributeSerialized objects (Supports GET HEAD and POST)&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;ExtendedAttributeListSerialized attributeListSerialized = rest.Get("&lt;A href="http://localhost/cs/api/blogs.ashx/blogs/10/attributes"&gt;http://localhost/cs/api/blogs.ashx/blogs/10/attributes&lt;/A&gt;");&lt;/P&gt;
&lt;P&gt;or&lt;/P&gt;
&lt;P&gt;/api/blogs.ashx/blogs/{blogid}/attributes/{attribute name} which returns a &amp;lt;string&amp;gt; (Supports GET HEAD PUT and DELETE)&lt;/P&gt;
&lt;P&gt;string attribute = rest.Get("&lt;A href="http://localhost/cs/api/blogs.ashx/blogs/10/attributes/abouttitle"&gt;http://localhost/cs/api/blogs.ashx/blogs/10/attributes/abouttitle&lt;/A&gt;");&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;Only site admins can access extended attribute urls. You PUT and POST XML encoded strings...&amp;nbsp; like &amp;lt;string&amp;gt;Hello World&amp;lt;/string&amp;gt;&lt;/P&gt;&lt;/FONT&gt;
&lt;P&gt;A compiled DLL (DanBartels.CS.REST.Dll) is included as well as the source and some basic unit tests...&amp;nbsp; Assuming you have your CS install available with the sample data at &lt;A href="http://localhost/cs"&gt;http://localhost/cs&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Dan&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://danbartels.com/aggbug.aspx?PostID=563766" width="1" height="1"&gt;</description><enclosure url="http://danbartels.com" length="480146" type="application/x-zip-compressed" /><category domain="http://danbartels.com/blog/b/danb/archive/tags/Community+Server/default.aspx">Community Server</category><category domain="http://danbartels.com/blog/b/danb/archive/tags/REST/default.aspx">REST</category><category domain="http://danbartels.com/blog/b/danb/archive/tags/CS+API/default.aspx">CS API</category><category domain="http://danbartels.com/blog/b/danb/archive/tags/CS+2008/default.aspx">CS 2008</category></item><item><title>Online Music - Great Free Service - Pandora.com</title><link>http://danbartels.com/blog/b/danb/archive/2008/02/26/online-music-great-free-service-pandora-com.aspx</link><pubDate>Tue, 26 Feb 2008 14:52:00 GMT</pubDate><guid isPermaLink="false">689e881c-f887-4caa-a108-8998bed89a27:493807</guid><dc:creator>DanB</dc:creator><slash:comments>5</slash:comments><description>&lt;P&gt;&lt;SPAN class=mceItemHidden&gt;I have enjoyed streaming a vast variety of Internet music for some time...&amp;nbsp; I like the ability to discover new artists and music as well as a nearly infinite selection of styles and artists to suit my mood.&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN class=mceItemHidden&gt;I have to say of all of the services I have tried, Yahoo music did the best.&amp;nbsp; They had a decent selection of &lt;SPAN class=mceItemHiddenSpellWord&gt;downloadable&lt;/SPAN&gt; music, but even more content they could stream to you, and I made great use of their "Artist Fan Station" Feature...&amp;nbsp; which let you browse to an artist, and hear similar music, either by that artists or by other artists which were rated highly by people who liked that artist.&amp;nbsp; They made extensive use of their music and artist rating systems to &lt;SPAN class=mceItemHiddenSpellWord&gt;datamine&lt;/SPAN&gt; information, the result was very good;&amp;nbsp; Their client software, Vista, and then X64 support was terrible...&amp;nbsp; and left me searching for a new music service..&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN class=mceItemHidden&gt;So I tried URGE, Microsoft's answer... well it worked in X64 and supported plays for sure; even used the same back end data of Yahoo music for the library, but their client was dumb, dumb, dumb...&amp;nbsp; a few celebrity &lt;SPAN class=mceItemHiddenSpellWord&gt;raido&lt;/SPAN&gt; stations, bad "similar artist" selections, no access to music that wasn't &lt;SPAN class=mceItemHiddenSpellWord&gt;downloadable&lt;/SPAN&gt;; which cut the artist and song selection way down for me...&amp;nbsp; and ultimately I couldn't find any music I wanted to listen to that I didn't already own.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN class=mceItemHidden&gt;Then came &lt;SPAN class=mceItemHiddenSpellWord&gt;Zune&lt;/SPAN&gt;...&amp;nbsp; Well its better, but again their UI is frustrating, you cant really discover anything, unless its new and advertised to you "Clear Channel Style"...&amp;nbsp; So much for broadening your music tastes, or discovering new artists..&amp;nbsp; and they seemed to do away with the idea of radio stations all together....&amp;nbsp; And ratings, well I guess I wast sophisticated enough to rate my own music...&amp;nbsp; So there were starts, but I don't know where they came from...&amp;nbsp; The future &lt;SPAN class=mceItemHiddenSpellWord&gt;ui&lt;/SPAN&gt;, got worse not better, it got even harder to make your own &lt;SPAN class=mceItemHiddenSpellWord&gt;playlists&lt;/SPAN&gt;, apparently if they weren't going to do "stations" then neither should you...&amp;nbsp; If this wasn't pretty much the only way to manage music on my mp3 player, it would be so &lt;SPAN class=mceItemHiddenSpellWord&gt;uninstalled&lt;/SPAN&gt;. (just waiting for the USB Mass Storage Driver for the &lt;SPAN class=mceItemHiddenSpellWord&gt;Zune&lt;/SPAN&gt;, so it will show up as a drive letter, no wonder why Microsoft doesn't want one out there)...&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN class=mceItemHidden&gt;Then relief finally came my way...&amp;nbsp; A really nice radio station only type of service...&amp;nbsp; &lt;/SPAN&gt;&lt;A class="" href="http://www.pandora.com/"&gt;&lt;SPAN class=mceItemHidden&gt;&lt;SPAN class=mceItemHiddenSpellWord&gt;Pandor&lt;/SPAN&gt;&lt;/SPAN&gt;a.com&lt;/A&gt;...&amp;nbsp; O and its free...&amp;nbsp; You set up your own stations based on artists or songs you like, and it streams away; the music index is based off the&lt;A class="" href="http://www.pandora.com/corporate/mgp"&gt; Music Genome Project&lt;/A&gt;&lt;SPAN class=mceItemHidden&gt;&amp;nbsp;a database of music based on musical styles and characteristic (not marketing and advertising&lt;/SPAN&gt;&amp;nbsp;departments)...&amp;nbsp;&amp;nbsp;their client is&lt;SPAN class=mceItemHidden&gt;&amp;nbsp;flash based, and so it runs in your browser...&amp;nbsp; if you find a new song or artist, you can just bookmark it, and head over to Amazon and pickup the Mp3's ... no &lt;SPAN class=mceItemHiddenSpellWord&gt;drm&lt;/SPAN&gt;, no hassle, no subscription, and off you go...&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN class=mceItemHidden&gt;If you haven't tried &lt;/SPAN&gt;&lt;A class="" href="http://www.pandora.com/"&gt;&lt;SPAN class=mceItemHidden&gt;&lt;SPAN class=mceItemHiddenSpellWord&gt;Pandor&lt;/SPAN&gt;&lt;/SPAN&gt;a&lt;/A&gt;&lt;SPAN class=mceItemHidden&gt;, I strongly recommend you check it out.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN class=mceItemHidden&gt;Thanks for the tip&amp;nbsp;&lt;A class="" href="http://wyattpreul.com/"&gt;Wyatt&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;Dan&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://danbartels.com/aggbug.aspx?PostID=493807" width="1" height="1"&gt;</description><category domain="http://danbartels.com/blog/b/danb/archive/tags/Vista/default.aspx">Vista</category><category domain="http://danbartels.com/blog/b/danb/archive/tags/Yahoo+Music/default.aspx">Yahoo Music</category><category domain="http://danbartels.com/blog/b/danb/archive/tags/Microsoft/default.aspx">Microsoft</category><category domain="http://danbartels.com/blog/b/danb/archive/tags/Zune/default.aspx">Zune</category><category domain="http://danbartels.com/blog/b/danb/archive/tags/MP3/default.aspx">MP3</category><category domain="http://danbartels.com/blog/b/danb/archive/tags/Pandora/default.aspx">Pandora</category><category domain="http://danbartels.com/blog/b/danb/archive/tags/Music/default.aspx">Music</category></item><item><title>Improve Vista Performance</title><link>http://danbartels.com/blog/b/danb/archive/2008/02/26/improve-vista-performance.aspx</link><pubDate>Tue, 26 Feb 2008 14:41:00 GMT</pubDate><guid isPermaLink="false">689e881c-f887-4caa-a108-8998bed89a27:493806</guid><dc:creator>DanB</dc:creator><slash:comments>1</slash:comments><description>&lt;P&gt;&lt;SPAN class=mceItemHidden&gt;Ran across these couple of tips on the Internet the other day, and thought I would pass them along...&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN class=mceItemHidden&gt;First, my own tip, make sure you have the latest video driver installed...&amp;nbsp; chances are pretty good that your video card is the lowest&amp;nbsp; ranked item in your preformance index, its amazing what a new driver can do for the performance and stability of your system (not always a good thing, but in general its a good idea to keep your driver updated).&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;Second, disk per&lt;SPAN class=mceItemHidden&gt;&lt;SPAN class=mceItemHiddenSpellWord&gt;formance&lt;/SPAN&gt;...&amp;nbsp; Vista has advanced output caching support for SATA drives...&amp;nbsp; if you have a batter backup, or are on a laptop...&amp;nbsp; Go into device manager, and right click on your disks, select properties, then on the policies tab, mark the "Enable Write Caching" and "Enable Advanced Per&lt;SPAN class=mceItemHiddenSpellWord&gt;formance&lt;/SPAN&gt;" options.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN class=mceItemHidden&gt;Lastly, I would recommend disabling the network "auto tuning" feature, its supposed to dynamically adjust the packet size for network performance, but lets face it, our home networks are not what this was targeted at.&amp;nbsp; Its actually hurting your network performance, by trying to tune it...&amp;nbsp; Open an administrative command prompt, and type....&amp;nbsp;&amp;nbsp; "&lt;SPAN class=mceItemHiddenSpellWord&gt;netsh&lt;/SPAN&gt; int &lt;SPAN class=mceItemHiddenSpellWord&gt;tcp&lt;/SPAN&gt; set global &lt;SPAN class=mceItemHiddenSpellWord&gt;autotuninglevel&lt;/SPAN&gt;=normal"&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN class=mceItemHidden&gt;The attached article also talks about how to disable UAP, the &lt;SPAN class=mceItemHiddenSpellWord&gt;popup&lt;/SPAN&gt; asking for administrative permission when you do a task that requires it...&amp;nbsp; I run with UAP enabled, but I realize most people despise it...&amp;nbsp; There is a nice tool out there...&amp;nbsp; Tweak UAC to help kill the feature, if you are in need of that, this should help you get it done (&lt;/SPAN&gt;&lt;A href="http://www.tweak-uac.com/"&gt;&lt;SPAN class=mceItemHidden&gt;&lt;SPAN class=mceItemHiddenSpellWord&gt;http&lt;/SPAN&gt;://&lt;SPAN class=mceItemHiddenSpellWord&gt;www&lt;/SPAN&gt;.tweak-&lt;SPAN class=mceItemHiddenSpellWord&gt;uac&lt;/SPAN&gt;.com/&lt;/SPAN&gt;&lt;/A&gt;)&lt;/P&gt;
&lt;P&gt;Dan&lt;/P&gt;
&lt;P&gt;&lt;A href="http://vista.blorge.com/2008/02/25/how-to-fix-three-broken-features-of-vista/"&gt;&lt;SPAN class=mceItemHidden&gt;&lt;SPAN class=mceItemHiddenSpellWord&gt;http&lt;/SPAN&gt;://vista.&lt;SPAN class=mceItemHiddenSpellWord&gt;blorge&lt;/SPAN&gt;.com/2008/02/25/how-to-fix-three-broken-features-of-vista/&lt;/SPAN&gt;&lt;/A&gt;&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://danbartels.com/aggbug.aspx?PostID=493806" width="1" height="1"&gt;</description><category domain="http://danbartels.com/blog/b/danb/archive/tags/Windows+Vista+_2800_Longhorn_2900_/default.aspx">Windows Vista (Longhorn)</category><category domain="http://danbartels.com/blog/b/danb/archive/tags/x64+_2D00_+64+bit+Windows/default.aspx">x64 - 64 bit Windows</category><category domain="http://danbartels.com/blog/b/danb/archive/tags/Vista/default.aspx">Vista</category><category domain="http://danbartels.com/blog/b/danb/archive/tags/Tips+and+Tricks/default.aspx">Tips and Tricks</category></item><item><title>ScriptResource.axd Time Sensative</title><link>http://danbartels.com/blog/b/danb/archive/2008/01/24/scriptresource-axd-time-sensative.aspx</link><pubDate>Thu, 24 Jan 2008 19:02:00 GMT</pubDate><guid isPermaLink="false">689e881c-f887-4caa-a108-8998bed89a27:493805</guid><dc:creator>DanB</dc:creator><slash:comments>0</slash:comments><description>&lt;P&gt;&lt;SPAN class=mceItemHidden&gt;In CS 2008 we have our &lt;SPAN class=mceItemHiddenSpellWord&gt;javascript&lt;/SPAN&gt; files linked through the &lt;SPAN class=mceItemHiddenSpellWord&gt;scriptresource&lt;/SPAN&gt;.&lt;SPAN class=mceItemHiddenSpellWord&gt;axd&lt;/SPAN&gt; handler.&amp;nbsp; This is very similar to the &lt;SPAN class=mceItemHiddenSpellWord&gt;webresource&lt;/SPAN&gt;.&lt;SPAN class=mceItemHiddenSpellWord&gt;axd&lt;/SPAN&gt; handler in that it serves content from within a &lt;SPAN class=mceItemHiddenSpellWord&gt;dll&lt;/SPAN&gt;.&amp;nbsp; The gotcha is that the &lt;SPAN class=mceItemHiddenSpellWord&gt;scriptresource&lt;/SPAN&gt; handler will throw an exception if the &lt;SPAN class=mceItemHiddenSpellWord&gt;timestamp&lt;/SPAN&gt; of the assembly is newer than the current server time...&amp;nbsp; This is not timezone aware.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN class=mceItemHidden&gt;The result...&amp;nbsp; Your in central time, you compile CS, and deploy it to your server in say pacific time, and &lt;SPAN class=mceItemHiddenSpellWord&gt;vola&lt;/SPAN&gt;...&amp;nbsp; you get &lt;SPAN class=mceItemHiddenSpellWord&gt;javascript&lt;/SPAN&gt; errors....&amp;nbsp; why?&amp;nbsp; well the &lt;SPAN class=mceItemHiddenSpellWord&gt;scriptresource&lt;/SPAN&gt;.&lt;SPAN class=mceItemHiddenSpellWord&gt;axd&lt;/SPAN&gt; will throw an exception because it thinks the &lt;SPAN class=mceItemHiddenSpellWord&gt;dll&lt;/SPAN&gt; is invalid because its &lt;SPAN class=mceItemHiddenSpellWord&gt;timestamp&lt;/SPAN&gt; is newer than the server time....&amp;nbsp; the error magically goes away in two hours, because now the server thinks the &lt;SPAN class=mceItemHiddenSpellWord&gt;dll&lt;/SPAN&gt; time is &lt;SPAN class=mceItemHiddenSpellWord&gt;ok&lt;/SPAN&gt;...&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN class=mceItemHidden&gt;Its important to note, this is not a CS bug, but rather how the Microsoft script handler &lt;SPAN class=mceItemHiddenSpellWord&gt;scriptresource&lt;/SPAN&gt;.&lt;SPAN class=mceItemHiddenSpellWord&gt;axd&lt;/SPAN&gt; is coded.&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;To work around the issue, set the time on your development workstation to the same time as your server, before you build.&lt;/P&gt;
&lt;P&gt;Dan&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://danbartels.com/aggbug.aspx?PostID=493805" width="1" height="1"&gt;</description><category domain="http://danbartels.com/blog/b/danb/archive/tags/Community+Server/default.aspx">Community Server</category><category domain="http://danbartels.com/blog/b/danb/archive/tags/Microsoft/default.aspx">Microsoft</category></item><item><title>Windows Vista SP1 RC1 Released</title><link>http://danbartels.com/blog/b/danb/archive/2007/12/12/windows-vista-sp1-rc1-released.aspx</link><pubDate>Wed, 12 Dec 2007 17:07:00 GMT</pubDate><guid isPermaLink="false">689e881c-f887-4caa-a108-8998bed89a27:452535</guid><dc:creator>DanB</dc:creator><slash:comments>0</slash:comments><description>&lt;P&gt;Microsoft has made the current release of Vista RC1 available to early adoptors via Windows Update or as a stand alone download (~850mb).&lt;/P&gt;
&lt;P&gt;&lt;A href="http://www.microsoft.com/downloads/details.aspx?FamilyID=9de6260e-4275-482d-9524-de850c4dd91c&amp;amp;DisplayLang=en"&gt;http://www.microsoft.com/downloads/details.aspx?FamilyID=9de6260e-4275-482d-9524-de850c4dd91c&amp;amp;DisplayLang=en&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Dan&lt;/P&gt;
&lt;P&gt;You may also note a Office 2007 Sp1 was released today&lt;/P&gt;
&lt;P&gt;&lt;A href="http://office.microsoft.com/en-us/downloads/default.aspx?ofcresset=1"&gt;http://office.microsoft.com/en-us/downloads/default.aspx?ofcresset=1&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;The Vista SP1 Download is a small Zip file with some documentation and a registry script to make it so you can see the SP in Windows Update&lt;/P&gt;
&lt;P&gt;reg delete HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\VistaSp1 /f &amp;gt; NUL 2&amp;gt;&amp;amp;1&lt;BR&gt;reg delete HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\WindowsUpdate\VistaSP1 /f &amp;gt; NUL 2&amp;gt;&amp;amp;1&lt;/P&gt;
&lt;P&gt;reg add HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\VistaSp1 /v Beta1 /t REG_SZ /d c92ef077-adc4-46ef-b96b-02a42d60ede5 /f&lt;BR&gt;&lt;/P&gt;
&lt;P&gt;Further, you can get the stand-alone installers at&lt;/P&gt;
&lt;P&gt;32 bit - &lt;A href="http://www.microsoft.com/downloads/details.aspx?FamilyID=be34577a-e925-48fb-9d6d-50fe9461f808&amp;amp;DisplayLang=en"&gt;http://www.microsoft.com/downloads/details.aspx?FamilyID=be34577a-e925-48fb-9d6d-50fe9461f808&amp;amp;DisplayLang=en&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;64 bit - &lt;A href="http://www.microsoft.com/downloads/details.aspx?FamilyID=c21c3978-3b7d-4d64-873b-3c9d26982d7a&amp;amp;DisplayLang=en"&gt;http://www.microsoft.com/downloads/details.aspx?FamilyID=c21c3978-3b7d-4d64-873b-3c9d26982d7a&amp;amp;DisplayLang=en&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://danbartels.com/aggbug.aspx?PostID=452535" width="1" height="1"&gt;</description><category domain="http://danbartels.com/blog/b/danb/archive/tags/Vista/default.aspx">Vista</category></item><item><title>Kevin Harder Live Blogging the CSDC</title><link>http://danbartels.com/blog/b/danb/archive/2007/10/21/kevin-harder-live-blogging-the-csdc.aspx</link><pubDate>Sun, 21 Oct 2007 14:38:00 GMT</pubDate><guid isPermaLink="false">689e881c-f887-4caa-a108-8998bed89a27:387094</guid><dc:creator>DanB</dc:creator><slash:comments>1</slash:comments><description>&lt;P&gt;We are having an awesome time at the Community Server Developers conference, developers from around the &lt;STRIKE&gt;country&lt;/STRIKE&gt; world have converged to hear about the future and direction of Telligent development.&lt;/P&gt;
&lt;P&gt;Kevin Harder has been blogging the event for those who can only attend in spirit.&amp;nbsp; We have been recording all of the presentations; and hopefully our video blogging champion Ado, will have some downloads soon...&lt;/P&gt;
&lt;P&gt;Dan&lt;/P&gt;
&lt;P&gt;Check out the live blog at &lt;/P&gt;
&lt;P&gt;&lt;A href="http://kevinharder.com/blog/archive/2007/10/20/live-blogging-the-csdc.aspx"&gt;http://kevinharder.com/blog/archive/2007/10/20/live-blogging-the-csdc.aspx&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://kevinharder.com/blog/archive/2007/10/20/live-blogging-the-csdc-part-2.aspx"&gt;http://kevinharder.com/blog/archive/2007/10/20/live-blogging-the-csdc-part-2.aspx&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://kevinharder.com/blog/archive/2007/10/21/live-blogging-the-csdc-part-3.aspx"&gt;http://kevinharder.com/blog/archive/2007/10/21/live-blogging-the-csdc-part-3.aspx&lt;/A&gt;&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://danbartels.com/aggbug.aspx?PostID=387094" width="1" height="1"&gt;</description><category domain="http://danbartels.com/blog/b/danb/archive/tags/Community+Server/default.aspx">Community Server</category><category domain="http://danbartels.com/blog/b/danb/archive/tags/CS+2007/default.aspx">CS 2007</category></item><item><title>Win2008 RC0 install fails x8007045d</title><link>http://danbartels.com/blog/b/danb/archive/2007/10/15/win2008-rc0-install-fails-x8007045d.aspx</link><pubDate>Mon, 15 Oct 2007 15:20:00 GMT</pubDate><guid isPermaLink="false">689e881c-f887-4caa-a108-8998bed89a27:379840</guid><dc:creator>DanB</dc:creator><slash:comments>0</slash:comments><description>&lt;P&gt;The current installer locks access to the disk open, so if you did something, like asked it to "format" your disk prior to installing Windows Server 2008, the format process will silently fail, the copy files will silently fail, and you will get a x8007045d during the expanding files portion of the install.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;You will need to reboot, choose repair instead of install, click next on the choose OS dialog, then command prompt, and manually format your drive (format c:).&amp;nbsp; You should then be able to continue the installation.&lt;/P&gt;
&lt;P&gt;Dan&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://danbartels.com/aggbug.aspx?PostID=379840" width="1" height="1"&gt;</description><category domain="http://danbartels.com/blog/b/danb/archive/tags/Windows+Vista+_2800_Longhorn_2900_/default.aspx">Windows Vista (Longhorn)</category><category domain="http://danbartels.com/blog/b/danb/archive/tags/Windows+Server+2008/default.aspx">Windows Server 2008</category></item><item><title>Amazon Mp3 has arrived (public beta)</title><link>http://danbartels.com/blog/b/danb/archive/2007/09/25/amazon-mp3-has-arrived-public-beta.aspx</link><pubDate>Tue, 25 Sep 2007 16:29:00 GMT</pubDate><guid isPermaLink="false">689e881c-f887-4caa-a108-8998bed89a27:379838</guid><dc:creator>DanB</dc:creator><slash:comments>0</slash:comments><description>&lt;P&gt;&lt;SPAN class=mceItemHidden&gt;As I speculated based on &lt;SPAN class=mceItemHiddenSpellWord&gt;internet&lt;/SPAN&gt; rumors nearly a year ago (&lt;/SPAN&gt;&lt;A href="http://blog.danbartels.com/archive/2006/12/26/good-bye-yahoo-music-hello-zune.aspx"&gt;&lt;SPAN class=mceItemHidden&gt;&lt;SPAN class=mceItemHiddenSpellWord&gt;http&lt;/SPAN&gt;://&lt;SPAN class=mceItemHiddenSpellWord&gt;blog&lt;/SPAN&gt;.&lt;SPAN class=mceItemHiddenSpellWord&gt;danbartels&lt;/SPAN&gt;.com/archive/2006/12/26/good-bye-yahoo-music-hello-&lt;SPAN class=mceItemHiddenSpellWord&gt;zune&lt;/SPAN&gt;.&lt;SPAN class=mceItemHiddenSpellWord&gt;aspx&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/A&gt;&lt;SPAN class=mceItemHidden&gt;)&amp;nbsp; Amazon has jumped into the &lt;SPAN class=mceItemHiddenSpellWord&gt;online&lt;/SPAN&gt; music sales foray...&amp;nbsp; Now you didn't need to be psychic to guess this, it seems to be a natural fit for the e-tailer.&amp;nbsp; While the .89 and .99 cent 256 &lt;SPAN class=mceItemHiddenSpellWord&gt;kbit&lt;/SPAN&gt; Mp3 tracks are arguably more expensive that Russian site (AllOfMp3.com and their derivatives) its nice to have a DRM free music choice in the popular Mp3 format.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;Check out their selection&amp;nbsp;&lt;A class="" href="http://www.amazon.com/b/ref=gw_br_mp3/103-9101608-2003818?%5Fencoding=UTF8&amp;amp;node=163856011&amp;amp;pf_rd_m=ATVPDKIKX0DER&amp;amp;pf_rd_s=left-nav-1&amp;amp;pf_rd_r=1TZSHSCCBHG7G7NESZ7G&amp;amp;pf_rd_t=101&amp;amp;pf_rd_p=311501601&amp;amp;pf_rd_i=507846"&gt;Amazon.com Mp3&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN class=mceItemHidden&gt;I just hope that&amp;nbsp;now that they have built the marketplace, they find ways&amp;nbsp;to play nice with the independent music scene,&amp;nbsp; I&amp;nbsp;would also love to see a subscription option!&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;Dan&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://danbartels.com/aggbug.aspx?PostID=379838" width="1" height="1"&gt;</description><category domain="http://danbartels.com/blog/b/danb/archive/tags/Windows+Mobile/default.aspx">Windows Mobile</category><category domain="http://danbartels.com/blog/b/danb/archive/tags/Yahoo+Music/default.aspx">Yahoo Music</category></item><item><title>Extracting ExtendedAttributes via SQL</title><link>http://danbartels.com/blog/b/danb/archive/2007/05/11/extracting-extendedattributes-via-sql.aspx</link><pubDate>Fri, 11 May 2007 22:15:00 GMT</pubDate><guid isPermaLink="false">689e881c-f887-4caa-a108-8998bed89a27:180757</guid><dc:creator>DanB</dc:creator><slash:comments>1</slash:comments><description>&lt;P&gt;In Community Server, several of our classes derive from the ExtendedAttributes class.&amp;nbsp; This class creates a list of name value pairs on the class, and is picked off by our data layer and stored into two NTEXT columns in the table, PropertyNames, and PropertyValues.&amp;nbsp; This pattern is derived directly from the way that the ASPNET membership system implements this capability in the ASPNET_PROFILE table.&amp;nbsp; It allows you to define, and persist custom key value data with an item in the database without need to make schema changes.&amp;nbsp; Whats good about this, is its easy for a developer to save and retrieve custom pieces of information about the object, whats bad is its stored in an unfriendly way in the database and is very difficult to query against.&lt;/P&gt;&lt;FONT color=#0000ff size=2&gt;
&lt;P&gt;SELECT&lt;/FONT&gt;&lt;FONT size=2&gt; PropertyNames&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;,&lt;/FONT&gt;&lt;FONT size=2&gt; PropertyValues &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;FROM&lt;/FONT&gt;&lt;FONT size=2&gt; cs_Sections &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;WHERE&lt;/FONT&gt;&lt;FONT size=2&gt; ApplicationKey &lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;=&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;'sample'&lt;/P&gt;&lt;/FONT&gt;
&lt;P&gt;yieds a result of &lt;/P&gt;&lt;FONT size=1&gt;
&lt;P&gt;PropertyNames &lt;BR&gt;&lt;FONT size=1&gt;&lt;FONT size=1&gt;--------------------------------------------------------------------------------------------------------&lt;/FONT&gt;&lt;BR&gt;&lt;FONT size=1&gt;SectionOwners:S:0:5:CategorizationType:S:5:1:aboutTitle:S:6:12: &lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;FONT size=1&gt;&lt;FONT size=1&gt;&lt;FONT size=1&gt;
&lt;P&gt;PropertyValues&lt;BR&gt;&lt;FONT size=1&gt;--------------------------------------------------------------------------------------------------------&lt;BR&gt;&lt;FONT size=1&gt;admin1About Sample&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;
&lt;P&gt;In recently working with this, I wrote a bit of SQL to help extract a value from the PropertyValues column where you know the specific key.&amp;nbsp; I use this in a SQL script to populate a temp table which I can then join against; In this case I am trying to extract the section owner, which happens to be at the beginning of this property value collection, but doesnt need to be...&amp;nbsp; &lt;/P&gt;
&lt;P&gt;This SQL will extract the Owner Name and the Primary Key which in this case is a column called SectionID&lt;/P&gt;&lt;FONT color=#0000ff size=2&gt;
&lt;P&gt;DECLARE&lt;/FONT&gt;&lt;FONT size=2&gt; @PropertyString &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;NVARCHAR&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;(&lt;/FONT&gt;&lt;FONT size=2&gt;50&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;)&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;DECLARE&lt;/FONT&gt;&lt;FONT size=2&gt; @PropertyDelimiter &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;NVARCHAR&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;(&lt;/FONT&gt;&lt;FONT size=2&gt;50&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;)&lt;BR&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;FONT color=#0000ff size=2&gt;
&lt;P&gt;SET&lt;/FONT&gt;&lt;FONT size=2&gt; @PropertyString &lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;=&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;'%SectionOwners:S:%'&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;SET&lt;/FONT&gt;&lt;FONT size=2&gt; @PropertyDelimiter &lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;=&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;'%:%'&lt;BR&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;FONT color=#ff0000 size=2&gt;&lt;FONT color=#0000ff size=2&gt;
&lt;P&gt;SELECT&lt;BR&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;SectionID&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;,&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#ff00ff size=2&gt;&lt;FONT color=#ff00ff size=2&gt;SUBSTRING&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;(&lt;/FONT&gt;&lt;FONT color=#000000 size=2&gt;PropertyValues&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;,&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#ff00ff size=2&gt;
&lt;P&gt;CONVERT&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;(&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;int&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;,&lt;/FONT&gt;&lt;FONT color=#000000 size=2&gt; &lt;/FONT&gt;&lt;FONT color=#ff00ff size=2&gt;SUBSTRING&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;(&lt;/FONT&gt;&lt;FONT color=#ff00ff size=2&gt;SUBSTRING&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;(&lt;/FONT&gt;&lt;FONT color=#000000 size=2&gt;PropertyNames&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;,&lt;/FONT&gt;&lt;FONT color=#000000 size=2&gt; &lt;/FONT&gt;&lt;FONT color=#ff00ff size=2&gt;PATINDEX&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;(&lt;/FONT&gt;&lt;FONT color=#000000 size=2&gt;@PropertyString&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;,&lt;/FONT&gt;&lt;FONT color=#000000 size=2&gt; PropertyNames&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;)&lt;/FONT&gt;&lt;FONT color=#000000 size=2&gt; &lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;+&lt;/FONT&gt;&lt;FONT color=#000000 size=2&gt; &lt;/FONT&gt;&lt;FONT color=#ff00ff size=2&gt;LEN&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;(&lt;/FONT&gt;&lt;FONT color=#000000 size=2&gt;@PropertyString&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;)-&lt;/FONT&gt;&lt;FONT color=#000000 size=2&gt;2&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;,&lt;/FONT&gt;&lt;FONT color=#000000 size=2&gt; 100&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;),&lt;/FONT&gt;&lt;FONT color=#000000 size=2&gt;0&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;,&lt;/FONT&gt;&lt;FONT color=#ff00ff size=2&gt;PATINDEX&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;(&lt;/FONT&gt;&lt;FONT color=#000000 size=2&gt;@PropertyDelimiter&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;,&lt;/FONT&gt;&lt;FONT color=#000000 size=2&gt; &lt;/FONT&gt;&lt;FONT color=#ff00ff size=2&gt;SUBSTRING&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;(&lt;/FONT&gt;&lt;FONT color=#000000 size=2&gt;PropertyNames&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;,&lt;/FONT&gt;&lt;FONT color=#000000 size=2&gt; &lt;/FONT&gt;&lt;FONT color=#ff00ff size=2&gt;PATINDEX&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;(&lt;/FONT&gt;&lt;FONT color=#000000 size=2&gt;@PropertyString&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;,&lt;/FONT&gt;&lt;FONT color=#000000 size=2&gt; PropertyNames&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;)&lt;/FONT&gt;&lt;FONT color=#000000 size=2&gt; &lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;+&lt;/FONT&gt;&lt;FONT color=#000000 size=2&gt; &lt;/FONT&gt;&lt;FONT color=#ff00ff size=2&gt;LEN&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;(&lt;/FONT&gt;&lt;FONT color=#000000 size=2&gt;@PropertyString&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;)-&lt;/FONT&gt;&lt;FONT color=#000000 size=2&gt;2&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;,&lt;/FONT&gt;&lt;FONT color=#000000 size=2&gt; 100&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;))))+1,&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#ff00ff size=2&gt;
&lt;P&gt;CONVERT&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;(&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;int&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;,&lt;/FONT&gt;&lt;FONT color=#000000 size=2&gt; &lt;/FONT&gt;&lt;FONT color=#ff00ff size=2&gt;SUBSTRING&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;(&lt;/FONT&gt;&lt;FONT color=#ff00ff size=2&gt;SUBSTRING&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;(&lt;/FONT&gt;&lt;FONT color=#ff00ff size=2&gt;SUBSTRING&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;(&lt;/FONT&gt;&lt;FONT color=#000000 size=2&gt;PropertyNames&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;,&lt;/FONT&gt;&lt;FONT color=#000000 size=2&gt; &lt;/FONT&gt;&lt;FONT color=#ff00ff size=2&gt;PATINDEX&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;(&lt;/FONT&gt;&lt;FONT color=#000000 size=2&gt;@PropertyString&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;,&lt;/FONT&gt;&lt;FONT color=#000000 size=2&gt; PropertyNames&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;)&lt;/FONT&gt;&lt;FONT color=#000000 size=2&gt; &lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;+&lt;/FONT&gt;&lt;FONT color=#000000 size=2&gt; &lt;/FONT&gt;&lt;FONT color=#ff00ff size=2&gt;LEN&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;(&lt;/FONT&gt;&lt;FONT color=#000000 size=2&gt;@PropertyString&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;)-&lt;/FONT&gt;&lt;FONT color=#000000 size=2&gt;2&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;,&lt;/FONT&gt;&lt;FONT color=#000000 size=2&gt; 100&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;),&lt;/FONT&gt;&lt;FONT color=#ff00ff size=2&gt;PATINDEX&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;(&lt;/FONT&gt;&lt;FONT color=#000000 size=2&gt;@PropertyDelimiter&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;,&lt;/FONT&gt;&lt;FONT color=#000000 size=2&gt; &lt;/FONT&gt;&lt;FONT color=#ff00ff size=2&gt;SUBSTRING&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;(&lt;/FONT&gt;&lt;FONT color=#000000 size=2&gt;PropertyNames&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;,&lt;/FONT&gt;&lt;FONT color=#000000 size=2&gt; &lt;/FONT&gt;&lt;FONT color=#ff00ff size=2&gt;PATINDEX&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;(&lt;/FONT&gt;&lt;FONT color=#000000 size=2&gt;@PropertyString&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;,&lt;/FONT&gt;&lt;FONT color=#000000 size=2&gt; PropertyNames&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;)&lt;/FONT&gt;&lt;FONT color=#000000 size=2&gt; &lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;+&lt;/FONT&gt;&lt;FONT color=#000000 size=2&gt; &lt;/FONT&gt;&lt;FONT color=#ff00ff size=2&gt;LEN&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;(&lt;/FONT&gt;&lt;FONT color=#000000 size=2&gt;@PropertyString&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;)-&lt;/FONT&gt;&lt;FONT color=#000000 size=2&gt;2&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;,&lt;/FONT&gt;&lt;FONT color=#000000 size=2&gt; 100&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;))+&lt;/FONT&gt;&lt;FONT color=#000000 size=2&gt;1&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;,&lt;/FONT&gt;&lt;FONT color=#000000 size=2&gt;100&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;),&lt;/FONT&gt;&lt;FONT color=#000000 size=2&gt;0&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;,&lt;/FONT&gt;&lt;FONT color=#000000 size=2&gt; &lt;/FONT&gt;&lt;FONT color=#ff00ff size=2&gt;PATINDEX&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;(&lt;/FONT&gt;&lt;FONT color=#000000 size=2&gt;@PropertyDelimiter&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;,&lt;/FONT&gt;&lt;FONT color=#000000 size=2&gt; &lt;/FONT&gt;&lt;FONT color=#ff00ff size=2&gt;SUBSTRING&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;(&lt;/FONT&gt;&lt;FONT color=#ff00ff size=2&gt;SUBSTRING&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;(&lt;/FONT&gt;&lt;FONT color=#000000 size=2&gt;PropertyNames&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;,&lt;/FONT&gt;&lt;FONT color=#000000 size=2&gt; &lt;/FONT&gt;&lt;FONT color=#ff00ff size=2&gt;PATINDEX&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;(&lt;/FONT&gt;&lt;FONT color=#000000 size=2&gt;@PropertyString&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;,&lt;/FONT&gt;&lt;FONT color=#000000 size=2&gt; PropertyNames&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;)&lt;/FONT&gt;&lt;FONT color=#000000 size=2&gt; &lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;+&lt;/FONT&gt;&lt;FONT color=#000000 size=2&gt; &lt;/FONT&gt;&lt;FONT color=#ff00ff size=2&gt;LEN&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;(&lt;/FONT&gt;&lt;FONT color=#000000 size=2&gt;@PropertyString&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;)-&lt;/FONT&gt;&lt;FONT color=#000000 size=2&gt;2&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;,&lt;/FONT&gt;&lt;FONT color=#000000 size=2&gt; 100&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;),&lt;/FONT&gt;&lt;FONT color=#ff00ff size=2&gt;PATINDEX&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;(&lt;/FONT&gt;&lt;FONT color=#000000 size=2&gt;@PropertyDelimiter&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;,&lt;/FONT&gt;&lt;FONT color=#000000 size=2&gt; &lt;/FONT&gt;&lt;FONT color=#ff00ff size=2&gt;SUBSTRING&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;(&lt;/FONT&gt;&lt;FONT color=#000000 size=2&gt;PropertyNames&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;,&lt;/FONT&gt;&lt;FONT color=#000000 size=2&gt; &lt;/FONT&gt;&lt;FONT color=#ff00ff size=2&gt;PATINDEX&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;(&lt;/FONT&gt;&lt;FONT color=#000000 size=2&gt;@PropertyString&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;,&lt;/FONT&gt;&lt;FONT color=#000000 size=2&gt; PropertyNames&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;)&lt;/FONT&gt;&lt;FONT color=#000000 size=2&gt; &lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;+&lt;/FONT&gt;&lt;FONT color=#000000 size=2&gt; &lt;/FONT&gt;&lt;FONT color=#ff00ff size=2&gt;LEN&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;(&lt;/FONT&gt;&lt;FONT color=#000000 size=2&gt;@PropertyString&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;)-&lt;/FONT&gt;&lt;FONT color=#000000 size=2&gt;2&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;,&lt;/FONT&gt;&lt;FONT color=#000000 size=2&gt; 100&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;))+&lt;/FONT&gt;&lt;FONT color=#000000 size=2&gt;1&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;,&lt;/FONT&gt;&lt;FONT color=#000000 size=2&gt;100&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;))) -1)&lt;/P&gt;
&lt;P&gt;+&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT color=#000000&gt;1&lt;/FONT&gt;&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;
&lt;P&gt;)&lt;/FONT&gt;&lt;FONT color=#000000 size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;as&lt;/FONT&gt;&lt;FONT color=#000000 size=2&gt; Owners &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;from&lt;/FONT&gt;&lt;FONT color=#000000 size=2&gt; cs_Sections &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;WHERE&lt;/FONT&gt;&lt;FONT color=#000000 size=2&gt; &lt;/FONT&gt;&lt;FONT color=#ff00ff size=2&gt;PATINDEX&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;(&lt;/FONT&gt;&lt;FONT color=#000000 size=2&gt;@PropertyString&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;,&lt;/FONT&gt;&lt;FONT color=#000000 size=2&gt; PropertyNames&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;)&lt;/FONT&gt;&lt;FONT color=#000000 size=2&gt; &lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&amp;gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT color=#000000&gt; 0 &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;This code basically finds all the rows&amp;nbsp;that have the property, the property is&amp;nbsp;defined as [PropertyName]:[DataType]:[Begin]:[Length] or ( SectionOwners:S:0:5 ) so the first big&amp;nbsp;SUBSTRING, is&amp;nbsp;getting the first integer after the PropertyName:Datatype:, and the second is getting the&amp;nbsp;next integer after the first, which is the length...&amp;nbsp;(the only real assumption in the above code, is that the combined digits of the [begin]:[length] cannot exceed 100...&amp;nbsp; I am grabbing only the first 100 cars after the PropertyString to find the integers in)&lt;/P&gt;
&lt;P&gt;While my tests on SQL2005 seem to indicate that this is not a horrible query performance wise, I wouldn't want to constantly be doing this type of string manipulation, So I would only recommend this for reporting, special one off queries, or to use on a relatively infrequent process, like item save, to peel off the custom data and put it in an indexable location.&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://danbartels.com/aggbug.aspx?PostID=180757" width="1" height="1"&gt;</description><category domain="http://danbartels.com/blog/b/danb/archive/tags/2005+_2D00_+VS2005+and+SQL2005/default.aspx">2005 - VS2005 and SQL2005</category><category domain="http://danbartels.com/blog/b/danb/archive/tags/Community+Server/default.aspx">Community Server</category><category domain="http://danbartels.com/blog/b/danb/archive/tags/Tips+and+Tricks/default.aspx">Tips and Tricks</category><category domain="http://danbartels.com/blog/b/danb/archive/tags/CS+2007/default.aspx">CS 2007</category></item><item><title>Show your CS2007 stuff and Win</title><link>http://danbartels.com/blog/b/danb/archive/2007/04/27/show-your-cs2007-stuff-and-win.aspx</link><pubDate>Fri, 27 Apr 2007 20:14:00 GMT</pubDate><guid isPermaLink="false">689e881c-f887-4caa-a108-8998bed89a27:168618</guid><dc:creator>DanB</dc:creator><slash:comments>2</slash:comments><description>&lt;P&gt;&lt;SPAN class=mceItemHidden&gt;&lt;SPAN class=mceItemHiddenSpellWord&gt;Telligent&lt;/SPAN&gt; is having a little contest to see who can build the best theme for CS...&amp;nbsp; There are a couple of contests actually, one showcasing our new theme / markup&lt;/SPAN&gt;&amp;nbsp;system for full site themes, and another to creatively use the "export" option of our dynamic theme export feature.&lt;/P&gt;
&lt;P&gt;&lt;SPAN class=mceItemHidden&gt;The prizes include two &lt;SPAN class=mceItemHiddenSpellWord&gt;MacBooks&lt;/SPAN&gt; and Two &lt;SPAN class=mceItemHiddenSpellWord&gt;XBox&lt;/SPAN&gt; 360 Elites.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;Check out the official page!&lt;/P&gt;
&lt;P&gt;&lt;A href="http://docs.communityserver.org/wiki/page.aspx/239/community-server-2007-theming-extravaganza/"&gt;&lt;SPAN class=mceItemHidden&gt;&lt;SPAN class=mceItemHiddenSpellWord&gt;http&lt;/SPAN&gt;://docs.&lt;SPAN class=mceItemHiddenSpellWord&gt;communityserver&lt;/SPAN&gt;.&lt;SPAN class=mceItemHiddenSpellWord&gt;org&lt;/SPAN&gt;/&lt;SPAN class=mceItemHiddenSpellWord&gt;wiki&lt;/SPAN&gt;/page.&lt;SPAN class=mceItemHiddenSpellWord&gt;aspx&lt;/SPAN&gt;/239/community-server-2007-theming-extravaganza/&lt;/SPAN&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Dan&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://danbartels.com/aggbug.aspx?PostID=168618" width="1" height="1"&gt;</description><category domain="http://danbartels.com/blog/b/danb/archive/tags/Community+Server/default.aspx">Community Server</category><category domain="http://danbartels.com/blog/b/danb/archive/tags/CS+2007/default.aspx">CS 2007</category></item></channel></rss>