<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://weblogs.asp.net/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/"><channel><title>Rob Chartier ~ Contemplation...</title><link>http://weblogs.asp.net/rchartier/default.aspx</link><description>.NET, C#, Work, etc.</description><dc:language>en</dc:language><generator>CommunityServer 2007 SP1 (Build: 20510.895)</generator><item><title>Velocity and ASP.NET Session State - Web.Config</title><link>http://weblogs.asp.net/rchartier/archive/2009/05/23/velocity-and-asp-net-session-state-web-config.aspx</link><pubDate>Sun, 24 May 2009 00:32:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:7095546</guid><dc:creator>Rob Chartier</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/rchartier/rsscomments.aspx?PostID=7095546</wfw:commentRss><comments>http://weblogs.asp.net/rchartier/archive/2009/05/23/velocity-and-asp-net-session-state-web-config.aspx#comments</comments><description>&lt;P mce_keep="true"&gt;Alex&amp;nbsp;blogged the web.config entries for enabling Velocity CTP3 in web.config for ASP.NET Session State.&lt;/P&gt;
&lt;P mce_keep="true"&gt;&lt;A href="http://tinyurl.com/velaspnetconfig"&gt;http://tinyurl.com/velaspnetconfig&lt;/A&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=7095546" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/rchartier/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://weblogs.asp.net/rchartier/archive/tags/Velocity/default.aspx">Velocity</category></item><item><title>Velocity PowerShell Quick Reference (CTP3)</title><link>http://weblogs.asp.net/rchartier/archive/2009/05/23/velocity-powershell-quick-reference-ctp3.aspx</link><pubDate>Sun, 24 May 2009 00:27:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:7095543</guid><dc:creator>Rob Chartier</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/rchartier/rsscomments.aspx?PostID=7095543</wfw:commentRss><comments>http://weblogs.asp.net/rchartier/archive/2009/05/23/velocity-powershell-quick-reference-ctp3.aspx#comments</comments><description>&lt;P mce_keep="true"&gt;Since I'm doing my talk on Velocity this week I took the time to update my Quick Reference Sheet&amp;nbsp;for PowerShell commands.&lt;/P&gt;
&lt;P mce_keep="true"&gt;&lt;A href="http://weblogs.asp.net/blogs/rchartier/Velocity-PowerShell-QuickReference-CTP3.zip" target=_blank mce_href="http://weblogs.asp.net/blogs/rchartier/Velocity-PowerShell-QuickReference-CTP3.zip"&gt;&amp;nbsp;Download it here.&lt;/A&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;Essentially the only change that I could tell is the -Notifications flag was added. You use this parameter to enable the cache notifications feature when creating a new cache, or updating an existing cache.&lt;/P&gt;
&lt;P mce_keep="true"&gt;For a more complete difference between CTP2 and CTP3, &lt;A href="http://blogs.msdn.com/velocity/archive/2009/04/08/announcing-velocity-ctp3.aspx" target=_blank mce_href="http://blogs.msdn.com/velocity/archive/2009/04/08/announcing-velocity-ctp3.aspx"&gt;read this blog post.&lt;/A&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=7095543" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/rchartier/archive/tags/.NET/default.aspx">.NET</category><category domain="http://weblogs.asp.net/rchartier/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://weblogs.asp.net/rchartier/archive/tags/Quick+Reference/default.aspx">Quick Reference</category><category domain="http://weblogs.asp.net/rchartier/archive/tags/Velocity/default.aspx">Velocity</category></item><item><title>jQuery &amp; .NET</title><link>http://weblogs.asp.net/rchartier/archive/2009/04/07/jquery-amp-net.aspx</link><pubDate>Wed, 08 Apr 2009 01:02:57 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:7034620</guid><dc:creator>Rob Chartier</dc:creator><slash:comments>3</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/rchartier/rsscomments.aspx?PostID=7034620</wfw:commentRss><comments>http://weblogs.asp.net/rchartier/archive/2009/04/07/jquery-amp-net.aspx#comments</comments><description>&lt;p&gt;In the Javascript world, the hot topic these days seems to be &lt;a href="http://www.jquery.com/" target="_blank"&gt;jQuery&lt;/a&gt;.&amp;#160; Microsoft is beginning to see its value, and &lt;a href="http://www.dotnetnuke.com" target="_blank"&gt;DotNetNuke&lt;/a&gt; is baking it in in their 5.0+ release.&amp;#160; For me, it just makes sense to add it to my portfolio.&lt;/p&gt;  &lt;p&gt;When I take the time to learn any sort of new technology I make an attempt to take the project and turn it into something useable.&amp;#160; In the case of jQuery I decided to create a set of ASP.NET Friendly controls which wrap up the &lt;a href="http://www.jqueryui.com/" target="_blank"&gt;jQuery UI Interactions and Widgets&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Enter &lt;a href="http://jquerydotnet.codeplex.com/" target="_blank"&gt;jQueryDotNet&lt;/a&gt;. (&lt;a href="http://jquerydotnet.codeplex.com/Release/ProjectReleases.aspx" target="_blank"&gt;Download&lt;/a&gt;)&lt;/p&gt;  &lt;p&gt;Its a little project I did, mostly over the past weekend.&amp;#160; Each of these controls include all options and client side events for each Widget and Interaction and even an Animation and Effect implementation.&lt;/p&gt;  &lt;h4&gt;Interactions (ASP.NET Extender Controls) &lt;/h4&gt; Draggable &lt;b&gt;(done)&lt;/b&gt;   &lt;br /&gt;Droppable &lt;b&gt;(done)&lt;/b&gt;   &lt;br /&gt;Resizable &lt;b&gt;(done)&lt;/b&gt;   &lt;br /&gt;Selectable &lt;b&gt;(done)&lt;/b&gt;   &lt;br /&gt;Sortable &lt;b&gt;(done)&lt;/b&gt;   &lt;br /&gt;Dialog &lt;b&gt;(done)&lt;/b&gt;   &lt;br /&gt;Full Ajax support on Client and Server (using JSON Serialization) &lt;b&gt;(done)&lt;/b&gt;   &lt;h4&gt;Widgets (ASP.NET Server Controls) &lt;/h4&gt; Accordion &lt;b&gt;(done)&lt;/b&gt;   &lt;br /&gt;Datepicker &lt;b&gt;(done)&lt;/b&gt;   &lt;br /&gt;Progressbar &lt;b&gt;(done)&lt;/b&gt;   &lt;br /&gt;Slider &lt;b&gt;(done)&lt;/b&gt;   &lt;br /&gt;Tabs &lt;b&gt;(done)&lt;/b&gt;   &lt;h4&gt;Effects (ASP.NET Extender Controls) &lt;/h4&gt;  &lt;p&gt;Effects &lt;b&gt;(done)&lt;/b&gt;     &lt;br /&gt;Animation &lt;b&gt;(done)&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Its very difficult to actually get the whole experience across in simple screen shots, but if your the type that needs them, &lt;a href="http://www.flickr.com/photos/chartier-family/sets/72157616380098421/" target="_blank"&gt;here is a flickr set.&lt;/a&gt;&amp;#160;&lt;/p&gt;  &lt;h4&gt;Sample Code:&lt;/h4&gt;  &lt;p&gt;First thing is first, you need to add a ScriptManager control to the page:&lt;/p&gt;  &lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;cc2:ScriptManager&lt;/span&gt; &lt;span class="attr"&gt;EnableNoConflict&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;true&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;ID&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;ScriptManager1&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;runat&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;server&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;cc2:ScriptManager&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;style type="text/css"&gt;
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;

&lt;p&gt;Notice the difference between an actual Server Side Control like the Accordion Control vs an Extender Control like the Resizable Extender.&amp;#160;&amp;#160; Extender controls are designed to be added to an existing page and extend a specific control client side UI – like making a panel resizable!&lt;/p&gt;

&lt;p&gt;Here is just a few examples of what is available in the jQueryDotNet project.&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;h5&gt;Accordion Control:&lt;/h5&gt;

&lt;pre class="csharpcode"&gt;    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;cc1:AccordianControl&lt;/span&gt; &lt;span class="attr"&gt;Collapsible&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;true&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;Event&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;click&amp;quot;&lt;/span&gt;  &lt;br /&gt;                     &lt;span class="attr"&gt;OnClientTabChange&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;alert(ui.newHeader.context.innerText)&amp;quot;&lt;/span&gt; &lt;br /&gt;                     &lt;span class="attr"&gt;ID&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;JQueryPanel1&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;runat&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;server&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;Accordian&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;true&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;cc1:AccordianPanel&lt;/span&gt; &lt;span class="attr"&gt;ID&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;Accordian1&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;runat&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;server&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;Text&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;Accordian Panel 1&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
            This is accordian panel 1
        &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;cc1:AccordianPanel&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;cc1:AccordianPanel&lt;/span&gt; &lt;span class="attr"&gt;ID&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;Accordian2&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;runat&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;server&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;Text&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;Accordian Panel 2&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
            This is accordian panel 2
        &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;cc1:AccordianPanel&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;cc1:AccordianPanel&lt;/span&gt; &lt;span class="attr"&gt;ID&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;Accordian3&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;runat&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;server&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;Text&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;Accordian Panel 3&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
            This is accordian panel 3
        &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;cc1:AccordianPanel&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;cc1:AccordianPanel&lt;/span&gt; &lt;span class="attr"&gt;ID&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;Accordian4&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;runat&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;server&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;Text&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;Accordian Panel 4&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
            This is accordian panel 4
        &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;cc1:AccordianPanel&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;cc1:AccordianControl&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

&lt;h6&gt;Screen Shot:&lt;/h6&gt;
&lt;img height="512" src="http://farm4.static.flickr.com/3405/3420982073_a330889a52_o.jpg" width="692" border="0" /&gt; 

&lt;pre class="csharpcode"&gt;&amp;#160;&lt;/pre&gt;
&lt;style type="text/css"&gt;



.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;

&lt;h5&gt;&amp;#160;&lt;/h5&gt;

&lt;h5&gt;Ajax Support&lt;/h5&gt;

&lt;pre class="csharpcode"&gt;&amp;lt;script type=&lt;span class="str"&gt;&amp;quot;text/javascript&amp;quot;&lt;/span&gt;&amp;gt;

var result = &lt;span class="str"&gt;''&lt;/span&gt;;
function AjaxCallBack(ServerResult, Status) {
    debugger;
    &lt;span class="kwrd"&gt;if&lt;/span&gt;(Status == &lt;span class="str"&gt;&amp;quot;success&amp;quot;&lt;/span&gt;) {
        var result = eval(&lt;span class="str"&gt;'('&lt;/span&gt; + ServerResult + &lt;span class="str"&gt;')'&lt;/span&gt;);;
        result = ServerResult;
    }
}

function GatherSomeData() {
    debugger;
    &lt;span class="kwrd"&gt;return&lt;/span&gt; &lt;span class="str"&gt;'{&amp;quot;SharedString&amp;quot;:&amp;quot;Hello World&amp;quot;,&amp;quot;SharedDouble&amp;quot;:6.0,&amp;quot;SharedInt&amp;quot;:5,&amp;quot;Children&amp;quot;:[{&amp;quot;SharedChildString&amp;quot;:&amp;quot;Im a child from the client!!&amp;quot;}]}'&lt;/span&gt;;
}
&amp;lt;/script&amp;gt;

&amp;lt;asp:Button runat=&lt;span class="str"&gt;&amp;quot;server&amp;quot;&lt;/span&gt; ID=&lt;span class="str"&gt;&amp;quot;TriggerButton&amp;quot;&lt;/span&gt; Text=&lt;span class="str"&gt;&amp;quot;Click Me&amp;quot;&lt;/span&gt; OnClientClick=&lt;span class="str"&gt;&amp;quot;return false;&amp;quot;&lt;/span&gt; /&amp;gt;
&amp;lt;asp:Label runat=&lt;span class="str"&gt;&amp;quot;server&amp;quot;&lt;/span&gt; ID=&lt;span class="str"&gt;&amp;quot;ResultLabel&amp;quot;&lt;/span&gt; Text=&lt;span class="str"&gt;&amp;quot;Results&amp;quot;&lt;/span&gt;&amp;gt;&amp;lt;/asp:Label&amp;gt;

&amp;lt;cc2:AjaxExtender runat=&lt;span class="str"&gt;&amp;quot;server&amp;quot;&lt;/span&gt; ID=&lt;span class="str"&gt;&amp;quot;AjaxExtender1&amp;quot;&lt;/span&gt;  
MethodName=&lt;span class="str"&gt;&amp;quot;ServerMethod&amp;quot;&lt;/span&gt; Callback=&lt;span class="str"&gt;&amp;quot;AjaxCallBack&amp;quot;&lt;/span&gt; TriggerControl=&lt;span class="str"&gt;&amp;quot;TriggerButton&amp;quot;&lt;/span&gt;
OnClientBeforeAjax=&lt;span class="str"&gt;&amp;quot;GatherSomeData();&amp;quot;&lt;/span&gt;
&amp;gt;&amp;lt;/cc2:AjaxExtender&amp;gt;&lt;/pre&gt;

&lt;h6&gt;Code Behind:&lt;/h6&gt;

&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;partial&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; AjaxArrayJson : System.Web.UI.Page
{
    &lt;span class="kwrd"&gt;protected&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; Page_Load(&lt;span class="kwrd"&gt;object&lt;/span&gt; sender, EventArgs e)
    {

    }
    &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;string&lt;/span&gt; ServerMethod(HttpContext context, &lt;span class="kwrd"&gt;string&lt;/span&gt; UniqueID, &lt;span class="kwrd"&gt;string&lt;/span&gt; Data)
    {
        &lt;span class="kwrd"&gt;if&lt;/span&gt; (Data == &lt;span class="str"&gt;&amp;quot;&amp;quot;&lt;/span&gt;)
        {
            SharedData sd = &lt;span class="kwrd"&gt;new&lt;/span&gt; SharedData();
            sd.SharedDouble = 6;
            sd.SharedInt = 5;
            sd.SharedString = &lt;span class="str"&gt;&amp;quot;Hello World&amp;quot;&lt;/span&gt;;
            sd.Children = &lt;span class="kwrd"&gt;new&lt;/span&gt; List&amp;lt;SharedChild&amp;gt;();
            SharedChild c1 = &lt;span class="kwrd"&gt;new&lt;/span&gt; SharedChild();
            c1.SharedChildString = &lt;span class="str"&gt;&amp;quot;Im a child&amp;quot;&lt;/span&gt;;
            sd.Children.Add(c1);
            &lt;span class="kwrd"&gt;return&lt;/span&gt; Newtonsoft.Json.JsonConvert.SerializeObject(sd);
        }
        &lt;span class="kwrd"&gt;else&lt;/span&gt;
        {
            SharedData data = (Newtonsoft.Json.JsonConvert.DeserializeObject(Data, &lt;span class="kwrd"&gt;typeof&lt;/span&gt; (SharedData)) &lt;span class="kwrd"&gt;as&lt;/span&gt; SharedData);
            &lt;span class="kwrd"&gt;if&lt;/span&gt; (data != &lt;span class="kwrd"&gt;null&lt;/span&gt;)
                &lt;span class="kwrd"&gt;return&lt;/span&gt; &lt;span class="str"&gt;&amp;quot;{\&amp;quot;result\&amp;quot;:\&amp;quot;GOOD\&amp;quot;}&amp;quot;&lt;/span&gt;;
            &lt;span class="kwrd"&gt;else&lt;/span&gt;
                &lt;span class="kwrd"&gt;return&lt;/span&gt; &lt;span class="str"&gt;&amp;quot;{\&amp;quot;result\&amp;quot;:\&amp;quot;BAD\&amp;quot;}&amp;quot;&lt;/span&gt;;
        }
        &lt;span class="kwrd"&gt;return&lt;/span&gt; &lt;span class="str"&gt;&amp;quot;&amp;quot;&lt;/span&gt;;
    }
}

&lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; SharedData
{
    &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;string&lt;/span&gt; SharedString { get; set; }
    &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;double&lt;/span&gt; SharedDouble { get; set; }
    &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;int&lt;/span&gt; SharedInt { get; set; }
    &lt;span class="kwrd"&gt;public&lt;/span&gt; System.Collections.Generic.List&amp;lt;SharedChild&amp;gt; Children { get; set; }
}
&lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; SharedChild
{
    &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;string&lt;/span&gt; SharedChildString { get; set; }   
}&lt;/pre&gt;

&lt;h5&gt;&amp;#160;&lt;/h5&gt;

&lt;h5&gt;Animations:&lt;/h5&gt;

&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;asp:Panel&lt;/span&gt; &lt;span class="attr"&gt;runat&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;server&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;ID&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;Panel1&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;BorderWidth&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;1&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
this is the content&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;br&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;
this is the content&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;br&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;
this is the content&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;br&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;
&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;asp:Panel&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;

&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;br&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;br&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;br&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;
&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;asp:Panel&lt;/span&gt; &lt;span class="attr"&gt;runat&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;server&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;ID&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;Panel2&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;BorderWidth&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;1&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;div&lt;/span&gt; &lt;span class="attr"&gt;id&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;AniDiv&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;runat&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;server&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
Click me
&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;div&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;asp:Panel&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;

&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;cc2:Animate&lt;/span&gt; &lt;span class="attr"&gt;runat&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;server&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;ID&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;Animate1&amp;quot;&lt;/span&gt; 
&lt;span class="attr"&gt;TriggerControl&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;Panel1&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;AssociatedControl&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;Panel2&amp;quot;&lt;/span&gt;
&lt;span class="attr"&gt;To&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;backgroundColor: '#fff', color: '#000', width: 240&amp;quot;&lt;/span&gt;
&lt;span class="attr"&gt;From&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;backgroundColor: '#aa0000', color: '#fff', width: 500&amp;quot;&lt;/span&gt;
 &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;&lt;style type="text/css"&gt;


.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;&lt;/p&gt;

&lt;h5&gt;&amp;#160;&lt;/h5&gt;

&lt;h5&gt;DatePicker:&lt;/h5&gt;

&lt;pre class="csharpcode"&gt;   &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;cc1:DatePicker&lt;/span&gt;
     &lt;span class="attr"&gt;OnClientBeforeShow&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;$(this).fadeOut().fadeIn();&amp;quot;&lt;/span&gt; 
     &lt;span class="attr"&gt;OnClientOnSelect&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;alert(dateText);&amp;quot;&lt;/span&gt; 
     &lt;span class="attr"&gt;ID&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;DatePicker1&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;runat&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;server&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;cc1:DatePicker&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

&lt;h6&gt;Screenshot:&lt;/h6&gt;
&lt;img height="563" src="http://farm4.static.flickr.com/3628/3421789710_b1c2c5debf_o.jpg" width="761" border="0" /&gt; 

&lt;p&gt;&lt;/p&gt;
&lt;style type="text/css"&gt;


.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;

&lt;h5&gt;&amp;#160;&lt;/h5&gt;

&lt;h5&gt;&amp;#160;&lt;/h5&gt;

&lt;h5&gt;Resizable Tab Control:&lt;/h5&gt;

&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;cc1:TabControl&lt;/span&gt; 
    &lt;span class="attr"&gt;Disabled&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;3&amp;quot;&lt;/span&gt; 
    &lt;span class="attr"&gt;Selected&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;2&amp;quot;&lt;/span&gt; 
    &lt;span class="attr"&gt;Collapsible&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;true&amp;quot;&lt;/span&gt; 
    &lt;span class="attr"&gt;Fx&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;{ opacity: 'toggle' }&amp;quot;&lt;/span&gt;
    &lt;span class="attr"&gt;OnClientTabsSelect&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;alert(ui.tab.outerText);&amp;quot;&lt;/span&gt;
    &lt;span class="attr"&gt;ID&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;TabControl1&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;runat&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;server&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
        
        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;cc1:Tab&lt;/span&gt; &lt;span class="attr"&gt;ID&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;Tab1&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;runat&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;server&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;Text&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;TAB A&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;TabName&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;TABA&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;cc1:Tab&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;cc1:Tab&lt;/span&gt; &lt;span class="attr"&gt;ID&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;Tab2&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;runat&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;server&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;Text&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;TAB B&amp;quot;&lt;/span&gt;  &lt;span class="attr"&gt;TabName&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;TABB&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;cc1:Tab&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;cc1:Tab&lt;/span&gt; &lt;span class="attr"&gt;ID&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;Tab3&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;runat&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;server&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;Text&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;TAB C&amp;quot;&lt;/span&gt;  &lt;span class="attr"&gt;TabName&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;TABC&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;cc1:Tab&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;cc1:Tab&lt;/span&gt; &lt;span class="attr"&gt;ID&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;Tab4&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;runat&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;server&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;Text&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;TAB D&amp;quot;&lt;/span&gt;  &lt;span class="attr"&gt;TabName&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;TABD&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;cc1:Tab&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;cc1:Tab&lt;/span&gt; &lt;span class="attr"&gt;ID&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;Tab5&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;runat&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;server&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;Text&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;TAB E&amp;quot;&lt;/span&gt;  &lt;span class="attr"&gt;TabName&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;TABE&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;cc1:Tab&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
        
        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;cc1:TabPage&lt;/span&gt; &lt;span class="attr"&gt;ID&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;TabPage1&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;TabName&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;TABA&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;runat&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;server&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;        
            &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;asp:TextBox&lt;/span&gt; &lt;span class="attr"&gt;ID&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;TextBox1&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;runat&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;server&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;asp:TextBox&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;   
            &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;asp:Button&lt;/span&gt; &lt;span class="attr"&gt;ID&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;Button1&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;runat&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;server&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;Text&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;Button&amp;quot;&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;
        &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;cc1:TabPage&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;cc1:TabPage&lt;/span&gt; &lt;span class="attr"&gt;ID&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;TabPage2&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;TabName&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;TABB&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;runat&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;server&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
            &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;asp:DropDownList&lt;/span&gt; &lt;span class="attr"&gt;ID&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;DropDownList1&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;runat&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;server&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;asp:DropDownList&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
            &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;asp:HyperLink&lt;/span&gt; &lt;span class="attr"&gt;ID&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;HyperLink1&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;runat&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;server&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;HyperLink&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;asp:HyperLink&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;cc1:TabPage&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;cc1:TabPage&lt;/span&gt; &lt;span class="attr"&gt;ID&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;TabPage3&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;TabName&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;TABC&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;runat&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;server&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
C
        &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;cc1:TabPage&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;cc1:TabPage&lt;/span&gt; &lt;span class="attr"&gt;ID&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;TabPage4&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;TabName&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;TABD&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;runat&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;server&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
D        &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;cc1:TabPage&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;cc1:TabPage&lt;/span&gt; &lt;span class="attr"&gt;ID&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;TabPage5&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;TabName&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;TABE&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;runat&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;server&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
E        &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;cc1:TabPage&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;cc1:TabControl&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
    
    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;cc2:Resizeable&lt;/span&gt; &lt;span class="attr"&gt;ID&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;Resizeable1&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;runat&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;server&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;AssociatedControl&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;TabControl1&amp;quot;&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;&lt;style type="text/css"&gt;

.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;&lt;/p&gt;

&lt;h6&gt;Screen Shot:&lt;/h6&gt;
&lt;img height="556" src="http://farm4.static.flickr.com/3406/3421789998_553368c2ba_o.jpg" width="751" border="0" /&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;Lastly, please do NOT post feedback/suggestions/bugs/questions/etc. to my blog.&amp;#160; I will NOT answer them.&amp;#160; &lt;a href="http://jquerydotnet.codeplex.com/" target="_blank"&gt;Use the facilities supplied on the CodePlex site itself.&lt;/a&gt;&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=7034620" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/rchartier/archive/tags/.NET+C_2300_/default.aspx">.NET C#</category><category domain="http://weblogs.asp.net/rchartier/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://weblogs.asp.net/rchartier/archive/tags/.NET/default.aspx">.NET</category><category domain="http://weblogs.asp.net/rchartier/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://weblogs.asp.net/rchartier/archive/tags/AJAX/default.aspx">AJAX</category><category domain="http://weblogs.asp.net/rchartier/archive/tags/2008/default.aspx">2008</category><category domain="http://weblogs.asp.net/rchartier/archive/tags/Codeplex/default.aspx">Codeplex</category><category domain="http://weblogs.asp.net/rchartier/archive/tags/Javascript/default.aspx">Javascript</category><category domain="http://weblogs.asp.net/rchartier/archive/tags/jQuery/default.aspx">jQuery</category></item><item><title>Fail: Mesh Round 2</title><link>http://weblogs.asp.net/rchartier/archive/2009/03/27/fail-mesh-round-2.aspx</link><pubDate>Fri, 27 Mar 2009 22:55:16 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:7008292</guid><dc:creator>Rob Chartier</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/rchartier/rsscomments.aspx?PostID=7008292</wfw:commentRss><comments>http://weblogs.asp.net/rchartier/archive/2009/03/27/fail-mesh-round-2.aspx#comments</comments><description>&lt;p&gt;So here is a little update on my &lt;a href="http://weblogs.asp.net/rchartier/archive/2009/03/23/fail-mesh.aspx" target="_blank"&gt;previous post&lt;/a&gt; regarding Microsoft’s Mesh Product.&amp;#160; It seems that at some point during the uninstall of the product from my desktop it created a “%Destkop%\Live Mesh\Conflicts[0000]” folder and inside includes ALL of the documents (and all of the versions of each document) that Mesh decided to clobber.&lt;/p&gt;  &lt;p&gt;Now it really has me thinking.&amp;#160; Did the Mesh tool actually keep track of these differences?&amp;#160; Why didn't it warn me about conflicts during day to day operation?&amp;#160; I don't recall any place in any Mesh related UI which allowed me to view and resolve these issues.&lt;/p&gt;  &lt;p&gt;I think for now, I’m still going to stick with the USB Pen drive + Good Sync.&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=7008292" width="1" height="1"&gt;</description></item><item><title>Caching Data - API Based or Pattern Based?</title><link>http://weblogs.asp.net/rchartier/archive/2009/03/24/caching-data-api-based-or-pattern-based.aspx</link><pubDate>Tue, 24 Mar 2009 18:59:29 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6996685</guid><dc:creator>Rob Chartier</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/rchartier/rsscomments.aspx?PostID=6996685</wfw:commentRss><comments>http://weblogs.asp.net/rchartier/archive/2009/03/24/caching-data-api-based-or-pattern-based.aspx#comments</comments><description>&lt;h2&gt;Current thought process&lt;/h2&gt;  &lt;p&gt;I have been spending some time with the &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=b24c3708-eeff-4055-a867-19b5851e7cd2&amp;amp;DisplayLang=en"&gt;Velocity&lt;/a&gt; and &lt;a href="http://aspnet.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=24646"&gt;ASP.NET 4.0 Cache Extensibility&lt;/a&gt; teams at Microsoft working with them to formalize some up and coming releases. One common thread that I just can't help but notice is the fact that the average developer simply should NOT care about the specifics around Caching. For example, when/how to lock, dependencies, static's, how to create a cache/regions, get a cache, expire vs. eviction, etc.. &lt;/p&gt;  &lt;p&gt;They should only care about this &amp;quot;Cache&amp;quot; thing, that I can Get and Put data in and out of.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h2&gt;Types of Data&lt;/h2&gt;  &lt;p&gt;As you begin a deep dive into Caching you soon see that there are a few ways to slice and dice the caching world. The most simplistic method is to do division by the type of data you are working with. Here is a snippet from the Microsoft Velocity Documentation regarding types of data.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;   &lt;table border="1" cellspacing="0" cellpadding="0" width="601"&gt;&lt;tbody&gt;       &lt;tr&gt;         &lt;td valign="top" width="599"&gt;           &lt;p&gt;Understanding the various types of data helps define the degrees of caching that are possible using &amp;quot;Velocity.&amp;quot; As seen in the following table, there are three types of data that are appropriate for distributed caching: reference, activity, and resource. (&lt;a href="http://msdn.microsoft.com/en-us/library/dd169106.aspx" target="_blank"&gt;Source&lt;/a&gt;)               &lt;table border="0" cellpadding="0" width="591"&gt;&lt;tbody&gt;                 &lt;tr&gt;                   &lt;td width="86"&gt;                     &lt;p&gt;&lt;b&gt;Data Type&lt;/b&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;                   &lt;/td&gt;                    &lt;td width="503"&gt;                     &lt;p&gt;&lt;b&gt;Access Pattern&lt;/b&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;                   &lt;/td&gt;                 &lt;/tr&gt;                  &lt;tr&gt;                   &lt;td width="86"&gt;                     &lt;p&gt;Reference&lt;/p&gt;                   &lt;/td&gt;                    &lt;td width="503"&gt;                     &lt;p&gt;Shared read&lt;/p&gt;                   &lt;/td&gt;                 &lt;/tr&gt;                  &lt;tr&gt;                   &lt;td width="86"&gt;                     &lt;p&gt;Activity&lt;/p&gt;                   &lt;/td&gt;                    &lt;td width="503"&gt;                     &lt;p&gt;Exclusive write&lt;/p&gt;                   &lt;/td&gt;                 &lt;/tr&gt;                  &lt;tr&gt;                   &lt;td width="86"&gt;                     &lt;p&gt;Resource&lt;/p&gt;                   &lt;/td&gt;                    &lt;td width="503"&gt;                     &lt;p&gt;Shared, concurrently read and written into, accessed by a large number of transactions&lt;/p&gt;                   &lt;/td&gt;                 &lt;/tr&gt;               &lt;/tbody&gt;&lt;/table&gt;           &lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;For example:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;i&gt;Reference&lt;/i&gt; data could be Amazon's Book Catalog.&lt;/p&gt;    &lt;p&gt;&lt;i&gt;Activity&lt;/i&gt; data could be the User's Shopping Cart - secure, tied to that user's session&lt;/p&gt;    &lt;p&gt;&lt;i&gt;Resource&lt;/i&gt; data could be the Stock available for each Catalog item&lt;/p&gt; &lt;/blockquote&gt;  &lt;h2&gt;&amp;#160;&lt;/h2&gt;  &lt;h2&gt;Design Patterns&lt;/h2&gt;  &lt;p&gt;From an API perspective we should consider actual developer usage based on common design patterns. I would love to see a ReferenceDataCache, ActivityCache and a ResourceCache in the API. Each specific type of Cache wrapper should just take care of the internal details for me and guide me on usage. The Architectural roles in the organization can config/tweak specific cache details based on these common patterns and tied to the specific needs.&lt;/p&gt;  &lt;p&gt;For example I want to create a AmazonBookCache which is a ReferenceCache and never worry about locking items (since its shared read, there is no need to lock anything). I also want it super-optimized for reads across the cache cluster.&lt;/p&gt;  &lt;p&gt;I could create a ShoppingCartCache which is a ActivityCache&amp;lt;T&amp;gt;. In this type of cache, all of the methods would require the additional parameter (T) to indicate the specific User key - long, guid, or whatever your application uses to represent that specific user the activity is based on. Locking would be important so expose the relevant concurrency based Get/Put methods only – that is, remove Put() methods that do not include version information parameters.&lt;/p&gt;  &lt;h2&gt;Closing Thoughts&lt;/h2&gt;  &lt;p&gt;I understand the basic need of getting a core API working correctly and obviously it would be in Microsoft’s best interest in getting that done as soon as possible.&amp;#160; With that said, for this API to be of any use, there is a need for a consistent set of wrappers based on common patterns which we all can rely on.&lt;/p&gt;  &lt;p&gt;Caching is one of those seemingly easy things to put in place but in reality if it is not done correctly could have very drastic –negative- implications on the application.&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6996685" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/rchartier/archive/tags/.NET+C_2300_/default.aspx">.NET C#</category><category domain="http://weblogs.asp.net/rchartier/archive/tags/.NET/default.aspx">.NET</category><category domain="http://weblogs.asp.net/rchartier/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://weblogs.asp.net/rchartier/archive/tags/.NET+Framework/default.aspx">.NET Framework</category><category domain="http://weblogs.asp.net/rchartier/archive/tags/Velocity/default.aspx">Velocity</category></item><item><title>asp:menu fix for IE8 problem available</title><link>http://weblogs.asp.net/rchartier/archive/2009/03/23/asp-menu-fix-for-ie8-problem-available.aspx</link><pubDate>Mon, 23 Mar 2009 21:28:03 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6995433</guid><dc:creator>Rob Chartier</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/rchartier/rsscomments.aspx?PostID=6995433</wfw:commentRss><comments>http://weblogs.asp.net/rchartier/archive/2009/03/23/asp-menu-fix-for-ie8-problem-available.aspx#comments</comments><description>&lt;p&gt;&lt;a href="http://weblogs.asp.net/bleroy/archive/2009/03/23/asp-menu-fix-for-ie8-problem-available.aspx" target="_blank"&gt;Via Bertrand Le Roy&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;I mostly just wanted to bookmark/echo a post from Bertrand here.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Internet Explorer 8 is a unique release in the history of Internet Explorer in more than one way, but the decision to make standards mode the default means that authors of existing sites are impacted by it, if only to set the compatibility mode to IE7…&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://weblogs.asp.net/bleroy/archive/2009/03/23/asp-menu-fix-for-ie8-problem-available.aspx" target="_blank"&gt;Read more and download links are on Bertrand’s Post here.&lt;/a&gt;&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6995433" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/rchartier/archive/tags/.NET+Visual+Studio+.NET/default.aspx">.NET Visual Studio .NET</category><category domain="http://weblogs.asp.net/rchartier/archive/tags/.NET/default.aspx">.NET</category><category domain="http://weblogs.asp.net/rchartier/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://weblogs.asp.net/rchartier/archive/tags/HTML/default.aspx">HTML</category><category domain="http://weblogs.asp.net/rchartier/archive/tags/.NET+Framework/default.aspx">.NET Framework</category><category domain="http://weblogs.asp.net/rchartier/archive/tags/Windows+Server/default.aspx">Windows Server</category><category domain="http://weblogs.asp.net/rchartier/archive/tags/IE7/default.aspx">IE7</category><category domain="http://weblogs.asp.net/rchartier/archive/tags/IE8/default.aspx">IE8</category></item><item><title>FAIL : Mesh</title><link>http://weblogs.asp.net/rchartier/archive/2009/03/23/fail-mesh.aspx</link><pubDate>Mon, 23 Mar 2009 18:17:03 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6995180</guid><dc:creator>Rob Chartier</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/rchartier/rsscomments.aspx?PostID=6995180</wfw:commentRss><comments>http://weblogs.asp.net/rchartier/archive/2009/03/23/fail-mesh.aspx#comments</comments><description>&lt;p&gt;I have been using Live Mesh ever since it’s initial release, even on my WiMo device.&amp;#160; Today I opened up a Word Document – that I update daily – and just noticed that it has been reverted to a copy that is about 1 week old.&amp;#160; This is not the first time that this has happened.&amp;#160; And of course I was using Mesh as my only backup.&lt;/p&gt;  &lt;p&gt;It seems that Mesh cant handle a simple thing like versioning of documents correctly.&amp;#160; Unacceptable.&lt;/p&gt;  &lt;p&gt;Its time to revert back to using my USB Pen drive for shared documents, and GoodSync to back it up.&lt;/p&gt;  &lt;p&gt;As you can suspect this is very disappointing for me.&amp;#160; I think for my Music I will leave them in Mesh since that really wont matter.&lt;/p&gt;  &lt;p&gt;Either way, it would seem that Microsoft has a bit of work to do in order to aggregate all of their online/cloud services together under one bucket (Azure?).&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;MyPhone – which seemingly is not integrated with the standard live services.&amp;#160; Why one would want two separate calendars for the same data is beyond me.&lt;/li&gt;    &lt;li&gt;Mesh&lt;/li&gt;    &lt;li&gt;SkyDrive&lt;/li&gt;    &lt;li&gt;Live (mail/calendar/etc.)&lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Live.Mesh.UnInstall();&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6995180" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/rchartier/archive/tags/Mobile/default.aspx">Mobile</category></item><item><title>Velocity Links…</title><link>http://weblogs.asp.net/rchartier/archive/2009/03/19/velocity-links.aspx</link><pubDate>Thu, 19 Mar 2009 22:45:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6980578</guid><dc:creator>Rob Chartier</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/rchartier/rsscomments.aspx?PostID=6980578</wfw:commentRss><comments>http://weblogs.asp.net/rchartier/archive/2009/03/19/velocity-links.aspx#comments</comments><description>&lt;P&gt;Here is a collection random notes and links for Velocity.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Release Schedule:&lt;/STRONG&gt;&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;CTP1: Released.&lt;/LI&gt;
&lt;LI&gt;CTP2: Released.&lt;/LI&gt;
&lt;LI&gt;CTP3: Just around/after Mix 2009&lt;/LI&gt;
&lt;LI&gt;RTM: Mid 2009..?&lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;&lt;STRONG&gt;Required Reading:&lt;/STRONG&gt;&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;&lt;A href="http://msdn.microsoft.com/en-us/library/dd169078.aspx" target=_blank mce_href="http://msdn.microsoft.com/en-us/library/dd169078.aspx"&gt;General Concepts (Velocity)&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://msdn.microsoft.com/en-us/library/dd187314.aspx" target=_blank mce_href="http://msdn.microsoft.com/en-us/library/dd187314.aspx"&gt;Installation (Velocity)&lt;/A&gt;&lt;/LI&gt;
&lt;OL&gt;
&lt;LI&gt;For CTP2, you need &lt;A href="http://www.microsoft.com/windowsserver2003/technologies/management/powershell/default.mspx" target=_blank mce_href="http://www.microsoft.com/windowsserver2003/technologies/management/powershell/default.mspx"&gt;PowerShell&lt;/A&gt;, which is a &lt;A href="http://www.microsoft.com/windowsserver2003/technologies/management/powershell/download.mspx" target=_blank mce_href="http://www.microsoft.com/windowsserver2003/technologies/management/powershell/download.mspx"&gt;free download off of microsoft.com&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;For Server 2008, use Server Manager, Add Feature, Choose "Windows PowerShell"&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://www.microsoft.com/downloads/details.aspx?FamilyId=B24C3708-EEFF-4055-A867-19B5851E7CD2&amp;amp;displaylang=en" target=_blank mce_href="http://www.microsoft.com/downloads/details.aspx?FamilyId=B24C3708-EEFF-4055-A867-19B5851E7CD2&amp;amp;displaylang=en"&gt;CTP2 Download Here&lt;/A&gt;&lt;/LI&gt;&lt;/OL&gt;
&lt;LI&gt;&lt;A href="http://msdn.microsoft.com/en-us/library/dd187373.aspx" target=_blank mce_href="http://msdn.microsoft.com/en-us/library/dd187373.aspx"&gt;Cache Administration with PowerShell (Velocity)&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://msdn.microsoft.com/en-us/library/dd169091.aspx" target=_blank mce_href="http://msdn.microsoft.com/en-us/library/dd169091.aspx"&gt;Basic Cache Methods (Velocity)&lt;/A&gt; / &lt;A href="http://msdn.microsoft.com/en-us/library/dd169187.aspx" target=_blank mce_href="http://msdn.microsoft.com/en-us/library/dd169187.aspx"&gt;How to: Add an Object to Cache (Velocity)&lt;/A&gt; / &lt;A href="http://msdn.microsoft.com/en-us/library/dd187377.aspx" target=_blank mce_href="http://msdn.microsoft.com/en-us/library/dd187377.aspx"&gt;How to: Get an Object from Cache (Velocity)&lt;/A&gt; / &lt;A href="http://msdn.microsoft.com/en-us/library/dd187291.aspx" target=_blank mce_href="http://msdn.microsoft.com/en-us/library/dd187291.aspx"&gt;How to: Remove an Object from Cache (Velocity)&lt;/A&gt; / &lt;A href="http://msdn.microsoft.com/en-us/library/dd169208.aspx" target=_blank mce_href="http://msdn.microsoft.com/en-us/library/dd169208.aspx"&gt;How to: Update an Object in Cache (Velocity)&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://msdn.microsoft.com/en-us/library/dd187334.aspx" target=_blank mce_href="http://msdn.microsoft.com/en-us/library/dd187334.aspx"&gt;Class Overview (Velocity)&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://msdn.microsoft.com/en-us/library/dd187320.aspx" target=_blank mce_href="http://msdn.microsoft.com/en-us/library/dd187320.aspx"&gt;How to: Prepare the Development Environment (Velocity)&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://blogs.msdn.com/velocity/" target=_blank mce_href="http://blogs.msdn.com/velocity/"&gt;Velocity Blog&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://social.msdn.microsoft.com/forums/en-US/velocity/threads/" target=_blank mce_href="http://social.msdn.microsoft.com/forums/en-US/velocity/threads/"&gt;Forums&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://code.msdn.microsoft.com/velocity" target=_blank mce_href="http://code.msdn.microsoft.com/velocity"&gt;Sample Code!&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://msdn.microsoft.com/en-us/library/dd169106.aspx" target=_blank mce_href="http://msdn.microsoft.com/en-us/library/dd169106.aspx"&gt;Data Classification (Velocity)&lt;/A&gt;&lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;&lt;STRONG&gt;More&lt;/STRONG&gt;&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;&lt;A href="http://aspalliance.com/articleViewer.aspx?aId=1705&amp;amp;pId=-1" target=_blank mce_href="http://aspalliance.com/articleViewer.aspx?aId=1705&amp;amp;pId=-1"&gt;A New Approach to HttpRuntime.Cache Management&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://blogs.msdn.com/velocity/archive/2008/10/28/announcing-ctp2-of-microsoft-project-code-name-velocity.aspx" target=_blank mce_href="http://blogs.msdn.com/velocity/archive/2008/10/28/announcing-ctp2-of-microsoft-project-code-name-velocity.aspx"&gt;Announcing CTP2 of Microsoft project code name "Velocity"&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://msdn.microsoft.com/en-us/library/dd187451.aspx" target=_blank mce_href="http://msdn.microsoft.com/en-us/library/dd187451.aspx"&gt;Cache Clients and Local Cache (Velocity)&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://blogs.msdn.com/velocity/archive/2008/10/29/changes-to-session-state-provider-configuration-web-config-for-ctp2.aspx" target=_blank mce_href="http://blogs.msdn.com/velocity/archive/2008/10/29/changes-to-session-state-provider-configuration-web-config-for-ctp2.aspx"&gt;Changes to Session State Provider Configuration (web.config) for CTP2&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://msdn.microsoft.com/en-us/library/dd187275.aspx" target=_blank mce_href="http://msdn.microsoft.com/en-us/library/dd187275.aspx"&gt;Concurrency Methods (Velocity)&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://msdn.microsoft.com/en-us/library/dd169243.aspx" target=_blank mce_href="http://msdn.microsoft.com/en-us/library/dd169243.aspx"&gt;Concurrency Models (Velocity)&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://blogs.msdn.com/velocity/archive/2008/06/10/creating-multiple-velocity-instances-on-a-single-machine.aspx" target=_blank mce_href="http://blogs.msdn.com/velocity/archive/2008/06/10/creating-multiple-velocity-instances-on-a-single-machine.aspx"&gt;Creating Multiple Velocity Instances on a Single Machine&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://msdn.microsoft.com/en-us/library/dd169248.aspx" target=_blank mce_href="http://msdn.microsoft.com/en-us/library/dd169248.aspx"&gt;Expiration and Eviction (Velocity)&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://andreacol.net/blog/comparing-cache-frameworks/CacheFrameworkComparison.htm" target=_blank mce_href="http://andreacol.net/blog/comparing-cache-frameworks/CacheFrameworkComparison.htm"&gt;Cache Frameworks Feature Comparison&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://msdn.microsoft.com/en-ca/library/cc645013(printer).aspx" target=_blank mce_href="http://msdn.microsoft.com/en-ca/library/cc645013(printer).aspx"&gt;Microsoft Data Platform Development Technical Article&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://blogs.msdn.com/velocity/archive/2008/10/31/pdc-videos-are-here.aspx" target=_blank mce_href="http://blogs.msdn.com/velocity/archive/2008/10/31/pdc-videos-are-here.aspx"&gt;PDC Videos are here!&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://msdn.microsoft.com/en-us/library/dd187389.aspx" target=_blank mce_href="http://msdn.microsoft.com/en-us/library/dd187389.aspx"&gt;Tag-Based Methods (Velocity)&lt;/A&gt;&lt;/LI&gt;&lt;/OL&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6980578" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/rchartier/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://weblogs.asp.net/rchartier/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://weblogs.asp.net/rchartier/archive/tags/Velocity/default.aspx">Velocity</category><category domain="http://weblogs.asp.net/rchartier/archive/tags/Caching/default.aspx">Caching</category></item><item><title>Microsoft Live Search – You almost have me (Proximity Searching?)</title><link>http://weblogs.asp.net/rchartier/archive/2009/03/19/microsoft-live-search-you-almost-have-me-proximity-searching.aspx</link><pubDate>Thu, 19 Mar 2009 18:46:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6980072</guid><dc:creator>Rob Chartier</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/rchartier/rsscomments.aspx?PostID=6980072</wfw:commentRss><comments>http://weblogs.asp.net/rchartier/archive/2009/03/19/microsoft-live-search-you-almost-have-me-proximity-searching.aspx#comments</comments><description>&lt;P&gt;As per request from Steve Ballmer, to all MVP’s for the past two years, I have been attempting to switch my life over to Microsoft’s Live Search (and services).&amp;nbsp; The breadth and depth of what Live has to offer is rapidly increasing and I'm really starting to recognize the value in the vision coming out of the Live team. Take for example their &lt;A href="http://maps.live.com/" target=_blank mce_href="http://maps.live.com/"&gt;mapping service - IMHO Live.com maps are superior in usability and quality over any other free Map provider.&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;This post is not intended to get you to switch, but more to voice my opinion about the biggest lacking feature to come from Live Search.... &lt;B&gt;Proximity Searching&lt;/B&gt;&lt;/P&gt;
&lt;P&gt;&lt;B&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P&gt;I can honestly say that 99% of the time when searching for a person, business, etc.. I leverage Google's "near:XXX" search syntax. This would probably constitute over 80% of my non-technical related queries - a significant amount per day.&lt;/P&gt;
&lt;P&gt;For example: &lt;/P&gt;
&lt;P&gt;Google:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://google.com/search?q=restaurant+near%3Av5l+4h4" target=_blank mce_href="http://google.com/search?q=restaurant+near%3Av5l+4h4"&gt;Restaurant near:v5l 4h4 (lists all restaurants, near my house - even a map)&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;vs&lt;/P&gt;
&lt;P&gt;Live:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://search.live.com/results.aspx?q=Restaurant+loc%3Av5l+4h4" target=_blank mce_href="http://search.live.com/results.aspx?q=Restaurant+loc%3Av5l+4h4"&gt;Restaurant loc:v5l 4h4 (Empty search results!)&lt;/A&gt;&lt;/P&gt;After consulting the search.live.com documentation I find: 
&lt;TABLE border=1 cellSpacing=0 cellPadding=0&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD&gt;
&lt;P&gt;&lt;B&gt;loc:&lt;/B&gt; or &lt;B&gt;location:&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD&gt;
&lt;P&gt;Returns webpages from a specific country or region. Specify the country or region code directly after the &lt;B&gt;loc:&lt;/B&gt; keyword. To focus on two or more languages, use a logical &lt;B&gt;OR&lt;/B&gt; to group the languages. &lt;/P&gt;&lt;/TD&gt;
&lt;TD&gt;
&lt;P&gt;To see webpages about sculpture from the U.S. or Great Britain, type &lt;B&gt;sculpture (loc:US OR loc:GB)&lt;/B&gt;. For a list of language codes that you can use with Live Search, see &lt;A href="http://help.live.com/Help.aspx?market=en-CA&amp;amp;project=WL_Searchv1&amp;amp;querytype=topic&amp;amp;query=WL_SEARCH_REF_LanguageCodes.htm" mce_href="http://help.live.com/Help.aspx?market=en-CA&amp;amp;project=WL_Searchv1&amp;amp;querytype=topic&amp;amp;query=WL_SEARCH_REF_LanguageCodes.htm"&gt;Country, region, and language codes&lt;/A&gt;.&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
&lt;P&gt;As you can quickly determine on your own, having it based at the Country/Region/Language is very inadequate, not to mention having to memorize the specific Country/Region/Language code of the given location you need to search for. Ouch!&lt;/P&gt;
&lt;P&gt;So my previous example I would be limited to:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://search.live.com/results.aspx?q=Restaurant+loc%3ACA" target=_blank mce_href="http://search.live.com/results.aspx?q=Restaurant+loc%3ACA"&gt;Restaurant loc:CA (lists all restaurants, in Canada)&lt;/A&gt;&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;--Extremely inadequate for any sort of proximity searching that matters.&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;My hope is that this is on the near-term road map for the team. If so, I would never need to feed the Google marketing engine again (and yes, that IS a good thing!).&lt;/P&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6980072" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/rchartier/archive/tags/Live.com/default.aspx">Live.com</category><category domain="http://weblogs.asp.net/rchartier/archive/tags/Searching/default.aspx">Searching</category></item><item><title>Internet Explorer 8 has now been released!‏</title><link>http://weblogs.asp.net/rchartier/archive/2009/03/19/internet-explorer-8-has-now-been-released.aspx</link><pubDate>Thu, 19 Mar 2009 17:59:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6979969</guid><dc:creator>Rob Chartier</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/rchartier/rsscomments.aspx?PostID=6979969</wfw:commentRss><comments>http://weblogs.asp.net/rchartier/archive/2009/03/19/internet-explorer-8-has-now-been-released.aspx#comments</comments><description>&lt;P mce_keep="true"&gt;This came in last night, as per the -expected Mix09 release-&lt;/P&gt;
&lt;P mce_keep="true"&gt;Appears that a restart is required.&lt;/P&gt;
&lt;P mce_keep="true"&gt;--------------------------------&amp;nbsp;&lt;/P&gt;
&lt;TABLE class="" cellSpacing=0 cellPadding=0&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD class=ReadMsgHeaderCol1 class="ReadMsgHeaderCol1"&gt;From:&lt;/TD&gt;
&lt;TD class=""&gt;&lt;SPAN id=PresenceContainer&gt;&lt;S app="WEBIM" for="P___172454285" email="msftconn@microsoft.com"&gt;&lt;/S&gt;&amp;nbsp;Microsoft&lt;/SPAN&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=ReadMsgHeaderCol1 class="ReadMsgHeaderCol1"&gt;Sent:&lt;/TD&gt;
&lt;TD class=""&gt;March 19, 2009 5:40:48 PM&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=ReadMsgHeaderCol1 class="ReadMsgHeaderCol1"&gt;To: &lt;/TD&gt;
&lt;TD class=""&gt;
&lt;P&gt;Rob Chartier&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
&lt;P mce_keep="true"&gt;Hi Everyone!&lt;BR&gt;&lt;BR&gt;Internet Explorer 8 has now been released! &lt;A class="" href="http://www.microsoft.com/ie8" target=_blank mce_href="http://www.microsoft.com/ie8"&gt;To download, please click here. &lt;BR&gt;&lt;/A&gt;Before installing, please read the Release Notes and more information about features and developer docs can be found in the IE8 Readiness Toolkit.&lt;BR&gt;&lt;BR&gt;IE8 Beta Feedback:&lt;BR&gt;Thank you for all the bug reports you have submitted. All Postponed bugs are now active for consideration in the next version of Internet Explorer. We resolved and closed all other bugs submitted since IE8 Beta 1.&lt;BR&gt;&lt;BR&gt;Filing Bugs for IE8 RTW:&lt;BR&gt;We are looking for new IE8 bugs and bugs that have regressed (meaning the bug was previously fixed and now occurs in IE8 RTW). Please only reactivate issues that were resolved as Fixed and reproduce in IE8 RTW. We will automatically resolve any other bug that is reactivated. Please see below for more information on re-activating your bugs.&lt;BR&gt;&lt;BR&gt;The Internet Explorer 8 Feedback website on Microsoft Connect will remain open and we will not delete any of your previously submitted bugs. &lt;BR&gt;&lt;BR&gt;In the next couple of months, we will introduce a new type of feedback form designed specifically to handle improvements for the next version of Internet Explorer. Please stay tuned for more information.&lt;BR&gt;&lt;BR&gt;Please see the Technical Beta homepage on Microsoft Connect for more information.&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;Best Regards, &lt;BR&gt;The IE Team.&lt;BR&gt;&lt;/P&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6979969" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/rchartier/archive/tags/Internet+Explorer/default.aspx">Internet Explorer</category><category domain="http://weblogs.asp.net/rchartier/archive/tags/IE8/default.aspx">IE8</category></item><item><title>Microsoft Velocity : Q&amp;A</title><link>http://weblogs.asp.net/rchartier/archive/2009/03/13/microsoft-velocity-q-amp-a.aspx</link><pubDate>Fri, 13 Mar 2009 21:55:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6957717</guid><dc:creator>Rob Chartier</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/rchartier/rsscomments.aspx?PostID=6957717</wfw:commentRss><comments>http://weblogs.asp.net/rchartier/archive/2009/03/13/microsoft-velocity-q-amp-a.aspx#comments</comments><description>&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;I have been working my way through the CTP2 bits of Microsoft's new Distributed Caching Architecture called Velocity and found myself still wondering about a few items.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;At the recent ASPInsiders and Microsoft MVP Conference I had the chance to meet a few people on the team and get their contact information so I decided to drop them a line.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;The following is a short Q&amp;amp;A session that ensued. &lt;/FONT&gt;&lt;/P&gt;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&lt;/FONT&gt;&lt;/o:p&gt;&amp;nbsp; 
&lt;H2 style="MARGIN: 10pt 0in 0pt"&gt;&lt;FONT face=Cambria color=#4f81bd size=4&gt;Release Schedule:&lt;/FONT&gt;&lt;/H2&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;Q:&lt;/B&gt; Will we be seeing CTP3 at Mix09?&lt;BR&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;A: &lt;/B&gt;We are, but then we decided to delay by 2 weeks to take in the .Net API recommendations. Our APIs are going to change slightly (e.g. class names have to be prefixed with "Cache" and we are moving the Region parameter to the end to allow overloading). We want to take this in now as opposed to later since that would mean Changing API at RTM time.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;BR&gt;&lt;FONT face=Calibri size=3&gt;Q: &lt;/FONT&gt;&lt;/B&gt;&lt;FONT face=Calibri size=3&gt;During the MVP Summit you (or someone) mentioned "Late 2009" for the V1. release.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Will there be a GoLive! date prior?&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Any chance you can get more specific on the date?&lt;BR&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;A:&lt;/B&gt; Middle of 2009. (some NDA details removed)&lt;/FONT&gt;&lt;/P&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt; 
&lt;H2 style="MARGIN: 10pt 0in 0pt"&gt;&lt;FONT face=Cambria color=#4f81bd size=4&gt;API Specific:&lt;/FONT&gt;&lt;/H2&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;Q:&lt;/B&gt; I really like the way in which you break down the data type access patterns (Reference, Activity, Resource).&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;I wonder if we could leverage that in the Caching Engine itself?&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;I can see specifying an enum on CacheCreate/CacheLoad which would return a specific (and optimized) cache specific to the type of data.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;For example do we care about locking on Reference data?&lt;BR&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;A: &lt;/B&gt;That is interesting thought - will think about this more.&lt;BR style="mso-special-character: line-break"&gt;&lt;BR style="mso-special-character: line-break"&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;Q:&lt;/B&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Generics!&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;We are using Object for the Value (add/put/get/etc..) why not use Generic functions?&lt;BR&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;A:&lt;/B&gt; &lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/SPAN&gt;Yes post V1 :) Particularly once we want to support Linq Queries on the cache, we need typing.. So definitely in the works.. Also, this can help using the DataContract Serializer which is faster than the NetDataContractSerializer..&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;Response Q: &lt;/B&gt;Generics.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Post v1 - that's actually very disappointing!&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;I had really hoped that it would be for release.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;I wonder if there is anything I'm missing?&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Is there a longer process (greater review) when using generics - internally?&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Or is it just a matter of dev time to do the work? Compatibility reasons...?&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;BR&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;Response A:&lt;/B&gt; Test work really..&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt; 
&lt;H2 style="MARGIN: 10pt 0in 0pt"&gt;&lt;FONT face=Cambria color=#4f81bd size=4&gt;Overall:&lt;/FONT&gt;&lt;/H2&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;Q: &lt;/B&gt;Will there forever be a dependency on PowerShell for installation?&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;What about nodes where you would NOT want to admin the cluster, and just deploy the cache runtime...?&lt;BR&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;A: &lt;/B&gt;We don't depend on PowerShell for installation, just for monitoring and start/stop etc. You have a good ask that why should. We bother installing PowerShell on all the nodes. We haven't really thought about this issue. I will have a chat with folks about this.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;BR&gt;&lt;FONT face=Calibri size=3&gt;Q: &lt;/FONT&gt;&lt;/B&gt;&lt;FONT face=Calibri size=3&gt;Remote/Automatic deployment is an interesting scenario.&lt;BR&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;A: &lt;/B&gt;Yes - it is there in CTP3&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;BR&gt;&lt;FONT face=Calibri size=3&gt;Q: &lt;/FONT&gt;&lt;/B&gt;&lt;FONT face=Calibri size=3&gt;I have found little documentation regarding using the cache in embedded scenarios.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Anything planned for CTP3?&lt;BR&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;A: &lt;/B&gt;Nope - embedded is not in plan for V1 right now. The only closest thing is the local cache.&lt;BR style="mso-special-character: line-break"&gt;&lt;BR style="mso-special-character: line-break"&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;Q: &lt;/B&gt;During some of your presentations you mention a pretty key number (was it 2k or 20k?) for the data value size.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Any chance you can shed some light on it?&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Why is it so important?&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Does it impact performance?&lt;BR&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;A: &lt;/B&gt;Nothing - just we ran numbers with different sizes 2k, 4k, 20k to see the effects. What we are seeing is that 6k is the breakeven point where we start getting throttled by the network more than the CPU. Below 6k, we get throttled by the CPU.&lt;BR style="mso-special-character: line-break"&gt;&lt;BR style="mso-special-character: line-break"&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;Q:&lt;/B&gt; Can you confirm:&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;That when using a LocalCache the object is not actually serialized?&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Is it actually pushed over to a separate service in these cases?&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;For example IIS, with LocalCache for Session info. Do the objects themselves live as objects or as serialized data?&lt;BR&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;A: &lt;/B&gt;The object is just kept in the local cache, but also copied over to the service. You cannot have a local cache without a Cache service tier.&lt;BR style="mso-special-character: line-break"&gt;&lt;BR style="mso-special-character: line-break"&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;Q: &lt;/B&gt;Is it safe to assume that you are using XML Serialization in all cases?&lt;BR&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;A: &lt;/B&gt;Yes - binary&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;I had to perform some minor NDA screening to get this out the door but I hope to have more details in the near future.&lt;/FONT&gt;&lt;/P&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6957717" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/rchartier/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://weblogs.asp.net/rchartier/archive/tags/.NET/default.aspx">.NET</category><category domain="http://weblogs.asp.net/rchartier/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://weblogs.asp.net/rchartier/archive/tags/Cache/default.aspx">Cache</category><category domain="http://weblogs.asp.net/rchartier/archive/tags/Velocity/default.aspx">Velocity</category><category domain="http://weblogs.asp.net/rchartier/archive/tags/Caching/default.aspx">Caching</category></item><item><title>Velocity PowerShell Quick Reference Guide (CTP2)</title><link>http://weblogs.asp.net/rchartier/archive/2009/03/10/velocity-powershell-quick-reference-guide-ctp2.aspx</link><pubDate>Tue, 10 Mar 2009 16:48:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6952503</guid><dc:creator>Rob Chartier</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/rchartier/rsscomments.aspx?PostID=6952503</wfw:commentRss><comments>http://weblogs.asp.net/rchartier/archive/2009/03/10/velocity-powershell-quick-reference-guide-ctp2.aspx#comments</comments><description>&lt;P mce_keep="true"&gt;If you are looking for&amp;nbsp;the PowerShell&amp;nbsp;Quick Reference Guide for the CTP2&amp;nbsp;Build of Velocity&amp;nbsp;look no further.&amp;nbsp;Download the PDF here:&lt;/P&gt;&lt;A href="http://weblogs.asp.net/blogs/rchartier/Velocity-PowerShell-QuickReference-CTP2.zip"&gt;http://weblogs.asp.net/blogs/rchartier/Velocity-PowerShell-QuickReference-CTP2.zip&lt;/A&gt; 
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P mce_keep="true"&gt;Errors or omissions can be reported via comments below.&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6952503" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/rchartier/archive/tags/.NET/default.aspx">.NET</category><category domain="http://weblogs.asp.net/rchartier/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://weblogs.asp.net/rchartier/archive/tags/Quick+Reference/default.aspx">Quick Reference</category><category domain="http://weblogs.asp.net/rchartier/archive/tags/Cache/default.aspx">Cache</category><category domain="http://weblogs.asp.net/rchartier/archive/tags/Velocity/default.aspx">Velocity</category><category domain="http://weblogs.asp.net/rchartier/archive/tags/PowerShell/default.aspx">PowerShell</category></item><item><title>MVP Summit : "I'm A PC!"</title><link>http://weblogs.asp.net/rchartier/archive/2009/03/05/mvp-summit-quot-i-m-a-pc-quot.aspx</link><pubDate>Thu, 05 Mar 2009 22:57:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6939853</guid><dc:creator>Rob Chartier</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/rchartier/rsscomments.aspx?PostID=6939853</wfw:commentRss><comments>http://weblogs.asp.net/rchartier/archive/2009/03/05/mvp-summit-quot-i-m-a-pc-quot.aspx#comments</comments><description>&lt;P mce_keep="true"&gt;So this year during the MVP Summit the crowd was ask to participate in the next "internal" video for Microsofts "Im&amp;nbsp;a PC" Ad Campaign.&amp;nbsp; They had the entire room of over 1000 MVP's from all over the world chant "I'm a PC" and "I Love Windows 7".&lt;/P&gt;
&lt;P mce_keep="true"&gt;&lt;A class="" href="http://cli.gs/YVL3nr" target=_blank mce_href="http://cli.gs/YVL3nr"&gt;Here is a 30 second capture of the video&lt;/A&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;My stunning debut is right around the 24 second time mark, 3rd row on the right.&amp;nbsp; If you notice, its actuall Steve Ballmer doing the yelling in the background...&lt;/P&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6939853" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/rchartier/archive/tags/MVP/default.aspx">MVP</category><category domain="http://weblogs.asp.net/rchartier/archive/tags/2009/default.aspx">2009</category></item><item><title>Follow me on Twitter..</title><link>http://weblogs.asp.net/rchartier/archive/2009/02/22/follow-me-on-twitter.aspx</link><pubDate>Sun, 22 Feb 2009 19:40:01 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6923662</guid><dc:creator>Rob Chartier</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/rchartier/rsscomments.aspx?PostID=6923662</wfw:commentRss><comments>http://weblogs.asp.net/rchartier/archive/2009/02/22/follow-me-on-twitter.aspx#comments</comments><description>&lt;p&gt;Follow Me:&amp;#160; &lt;a href="http://twitter.com/robchartier"&gt;http://twitter.com/robchartier&lt;/a&gt;&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6923662" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/rchartier/archive/tags/Community+News/default.aspx">Community News</category><category domain="http://weblogs.asp.net/rchartier/archive/tags/Contact+Management/default.aspx">Contact Management</category><category domain="http://weblogs.asp.net/rchartier/archive/tags/twitter/default.aspx">twitter</category></item><item><title>DotNetNuke PageFlow Module</title><link>http://weblogs.asp.net/rchartier/archive/2009/02/21/dotnetnuke-pageflow-module.aspx</link><pubDate>Sun, 22 Feb 2009 06:53:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6921987</guid><dc:creator>Rob Chartier</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/rchartier/rsscomments.aspx?PostID=6921987</wfw:commentRss><comments>http://weblogs.asp.net/rchartier/archive/2009/02/21/dotnetnuke-pageflow-module.aspx#comments</comments><description>&lt;SPAN class=Normal id=dnn_ctr999_HtmlModule_HtmlModule_lblContent&gt;&lt;STRONG&gt;Visit the Site:&amp;nbsp; &lt;/STRONG&gt;&lt;A href="http://www.dnnpageflow.com/" mce_href="http://www.dnnpageflow.com/"&gt;&lt;STRONG&gt;http://www.dnnpageflow.com&lt;/STRONG&gt;&lt;/A&gt;&lt;/SPAN&gt;&lt;SPAN class=Normal&gt;&lt;/SPAN&gt;&lt;SPAN class=Normal&gt; 
&lt;P&gt;DNN Page Flow (aka DNN Workflow) is a set of controls that you can add to any DotNetNuke site which will enable the administrator to consume, create, edit Page Flows (workflows).&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The core modules include:&lt;/P&gt;
&lt;P&gt;Basic Page Flow Navigation:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;Command Button (first, next, previous, last) 
&lt;LI&gt;Link Button (first, next, previous, last) 
&lt;LI&gt;Menu Bar 
&lt;LI&gt;Start Page Flow (initiate a workflow automatically when navigating to a page) &lt;/LI&gt;
&lt;LI&gt;Administration&lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;Admin Modules:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;Add/Edit/Delete Page Flows 
&lt;LI&gt;Add/Edit/Delete Page Flow Steps 
&lt;LI&gt;Add/Edit/Delete&amp;nbsp;Page Flow Step Parameters &lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;Data Persistence is done via a simplistic provider model and out of the box we will support XML to Disk and Sql Server persistence providers.&lt;/P&gt;
&lt;P&gt;Since we use&amp;nbsp;out of the box ASP.NET Controls for our Page Flow modules you can leverage existing ASP.NET Themes and Skins to customize their look and feel.&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;/SPAN&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6921987" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/rchartier/archive/tags/.NET/default.aspx">.NET</category><category domain="http://weblogs.asp.net/rchartier/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://weblogs.asp.net/rchartier/archive/tags/DotNetNuke/default.aspx">DotNetNuke</category><category domain="http://weblogs.asp.net/rchartier/archive/tags/PageFlow/default.aspx">PageFlow</category><category domain="http://weblogs.asp.net/rchartier/archive/tags/Workflow/default.aspx">Workflow</category><category domain="http://weblogs.asp.net/rchartier/archive/tags/DNN/default.aspx">DNN</category><category domain="http://weblogs.asp.net/rchartier/archive/tags/Page+Flow/default.aspx">Page Flow</category></item></channel></rss>