<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><!--RSS generated by Windows SharePoint Services V3 RSS Generator on 5/22/2013 11:44:53 AM--><rss xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">
  <channel>
    <title>Blog 52: Posts</title>
    <link>http://www.sieena.com/blog/Lists/Posts/AllPosts.aspx</link>
    <description>RSS feed for the Posts list.</description>
    <lastBuildDate>Wed, 22 May 2013 16:44:53 GMT</lastBuildDate>
    <generator>Windows SharePoint Services V3 RSS Generator</generator>
    <ttl>60</ttl>
    <image>
      <title>Blog 52: Posts</title>
      <url>/blog/_layouts/images/homepage.gif</url>
      <link>http://www.sieena.com/blog/Lists/Posts/AllPosts.aspx</link>
    </image>
    <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/sieena/blog" /><feedburner:info uri="sieena/blog" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
      <title>Using JSONP at MVC3</title>
      <link>http://feedproxy.google.com/~r/sieena/blog/~3/fQF3xgeEYCw/ViewPost.aspx</link>
      <description>&lt;div&gt;&lt;b&gt;Body:&lt;/b&gt; &lt;div class=ExternalClassF1813C22EEDE42E78DD6AD6699B820DB&gt;
&lt;div&gt;
&lt;p style="line-height:normal;margin:0in 0in 0pt" class=MsoNormal&gt;&lt;span class=MsoSubtleEmphasis&gt;&lt;em&gt;&lt;font color="#808080"&gt;&lt;font size=3&gt;&lt;font face=Calibri&gt;By Sergio Cavazos.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="line-height:normal;margin:0in 0in 0pt" class=MsoNormal&gt;&lt;font size=3 face=Calibri&gt;&lt;/font&gt; &lt;/p&gt;
&lt;p style="line-height:normal;margin:0in 0in 0pt" class=MsoNormal&gt;&lt;font size=3 face=Calibri&gt;Quite recently we had to develop an API to expose some data among a MVC3 site, this data would be consumed at 3&lt;sup&gt;rd&lt;/sup&gt; party domains via JSON, thus meaning that due to browser security restrictions, asynchronous requests to cross domains are restricted. Researching a little we found that there’s a technic called JSONP which allows you achieve this. &lt;br&gt;&lt;br&gt;What is&lt;span&gt;  &lt;/span&gt;JSONP ?&lt;br&gt;&lt;br&gt;Known for JSON Padding, in this technic, an &lt;b&gt;&lt;i&gt;“?callback= “ &lt;/i&gt;&lt;/b&gt;is added to the querystring, so server would process the request, and instead of returning a JSON object or XML, it responds with an “&lt;/font&gt;&lt;span style="font-family:Consolas;color:#a31515;font-size:9.5pt"&gt;application/x-javascript” &lt;/span&gt;&lt;font size=3&gt;&lt;font face=Calibri&gt;response using the callback parameter as a wrapper function, so when request is answered, the browser will execute the JavaScript returned. &lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="line-height:normal;margin:0in 0in 0pt" class=MsoNormal&gt;&lt;font size=3 face=Calibri&gt;&lt;/font&gt; &lt;/p&gt;
&lt;p style="line-height:normal;margin:0in 0in 0pt" class=MsoNormal&gt;&lt;b&gt;&lt;font size=3&gt;&lt;font face=Calibri&gt;Note: Serverside services have to be enabled or tweaked to handle JSONP requests&lt;/font&gt;&lt;/font&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style="line-height:normal;margin:0in 0in 0pt" class=MsoNormal&gt;&lt;b&gt;&lt;font size=3 face=Calibri&gt;&lt;/font&gt;&lt;/b&gt; &lt;/p&gt;
&lt;p style="line-height:normal;margin:0in 0in 0pt" class=MsoNormal&gt;&lt;font size=3&gt;&lt;font face=Calibri&gt;Applying JSONP in MVC3&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="line-height:normal;margin:0in 0in 0pt" class=MsoNormal&gt;&lt;font size=3 face=Calibri&gt;&lt;/font&gt; &lt;/p&gt;
&lt;p style="line-height:normal;margin:0in 0in 0pt" class=MsoNormal&gt;&lt;font size=3&gt;&lt;font face=Calibri&gt;First of all let’s see the code that makes the magic:&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="line-height:normal;margin:0in 0in 0pt" class=MsoNormal&gt;&lt;font size=3 face=Calibri&gt;&lt;/font&gt; &lt;/p&gt;
&lt;div style="border-bottom:windowtext 1pt solid;border-left:windowtext 1pt solid;padding-bottom:1pt;padding-left:4pt;padding-right:4pt;background:#dbe5f1;border-top:windowtext 1pt solid;border-right:windowtext 1pt solid;padding-top:1pt;mso-element:para-border-div"&gt;
&lt;p style="border-bottom:medium none;border-left:medium none;padding-bottom:0in;line-height:normal;margin:0in 0in 0pt;padding-left:0in;padding-right:0in;background:#dbe5f1;border-top:medium none;border-right:medium none;padding-top:0in" class=MsoNormal&gt;&lt;font size=3 face=Calibri&gt;&lt;/font&gt; &lt;/p&gt;
&lt;p style="border-bottom:medium none;border-left:medium none;padding-bottom:0in;line-height:normal;margin:0in 0in 0pt;padding-left:0in;padding-right:0in;background:#dbe5f1;border-top:medium none;border-right:medium none;padding-top:0in" class=MsoNormal&gt;&lt;span style="font-family:Consolas;color:blue;font-size:9.5pt"&gt;public&lt;/span&gt;&lt;span style="font-family:Consolas;font-size:9.5pt"&gt; &lt;span style="color:blue"&gt;class&lt;/span&gt; &lt;span style="color:#2b91af"&gt;JsonpResult&lt;/span&gt; : &lt;span style="color:#2b91af"&gt;JsonResult&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="border-bottom:medium none;border-left:medium none;padding-bottom:0in;line-height:normal;margin:0in 0in 0pt;padding-left:0in;padding-right:0in;background:#dbe5f1;border-top:medium none;border-right:medium none;padding-top:0in" class=MsoNormal&gt;&lt;span style="font-family:Consolas;font-size:9.5pt"&gt;{&lt;/span&gt;&lt;/p&gt;
&lt;p style="border-bottom:medium none;border-left:medium none;padding-bottom:0in;line-height:normal;margin:0in 0in 0pt;padding-left:0in;padding-right:0in;background:#dbe5f1;border-top:medium none;border-right:medium none;padding-top:0in" class=MsoNormal&gt;&lt;span style="font-family:Consolas;font-size:9.5pt"&gt;&lt;span&gt;   &lt;/span&gt;&lt;span style="color:blue"&gt;public&lt;/span&gt; &lt;span style="color:blue"&gt;override&lt;/span&gt; &lt;span style="color:blue"&gt;void&lt;/span&gt; ExecuteResult(&lt;span style="color:#2b91af"&gt;ControllerContext&lt;/span&gt; context)&lt;/span&gt;&lt;/p&gt;
&lt;p style="border-bottom:medium none;border-left:medium none;padding-bottom:0in;line-height:normal;margin:0in 0in 0pt;padding-left:0in;padding-right:0in;background:#dbe5f1;border-top:medium none;border-right:medium none;padding-top:0in" class=MsoNormal&gt;&lt;span style="font-family:Consolas;font-size:9.5pt"&gt;&lt;span&gt;   &lt;/span&gt;{&lt;/span&gt;&lt;/p&gt;
&lt;p style="border-bottom:medium none;border-left:medium none;padding-bottom:0in;line-height:normal;margin:0in 0in 0pt;padding-left:0in;padding-right:0in;background:#dbe5f1;border-top:medium none;border-right:medium none;padding-top:0in" class=MsoNormal&gt;&lt;span style="font-family:Consolas;font-size:9.5pt"&gt;&lt;span&gt;      &lt;/span&gt;&lt;span style="color:blue"&gt;if&lt;/span&gt; (context == &lt;span style="color:blue"&gt;null&lt;/span&gt;)&lt;/span&gt;&lt;/p&gt;
&lt;p style="border-bottom:medium none;border-left:medium none;padding-bottom:0in;line-height:normal;margin:0in 0in 0pt;padding-left:0in;padding-right:0in;background:#dbe5f1;border-top:medium none;border-right:medium none;padding-top:0in" class=MsoNormal&gt;&lt;span style="font-family:Consolas;font-size:9.5pt"&gt;&lt;span&gt;      &lt;/span&gt;{&lt;/span&gt;&lt;/p&gt;
&lt;p style="border-bottom:medium none;border-left:medium none;padding-bottom:0in;line-height:normal;margin:0in 0in 0pt;padding-left:0in;padding-right:0in;background:#dbe5f1;border-top:medium none;border-right:medium none;padding-top:0in" class=MsoNormal&gt;&lt;span style="font-family:Consolas;font-size:9.5pt"&gt;&lt;span&gt;        &lt;/span&gt;&lt;span style="color:blue"&gt;throw&lt;/span&gt; &lt;span style="color:blue"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af"&gt;ArgumentNullException&lt;/span&gt;(&lt;span style="color:#a31515"&gt;&amp;quot;context&amp;quot;&lt;/span&gt;);&lt;/span&gt;&lt;/p&gt;
&lt;p style="border-bottom:medium none;border-left:medium none;padding-bottom:0in;line-height:normal;margin:0in 0in 0pt;padding-left:0in;padding-right:0in;background:#dbe5f1;border-top:medium none;border-right:medium none;padding-top:0in" class=MsoNormal&gt;&lt;span style="font-family:Consolas;font-size:9.5pt"&gt;&lt;span&gt;      &lt;/span&gt;}&lt;/span&gt;&lt;/p&gt;
&lt;p style="border-bottom:medium none;border-left:medium none;padding-bottom:0in;line-height:normal;margin:0in 0in 0pt;padding-left:0in;padding-right:0in;background:#dbe5f1;border-top:medium none;border-right:medium none;padding-top:0in" class=MsoNormal&gt;&lt;span style="font-family:Consolas;font-size:9.5pt"&gt;&lt;span&gt;        &lt;/span&gt;&lt;span style="color:blue"&gt;var&lt;/span&gt; request = context.HttpContext.Request;&lt;/span&gt;&lt;/p&gt;
&lt;p style="border-bottom:medium none;border-left:medium none;padding-bottom:0in;line-height:normal;margin:0in 0in 0pt;padding-left:0in;padding-right:0in;background:#dbe5f1;border-top:medium none;border-right:medium none;padding-top:0in" class=MsoNormal&gt;&lt;span style="font-family:Consolas;font-size:9.5pt"&gt;&lt;span&gt;        &lt;/span&gt;&lt;span style="color:blue"&gt;var&lt;/span&gt; response = context.HttpContext.Response;&lt;/span&gt;&lt;/p&gt;
&lt;p style="border-bottom:medium none;border-left:medium none;padding-bottom:0in;line-height:normal;margin:0in 0in 0pt;padding-left:0in;padding-right:0in;background:#dbe5f1;border-top:medium none;border-right:medium none;padding-top:0in" class=MsoNormal&gt;&lt;span style="font-family:Consolas;font-size:9.5pt"&gt;&lt;span&gt;        &lt;/span&gt;&lt;span style="color:blue"&gt;string&lt;/span&gt; jsoncallback = (context.RouteData.Values[&lt;span style="color:#a31515"&gt;&amp;quot;callback&amp;quot;&lt;/span&gt;] &lt;span style="color:blue"&gt;as&lt;/span&gt; &lt;span style="color:blue"&gt;string&lt;/span&gt;) ?? request[&lt;span style="color:#a31515"&gt;&amp;quot;callback&amp;quot;&lt;/span&gt;];&lt;/span&gt;&lt;/p&gt;
&lt;p style="border-bottom:medium none;border-left:medium none;padding-bottom:0in;line-height:normal;margin:0in 0in 0pt;padding-left:0in;padding-right:0in;background:#dbe5f1;border-top:medium none;border-right:medium none;padding-top:0in" class=MsoNormal&gt;&lt;span style="font-family:Consolas;font-size:9.5pt"&gt;&lt;/span&gt; &lt;/p&gt;
&lt;p style="border-bottom:medium none;border-left:medium none;padding-bottom:0in;line-height:normal;margin:0in 0in 0pt;padding-left:0in;padding-right:0in;background:#dbe5f1;border-top:medium none;border-right:medium none;padding-top:0in" class=MsoNormal&gt;&lt;span style="font-family:Consolas;font-size:9.5pt"&gt;&lt;span&gt;        &lt;/span&gt;&lt;span style="color:blue"&gt;if&lt;/span&gt; (!&lt;span style="color:blue"&gt;string&lt;/span&gt;.IsNullOrEmpty(jsoncallback))&lt;/span&gt;&lt;/p&gt;
&lt;p style="border-bottom:medium none;border-left:medium none;padding-bottom:0in;line-height:normal;margin:0in 0in 0pt;padding-left:0in;padding-right:0in;background:#dbe5f1;border-top:medium none;border-right:medium none;padding-top:0in" class=MsoNormal&gt;&lt;span style="font-family:Consolas;font-size:9.5pt"&gt;&lt;span&gt;        &lt;/span&gt;{&lt;/span&gt;&lt;/p&gt;
&lt;p style="border-bottom:medium none;border-left:medium none;padding-bottom:0in;line-height:normal;margin:0in 0in 0pt;padding-left:0in;padding-right:0in;background:#dbe5f1;border-top:medium none;border-right:medium none;padding-top:0in" class=MsoNormal&gt;&lt;span style="font-family:Consolas;font-size:9.5pt"&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;           &lt;/span&gt;&lt;span style="color:blue"&gt;if&lt;/span&gt; (&lt;span style="color:blue"&gt;string&lt;/span&gt;.IsNullOrEmpty(&lt;span style="color:blue"&gt;base&lt;/span&gt;.ContentType))&lt;/span&gt;&lt;/p&gt;
&lt;p style="border-bottom:medium none;border-left:medium none;padding-bottom:0in;line-height:normal;margin:0in 0in 0pt;padding-left:0in;padding-right:0in;background:#dbe5f1;border-top:medium none;border-right:medium none;padding-top:0in" class=MsoNormal&gt;&lt;span style="font-family:Consolas;font-size:9.5pt"&gt;&lt;span&gt;            &lt;/span&gt;{&lt;/span&gt;&lt;/p&gt;
&lt;p style="border-bottom:medium none;border-left:medium none;padding-bottom:0in;line-height:normal;margin:0in 0in 0pt;padding-left:0in;padding-right:0in;background:#dbe5f1;border-top:medium none;border-right:medium none;padding-top:0in" class=MsoNormal&gt;&lt;span style="font-family:Consolas;font-size:9.5pt"&gt;&lt;span&gt;                &lt;/span&gt;&lt;span style="color:blue"&gt;base&lt;/span&gt;.ContentType = &lt;span style="color:#a31515"&gt;&amp;quot;application/x-javascript&amp;quot;&lt;/span&gt;;&lt;/span&gt;&lt;/p&gt;
&lt;p style="border-bottom:medium none;border-left:medium none;padding-bottom:0in;line-height:normal;margin:0in 0in 0pt;padding-left:0in;padding-right:0in;background:#dbe5f1;border-top:medium none;border-right:medium none;padding-top:0in" class=MsoNormal&gt;&lt;span style="font-family:Consolas;font-size:9.5pt"&gt;&lt;span&gt;            &lt;/span&gt;}&lt;/span&gt;&lt;/p&gt;
&lt;p style="border-bottom:medium none;border-left:medium none;padding-bottom:0in;line-height:normal;margin:0in 0in 0pt;padding-left:0in;padding-right:0in;background:#dbe5f1;border-top:medium none;border-right:medium none;padding-top:0in" class=MsoNormal&gt;&lt;span style="font-family:Consolas;font-size:9.5pt"&gt;&lt;span&gt;            &lt;/span&gt;response.Write(&lt;span style="color:blue"&gt;string&lt;/span&gt;.Format(&lt;span style="color:#a31515"&gt;&amp;quot;{0}(&amp;quot;&lt;/span&gt;, jsoncallback));&lt;/span&gt;&lt;/p&gt;
&lt;p style="border-bottom:medium none;border-left:medium none;padding-bottom:0in;line-height:normal;margin:0in 0in 0pt;padding-left:0in;padding-right:0in;background:#dbe5f1;border-top:medium none;border-right:medium none;padding-top:0in" class=MsoNormal&gt;&lt;span style="font-family:Consolas;font-size:9.5pt"&gt;&lt;span&gt;        &lt;/span&gt;}&lt;/span&gt;&lt;/p&gt;
&lt;p style="border-bottom:medium none;border-left:medium none;padding-bottom:0in;line-height:normal;margin:0in 0in 0pt;padding-left:0in;padding-right:0in;background:#dbe5f1;border-top:medium none;border-right:medium none;padding-top:0in" class=MsoNormal&gt;&lt;span style="font-family:Consolas;font-size:9.5pt"&gt;&lt;span&gt;        &lt;/span&gt;&lt;span style="color:blue"&gt;base&lt;/span&gt;.ExecuteResult(context);&lt;/span&gt;&lt;/p&gt;
&lt;p style="border-bottom:medium none;border-left:medium none;padding-bottom:0in;line-height:normal;margin:0in 0in 0pt;padding-left:0in;padding-right:0in;background:#dbe5f1;border-top:medium none;border-right:medium none;padding-top:0in" class=MsoNormal&gt;&lt;span style="font-family:Consolas;font-size:9.5pt"&gt;&lt;span&gt;        &lt;/span&gt;&lt;span style="color:blue"&gt;if&lt;/span&gt; (!&lt;span style="color:blue"&gt;string&lt;/span&gt;.IsNullOrEmpty(jsoncallback))&lt;/span&gt;&lt;/p&gt;
&lt;p style="border-bottom:medium none;border-left:medium none;padding-bottom:0in;line-height:normal;margin:0in 0in 0pt;padding-left:0in;padding-right:0in;background:#dbe5f1;border-top:medium none;border-right:medium none;padding-top:0in" class=MsoNormal&gt;&lt;span style="font-family:Consolas;font-size:9.5pt"&gt;&lt;span&gt;        &lt;/span&gt;{&lt;/span&gt;&lt;/p&gt;
&lt;p style="border-bottom:medium none;border-left:medium none;padding-bottom:0in;line-height:normal;margin:0in 0in 0pt;padding-left:0in;padding-right:0in;background:#dbe5f1;border-top:medium none;border-right:medium none;padding-top:0in" class=MsoNormal&gt;&lt;span style="font-family:Consolas;font-size:9.5pt"&gt;&lt;span&gt;            &lt;/span&gt;response.Write(&lt;span style="color:#a31515"&gt;&amp;quot;)&amp;quot;&lt;/span&gt;);&lt;/span&gt;&lt;/p&gt;
&lt;p style="border-bottom:medium none;border-left:medium none;padding-bottom:0in;line-height:normal;margin:0in 0in 0pt;padding-left:0in;padding-right:0in;background:#dbe5f1;border-top:medium none;border-right:medium none;padding-top:0in" class=MsoNormal&gt;&lt;span style="font-family:Consolas;font-size:9.5pt"&gt;&lt;span&gt;        &lt;/span&gt;}&lt;/span&gt;&lt;/p&gt;
&lt;p style="border-bottom:medium none;border-left:medium none;padding-bottom:0in;line-height:normal;margin:0in 0in 0pt;padding-left:0in;padding-right:0in;background:#dbe5f1;border-top:medium none;border-right:medium none;padding-top:0in" class=MsoNormal&gt;&lt;span style="font-family:Consolas;font-size:9.5pt"&gt;&lt;span&gt;    &lt;/span&gt;}&lt;/span&gt;&lt;/p&gt;
&lt;p style="border-bottom:medium none;border-left:medium none;padding-bottom:0in;line-height:normal;margin:0in 0in 0pt;padding-left:0in;padding-right:0in;background:#dbe5f1;border-top:medium none;border-right:medium none;padding-top:0in" class=MsoNormal&gt;&lt;span style="font-family:Consolas;font-size:9.5pt"&gt;}&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;
&lt;p style="line-height:normal;margin:0in 0in 0pt" class=MsoNormal&gt;&lt;font size=3 face=Calibri&gt;&lt;/font&gt; &lt;/p&gt;
&lt;p style="line-height:normal;margin:0in 0in 0pt" class=MsoNormal&gt;&lt;span style="font-family:Consolas;color:#a31515;font-size:9.5pt"&gt;&lt;/span&gt; &lt;/p&gt;
&lt;p style="margin:0in 0in 10pt" class=MsoNormal&gt;&lt;font size=3&gt;&lt;font face=Calibri&gt;If you notice, our class JsonpResult extends from JsonResult, it overrides the ExecuteResult method in which it seeks for the callback parameter, and if found, it changes response.ContentType and wraps the resulting JSON data using the callback parameter value.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin:0in 0in 10pt" class=MsoNormal&gt;&lt;font size=3&gt;&lt;font face=Calibri&gt;Heres an example of a method of a controller using it&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;div style="border-bottom:windowtext 1pt solid;border-left:windowtext 1pt solid;padding-bottom:1pt;padding-left:4pt;padding-right:4pt;background:#dbe5f1;border-top:windowtext 1pt solid;border-right:windowtext 1pt solid;padding-top:1pt;mso-element:para-border-div"&gt;
&lt;p style="border-bottom:medium none;border-left:medium none;padding-bottom:0in;line-height:normal;margin:0in 0in 0pt;padding-left:0in;padding-right:0in;background:#dbe5f1;border-top:medium none;border-right:medium none;padding-top:0in" class=MsoNormal&gt;&lt;span style="font-family:Consolas;color:blue;font-size:9.5pt"&gt;public&lt;/span&gt;&lt;span style="font-family:Consolas;font-size:9.5pt"&gt; &lt;span style="color:#2b91af"&gt;ActionResult&lt;/span&gt; GetJsonFeed(&lt;span style="color:blue"&gt;string&lt;/span&gt; eventIds)&lt;/span&gt;&lt;/p&gt;
&lt;p style="border-bottom:medium none;border-left:medium none;padding-bottom:0in;line-height:normal;margin:0in 0in 0pt;padding-left:0in;padding-right:0in;background:#dbe5f1;border-top:medium none;border-right:medium none;padding-top:0in" class=MsoNormal&gt;&lt;span style="font-family:Consolas;font-size:9.5pt"&gt;{&lt;/span&gt;&lt;/p&gt;
&lt;p style="border-bottom:medium none;border-left:medium none;padding-bottom:0in;line-height:normal;margin:0in 0in 0pt;padding-left:0in;padding-right:0in;background:#dbe5f1;border-top:medium none;border-right:medium none;padding-top:0in" class=MsoNormal&gt;&lt;span style="font-family:Consolas;font-size:9.5pt"&gt;&lt;span&gt;  &lt;/span&gt;&lt;span style="color:#00b050"&gt;//get rid of any spaces&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="border-bottom:medium none;border-left:medium none;padding-bottom:0in;line-height:normal;margin:0in 0in 0pt;padding-left:0in;padding-right:0in;background:#dbe5f1;border-top:medium none;border-right:medium none;padding-top:0in" class=MsoNormal&gt;&lt;span style="font-family:Consolas;font-size:9.5pt"&gt;&lt;span&gt;  &lt;/span&gt;eventIds = eventIds.Replace(&lt;span style="color:#a31515"&gt;&amp;quot; &amp;quot;&lt;/span&gt;, &lt;span style="color:blue"&gt;string&lt;/span&gt;.Empty);&lt;/span&gt;&lt;/p&gt;
&lt;p style="border-bottom:medium none;border-left:medium none;padding-bottom:0in;line-height:normal;margin:0in 0in 0pt;padding-left:0in;padding-right:0in;background:#dbe5f1;border-top:medium none;border-right:medium none;padding-top:0in" class=MsoNormal&gt;&lt;span style="font-family:Consolas;font-size:9.5pt"&gt;&lt;span&gt;  &lt;/span&gt;&lt;span style="color:#00b050"&gt;//cast so we get a long[]&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="border-bottom:medium none;border-left:medium none;padding-bottom:0in;line-height:normal;margin:0in 0in 0pt;padding-left:0in;padding-right:0in;background:#dbe5f1;border-top:medium none;border-right:medium none;padding-top:0in" class=MsoNormal&gt;&lt;span style="font-family:Consolas;font-size:9.5pt"&gt;&lt;span&gt;  &lt;/span&gt;&lt;span style="color:blue"&gt;var&lt;/span&gt; resp =&lt;span&gt;  &lt;/span&gt;GetEvents(eventIds.Split(&lt;span style="color:blue"&gt;new&lt;/span&gt; &lt;span style="color:blue"&gt;char&lt;/span&gt;[]{&lt;span style="color:#a31515"&gt;','&lt;/span&gt;})&lt;/span&gt;&lt;/p&gt;
&lt;p style="border-bottom:medium none;border-left:medium none;padding-bottom:0in;line-height:normal;margin:0in 0in 0pt;padding-left:0in;padding-right:0in;background:#dbe5f1;border-top:medium none;border-right:medium none;padding-top:0in" class=MsoNormal&gt;&lt;span style="font-family:Consolas;font-size:9.5pt"&gt;&lt;span&gt;                        &lt;/span&gt;.Select(x=&amp;gt;&lt;span style="color:blue"&gt;long&lt;/span&gt;.Parse(x)).ToArray());&lt;/span&gt;&lt;/p&gt;
&lt;p style="border-bottom:medium none;border-left:medium none;padding-bottom:0in;line-height:normal;margin:0in 0in 0pt;padding-left:0in;padding-right:0in;background:#dbe5f1;border-top:medium none;border-right:medium none;padding-top:0in" class=MsoNormal&gt;&lt;span style="font-family:Consolas;font-size:9.5pt"&gt;&lt;/span&gt; &lt;/p&gt;
&lt;p style="border-bottom:medium none;border-left:medium none;padding-bottom:0in;line-height:normal;margin:0in 0in 0pt;padding-left:0in;padding-right:0in;background:#dbe5f1;border-top:medium none;border-right:medium none;padding-top:0in" class=MsoNormal&gt;&lt;span style="font-family:Consolas;font-size:9.5pt"&gt;&lt;span&gt;  &lt;/span&gt;&lt;span style="color:blue"&gt;return&lt;/span&gt; &lt;span style="color:blue"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af"&gt;JsonpResult&lt;/span&gt;{&lt;/span&gt;&lt;/p&gt;
&lt;p style="border-bottom:medium none;border-left:medium none;padding-bottom:0in;line-height:normal;margin:0in 0in 0pt;padding-left:0in;padding-right:0in;background:#dbe5f1;border-top:medium none;border-right:medium none;padding-top:0in" class=MsoNormal&gt;&lt;span style="font-family:Consolas;font-size:9.5pt"&gt;&lt;span&gt;      &lt;/span&gt;Data = resp,&lt;/span&gt;&lt;/p&gt;
&lt;p style="border-bottom:medium none;border-left:medium none;padding-bottom:0in;line-height:normal;margin:0in 0in 0pt;padding-left:0in;padding-right:0in;background:#dbe5f1;border-top:medium none;border-right:medium none;padding-top:0in" class=MsoNormal&gt;&lt;span style="font-family:Consolas;font-size:9.5pt"&gt;&lt;span&gt;      &lt;/span&gt;JsonRequestBehavior = &lt;span style="color:#2b91af"&gt;JsonRequestBehavior&lt;/span&gt;.AllowGet&lt;/span&gt;&lt;/p&gt;
&lt;p style="border-bottom:medium none;border-left:medium none;padding-bottom:0in;line-height:normal;margin:0in 0in 0pt;padding-left:0in;padding-right:0in;background:#dbe5f1;border-top:medium none;border-right:medium none;padding-top:0in" class=MsoNormal&gt;&lt;span style="font-family:Consolas;font-size:9.5pt"&gt;&lt;span&gt;  &lt;/span&gt;} ;&lt;/span&gt;&lt;/p&gt;
&lt;p style="border-bottom:medium none;border-left:medium none;padding-bottom:0in;line-height:normal;margin:0in 0in 0pt;padding-left:0in;padding-right:0in;background:#dbe5f1;border-top:medium none;border-right:medium none;padding-top:0in" class=MsoNormal&gt;&lt;span style="font-family:Consolas;font-size:9.5pt"&gt;}&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;
&lt;p style="margin:0in 0in 10pt" class=MsoNormal&gt;&lt;font size=3 face=Calibri&gt;&lt;/font&gt; &lt;/p&gt;
&lt;p style="margin:0in 0in 10pt" class=MsoNormal&gt;&lt;font size=3 face=Calibri&gt;&lt;/font&gt; &lt;/p&gt;
&lt;p style="margin:0in 0in 10pt" class=MsoNormal&gt;&lt;font size=3&gt;&lt;font face=Calibri&gt;And finally to consume this, we might find Jquery pretty useful&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin:0in 0in 10pt" class=MsoNormal&gt;&lt;font size=3 face=Calibri&gt;&lt;/font&gt; &lt;/p&gt;
&lt;div style="border-bottom:windowtext 1pt solid;border-left:windowtext 1pt solid;padding-bottom:1pt;padding-left:4pt;padding-right:4pt;background:#dbe5f1;border-top:windowtext 1pt solid;border-right:windowtext 1pt solid;padding-top:1pt;mso-element:para-border-div"&gt;
&lt;p style="border-bottom:medium none;border-left:medium none;padding-bottom:0in;line-height:normal;margin:0in 0in 0pt;padding-left:0in;padding-right:0in;background:#dbe5f1;border-top:medium none;border-right:medium none;padding-top:0in" class=MsoNormal&gt;&lt;span style="font-family:Consolas;font-size:9.5pt" lang=ES-MX&gt;$.ajax({&lt;/span&gt;&lt;/p&gt;
&lt;p style="border-bottom:medium none;border-left:medium none;padding-bottom:0in;line-height:normal;margin:0in 0in 0pt;padding-left:0in;padding-right:0in;background:#dbe5f1;border-top:medium none;border-right:medium none;padding-top:0in" class=MsoNormal&gt;&lt;span style="font-family:Consolas;font-size:9.5pt" lang=ES-MX&gt;&lt;span&gt;       &lt;/span&gt;&lt;span&gt;      &lt;/span&gt;url:&lt;span&gt;  &lt;/span&gt;&amp;quot;http://3rdpartydomain.com/EventFeedJson&amp;quot;,&lt;/span&gt;&lt;/p&gt;
&lt;p style="border-bottom:medium none;border-left:medium none;padding-bottom:0in;line-height:normal;margin:0in 0in 0pt;padding-left:0in;padding-right:0in;background:#dbe5f1;border-top:medium none;border-right:medium none;padding-top:0in" class=MsoNormal&gt;&lt;span style="font-family:Consolas;font-size:9.5pt" lang=ES-MX&gt;&lt;span&gt;       &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Consolas;font-size:9.5pt"&gt;type: &amp;quot;get&amp;quot;,&lt;/span&gt;&lt;/p&gt;
&lt;p style="border-bottom:medium none;border-left:medium none;padding-bottom:0in;line-height:normal;margin:0in 0in 0pt;padding-left:0in;padding-right:0in;background:#dbe5f1;border-top:medium none;border-right:medium none;padding-top:0in" class=MsoNormal&gt;&lt;span style="font-family:Consolas;font-size:9.5pt"&gt;&lt;span&gt;       &lt;/span&gt;&lt;span&gt;      &lt;/span&gt;data: { &lt;/span&gt;&lt;/p&gt;
&lt;p style="border-bottom:medium none;border-left:medium none;padding-bottom:0in;line-height:normal;margin:0in 0in 0pt;padding-left:0in;padding-right:0in;background:#dbe5f1;border-top:medium none;border-right:medium none;padding-top:0in" class=MsoNormal&gt;&lt;span style="font-family:Consolas;font-size:9.5pt"&gt;&lt;span&gt;              &lt;/span&gt;&lt;span&gt;      &lt;/span&gt;eventIds:&amp;quot;1059849, 1059850, 1059851, 1059852, 1059853, 1059854, 1059855, 1059856, 1059857, 1059858&amp;quot; &lt;/span&gt;&lt;/p&gt;
&lt;p style="border-bottom:medium none;border-left:medium none;padding-bottom:0in;line-height:normal;margin:0in 0in 0pt;padding-left:0in;padding-right:0in;background:#dbe5f1;border-top:medium none;border-right:medium none;padding-top:0in" class=MsoNormal&gt;&lt;span style="font-family:Consolas;font-size:9.5pt"&gt;&lt;span&gt;              &lt;/span&gt;&lt;span&gt;     &lt;/span&gt;},&lt;/span&gt;&lt;/p&gt;
&lt;p style="border-bottom:medium none;border-left:medium none;padding-bottom:0in;line-height:normal;margin:0in 0in 0pt;padding-left:0in;padding-right:0in;background:#dbe5f1;border-top:medium none;border-right:medium none;padding-top:0in" class=MsoNormal&gt;&lt;span style="font-family:Consolas;font-size:9.5pt"&gt;&lt;span&gt;       &lt;/span&gt;&lt;span&gt;      &lt;/span&gt;contentType: &amp;quot;application/json; charset=utf-8&amp;quot;,&lt;/span&gt;&lt;/p&gt;
&lt;p style="border-bottom:medium none;border-left:medium none;padding-bottom:0in;line-height:normal;margin:0in 0in 0pt;padding-left:0in;padding-right:0in;background:#dbe5f1;border-top:medium none;border-right:medium none;padding-top:0in" class=MsoNormal&gt;&lt;span style="font-family:Consolas;font-size:9.5pt"&gt;&lt;span&gt;       &lt;/span&gt;&lt;span&gt;      &lt;/span&gt;dataType: &amp;quot;jsonp&amp;quot;,&lt;/span&gt;&lt;/p&gt;
&lt;p style="border-bottom:medium none;border-left:medium none;padding-bottom:0in;line-height:normal;margin:0in 0in 0pt;padding-left:0in;padding-right:0in;background:#dbe5f1;border-top:medium none;border-right:medium none;padding-top:0in" class=MsoNormal&gt;&lt;span style="font-family:Consolas;font-size:9.5pt"&gt;&lt;span&gt;       &lt;/span&gt;&lt;span&gt;      &lt;/span&gt;jsonpCallback: &amp;quot;myFunct&amp;quot;,&lt;/span&gt;&lt;/p&gt;
&lt;p style="border-bottom:medium none;border-left:medium none;padding-bottom:0in;line-height:normal;margin:0in 0in 0pt;padding-left:0in;padding-right:0in;background:#dbe5f1;border-top:medium none;border-right:medium none;padding-top:0in" class=MsoNormal&gt;&lt;span style="font-family:Consolas;font-size:9.5pt"&gt;&lt;span&gt;       &lt;/span&gt;&lt;span&gt;      &lt;/span&gt;error: function(jqXHR, textStatus, errorThrown){&lt;/span&gt;&lt;/p&gt;
&lt;p style="border-bottom:medium none;border-left:medium none;padding-bottom:0in;line-height:normal;margin:0in 0in 0pt;padding-left:0in;padding-right:0in;background:#dbe5f1;border-top:medium none;border-right:medium none;padding-top:0in" class=MsoNormal&gt;&lt;span style="font-family:Consolas;font-size:9.5pt"&gt;&lt;span&gt;                                  &lt;/span&gt;alert(errorThrown + textStatus + jqXHR);&lt;/span&gt;&lt;/p&gt;
&lt;p style="border-bottom:medium none;border-left:medium none;padding-bottom:0in;line-height:normal;margin:0in 0in 0pt;padding-left:0in;padding-right:0in;background:#dbe5f1;border-top:medium none;border-right:medium none;padding-top:0in" class=MsoNormal&gt;&lt;span style="font-family:Consolas;font-size:9.5pt"&gt;&lt;span&gt;                           &lt;/span&gt;}&lt;/span&gt;&lt;/p&gt;
&lt;p style="border-bottom:medium none;border-left:medium none;padding-bottom:0in;line-height:normal;margin:0in 0in 0pt;padding-left:0in;padding-right:0in;background:#dbe5f1;border-top:medium none;border-right:medium none;padding-top:0in" class=MsoNormal&gt;&lt;span style="font-family:Consolas;font-size:9.5pt"&gt;});&lt;/span&gt;&lt;/p&gt;
&lt;p style="border-bottom:medium none;border-left:medium none;padding-bottom:0in;margin:0in 0in 10pt;padding-left:0in;padding-right:0in;background:#dbe5f1;border-top:medium none;border-right:medium none;padding-top:0in" class=MsoNormal&gt;&lt;font size=3 face=Calibri&gt;&lt;/font&gt; &lt;/p&gt;
&lt;p style="border-bottom:medium none;border-left:medium none;padding-bottom:0in;line-height:normal;margin:0in 0in 0pt;padding-left:0in;padding-right:0in;background:#dbe5f1;border-top:medium none;border-right:medium none;padding-top:0in" class=MsoNormal&gt;&lt;span style="font-family:Consolas;font-size:9.5pt"&gt;function myFunct(data){ &lt;/span&gt;&lt;/p&gt;
&lt;p style="border-bottom:medium none;border-left:medium none;padding-bottom:0in;line-height:normal;margin:0in 0in 0pt;padding-left:0in;padding-right:0in;background:#dbe5f1;border-top:medium none;border-right:medium none;padding-top:0in" class=MsoNormal&gt;&lt;span style="font-family:Consolas;font-size:9.5pt"&gt;&lt;span&gt;              &lt;/span&gt;alert(data);&lt;/span&gt;&lt;/p&gt;
&lt;p style="border-bottom:medium none;border-left:medium none;padding-bottom:0in;line-height:normal;margin:0in 0in 0pt;padding-left:0in;padding-right:0in;background:#dbe5f1;border-top:medium none;border-right:medium none;padding-top:0in" class=MsoNormal&gt;&lt;span style="font-family:Consolas;font-size:9.5pt"&gt;}&lt;/span&gt;&lt;/p&gt;&lt;font size=3 face=Calibri&gt;&lt;/font&gt;&lt;/div&gt;
&lt;p style="margin:0in 0in 10pt" class=MsoNormal&gt;&lt;font size=3&gt;&lt;font face=Calibri&gt;&lt;/font&gt;&lt;/font&gt; &lt;/p&gt;
&lt;p style="margin:0in 0in 10pt" class=MsoNormal&gt;&lt;font size=3&gt;&lt;font face=Calibri&gt;So if you are in the need to expose data so it can be consumed via asynchronous requests from other domains you can use this. Hope you found this useful.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;
&lt;div&gt;&lt;b&gt;Published:&lt;/b&gt; 12/20/2011 3:30 PM&lt;/div&gt;
&lt;div&gt;&lt;b&gt;BlogTitleForUrl:&lt;/b&gt; using-jsonp-at-mvc3&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/sieena/blog/~4/fQF3xgeEYCw" height="1" width="1"/&gt;</description>
      <author>Brenda Valadez</author>
      <pubDate>Mon, 14 Nov 2011 21:29:38 GMT</pubDate>
      <guid isPermaLink="false">http://www.sieena.com/blog/Lists/Posts/ViewPost.aspx?ID=142</guid>
    <feedburner:origLink>http://www.sieena.com/blog/Lists/Posts/ViewPost.aspx?ID=142</feedburner:origLink></item>
    <item>
      <title>Adding a rating column to default Blog Site’s Page in SharePoint 2010</title>
      <link>http://feedproxy.google.com/~r/sieena/blog/~3/Qtu7hKnilTg/ViewPost.aspx</link>
      <description>&lt;div&gt;&lt;b&gt;Body:&lt;/b&gt; &lt;div class=ExternalClassA0A7FE25C91D4D05ACB114A4D3952721&gt;
&lt;p style="margin:0in 0in 10pt" class=MsoNormal&gt;&lt;span class=MsoSubtleEmphasis&gt;&lt;em&gt;&lt;font color="#808080"&gt;&lt;font size=3&gt;&lt;font face=Calibri&gt;By Rosario Almaguer.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0in 0in 10pt" class=MsoNormal&gt;&lt;font size=3&gt;&lt;font face=Calibri&gt;When we create a Blog site for our Site Collection, the default page doesn’t show a rating section, like in the follow image:&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;div&gt;&lt;img alt="" src="http://s1-02.twitpicproxy.com/photos/large/447236485.jpg"&gt;&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;
&lt;p style="margin:0in 0in 10pt" class=MsoNormal&gt;&lt;font size=3&gt;&lt;font face=Calibri&gt;So if you want to show a rating you can do it following these steps:&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="text-indent:-0.25in;margin:0in 0in 10pt 0.5in" class=MsoListParagraph&gt;&lt;span&gt;&lt;span&gt;&lt;font size=3 face=Calibri&gt;1.&lt;/font&gt;&lt;span style="font:7pt 'Times New Roman'"&gt;       &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font size=3&gt;&lt;font face=Calibri&gt;Firstly, you have to click in Site Actions and select View All Site Content, in the Lists section you will find a Posts list, click on it.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;font size=3 face=Calibri&gt;
&lt;div&gt;&lt;img alt="" src="http://s1-05.twitpicproxy.com/photos/large/447236941.jpg"&gt;&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;2. Next, you have to access to List tab on the Ribbon and click on List Settings section. You will see a page like this:&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;&lt;img alt="" src="http://s1-05.twitpicproxy.com/photos/large/447237331.jpg"&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="line-height:115%;font-family:'Calibri','sans-serif';font-size:11pt"&gt;You can see which columns are parts of the Posts list in the Columns section.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="line-height:115%;font-family:'Calibri','sans-serif';font-size:11pt"&gt;&lt;/span&gt; &lt;/div&gt;
&lt;div&gt;&lt;span style="line-height:115%;font-family:'Calibri','sans-serif';font-size:11pt"&gt;&lt;img alt="" src="http://s1-03.twitpicproxy.com/photos/large/447237693.jpg"&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;3. In General Settings section, select Rating settings and you will be linked to the follow page:&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;&lt;img alt="" src="http://s1-03.twitpicproxy.com/photos/large/447238140.jpg"&gt;&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;
&lt;p style="margin:0in 0in 10pt" class=MsoNormal&gt;Here, you have to allow items in the Posts list to be rated, so select Yes and click OK. Wait a moment while the changes are applied to the list.&lt;/p&gt;
&lt;p style="text-indent:-0.25in;margin:0in 0in 10pt 0.5in" class=MsoListParagraph&gt;&lt;span&gt;&lt;span&gt;1.&lt;span style="font:7pt 'Times New Roman'"&gt;       &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Now, you can see in the Columns section that two new columns were added:&lt;/p&gt;&lt;/div&gt;
&lt;div&gt;&lt;img alt="" src="http://s1-03.twitpicproxy.com/photos/large/447238545.jpg"&gt;&lt;/div&gt;
&lt;div&gt;5. &lt;span style="line-height:115%;font-family:'Calibri','sans-serif';font-size:11pt"&gt;After that, go to Posts list and see that a new column is showed in the list: &lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="line-height:115%;font-family:'Calibri','sans-serif';font-size:11pt"&gt;&lt;/span&gt; &lt;/div&gt;
&lt;div&gt;&lt;span style="line-height:115%;font-family:'Calibri','sans-serif';font-size:11pt"&gt;&lt;img alt="" src="http://s1-01.twitpicproxy.com/photos/large/447239038.jpg"&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="line-height:115%;font-family:'Calibri','sans-serif';font-size:11pt"&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;But if you go to your default page you will see that the Rating section isn’t showed. So, firstly you have to create a new view which will include: &lt;/div&gt;
&lt;p style="text-indent:-0.25in;margin:0in 0in 0pt 1in" class=MsoListParagraphCxSpMiddle&gt;&lt;span style="font-family:Symbol"&gt;&lt;span&gt;·&lt;span style="font:7pt 'Times New Roman'"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Title&lt;/p&gt;
&lt;p style="text-indent:-0.25in;margin:0in 0in 0pt 1in" class=MsoListParagraphCxSpMiddle&gt;&lt;span style="font-family:Symbol"&gt;&lt;span&gt;·&lt;span style="font:7pt 'Times New Roman'"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Created By&lt;/p&gt;
&lt;p style="text-indent:-0.25in;margin:0in 0in 0pt 1in" class=MsoListParagraphCxSpMiddle&gt;&lt;span style="font-family:Symbol"&gt;&lt;span&gt;·&lt;span style="font:7pt 'Times New Roman'"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Category&lt;/p&gt;
&lt;p style="text-indent:-0.25in;margin:0in 0in 0pt 1in" class=MsoListParagraphCxSpMiddle&gt;&lt;span style="font-family:Symbol"&gt;&lt;span&gt;·&lt;span style="font:7pt 'Times New Roman'"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;# Comments&lt;/p&gt;
&lt;p style="text-indent:-0.25in;margin:0in 0in 0pt 1in" class=MsoListParagraphCxSpMiddle&gt;&lt;span style="font-family:Symbol"&gt;&lt;span&gt;·&lt;span style="font:7pt 'Times New Roman'"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Rating&lt;/p&gt;
&lt;p style="text-indent:-0.25in;margin:0in 0in 10pt 1in" class=MsoListParagraphCxSpLast&gt;&lt;span style="font-family:Symbol"&gt;&lt;span&gt;·&lt;span style="font:7pt 'Times New Roman'"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Body&lt;/p&gt;
&lt;p style="text-indent:-0.25in;margin:0in 0in 10pt 0.5in" class=MsoListParagraph&gt;&lt;span&gt;&lt;span&gt;6.&lt;span style="font:7pt 'Times New Roman'"&gt;       &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;So, to show the rating column in our default page, we have to open Site Actions and click on Edit Page, Click on the Post Web Part Menu&lt;/p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;img alt="" src="http://s1-03.twitpicproxy.com/photos/large/447242472.jpg"&gt;&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;Select Edit Web Part. On the List View section, select the view that you have created and click ok.&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;&lt;img alt="" src="http://s3.amazonaws.com/twitpic/photos/full/447245055.jpg?AWSAccessKeyId=AKIAJF3XCCKACR3QDMOA&amp;amp;Expires=1321306125&amp;amp;Signature=qc/FF3GauW4kwSyUmmAigF6USjg%3D"&gt;&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;7. Now, you will see the Post Web Part like this:&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;&lt;img alt="" src="http://s1-02.twitpicproxy.com/photos/large/447245435.jpg"&gt;&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;Click on Stop Editing. &lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;8&lt;span&gt;&lt;span&gt;.&lt;font face="Times New Roman"&gt; &lt;/font&gt;&lt;/span&gt;&lt;/span&gt;You can edit the View of the Post Web Part opening the site in SharePoint Designer 2010, open SharePoint Designer and open the Site, in the Customization section select Edit Site Home Page.&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;&lt;img alt="" src="http://s3.amazonaws.com/twitpic/photos/full/447245965.jpg?AWSAccessKeyId=AKIAJF3XCCKACR3QDMOA&amp;amp;Expires=1321306277&amp;amp;Signature=AZ43jhd2/NoA6hXmvdC3RHdSTEc%3D"&gt;&lt;/div&gt;
&lt;div&gt;9. On the default.aspx tab select Advanced Mode&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;&lt;img alt="" src="http://s1-05.twitpicproxy.com/photos/large/447246376.jpg"&gt;&lt;/div&gt;
&lt;div&gt;10. Display the Split View and Select the WebPartPage:XsltListViewWebPart, The ribbon will display four new tabs, select the Design Tab and you will be able to modify the style of the list, you can play with the columns that are showed in the view.&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;&lt;img alt="" src="http://s1-03.twitpicproxy.com/photos/large/447246832.jpg"&gt;&lt;/div&gt;
&lt;div&gt;11. Finally, when you finish of edit the List View, save your changes and click on preview in browser.&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;&lt;img alt="" src="http://s1-05.twitpicproxy.com/photos/large/447247405.jpg"&gt;&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;12. As a result...&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;&lt;img alt="" src="http://s1-01.twitpicproxy.com/photos/large/447248620.jpg"&gt;&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;&lt;/font&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;
&lt;div&gt;&lt;b&gt;Published:&lt;/b&gt; 12/15/2011 3:20 PM&lt;/div&gt;
&lt;div&gt;&lt;b&gt;BlogTitleForUrl:&lt;/b&gt; adding-a-rating-column-to-default-blog-site’s-page-in-sharepoint-2010&lt;/div&gt;
&lt;div&gt;&lt;b&gt;Categories:&lt;/b&gt; The Web;SharePoint;SharePoint 2010&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/sieena/blog/~4/Qtu7hKnilTg" height="1" width="1"/&gt;</description>
      <author>Brenda Valadez</author>
      <pubDate>Mon, 14 Nov 2011 21:19:23 GMT</pubDate>
      <guid isPermaLink="false">http://www.sieena.com/blog/Lists/Posts/ViewPost.aspx?ID=141</guid>
    <feedburner:origLink>http://www.sieena.com/blog/Lists/Posts/ViewPost.aspx?ID=141</feedburner:origLink></item>
    <item>
      <title>Design Patterns for Data Persistence</title>
      <link>http://feedproxy.google.com/~r/sieena/blog/~3/PmLrbTfke-A/ViewPost.aspx</link>
      <description>&lt;div&gt;&lt;b&gt;Body:&lt;/b&gt; &lt;div class=ExternalClassC2CCE7FB27174232A7496D308762C2FC&gt;&lt;h1 style="margin:24pt 0in 0pt"&gt;&lt;span class=MsoSubtleEmphasis&gt;&lt;span style="font-weight:normal"&gt;&lt;em&gt;&lt;font color="#808080"&gt;&lt;font size=5&gt;&lt;font face=Cambria&gt;By Carlos Martinez.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/em&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h1&gt;
&lt;h1 style="margin:24pt 0in 0pt"&gt;&lt;font size=5&gt;&lt;font color="#365f91"&gt;&lt;font face=Cambria&gt;Repository Pattern&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/h1&gt;
&lt;p style="margin:0in 0in 10pt" class=MsoNormal&gt;&lt;font size=3 face=Calibri&gt; &lt;/font&gt;&lt;/p&gt;
&lt;p style="margin:0in 0in 10pt" class=MsoNormal&gt;&lt;font size=3&gt;&lt;font face=Calibri&gt;The repository is useful when trying to separate the domain logic from the logic that retrieves the data and maps it in entity objects.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin:0in 0in 10pt" class=MsoNormal&gt;&lt;font size=3&gt;&lt;font face=Calibri&gt;The repository is a small layer between the data source layer and the upper domain layers of the application. Gets the data from the data source and retrieves it to the upper layers. Also the repository contains the persistence logic of the domain objects. This logic separation has 3 benefits:&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="line-height:normal;text-indent:-0.25in;margin:0in 0in 10pt 30pt;tab-stops:list .5in" class=MsoNormal&gt;&lt;span style="font-family:Symbol;color:black;font-size:10pt"&gt;&lt;span style=""&gt;·&lt;span style="font:7pt 'Times New Roman'"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:'Segoe UI','sans-serif';color:black;font-size:10pt"&gt;The logic for web services and data are centralized&lt;/span&gt;&lt;/p&gt;
&lt;p style="line-height:normal;text-indent:-0.25in;margin:0in 0in 10pt 30pt;tab-stops:list .5in" class=MsoNormal&gt;&lt;span style="font-family:Symbol;color:black;font-size:10pt"&gt;&lt;span style=""&gt;·&lt;span style="font:7pt 'Times New Roman'"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:'Segoe UI','sans-serif';color:black;font-size:10pt"&gt;It simplified the unit test.&lt;/span&gt;&lt;/p&gt;
&lt;p style="line-height:normal;text-indent:-0.25in;margin:0in 0in 10pt 30pt;tab-stops:list .5in" class=MsoNormal&gt;&lt;span style="font-family:Symbol;color:black;font-size:10pt"&gt;&lt;span style=""&gt;·&lt;span style="font:7pt 'Times New Roman'"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:'Segoe UI','sans-serif';color:black;font-size:10pt"&gt;It provides a flexible architecture that can be adapted as the overall design of the application evolves.&lt;/span&gt;&lt;/p&gt;
&lt;h1 style="margin:24pt 0in 0pt"&gt;&lt;font size=5&gt;&lt;font color="#365f91"&gt;&lt;font face=Cambria&gt;Lazy &amp;amp; Eager Loading&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/h1&gt;
&lt;p style="margin:0in 0in 10pt" class=MsoNormal&gt;&lt;font size=3 face=Calibri&gt; &lt;/font&gt;&lt;/p&gt;
&lt;p style="margin:0in 0in 10pt" class=MsoNormal&gt;&lt;font size=3&gt;&lt;font face=Calibri&gt;When working with roots objects, a common issue is that sometimes it is need to navigate to his child properties, but those values are not needed at all times, that’s why is not recommendable to load all values any time the root object is loaded.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin:0in 0in 10pt" class=MsoNormal&gt;&lt;font size=3&gt;&lt;font face=Calibri&gt;&lt;span class=apple-style-span&gt;&lt;span style="background:white;color:#333333"&gt;There are four main varieties of lazy load.&lt;/span&gt;&lt;/span&gt;&lt;span class=apple-converted-space&gt;&lt;span style="background:white;color:#333333"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class=apple-style-span&gt;&lt;span style="border-bottom:windowtext 1pt;border-left:windowtext 1pt;padding-bottom:0in;padding-left:0in;padding-right:0in;color:#333333;border-top:windowtext 1pt;border-right:windowtext 1pt;padding-top:0in"&gt;Lazy Initialization&lt;/span&gt;&lt;/span&gt;&lt;span class=apple-converted-space&gt;&lt;span style="background:white;color:#333333"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class=apple-style-span&gt;&lt;span style="background:white;color:#333333"&gt;uses a special marker value (usually null) to indicate a field isn't loaded. Every access to the field checks the field for the marker value and if unloaded, loads it.&lt;/span&gt;&lt;/span&gt;&lt;span class=apple-converted-space&gt;&lt;span style="background:white;color:#333333"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class=apple-style-span&gt;&lt;span style="border-bottom:windowtext 1pt;border-left:windowtext 1pt;padding-bottom:0in;padding-left:0in;padding-right:0in;color:#333333;border-top:windowtext 1pt;border-right:windowtext 1pt;padding-top:0in"&gt;Virtual Proxy&lt;/span&gt;&lt;/span&gt;&lt;span class=apple-converted-space&gt;&lt;span style="background:white;color:#333333"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class=apple-style-span&gt;&lt;span style="background:white;color:#333333"&gt;is an object with the same interface as the real object. The first time one of its methods are called it loads the real the object and then delegates.&lt;/span&gt;&lt;/span&gt;&lt;span class=apple-converted-space&gt;&lt;span style="background:white;color:#333333"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class=apple-style-span&gt;&lt;span style="border-bottom:windowtext 1pt;border-left:windowtext 1pt;padding-bottom:0in;padding-left:0in;padding-right:0in;color:#333333;border-top:windowtext 1pt;border-right:windowtext 1pt;padding-top:0in"&gt;Value Holder&lt;/span&gt;&lt;/span&gt;&lt;span class=apple-converted-space&gt;&lt;span style="background:white;color:#333333"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class=apple-style-span&gt;&lt;span style="background:white;color:#333333"&gt;is an object with a getValue method. Clients call getValue to get the real object, the first call triggers the load. A&lt;/span&gt;&lt;/span&gt;&lt;span class=apple-converted-space&gt;&lt;span style="background:white;color:#333333"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class=apple-style-span&gt;&lt;span style="border-bottom:windowtext 1pt;border-left:windowtext 1pt;padding-bottom:0in;padding-left:0in;padding-right:0in;color:#333333;border-top:windowtext 1pt;border-right:windowtext 1pt;padding-top:0in"&gt;ghost&lt;/span&gt;&lt;/span&gt;&lt;span class=apple-converted-space&gt;&lt;span style="background:white;color:#333333"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class=apple-style-span&gt;&lt;span style="background:white;color:#333333"&gt;is the real object without any data. The first time you call a method the ghost loads the full data into its fields.&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin:0in 0in 10pt" class=MsoNormal&gt;&lt;span class=apple-style-span&gt;&lt;span style="background:white;color:#333333"&gt;&lt;font size=3 face=Calibri&gt;When using Eager loading, the attempted situation is to get all the data from the sources, with a minimum amount of queries in the process. So the code can archive some level of performance by avoiding querying multiple times the same data.&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;
&lt;div&gt;&lt;b&gt;Published:&lt;/b&gt; 12/12/2011 2:28 PM&lt;/div&gt;
&lt;div&gt;&lt;b&gt;BlogTitleForUrl:&lt;/b&gt; design-patterns-for-data-persistence&lt;/div&gt;
&lt;div&gt;&lt;b&gt;Categories:&lt;/b&gt; .NET;Software;The Web&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/sieena/blog/~4/PmLrbTfke-A" height="1" width="1"/&gt;</description>
      <author>Brenda Valadez</author>
      <pubDate>Mon, 14 Nov 2011 20:29:27 GMT</pubDate>
      <guid isPermaLink="false">http://www.sieena.com/blog/Lists/Posts/ViewPost.aspx?ID=140</guid>
    <feedburner:origLink>http://www.sieena.com/blog/Lists/Posts/ViewPost.aspx?ID=140</feedburner:origLink></item>
    <item>
      <title>About Feedback &amp; Tunnels (SDLC)</title>
      <link>http://feedproxy.google.com/~r/sieena/blog/~3/GlZxvb7H83M/ViewPost.aspx</link>
      <description>&lt;div&gt;&lt;b&gt;Body:&lt;/b&gt; &lt;div class=ExternalClassCAFBAC33C69842E2B918FC532C5170F8&gt;&lt;p style="line-height:normal;margin:0in 0in 0pt" class=MsoNormal&gt;&lt;span class=MsoSubtleEmphasis&gt;&lt;em&gt;&lt;font color="#808080"&gt;&lt;font size=3&gt;&lt;font face=Calibri&gt;By Daniel Ramirez.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="line-height:normal;margin:0in 0in 0pt" class=MsoNormal&gt;&lt;span style=""&gt;&lt;font size=3 face=Calibri&gt; &lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="line-height:normal;margin:0in 0in 0pt" class=MsoNormal&gt;&lt;span style=""&gt;&lt;font size=3&gt;&lt;font face=Calibri&gt;An important thing through the Software Development Cycle is the feedback a developer gets during or after iteration. He/she gets all kinds of it, from internal things such as code, to all the way up to what’s shown to the end users. &lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="line-height:normal;margin:0in 0in 0pt" class=MsoNormal&gt;&lt;span style=""&gt;&lt;font size=3 face=Calibri&gt; &lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="line-height:normal;margin:0in 0in 0pt" class=MsoNormal&gt;&lt;font face=Calibri&gt;&lt;b style=""&gt;&lt;span style="font-size:12pt"&gt;Feedback&lt;/span&gt;&lt;/b&gt;&lt;b style=""&gt;&lt;span style=""&gt;&lt;font size=3&gt; is important&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="line-height:normal;margin:0in 0in 0pt" class=MsoNormal&gt;&lt;span style=""&gt;&lt;font size=3&gt;&lt;font face=Calibri&gt;In any kind of work, I believe we should always look for some kind of feedback. Feedback does not necessarily means you have done things the wrong way, it can help you see how other people see your work, and lets you know if they understood correctly the idea behind it.&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="line-height:normal;margin:0in 0in 0pt" class=MsoNormal&gt;&lt;span style=""&gt;&lt;font size=3 face=Calibri&gt; &lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="line-height:normal;margin:0in 0in 0pt" class=MsoNormal&gt;&lt;span style=""&gt;&lt;font size=3&gt;&lt;font face=Calibri&gt;Feedback lets you know if things can be improved, motivates you to continue your work. If you get an email saying &amp;quot;Amazing work!&amp;quot;, &amp;quot;Your strategy is going correct!&amp;quot;, or a simple &amp;quot;+1!&amp;quot; it certainly - correct me if I'm wrong - makes your day and makes you feel valuable. I'd like to believe you learn you did it correctly and will make it again like that, or even challenge you to improve it.&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="line-height:normal;margin:0in 0in 0pt" class=MsoNormal&gt;&lt;span style=""&gt;&lt;font size=3 face=Calibri&gt; &lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="line-height:normal;margin:0in 0in 0pt" class=MsoNormal&gt;&lt;span style=""&gt;&lt;font size=3&gt;&lt;font face=Calibri&gt;But how do we get feedback? We just ask. &amp;quot;How are we doing?&amp;quot;, &amp;quot;Is this how you visualized it?&amp;quot;. &lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="line-height:normal;margin:0in 0in 0pt" class=MsoNormal&gt;&lt;span style=""&gt;&lt;font size=3&gt;&lt;font face=Calibri&gt;If you've got doubts, ask. The ways to get feedback are endless. For instance we could do a survey, a poll on Facebook, or ask a question on Quora, or discussing it on Convore. &lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="line-height:normal;margin:0in 0in 0pt" class=MsoNormal&gt;&lt;span style=""&gt;&lt;font size=3 face=Calibri&gt; &lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="line-height:normal;margin:0in 0in 0pt" class=MsoNormal&gt;&lt;span style=""&gt;&lt;font size=3 face=Calibri&gt; &lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="line-height:normal;margin:0in 0in 0pt" class=MsoNormal&gt;&lt;b style=""&gt;&lt;span style="font-size:12pt"&gt;&lt;font face=Calibri&gt;Tunneling is simple&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style="line-height:normal;margin:0in 0in 0pt" class=MsoNormal&gt;&lt;span style=""&gt;&lt;font size=3&gt;&lt;font face=Calibri&gt;Now what about tunneling? &lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="line-height:normal;margin:0in 0in 0pt" class=MsoNormal&gt;&lt;span style=""&gt;&lt;font size=3 face=Calibri&gt; &lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="line-height:normal;margin:0in 0in 0pt" class=MsoNormal&gt;&lt;span style=""&gt;&lt;font size=3&gt;&lt;font face=Calibri&gt;At its core, tunneling is creating a channel of bidirectional communication between two endpoints, carrying a payload/data inside. For example I'd like to access a remote machine's port by accessing a my local machine port, let’s say I want to connect to MySQL 3306 port, but it has been blocked by the firewall. By using SSH, I could establish port forwarding and then connect to my local port. &lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="line-height:normal;margin:0in 0in 0pt" class=MsoNormal&gt;&lt;span style=""&gt;&lt;font size=3 face=Calibri&gt; &lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="line-height:normal;margin:0in 0in 0pt" class=MsoNormal&gt;&lt;span style=""&gt;&lt;font size=3&gt;&lt;font face=Calibri&gt;It is basically a simple command, ssh. It is available via the openssl package in unix boxes Or downloading Bash for windows. Don't know if there is any kind of native port redirection in PowerShell though.&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="line-height:normal;margin:0in 0in 0pt" class=MsoNormal&gt;&lt;span style=""&gt;&lt;font size=3 face=Calibri&gt; &lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="line-height:normal;margin:0in 0in 0pt" class=MsoNormal&gt;&lt;span style=""&gt;&lt;font size=3&gt;&lt;font face=Calibri&gt;Anyway, to link a local port to a remote port on a server it is done by the following command:&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="line-height:normal;margin:0in 0in 0pt" class=MsoNormal&gt;&lt;span style=""&gt;&lt;font size=3 face=Calibri&gt; &lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="text-align:center;line-height:normal;margin:0in 0in 0pt" class=MsoNormal align=center&gt;&lt;span style=""&gt;&lt;font size=3&gt;&lt;font face=Calibri&gt;ssh -f -L {localport}:{remotehost}:{remoteport}&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="line-height:normal;margin:0in 0in 0pt" class=MsoNormal&gt;&lt;span style=""&gt;&lt;font size=3 face=Calibri&gt; &lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="line-height:normal;margin:0in 0in 0pt" class=MsoNormal&gt;&lt;span style=""&gt;&lt;font size=3 face=Calibri&gt; &lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="line-height:normal;margin:0in 0in 0pt" class=MsoNormal&gt;&lt;span style=""&gt;&lt;font size=3 face=Calibri&gt; &lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="line-height:normal;margin:0in 0in 0pt" class=MsoNormal&gt;&lt;b style=""&gt;&lt;span style="font-size:12pt"&gt;&lt;font face=Calibri&gt;Exposing a port is even simpler&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style="line-height:normal;margin:0in 0in 0pt" class=MsoNormal&gt;&lt;span style=""&gt;&lt;font size=3 face=Calibri&gt;What do Tunneling and Feedback have in common? Well, a few months back I discovered &lt;/font&gt;&lt;/span&gt;&lt;a href="http://showoff.io/"&gt;&lt;b style=""&gt;&lt;span style=""&gt;&lt;font color="#0000ff" size=3 face=Calibri&gt;showoff.io&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/a&gt;&lt;span style=""&gt;&lt;font size=3 face=Calibri&gt;, and then another Open source service called &lt;/font&gt;&lt;/span&gt;&lt;a href="http://localtunnel.com/"&gt;&lt;b style=""&gt;&lt;span style=""&gt;&lt;font color="#0000ff" size=3 face=Calibri&gt;localtunnel&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/a&gt;&lt;span style=""&gt;&lt;font size=3 face=Calibri&gt;, developed by &lt;/font&gt;&lt;/span&gt;&lt;a href="http://twilio.com/"&gt;&lt;span style=""&gt;&lt;font color="#0000ff" size=3 face=Calibri&gt;Twilio&lt;/font&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style=""&gt;&lt;font size=3&gt;&lt;font face=Calibri&gt;. They both make it easy to share our web development progress to the world, and get feedback.&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="line-height:normal;margin:0in 0in 0pt" class=MsoNormal&gt;&lt;span style=""&gt;&lt;font size=3 face=Calibri&gt; &lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="line-height:normal;margin:0in 0in 0pt" class=MsoNormal&gt;&lt;span style=""&gt;&lt;font size=3&gt;&lt;font face=Calibri&gt;If we would like to show a friend, or a client our progress on development it should be easy.&lt;span style=""&gt;  &lt;/span&gt;There are some times where a proper dedicated dev box is a better solution, but for instant feedback, seeking confirmation on certain things, this could help. There is no need to go through all the dev build hassle just to show a change.&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="line-height:normal;margin:0in 0in 0pt" class=MsoNormal&gt;&lt;span style=""&gt;&lt;font size=3 face=Calibri&gt; &lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="line-height:normal;margin:0in 0in 0pt" class=MsoNormal&gt;&lt;span style=""&gt;&lt;font size=3&gt;&lt;font face=Calibri&gt;In both services, it is just a simple as a:&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="line-height:normal;margin:0in 0in 0pt" class=MsoNormal&gt;&lt;span style=""&gt;&lt;font size=3 face=Calibri&gt; &lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="line-height:normal;margin:0in 0in 0pt" class=MsoNormal&gt;&lt;span style=""&gt;&lt;font size=3&gt;&lt;font face=Calibri&gt;&lt;span style=""&gt;  &lt;/span&gt;$ gem install localtunnel -- Just once to install it.&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="line-height:normal;margin:0in 0in 0pt" class=MsoNormal&gt;&lt;span style=""&gt;&lt;font size=3&gt;&lt;font face=Calibri&gt;&lt;span style=""&gt;  &lt;/span&gt;$ localtunnel 8080&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="line-height:normal;margin:0in 0in 0pt" class=MsoNormal&gt;&lt;span style=""&gt;&lt;font size=3 face=Calibri&gt; &lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="line-height:normal;margin:0in 0in 0pt" class=MsoNormal&gt;&lt;span style=""&gt;&lt;font size=3&gt;&lt;font face=Calibri&gt;This will generate a random subdomain of the service which is publicly accessible to the people you share it with. &lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="line-height:normal;margin:0in 0in 0pt" class=MsoNormal&gt;&lt;span style=""&gt;&lt;font size=3 face=Calibri&gt; &lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="line-height:normal;margin:0in 0in 0pt" class=MsoNormal&gt;&lt;span style=""&gt;&lt;font size=3 face=Calibri&gt;The only drawback of this is this requires Ruby; however a few days ago I ported it to c# and created a console and a UI file. So feel free to &lt;/font&gt;&lt;/span&gt;&lt;a href="http://github.com/danielrmz/localtunnel.NET"&gt;&lt;span style=""&gt;&lt;font color="#0000ff" size=3 face=Calibri&gt;try it out&lt;/font&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style=""&gt;&lt;font size=3&gt;&lt;font face=Calibri&gt;. &lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="line-height:normal;margin:0in 0in 0pt" class=MsoNormal&gt;&lt;span style=""&gt;&lt;font size=3 face=Calibri&gt; &lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="line-height:normal;margin:0in 0in 0pt" class=MsoNormal&gt;&lt;span style=""&gt;&lt;font size=3 face=Calibri&gt; &lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="line-height:normal;margin:0in 0in 0pt" class=MsoNormal&gt;&lt;b style=""&gt;&lt;span style="font-size:12pt"&gt;&lt;font face=Calibri&gt;Under the hood&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style="line-height:normal;margin:0in 0in 0pt" class=MsoNormal&gt;&lt;span style=""&gt;&lt;font size=3&gt;&lt;font face=Calibri&gt;You could just read the code, but the client basically does this few things:&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="line-height:normal;margin:0in 0in 0pt" class=MsoNormal&gt;&lt;span style=""&gt;&lt;font size=3 face=Calibri&gt; &lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="line-height:normal;text-indent:-0.25in;margin:0in 0in 0pt 0.5in" class=MsoListParagraphCxSpFirst&gt;&lt;span style=""&gt;&lt;span style=""&gt;&lt;font size=3 face=Calibri&gt;1.&lt;/font&gt;&lt;span style="font:7pt 'Times New Roman'"&gt;       &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=""&gt;&lt;font size=3&gt;&lt;font face=Calibri&gt;The service listens for the 80 port,&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="line-height:normal;margin:0in 0in 0pt 0.5in" class=MsoListParagraphCxSpMiddle&gt;&lt;span style=""&gt;&lt;font size=3 face=Calibri&gt; &lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="line-height:normal;text-indent:-0.25in;margin:0in 0in 0pt 0.5in" class=MsoListParagraphCxSpMiddle&gt;&lt;span style=""&gt;&lt;span style=""&gt;&lt;font size=3 face=Calibri&gt;2.&lt;/font&gt;&lt;span style="font:7pt 'Times New Roman'"&gt;       &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=""&gt;&lt;font size=3&gt;&lt;font face=Calibri&gt;A request for a tunnel is made&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="line-height:normal;text-indent:-0.25in;margin:0in 0in 0pt 1in" class=MsoListParagraphCxSpMiddle&gt;&lt;span style=""&gt;&lt;span style=""&gt;&lt;font size=3 face=Calibri&gt;a.&lt;/font&gt;&lt;span style="font:7pt 'Times New Roman'"&gt;       &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=""&gt;&lt;font size=3&gt;&lt;font face=Calibri&gt;The ssh public key for authentication is registered on the machine&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="line-height:normal;text-indent:-0.25in;margin:0in 0in 0pt 1in" class=MsoListParagraphCxSpMiddle&gt;&lt;span style=""&gt;&lt;span style=""&gt;&lt;font size=3 face=Calibri&gt;b.&lt;/font&gt;&lt;span style="font:7pt 'Times New Roman'"&gt;      &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=""&gt;&lt;font size=3&gt;&lt;font face=Calibri&gt;A subdomain is randomly generated&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="line-height:normal;text-indent:-0.25in;margin:0in 0in 0pt 1in" class=MsoListParagraphCxSpMiddle&gt;&lt;span style=""&gt;&lt;span style=""&gt;&lt;font size=3 face=Calibri&gt;c.&lt;/font&gt;&lt;span style="font:7pt 'Times New Roman'"&gt;       &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=""&gt;&lt;font size=3&gt;&lt;font face=Calibri&gt;A server port is opened, which will be the one connected to the developer's machine.&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="line-height:normal;margin:0in 0in 0pt 1in" class=MsoListParagraphCxSpMiddle&gt;&lt;span style=""&gt;&lt;font size=3 face=Calibri&gt; &lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="line-height:normal;text-indent:-0.25in;margin:0in 0in 0pt 0.5in" class=MsoListParagraphCxSpMiddle&gt;&lt;span style=""&gt;&lt;span style=""&gt;&lt;font size=3 face=Calibri&gt;3.&lt;/font&gt;&lt;span style="font:7pt 'Times New Roman'"&gt;       &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=""&gt;&lt;font size=3&gt;&lt;font face=Calibri&gt;Localtunnel's client now creates a ssh tunnel with forwarding from the developer's localport to the open port&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="line-height:normal;margin:0in 0in 0pt 0.5in" class=MsoListParagraphCxSpMiddle&gt;&lt;span style=""&gt;&lt;font size=3 face=Calibri&gt; &lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="line-height:normal;text-indent:-0.25in;margin:0in 0in 0pt 0.5in" class=MsoListParagraphCxSpLast&gt;&lt;span style=""&gt;&lt;span style=""&gt;&lt;font size=3 face=Calibri&gt;4.&lt;/font&gt;&lt;span style="font:7pt 'Times New Roman'"&gt;       &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=""&gt;&lt;font size=3&gt;&lt;font face=Calibri&gt;Now when a request is made to the subdomain, the service will catch it, identify the tunnel it has associated and redirect the packets.&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="line-height:normal;margin:0in 0in 0pt" class=MsoNormal&gt;&lt;span style=""&gt;&lt;font size=3 face=Calibri&gt; &lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="line-height:normal;margin:0in 0in 0pt" class=MsoNormal&gt;&lt;span style=""&gt;&lt;font size=3 face=Calibri&gt; &lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="line-height:normal;margin:0in 0in 0pt" class=MsoNormal&gt;&lt;span style=""&gt;&lt;font size=3 face=Calibri&gt;The server is also hosted on the &lt;/font&gt;&lt;/span&gt;&lt;a href="https://github.com/progrium/localtunnel"&gt;&lt;span style=""&gt;&lt;font color="#0000ff" size=3 face=Calibri&gt;localtunnel’s repo&lt;/font&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style=""&gt;&lt;font size=3&gt;&lt;font face=Calibri&gt;, if you would like to set up your own. It requires Python + Twisted lib. &lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;
&lt;div&gt;&lt;b&gt;Published:&lt;/b&gt; 12/8/2011 2:22 PM&lt;/div&gt;
&lt;div&gt;&lt;b&gt;BlogTitleForUrl:&lt;/b&gt; about-feedback-amp-tunnels-sdlc&lt;/div&gt;
&lt;div&gt;&lt;b&gt;Categories:&lt;/b&gt; Best Practices;.NET;Software;The Web&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/sieena/blog/~4/GlZxvb7H83M" height="1" width="1"/&gt;</description>
      <author>Brenda Valadez</author>
      <pubDate>Mon, 14 Nov 2011 20:25:09 GMT</pubDate>
      <guid isPermaLink="false">http://www.sieena.com/blog/Lists/Posts/ViewPost.aspx?ID=139</guid>
    <feedburner:origLink>http://www.sieena.com/blog/Lists/Posts/ViewPost.aspx?ID=139</feedburner:origLink></item>
    <item>
      <title>How to set Favicon to the SharePoint 2010 site?</title>
      <link>http://feedproxy.google.com/~r/sieena/blog/~3/Qzg2vyg-sEE/ViewPost.aspx</link>
      <description>&lt;div&gt;&lt;b&gt;Body:&lt;/b&gt; &lt;div class=ExternalClass64C48418F7F2491D8D7C61F6DF7F3846&gt;&lt;div&gt;&lt;img alt="" src="http://s3.amazonaws.com/twitpic/photos/full/447224742.jpg?AWSAccessKeyId=AKIAJF3XCCKACR3QDMOA&amp;amp;Expires=1321302901&amp;amp;Signature=HmoUnh1eElLmYzoaEZvJPTl8Z7I%3D"&gt;&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;
&lt;p style="margin:0in 0in 10pt" class=MsoNormal&gt;&lt;span class=MsoSubtleEmphasis&gt;&lt;em&gt;&lt;font color="#808080"&gt;&lt;font size=3&gt;&lt;font face=Calibri&gt;By Rosario Almaguer.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0in 0in 10pt" class=MsoNormal&gt;&lt;font size=3&gt;&lt;font face=Calibri&gt;SharePoint 2010 comes with a orange Favicon and it's present in SharePoint Root Folder\Template\Images [eg. C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\TEMPLATE\IMAGES\]. Open this folder and search for favicon.ico and rename the file to FaviconBackup.ico. Now copy your favicon to this folder and make sure it's named as &amp;quot;favicon.ico&amp;quot;, you can change the name of you favicon [eg. MyFavicon.ico]. Now restart IIS(open Command Prompt -&amp;gt; IISReset), clear browser cache/temproary internet files. Close the browser and reopen then browse the SharePoint site.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin:0in 0in 10pt" class=MsoNormal&gt;&lt;font size=3&gt;&lt;font face=Calibri&gt;In SharePoint Designer 2010 select Master Pages, then select the master page that will show the new favicon. Now click “Edit File” link to add the favicon code. If it asks for check out, click yes and continue.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin:0in 0in 10pt" class=MsoNormal&gt;&lt;font size=3 face=Calibri&gt;Find &lt;/font&gt;&lt;span style="line-height:115%;font-family:Consolas;color:blue;font-size:10pt"&gt;&amp;lt;&lt;/span&gt;&lt;span style="line-height:115%;font-family:Consolas;color:maroon;font-size:10pt"&gt;SharePoint&lt;/span&gt;&lt;span style="line-height:115%;font-family:Consolas;color:blue;font-size:10pt"&gt;:&lt;/span&gt;&lt;span style="line-height:115%;font-family:Consolas;color:maroon;font-size:10pt"&gt;SPShortcutIcon&lt;/span&gt;&lt;span style="line-height:115%;font-family:Consolas;font-size:10pt"&gt; &lt;span style="color:red"&gt;ID&lt;/span&gt;&lt;span style="color:blue"&gt;=&amp;quot;SPShortcutIcon1&amp;quot;&lt;/span&gt; &lt;span style="color:red"&gt;runat&lt;/span&gt;&lt;span style="color:blue"&gt;=&amp;quot;server&amp;quot;&lt;/span&gt; &lt;span style="color:red"&gt;IconUrl&lt;/span&gt;&lt;span style="color:blue"&gt;=&amp;quot;/_layouts/images/favicon.ico&amp;quot;/&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;font size=3&gt;&lt;font face=Calibri&gt; and change the name of the favicon. Save and close (If you have checked out then you need to check in and site collection administrator has to approve it via Site Settings -&amp;gt; Galleries -&amp;gt; Master pages and page layouts -&amp;gt; Check in and Approve). Now reset IIS/clear browser cache and check.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin:0in 0in 10pt" class=MsoNormal&gt;&lt;br&gt;&lt;font size=3&gt;&lt;font face=Calibri&gt;If mulitple sites are hosted in same farm and need to set different favicons for different sites then we have to update Master Page Code. Open the site with SharePoint Designer 2010 and select Master pages -&amp;gt; v4.master. The default.master is still present in SharePoint 2010 for backward compatibility and visual upgrade. But SharePoint 2010 uses v4.master only. Now click &amp;quot;Edit File&amp;quot; link to add the favicon code. If it asks for check out, click yes and continue. &lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin:0in 0in 10pt" class=MsoNormal&gt;&lt;font size=3 face=Calibri&gt;Find &lt;/font&gt;&lt;span style="line-height:115%;font-family:Consolas;color:blue;font-size:10pt"&gt;&amp;lt;&lt;/span&gt;&lt;span style="line-height:115%;font-family:Consolas;color:maroon;font-size:10pt"&gt;SharePoint&lt;/span&gt;&lt;span style="line-height:115%;font-family:Consolas;color:blue;font-size:10pt"&gt;:&lt;/span&gt;&lt;span style="line-height:115%;font-family:Consolas;color:maroon;font-size:10pt"&gt;SPShortcutIcon&lt;/span&gt;&lt;span style="line-height:115%;font-family:Consolas;font-size:10pt"&gt; &lt;span style="color:red"&gt;ID&lt;/span&gt;&lt;span style="color:blue"&gt;=&amp;quot;SPShortcutIcon1&amp;quot;&lt;/span&gt; &lt;span style="color:red"&gt;runat&lt;/span&gt;&lt;span style="color:blue"&gt;=&amp;quot;server&amp;quot;&lt;/span&gt; &lt;span style="color:red"&gt;IconUrl&lt;/span&gt;&lt;span style="color:blue"&gt;=&amp;quot;/_layouts/images/favicon.ico&amp;quot;/&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;font size=3&gt;&lt;font face=Calibri&gt; and change the path of favicon. Save and close (If you have checked out then you need to check in and site collection administrator has to approve it via Site Settings -&amp;gt; Galleries -&amp;gt; Master pages and page layouts -&amp;gt; Check in and Approve). Now reset IIS/clear browser cache and check.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;
&lt;div&gt;&lt;b&gt;Published:&lt;/b&gt; 12/5/2011 2:13 PM&lt;/div&gt;
&lt;div&gt;&lt;b&gt;BlogTitleForUrl:&lt;/b&gt; how-to-set-favicon-to-the-sharepoint-2010-site&lt;/div&gt;
&lt;div&gt;&lt;b&gt;Categories:&lt;/b&gt; SharePoint 2010;SharePoint;The Web&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/sieena/blog/~4/Qzg2vyg-sEE" height="1" width="1"/&gt;</description>
      <author>Brenda Valadez</author>
      <pubDate>Mon, 14 Nov 2011 20:16:03 GMT</pubDate>
      <guid isPermaLink="false">http://www.sieena.com/blog/Lists/Posts/ViewPost.aspx?ID=138</guid>
    <feedburner:origLink>http://www.sieena.com/blog/Lists/Posts/ViewPost.aspx?ID=138</feedburner:origLink></item>
    <item>
      <title>Why does my VS2010 project seem to forget assembly references at build time?</title>
      <link>http://feedproxy.google.com/~r/sieena/blog/~3/BgXFZvVMjTM/ViewPost.aspx</link>
      <description>&lt;div&gt;&lt;b&gt;Body:&lt;/b&gt; &lt;div class=ExternalClassD48D6585B8E945CBBE61305CE4512971&gt;&lt;p style="margin:0in 0in 10pt" class=MsoNormal&gt;&lt;span class=MsoSubtleEmphasis&gt;&lt;em&gt;&lt;font color="#808080"&gt;&lt;font size=3&gt;&lt;font face=Calibri&gt;By: Alejandro Villarreal&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0in 0in 10pt" class=MsoNormal&gt;&lt;font size=3&gt;&lt;font face=Calibri&gt;I recently experienced one of the most puzzling issues I’ve dealt with: after I finished coding my project in Visual Studio 2010 I tried to build it but it failed, complaining of namespaces that didn’t exist (which means a bunch of types that weren’t declared and thus code that the compiler didn’t understand). This didn’t make sense because the assembly that contained those namespaces was still in the “References” part of my project, and I had used IntelliSense with the types it contained. So I knew for a fact that Visual Studio &lt;b style=""&gt;did&lt;/b&gt; know that the assembly was there, and was able to analyze it and use it.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin:0in 0in 10pt" class=MsoNormal&gt;&lt;font size=3&gt;&lt;font face=Calibri&gt;But then why couldn’t I build my project? I tried removing and re-adding the reference, which fixed the “syntax errors” detected by the compiler when it lost memory of the namespaces in the external assembly, but trying to build it again caused VS to forget about them one more time.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin:0in 0in 10pt" class=MsoNormal&gt;&lt;font size=3&gt;&lt;font face=Calibri&gt;So I turned to the Internet for a solution to this issue, and I quickly found the answer: my project was set to target the &lt;b style=""&gt;.NET Framework 4 Client Profile&lt;/b&gt;. First of all, what’s that? Well, MSDN says: “The .NET Framework 4 Client Profile is a subset of the .NET Framework 4 that is optimized for client applications”. Furthermore, a note in the same article states&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin:0in 0in 10pt 0.5in" class=MsoNormal&gt;&lt;i style=""&gt;&lt;font size=3&gt;&lt;font face=Calibri&gt;If you are targeting the .NET Framework 4 Client Profile, you cannot reference an assembly that is not in the .NET Framework 4 Client Profile. Instead you must target the .NET Framework 4.&lt;/font&gt;&lt;/font&gt;&lt;/i&gt;&lt;/p&gt;
&lt;p style="margin:0in 0in 10pt" class=MsoNormal&gt;&lt;font size=3&gt;&lt;font face=Calibri&gt;That explains the whole thing, and the solution is indeed as simple as changing that property of the project from one value to the other, which can be done as follows:&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="text-indent:-0.25in;margin:0in 0in 10pt 0.5in" class=MsoListParagraph&gt;&lt;span style=""&gt;&lt;span style=""&gt;&lt;font size=3 face=Calibri&gt;1.&lt;/font&gt;&lt;span style="font:7pt 'Times New Roman'"&gt;       &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font size=3&gt;&lt;font face=Calibri&gt;Right click on your project in Visual Studio, and click on Properties:&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;div&gt;&lt;img alt="" src="http://s3.amazonaws.com/twitpic/photos/full/447219512.jpg?AWSAccessKeyId=AKIAJF3XCCKACR3QDMOA&amp;amp;Expires=1321302097&amp;amp;Signature=t0vTjgEr7drIEwoGmY6VNa5GovA%3D"&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=""&gt;&lt;span style=""&gt;&lt;font size=3 face=Calibri&gt;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt; &lt;/div&gt;
&lt;div&gt;&lt;span style=""&gt;&lt;span style=""&gt;&lt;font size=3 face=Calibri&gt;2.&lt;/font&gt;&lt;span style="font:7pt 'Times New Roman'"&gt;       &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font size=3&gt;&lt;font face=Calibri&gt;In the “Application” tab, change the value of “Target Framework” from &lt;b style=""&gt;.NET Framework 4 Client Profile&lt;/b&gt; to &lt;b style=""&gt;.NET Framework 4&lt;/b&gt;.&lt;/font&gt;&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;&lt;font size=3 face=Calibri&gt;&lt;/font&gt; &lt;/div&gt;
&lt;div&gt;&lt;img alt="" src="http://s1-02.twitpicproxy.com/photos/large/447220152.jpg"&gt;&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;
&lt;p style="margin:0in 0in 10pt" class=MsoNormal&gt;&lt;font size=3&gt;&lt;font face=Calibri&gt;I’m not sure if the Client Profile should be default for new projects, or for what types of projects is it the default, but at least the problems that it might cause are easily identifiable, and the solution for them is simple.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;
&lt;div&gt;&lt;b&gt;Published:&lt;/b&gt; 12/1/2011 2:01 PM&lt;/div&gt;
&lt;div&gt;&lt;b&gt;BlogTitleForUrl:&lt;/b&gt; why-does-my-vs2010-project-seem-to-forget-assembly-references-at-build-time&lt;/div&gt;
&lt;div&gt;&lt;b&gt;Categories:&lt;/b&gt; .NET;Software&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/sieena/blog/~4/BgXFZvVMjTM" height="1" width="1"/&gt;</description>
      <author>Brenda Valadez</author>
      <pubDate>Mon, 14 Nov 2011 20:03:52 GMT</pubDate>
      <guid isPermaLink="false">http://www.sieena.com/blog/Lists/Posts/ViewPost.aspx?ID=137</guid>
    <feedburner:origLink>http://www.sieena.com/blog/Lists/Posts/ViewPost.aspx?ID=137</feedburner:origLink></item>
    <item>
      <title>How to use Fiddler as an Ad Blocker</title>
      <link>http://feedproxy.google.com/~r/sieena/blog/~3/LhdRNBawl_I/ViewPost.aspx</link>
      <description>&lt;div&gt;&lt;b&gt;Body:&lt;/b&gt; &lt;div class=ExternalClass261EF5E38413449BAC7CE96E84E19C1B&gt;
&lt;p style="margin:0in 0in 10pt" class=MsoNormal&gt;&lt;span class=MsoSubtleEmphasis&gt;&lt;em&gt;&lt;font color="#808080"&gt;&lt;font size=3&gt;&lt;font face=Calibri&gt;By Fernando Mendoza.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0in 0in 10pt" class=MsoNormal&gt;&lt;font size=3&gt;&lt;font face=Calibri&gt;I’ve been using Fiddler a lot these days. To test how requests and responses go to and come back from the server, being HTML responses, SOAP responses or custom responses from web services.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin:0in 0in 10pt" class=MsoNormal&gt;&lt;font size=3&gt;&lt;font face=Calibri&gt;One website I like a lot is StackOverflow; I use it to find answers when I’m stuck with a programming or configuration issue. I like this site, and even though they don’t have too many ads it still bothers me a bit. So one day I was thinking if it was possible to use Fiddler to modify the HTTP response from the StackOverflow server before it’s rendered by the browser.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin:0in 0in 10pt" class=MsoNormal&gt;&lt;font size=3&gt;&lt;font face=Calibri&gt;Turns out it’s possible, Fiddler has something called Rules that allows you do that. Let’s see how to do that step by step.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;div&gt;&lt;span style="line-height:115%;font-family:'Calibri','sans-serif';font-size:11pt"&gt;The following is a sample page from the site before configuring Fiddler with those changes we want it to apply to the HTML response:&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="line-height:115%;font-family:'Calibri','sans-serif';font-size:11pt"&gt;&lt;/span&gt; &lt;/div&gt;
&lt;div&gt;&lt;span style="line-height:115%;font-family:'Calibri','sans-serif';font-size:11pt"&gt;&lt;/span&gt; &lt;/div&gt;
&lt;div&gt;&lt;span style="line-height:115%;font-family:'Calibri','sans-serif';font-size:11pt"&gt;&lt;img alt="" src="http://s1-05.twitpicproxy.com/photos/large/447182857.jpg"&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="line-height:115%;font-family:'Calibri','sans-serif';font-size:11pt"&gt;&lt;/span&gt; &lt;/div&gt;
&lt;div&gt;&lt;span style="line-height:115%;font-family:'Calibri','sans-serif';font-size:11pt"&gt;
&lt;p style="margin:0in 0in 10pt" class=MsoNormal&gt;Then we identify those areas we don’t want to be displayed by inspecting the rendered HTML. In my case I use Firebug to help me with this:&lt;/p&gt;
&lt;p style="margin:0in 0in 10pt" class=MsoNormal&gt; &lt;/p&gt;
&lt;p style="margin:0in 0in 10pt" class=MsoNormal&gt;&lt;img alt="" src="http://s1-05.twitpicproxy.com/photos/large/447183565.jpg"&gt;&lt;/p&gt;
&lt;p style="margin:0in 0in 10pt" class=MsoNormal&gt;&lt;img alt="" src="http://s1-01.twitpicproxy.com/photos/large/447183660.jpg"&gt;&lt;/p&gt;
&lt;p style="margin:0in 0in 10pt" class=MsoNormal&gt;Now we start Fiddler and go to the &lt;i&gt;Rules&lt;/i&gt; menu and select the &lt;i&gt;Customize Rules&lt;/i&gt; option (Ctrl + R).&lt;/p&gt;
&lt;p style="margin:0in 0in 10pt" class=MsoNormal&gt;&lt;img alt="" src="http://s1-03.twitpicproxy.com/photos/large/447184513.jpg"&gt;&lt;/p&gt;
&lt;p style="margin:0in 0in 10pt" class=MsoNormal&gt;The &lt;i&gt;CustomRules.js&lt;/i&gt; file will open (typically in Notepad) and we can start editing it. If we want to use another text editor we can go to the C:\Users\[USER]\Documents\Fiddler2\Scripts folder and open it from there.&lt;/p&gt;
&lt;p style="margin:0in 0in 10pt" class=MsoNormal&gt;&lt;img alt="" src="http://s1-05.twitpicproxy.com/photos/large/447193291.jpg"&gt;&lt;/p&gt;
&lt;p style="margin:0in 0in 10pt" class=MsoNormal&gt;Once opened, we search for the &lt;i&gt;OnBeforeResponse&lt;/i&gt; function and we make our changes there by using the &lt;i&gt;utilReplaceInResponse()&lt;/i&gt; method. Following are the replaces necessary to the HTML response so that the browser doesn’t show the ads and other elements we don’t want to be displayed.&lt;/p&gt;
&lt;p style="margin:0in 0in 10pt" class=MsoNormal&gt;&lt;img alt="" src="http://s1-01.twitpicproxy.com/photos/large/447193591.jpg"&gt;&lt;/p&gt;
&lt;p style="margin:0in 0in 10pt" class=MsoNormal&gt;Highlighted code:&lt;/p&gt;
&lt;p style="margin:0in 0in 10pt;background:#dbe5f1" class=MsoNormal&gt;static function OnBeforeResponse(oSession: Session) {&lt;/p&gt;
&lt;p style="margin:0in 0in 10pt;background:#dbe5f1" class=MsoNormal&gt;...&lt;/p&gt;
&lt;p style="margin:0in 0in 10pt;background:#dbe5f1" class=MsoNormal&gt;if (oSession.HostnameIs(&amp;quot;stackoverflow.com&amp;quot;) &amp;amp;&amp;amp; oSession.oResponse.headers.ExistsAndContains(&amp;quot;Content-Type&amp;quot;,&amp;quot;text/html&amp;quot;)){&lt;/p&gt;
&lt;p style="margin:0in 0in 10pt;background:#dbe5f1" class=MsoNormal&gt;oSession.utilDecodeResponse();&lt;/p&gt;
&lt;p style="margin:0in 0in 10pt;background:#dbe5f1" class=MsoNormal&gt;oSession.utilReplaceInResponse('&amp;lt;div class=&amp;quot;nav askquestion&amp;quot;&amp;gt;','&amp;lt;div class=&amp;quot;nav askquestion&amp;quot; style=&amp;quot;display: none;&amp;quot;&amp;gt;');&lt;/p&gt;
&lt;p style="margin:0in 0in 10pt;background:#dbe5f1" class=MsoNormal&gt;oSession.utilReplaceInResponse('&amp;lt;div class=&amp;quot;everyonelovesstackoverflow&amp;quot;&amp;gt;','&amp;lt;div class=&amp;quot;everyonelovesstackoverflow&amp;quot; style=&amp;quot;display: none;&amp;quot;&amp;gt;');&lt;/p&gt;
&lt;p style="margin:0in 0in 10pt;background:#dbe5f1" class=MsoNormal&gt;oSession.utilReplaceInResponse('&amp;lt;div id=&amp;quot;footer&amp;quot;&amp;gt;','&amp;lt;div id=&amp;quot;footer&amp;quot; style=&amp;quot;display: none;&amp;quot;&amp;gt;');&lt;/p&gt;
&lt;p style="margin:0in 0in 10pt;background:#dbe5f1" class=MsoNormal&gt;oSession.utilReplaceInResponse('&amp;lt;form id=&amp;quot;post-form&amp;quot;', '&amp;lt;form id=&amp;quot;post-form&amp;quot; style=&amp;quot;display: none;&amp;quot;');&lt;/p&gt;
&lt;p style="margin:0in 0in 10pt;background:#dbe5f1" class=MsoNormal&gt;oSession.utilReplaceInResponse('&amp;lt;div id=&amp;quot;sidebar&amp;quot;&amp;gt;', '&amp;lt;div id=&amp;quot;sidebar&amp;quot; style=&amp;quot;display: none;&amp;quot;&amp;gt;');&lt;span&gt;          &lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0in 0in 10pt;background:#dbe5f1" class=MsoNormal&gt;}&lt;/p&gt;
&lt;p style="margin:0in 0in 10pt;background:#dbe5f1" class=MsoNormal&gt;}&lt;/p&gt;
&lt;p style="margin:0in 0in 10pt" class=MsoNormal&gt;Once this is done, we save the file and refresh the page. The elements we don’t want to be displayed will be hidden thanks to the HTML replaces in the rules file.&lt;/p&gt;
&lt;p style="margin:0in 0in 10pt" class=MsoNormal&gt;Following is the final result:&lt;/p&gt;
&lt;p style="margin:0in 0in 10pt" class=MsoNormal&gt;&lt;img alt="" src="http://s1-01.twitpicproxy.com/photos/large/447193857.jpg"&gt;&lt;/p&gt;
&lt;p style="margin:0in 0in 10pt" class=MsoNormal&gt; &lt;/p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;
&lt;div&gt;&lt;b&gt;Published:&lt;/b&gt; 11/28/2011 12:58 PM&lt;/div&gt;
&lt;div&gt;&lt;b&gt;BlogTitleForUrl:&lt;/b&gt; how-to-use-fiddler-as-an-ad-blocker&lt;/div&gt;
&lt;div&gt;&lt;b&gt;Categories:&lt;/b&gt; HTML;.NET&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/sieena/blog/~4/LhdRNBawl_I" height="1" width="1"/&gt;</description>
      <author>Brenda Valadez</author>
      <pubDate>Mon, 14 Nov 2011 18:55:03 GMT</pubDate>
      <guid isPermaLink="false">http://www.sieena.com/blog/Lists/Posts/ViewPost.aspx?ID=136</guid>
    <feedburner:origLink>http://www.sieena.com/blog/Lists/Posts/ViewPost.aspx?ID=136</feedburner:origLink></item>
    <item>
      <title>Beware of RequestUri when exposing WCF REST services through HTTPS</title>
      <link>http://feedproxy.google.com/~r/sieena/blog/~3/ITr00zxe2Bc/ViewPost.aspx</link>
      <description>&lt;div&gt;&lt;b&gt;Body:&lt;/b&gt; &lt;div class=ExternalClass20CB86212E4645FEA70AD56D9C2BC076&gt;
&lt;p style="line-height:normal;margin:0in 0in 0pt;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt" class=MsoNormal&gt;&lt;span class=MsoSubtleEmphasis&gt;&lt;em&gt;&lt;font color="#808080"&gt;&lt;font size=3&gt;&lt;font face=Calibri&gt;By: Alejandro Villarreal&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="line-height:normal;margin:0in 0in 0pt;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt" class=MsoNormal&gt;&lt;font size=3 face=Calibri&gt;&lt;/font&gt; &lt;/p&gt;
&lt;p style="line-height:normal;margin:0in 0in 0pt;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt" class=MsoNormal&gt;&lt;font size=3&gt;&lt;font face=Calibri&gt;We recently implemented a WCF REST service which authenticates the caller before executing any of the operations it exposes. It also has help page (so users can see the supported operations and the expected inputs) which we want to expose to any user, regardless of authentication. In principle this is very easy: we just needed to identify requests to the “help” section of our service (http://myServiceUrl/help) and allow them to go through without further validation.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="line-height:normal;margin:0in 0in 0pt;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt" class=MsoNormal&gt;&lt;font size=3 face=Calibri&gt;&lt;/font&gt; &lt;/p&gt;
&lt;p style="line-height:normal;margin:0in 0in 0pt;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt" class=MsoNormal&gt;&lt;font size=3&gt;&lt;font face=Calibri&gt;We have a method that returns “true” for requests that should go through, and “false” for those that shouldn’t, so originally our code to solve the problem looked like this:&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="line-height:normal;margin:0in 0in 0pt;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt" class=MsoNormal&gt;&lt;span style="font-family:Consolas;color:blue;font-size:10pt"&gt;&lt;/span&gt; &lt;/p&gt;
&lt;div style="border-bottom:windowtext 1pt solid;border-left:windowtext 1pt solid;padding-bottom:1pt;padding-left:4pt;padding-right:4pt;border-top:windowtext 1pt solid;border-right:windowtext 1pt solid;padding-top:1pt;mso-element:para-border-div"&gt;&lt;pre style="border-bottom:medium none;border-left:medium none;padding-bottom:0in;padding-left:0in;padding-right:0in;border-top:medium none;border-right:medium none;padding-top:0in"&gt;&lt;span style="font-family:Consolas;color:blue;font-size:9pt"&gt;if&lt;/span&gt;&lt;span style="font-family:Consolas;font-size:9pt"&gt; (requestUri.RequestUri.ToString().Replace(requestUri.BaseUri.ToString(), &lt;span style="color:#2b91af"&gt;String&lt;/span&gt;.Empty).StartsWith(&lt;span style="color:#a31515"&gt;&amp;quot;help&amp;quot;&lt;/span&gt;))&lt;br&gt;
{&lt;/span&gt;&lt;/pre&gt;&lt;pre style="border-bottom:medium none;border-left:medium none;padding-bottom:0in;padding-left:0in;padding-right:0in;border-top:medium none;border-right:medium none;padding-top:0in"&gt;&lt;span style="font-family:Consolas;font-size:9pt"&gt;    &lt;span style="color:blue"&gt;return&lt;/span&gt; &lt;span style="color:blue"&gt;true&lt;/span&gt;;&lt;br&gt;
}&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p style="line-height:normal;margin:0in 0in 0pt;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt" class=MsoNormal&gt;&lt;font size=3 face=Calibri&gt;&lt;/font&gt; &lt;/p&gt;
&lt;p style="line-height:normal;margin:0in 0in 0pt;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt" class=MsoNormal&gt;&lt;font face=Calibri&gt;&lt;font size=3&gt;Simple, right? Check the URI that was requested, remove the base URI, and check if the remaining string starts with “help”.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="line-height:normal;margin:0in 0in 0pt;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt" class=MsoNormal&gt;&lt;font size=3 face=Calibri&gt;&lt;/font&gt; &lt;/p&gt;
&lt;p style="line-height:normal;margin:0in 0in 0pt;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt" class=MsoNormal&gt;&lt;font face=Calibri&gt;&lt;font size=3&gt;And indeed, this solution worked perfectly at first. The problem came when we moved the site from an http binding to https. The service itself worked fine, but we just couldn’t access the help page. This particular piece of code seemed like the only candidate where something could be going wrong, but what was it? To find out, I created a self-signed SSL certificate in my machine, configured the development site to use it, and attached Visual Studio to the IIS worker thread for that site.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="line-height:normal;margin:0in 0in 0pt;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt" class=MsoNormal&gt;&lt;font size=3 face=Calibri&gt;&lt;/font&gt; &lt;/p&gt;
&lt;p style="line-height:normal;margin:0in 0in 0pt;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt" class=MsoNormal&gt;&lt;font face=Calibri&gt;&lt;font size=3&gt;And oh surprise! It seems that for sites with an https binding, IIS sets the RequestUri property to the host-header configured &lt;u&gt;in the certificate&lt;/u&gt;, not the host-header in the actual request (at least for single-domain certificates, like the one I created; it’d be interesting to know what does it do for wildcard certificates). So if the certificate was issued for &lt;i&gt;myCertifiedDomain.com&lt;/i&gt;, but we access the help page through &lt;i&gt;https://myServiceUrl.com/help&lt;/i&gt;, the RequestUri property will contain &lt;i&gt;https://myCertifiedDomain.com/help&lt;/i&gt;, while the BaseUri property will contain &lt;i&gt;https://myServiceUrl.com/&lt;/i&gt; (note that it does not have the “help” segment at the end, since this is the &lt;i&gt;base&lt;/i&gt; URI). Given these inputs, the String.Replace logic that we had implemented wasn’t ever going to work.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="line-height:normal;margin:0in 0in 0pt;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt" class=MsoNormal&gt;&lt;font size=3 face=Calibri&gt;&lt;/font&gt; &lt;/p&gt;
&lt;p style="line-height:normal;margin:0in 0in 0pt;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt" class=MsoNormal&gt;&lt;font face=Calibri&gt;&lt;font size=3&gt;To make things a bit more interesting, our service is hosted as an application inside the site in IIS. So in reality, the URLs look something like this:&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="line-height:normal;text-indent:-0.25in;margin:0in 0in 0pt 0.5in;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt" class=MsoListParagraphCxSpFirst&gt;&lt;span style="font-family:Symbol" lang=ES-MX&gt;&lt;span&gt;&lt;font size=3&gt;·&lt;/font&gt;&lt;span style="font:7pt 'Times New Roman'"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang=ES-MX&gt;&lt;font face=Calibri&gt;&lt;font size=3&gt;RequestUri: &lt;i&gt;https://myCertifiedDomain.com/serviceApp/help&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="line-height:normal;text-indent:-0.25in;margin:0in 0in 0pt 0.5in;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt" class=MsoListParagraphCxSpLast&gt;&lt;span style="font-family:Symbol" lang=ES-MX&gt;&lt;span&gt;&lt;font size=3&gt;·&lt;/font&gt;&lt;span style="font:7pt 'Times New Roman'"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang=ES-MX&gt;&lt;font face=Calibri&gt;&lt;font size=3&gt;BaseUri: &lt;i&gt;https://myServiceUrl.com/serviceApp/&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="line-height:normal;margin:0in 0in 0pt;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt" class=MsoNormal&gt;&lt;span lang=ES-MX&gt;&lt;font size=3 face=Calibri&gt;&lt;/font&gt;&lt;/span&gt; &lt;/p&gt;
&lt;p style="line-height:normal;margin:0in 0in 0pt;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt" class=MsoNormal&gt;&lt;font face=Calibri&gt;&lt;font size=3&gt;The solution was clear: we had to modify the condition that verifies if the requested resource is the service’s help page. I browsed through the properties exposed in the Uri class (of which both RequestUri and BaseUri are instances), and found a suitable candidate: AbsolutePath. According to MSDN “[AbsolutePath] does not include the scheme, host name, or query portion of the URI”. In my example, this means that I would see the following (highlighted in bold):&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="line-height:normal;text-indent:-0.25in;margin:0in 0in 0pt 0.5in;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt" class=MsoListParagraphCxSpFirst&gt;&lt;span style="font-family:Symbol" lang=ES-MX&gt;&lt;span&gt;&lt;font size=3&gt;·&lt;/font&gt;&lt;span style="font:7pt 'Times New Roman'"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang=ES-MX&gt;&lt;font face=Calibri&gt;&lt;font size=3&gt;RequestUri: &lt;i&gt;https://myCertifiedDomain.com&lt;b&gt;/serviceApp/help&lt;/b&gt;&lt;/i&gt;&lt;b&gt;&lt;/b&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="line-height:normal;text-indent:-0.25in;margin:0in 0in 0pt 0.5in;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt" class=MsoListParagraphCxSpLast&gt;&lt;span style="font-family:Symbol" lang=ES-MX&gt;&lt;span&gt;&lt;font size=3&gt;·&lt;/font&gt;&lt;span style="font:7pt 'Times New Roman'"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang=ES-MX&gt;&lt;font size=3&gt;&lt;font face=Calibri&gt;BaseUri: &lt;i&gt;https://myServiceUrl.com&lt;b&gt;/serviceApp/&lt;/b&gt;&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="line-height:normal;margin:0in 0in 0pt;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt" class=MsoNormal&gt;&lt;font size=3 face=Calibri&gt;&lt;/font&gt; &lt;/p&gt;
&lt;p style="line-height:normal;margin:0in 0in 0pt;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt" class=MsoNormal&gt;&lt;font size=3&gt;&lt;font face=Calibri&gt;Voilà! With those inputs we could keep the condition we already used, replacing the URI’s with their corresponding AbsolutePath properties. The code ends up looking like this:&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="line-height:normal;margin:0in 0in 0pt;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt" class=MsoNormal&gt;&lt;font size=3 face=Calibri&gt;&lt;/font&gt; &lt;/p&gt;
&lt;div style="border-bottom:windowtext 1pt solid;border-left:windowtext 1pt solid;padding-bottom:1pt;padding-left:4pt;padding-right:4pt;border-top:windowtext 1pt solid;border-right:windowtext 1pt solid;padding-top:1pt;mso-element:para-border-div"&gt;&lt;pre style="border-bottom:medium none;border-left:medium none;padding-bottom:0in;padding-left:0in;padding-right:0in;border-top:medium none;border-right:medium none;padding-top:0in"&gt;&lt;span style="font-family:Consolas;color:blue;font-size:9pt"&gt;if&lt;/span&gt;&lt;span style="font-family:Consolas;font-size:9pt"&gt; (requestUri.RequestUri.AbsolutePath.Replace(requestUri.BaseUri.AbsolutePath, &lt;span style="color:#2b91af"&gt;String&lt;/span&gt;.Empty).StartsWith(&lt;span style="color:#a31515"&gt;&amp;quot;help&amp;quot;&lt;/span&gt;))&lt;br&gt;
{&lt;/span&gt;&lt;/pre&gt;&lt;pre style="border-bottom:medium none;border-left:medium none;padding-bottom:0in;padding-left:0in;padding-right:0in;border-top:medium none;border-right:medium none;padding-top:0in"&gt;&lt;span style="font-family:Consolas;font-size:9pt"&gt;    &lt;span style="color:blue"&gt;return&lt;/span&gt; &lt;span style="color:blue"&gt;true&lt;/span&gt;;&lt;br&gt;
}&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p style="margin:0in 0in 10pt" class=MsoNormal&gt;&lt;font size=3 face=Calibri&gt;&lt;/font&gt; &lt;/p&gt;
&lt;p style="margin:0in 0in 10pt" class=MsoNormal&gt;&lt;font size=3&gt;&lt;font face=Calibri&gt;As you can see, the fix was really simple… once we understood where the problem was. I couldn’t find any documentation for this URL-replacing behavior, or other instances of the same problem, so I hope this post will help somebody in the future.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;
&lt;div&gt;&lt;b&gt;Published:&lt;/b&gt; 11/24/2011 11:57 AM&lt;/div&gt;
&lt;div&gt;&lt;b&gt;BlogTitleForUrl:&lt;/b&gt; beware-of-requesturi-when-exposing-wcf-rest-services-through-https&lt;/div&gt;
&lt;div&gt;&lt;b&gt;Categories:&lt;/b&gt; WCF;The Web&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/sieena/blog/~4/ITr00zxe2Bc" height="1" width="1"/&gt;</description>
      <author>Brenda Valadez</author>
      <pubDate>Mon, 14 Nov 2011 17:58:41 GMT</pubDate>
      <guid isPermaLink="false">http://www.sieena.com/blog/Lists/Posts/ViewPost.aspx?ID=135</guid>
    <feedburner:origLink>http://www.sieena.com/blog/Lists/Posts/ViewPost.aspx?ID=135</feedburner:origLink></item>
    <item>
      <title>SQL Server: Fix duplicate values for uniqueness constraint.</title>
      <link>http://feedproxy.google.com/~r/sieena/blog/~3/8L9a6G09lXw/ViewPost.aspx</link>
      <description>&lt;div&gt;&lt;b&gt;Body:&lt;/b&gt; &lt;div class=ExternalClass181C7B14EC0F468E857ABB9EFE014108&gt;
&lt;div&gt;
&lt;p style="margin:0in 0in 10pt" class=MsoNormal&gt;&lt;span class=MsoSubtleEmphasis&gt;&lt;em&gt;&lt;font color="#808080"&gt;&lt;font size=3&gt;&lt;font face=Calibri&gt;By: Alejandro Villarreal&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0in 0in 10pt" class=MsoNormal&gt;&lt;font size=3&gt;&lt;font face=Calibri&gt;During database development, unique indexes (or constraints) are very important part of the design. There’s always data for which you do not want to have repeated values, like usernames or email addresses. Different applications might have their own uniqueness requirements, but they all usually have at least one. It’s great when we can identify those requirements from the start and create the appropriate indexes up front. &lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin:0in 0in 10pt" class=MsoNormal&gt;&lt;font size=3&gt;&lt;font face=Calibri&gt;But what if your application now needs to enforce uniqueness on the values of a million-row table which has tons of duplicates in the production environment?&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin:0in 0in 10pt" class=MsoNormal&gt;&lt;font size=3&gt;&lt;font face=Calibri&gt;A naïve solution (and definitely &lt;b&gt;not&lt;/b&gt; appropriate for a production environment) would be to replace all the values in that column with uniquely generated IDs, converted to the appropriate data type (I would guess &lt;i&gt;varchar&lt;/i&gt;, most of the time). This, however, implies losing any reference to the original data, and looking for a particular record might become hard (in addition to the already stated problem that it just won’t cut it for a production environment).&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin:0in 0in 10pt" class=MsoNormal&gt;&lt;font size=3&gt;&lt;font face=Calibri&gt;A better solution is to keep the original duplicate value, and number the duplicates consecutively (i.e., change 3 instances of “test value” for “test value 1”, “test value 2” and “test value 3”). Depending on the application (and environment) at hand, this might or might not be appropriate, but if it is, then a simple query can help us achieve it. Let me show you with an example:&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin:0in 0in 10pt" class=MsoNormal&gt;&lt;font size=3&gt;&lt;font face=Calibri&gt;I’ll first create a very simple test table with 2 columns: a numeric ID and a string value. The second column will have duplicates that we want to remove.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="line-height:normal;margin:0in 0in 0pt" class=MsoNormal&gt;&lt;span style="font-family:'Courier New';color:blue;font-size:10pt"&gt;CREATE&lt;/span&gt;&lt;span style="font-family:'Courier New';font-size:10pt"&gt; &lt;span style="color:blue"&gt;TABLE&lt;/span&gt; #Table&lt;span style="color:blue"&gt; &lt;/span&gt;&lt;span style="color:gray"&gt;(&lt;/span&gt;Id &lt;span style="color:blue"&gt;int&lt;/span&gt;&lt;span style="color:gray"&gt;,&lt;/span&gt; Value &lt;span style="color:blue"&gt;varchar&lt;/span&gt;&lt;span style="color:gray"&gt;(&lt;/span&gt;20&lt;span style="color:gray"&gt;))&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="line-height:normal;margin:0in 0in 0pt" class=MsoNormal&gt;&lt;span style="font-family:'Courier New';color:gray;font-size:10pt"&gt;&lt;/span&gt; &lt;/p&gt;
&lt;p style="line-height:normal;margin:0in 0in 0pt" class=MsoNormal&gt;&lt;span style="font-family:'Courier New';color:blue;font-size:10pt"&gt;INSERT&lt;/span&gt;&lt;span style="font-family:'Courier New';font-size:10pt"&gt; &lt;span style="color:blue"&gt;INTO&lt;/span&gt; #Table&lt;span style="color:blue"&gt; &lt;/span&gt;&lt;span style="color:gray"&gt;(&lt;/span&gt;Id&lt;span style="color:gray"&gt;,&lt;/span&gt; Value&lt;span style="color:gray"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0in 0in 10pt" class=MsoNormal&gt;&lt;span style="line-height:115%;font-family:'Courier New';color:blue;font-size:10pt"&gt;VALUES &lt;/span&gt;&lt;span style="line-height:115%;font-family:'Courier New';color:gray;font-size:10pt"&gt;(&lt;/span&gt;&lt;span style="line-height:115%;font-family:'Courier New';font-size:10pt"&gt;1&lt;span style="color:gray"&gt;,&lt;/span&gt;&lt;span style="color:red"&gt;'test'&lt;/span&gt;&lt;span style="color:gray"&gt;),(&lt;/span&gt;2&lt;span style="color:gray"&gt;,&lt;/span&gt;&lt;span style="color:red"&gt;'test'&lt;/span&gt;&lt;span style="color:gray"&gt;),(&lt;/span&gt;3&lt;span style="color:gray"&gt;,&lt;/span&gt; &lt;span style="color:red"&gt;'test'&lt;/span&gt;&lt;span style="color:gray"&gt;),(&lt;/span&gt;4&lt;span style="color:gray"&gt;,&lt;/span&gt; &lt;span style="color:red"&gt;'another test'&lt;/span&gt;&lt;span style="color:gray"&gt;),(&lt;/span&gt;5&lt;span style="color:gray"&gt;,&lt;/span&gt; &lt;span style="color:red"&gt;'another test'&lt;/span&gt;&lt;span style="color:gray"&gt;),(&lt;/span&gt;6&lt;span style="color:gray"&gt;,&lt;/span&gt; &lt;span style="color:red"&gt;'another test'&lt;/span&gt;&lt;span style="color:gray"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0in 0in 10pt" class=MsoNormal&gt;&lt;font size=3&gt;&lt;font face=Calibri&gt;The table then looks like this:&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;table style="border-bottom:medium none;border-left:medium none;border-collapse:collapse;border-top:medium none;border-right:medium none" class=MsoTableGrid border=1 cellspacing=0 cellpadding=0&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style="border-bottom:windowtext 1pt solid;border-left:windowtext 1pt solid;padding-bottom:0in;background-color:transparent;padding-left:5.4pt;width:27.9pt;padding-right:5.4pt;border-top:windowtext 1pt solid;border-right:windowtext 1pt solid;padding-top:0in" valign=top width=37&gt;
&lt;p style="line-height:normal;margin:0in 0in 0pt" class=MsoNormal&gt;&lt;font face=Calibri&gt;&lt;/font&gt; &lt;/p&gt;&lt;/td&gt;
&lt;td style="border-bottom:windowtext 1pt solid;border-left:#f0f0f0;padding-bottom:0in;background-color:transparent;padding-left:5.4pt;width:0.5in;padding-right:5.4pt;border-top:windowtext 1pt solid;border-right:windowtext 1pt solid;padding-top:0in" valign=top width=48&gt;
&lt;p style="line-height:normal;margin:0in 0in 0pt" class=MsoNormal&gt;&lt;font face=Calibri&gt;Id&lt;/font&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style="border-bottom:windowtext 1pt solid;border-left:#f0f0f0;padding-bottom:0in;background-color:transparent;padding-left:5.4pt;width:85.5pt;padding-right:5.4pt;border-top:windowtext 1pt solid;border-right:windowtext 1pt solid;padding-top:0in" valign=top width=114&gt;
&lt;p style="line-height:normal;margin:0in 0in 0pt" class=MsoNormal&gt;&lt;font face=Calibri&gt;Value&lt;/font&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="border-bottom:windowtext 1pt solid;border-left:windowtext 1pt solid;padding-bottom:0in;background-color:transparent;padding-left:5.4pt;width:27.9pt;padding-right:5.4pt;border-top:#f0f0f0;border-right:windowtext 1pt solid;padding-top:0in" valign=top width=37&gt;
&lt;p style="line-height:normal;margin:0in 0in 0pt" class=MsoNormal&gt;&lt;font face=Calibri&gt;1&lt;/font&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style="border-bottom:windowtext 1pt solid;border-left:#f0f0f0;padding-bottom:0in;background-color:transparent;padding-left:5.4pt;width:0.5in;padding-right:5.4pt;border-top:#f0f0f0;border-right:windowtext 1pt solid;padding-top:0in" valign=top width=48&gt;
&lt;p style="line-height:normal;margin:0in 0in 0pt" class=MsoNormal&gt;&lt;font face=Calibri&gt;1&lt;/font&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style="border-bottom:windowtext 1pt solid;border-left:#f0f0f0;padding-bottom:0in;background-color:transparent;padding-left:5.4pt;width:85.5pt;padding-right:5.4pt;border-top:#f0f0f0;border-right:windowtext 1pt solid;padding-top:0in" valign=top width=114&gt;
&lt;p style="line-height:normal;margin:0in 0in 0pt" class=MsoNormal&gt;&lt;font face=Calibri&gt;Test&lt;/font&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="border-bottom:windowtext 1pt solid;border-left:windowtext 1pt solid;padding-bottom:0in;background-color:transparent;padding-left:5.4pt;width:27.9pt;padding-right:5.4pt;border-top:#f0f0f0;border-right:windowtext 1pt solid;padding-top:0in" valign=top width=37&gt;
&lt;p style="line-height:normal;margin:0in 0in 0pt" class=MsoNormal&gt;&lt;font face=Calibri&gt;2&lt;/font&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style="border-bottom:windowtext 1pt solid;border-left:#f0f0f0;padding-bottom:0in;background-color:transparent;padding-left:5.4pt;width:0.5in;padding-right:5.4pt;border-top:#f0f0f0;border-right:windowtext 1pt solid;padding-top:0in" valign=top width=48&gt;
&lt;p style="line-height:normal;margin:0in 0in 0pt" class=MsoNormal&gt;&lt;font face=Calibri&gt;2&lt;/font&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style="border-bottom:windowtext 1pt solid;border-left:#f0f0f0;padding-bottom:0in;background-color:transparent;padding-left:5.4pt;width:85.5pt;padding-right:5.4pt;border-top:#f0f0f0;border-right:windowtext 1pt solid;padding-top:0in" valign=top width=114&gt;
&lt;p style="line-height:normal;margin:0in 0in 0pt" class=MsoNormal&gt;&lt;font face=Calibri&gt;Test&lt;/font&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="border-bottom:windowtext 1pt solid;border-left:windowtext 1pt solid;padding-bottom:0in;background-color:transparent;padding-left:5.4pt;width:27.9pt;padding-right:5.4pt;border-top:#f0f0f0;border-right:windowtext 1pt solid;padding-top:0in" valign=top width=37&gt;
&lt;p style="line-height:normal;margin:0in 0in 0pt" class=MsoNormal&gt;&lt;font face=Calibri&gt;3&lt;/font&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style="border-bottom:windowtext 1pt solid;border-left:#f0f0f0;padding-bottom:0in;background-color:transparent;padding-left:5.4pt;width:0.5in;padding-right:5.4pt;border-top:#f0f0f0;border-right:windowtext 1pt solid;padding-top:0in" valign=top width=48&gt;
&lt;p style="line-height:normal;margin:0in 0in 0pt" class=MsoNormal&gt;&lt;font face=Calibri&gt;3&lt;/font&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style="border-bottom:windowtext 1pt solid;border-left:#f0f0f0;padding-bottom:0in;background-color:transparent;padding-left:5.4pt;width:85.5pt;padding-right:5.4pt;border-top:#f0f0f0;border-right:windowtext 1pt solid;padding-top:0in" valign=top width=114&gt;
&lt;p style="line-height:normal;margin:0in 0in 0pt" class=MsoNormal&gt;&lt;font face=Calibri&gt;Test&lt;/font&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="border-bottom:windowtext 1pt solid;border-left:windowtext 1pt solid;padding-bottom:0in;background-color:transparent;padding-left:5.4pt;width:27.9pt;padding-right:5.4pt;border-top:#f0f0f0;border-right:windowtext 1pt solid;padding-top:0in" valign=top width=37&gt;
&lt;p style="line-height:normal;margin:0in 0in 0pt" class=MsoNormal&gt;&lt;font face=Calibri&gt;4&lt;/font&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style="border-bottom:windowtext 1pt solid;border-left:#f0f0f0;padding-bottom:0in;background-color:transparent;padding-left:5.4pt;width:0.5in;padding-right:5.4pt;border-top:#f0f0f0;border-right:windowtext 1pt solid;padding-top:0in" valign=top width=48&gt;
&lt;p style="line-height:normal;margin:0in 0in 0pt" class=MsoNormal&gt;&lt;font face=Calibri&gt;4&lt;/font&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style="border-bottom:windowtext 1pt solid;border-left:#f0f0f0;padding-bottom:0in;background-color:transparent;padding-left:5.4pt;width:85.5pt;padding-right:5.4pt;border-top:#f0f0f0;border-right:windowtext 1pt solid;padding-top:0in" valign=top width=114&gt;
&lt;p style="line-height:normal;margin:0in 0in 0pt" class=MsoNormal&gt;&lt;font face=Calibri&gt;Another test &lt;/font&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="border-bottom:windowtext 1pt solid;border-left:windowtext 1pt solid;padding-bottom:0in;background-color:transparent;padding-left:5.4pt;width:27.9pt;padding-right:5.4pt;border-top:#f0f0f0;border-right:windowtext 1pt solid;padding-top:0in" valign=top width=37&gt;
&lt;p style="line-height:normal;margin:0in 0in 0pt" class=MsoNormal&gt;&lt;font face=Calibri&gt;5&lt;/font&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style="border-bottom:windowtext 1pt solid;border-left:#f0f0f0;padding-bottom:0in;background-color:transparent;padding-left:5.4pt;width:0.5in;padding-right:5.4pt;border-top:#f0f0f0;border-right:windowtext 1pt solid;padding-top:0in" valign=top width=48&gt;
&lt;p style="line-height:normal;margin:0in 0in 0pt" class=MsoNormal&gt;&lt;font face=Calibri&gt;5&lt;/font&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style="border-bottom:windowtext 1pt solid;border-left:#f0f0f0;padding-bottom:0in;background-color:transparent;padding-left:5.4pt;width:85.5pt;padding-right:5.4pt;border-top:#f0f0f0;border-right:windowtext 1pt solid;padding-top:0in" valign=top width=114&gt;
&lt;p style="line-height:normal;margin:0in 0in 0pt" class=MsoNormal&gt;&lt;font face=Calibri&gt;Another test &lt;/font&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="border-bottom:windowtext 1pt solid;border-left:windowtext 1pt solid;padding-bottom:0in;background-color:transparent;padding-left:5.4pt;width:27.9pt;padding-right:5.4pt;border-top:#f0f0f0;border-right:windowtext 1pt solid;padding-top:0in" valign=top width=37&gt;
&lt;p style="line-height:normal;margin:0in 0in 0pt" class=MsoNormal&gt;&lt;font face=Calibri&gt;6&lt;/font&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style="border-bottom:windowtext 1pt solid;border-left:#f0f0f0;padding-bottom:0in;background-color:transparent;padding-left:5.4pt;width:0.5in;padding-right:5.4pt;border-top:#f0f0f0;border-right:windowtext 1pt solid;padding-top:0in" valign=top width=48&gt;
&lt;p style="line-height:normal;margin:0in 0in 0pt" class=MsoNormal&gt;&lt;font face=Calibri&gt;6&lt;/font&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style="border-bottom:windowtext 1pt solid;border-left:#f0f0f0;padding-bottom:0in;background-color:transparent;padding-left:5.4pt;width:85.5pt;padding-right:5.4pt;border-top:#f0f0f0;border-right:windowtext 1pt solid;padding-top:0in" valign=top width=114&gt;
&lt;p style="line-height:normal;margin:0in 0in 0pt" class=MsoNormal&gt;&lt;font face=Calibri&gt;Another test &lt;/font&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;p style="margin:0in 0in 10pt" class=MsoNormal&gt;&lt;font size=3 face=Calibri&gt;&lt;/font&gt; &lt;/p&gt;
&lt;p style="margin:0in 0in 10pt" class=MsoNormal&gt;&lt;font size=3&gt;&lt;font face=Calibri&gt;To remove the duplicates, we will first determine the different values that the column currently has. Then we’ll iterate over them, and for each value, “iterate” over its duplicates (actually we’ll let SQL iterate over them), updating each one with a counter that will get incremented each time it’s used. That said, we execute the following statements to do it:&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="line-height:normal;margin:0in 0in 0pt" class=MsoNormal&gt;&lt;span style="font-family:'Courier New';color:blue;font-size:10pt"&gt;SELECT&lt;/span&gt;&lt;span style="font-family:'Courier New';font-size:10pt"&gt; &lt;span style="color:blue"&gt;DISTINCT&lt;/span&gt; Value&lt;/span&gt;&lt;/p&gt;
&lt;p style="line-height:normal;text-indent:0.5in;margin:0in 0in 0pt" class=MsoNormal&gt;&lt;span style="font-family:'Courier New';color:blue;font-size:10pt"&gt;INTO&lt;/span&gt;&lt;span style="font-family:'Courier New';font-size:10pt"&gt; #Duplicates&lt;/span&gt;&lt;/p&gt;
&lt;p style="line-height:normal;text-indent:0.5in;margin:0in 0in 0pt" class=MsoNormal&gt;&lt;span style="font-family:'Courier New';color:blue;font-size:10pt"&gt;FROM&lt;/span&gt;&lt;span style="font-family:'Courier New';font-size:10pt"&gt; #Table&lt;/span&gt;&lt;/p&gt;
&lt;p style="line-height:normal;margin:0in 0in 0pt" class=MsoNormal&gt;&lt;span style="font-family:'Courier New';font-size:10pt"&gt;&lt;/span&gt; &lt;/p&gt;
&lt;p style="line-height:normal;margin:0in 0in 0pt" class=MsoNormal&gt;&lt;span style="font-family:'Courier New';color:blue;font-size:10pt"&gt;DECLARE&lt;/span&gt;&lt;span style="font-family:'Courier New';font-size:10pt"&gt; @currentDuplicate &lt;span style="color:blue"&gt;varchar&lt;/span&gt;&lt;span style="color:gray"&gt;(&lt;/span&gt;20&lt;span style="color:gray"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="line-height:normal;margin:0in 0in 0pt" class=MsoNormal&gt;&lt;span style="font-family:'Courier New';color:blue;font-size:10pt"&gt;DECLARE&lt;/span&gt;&lt;span style="font-family:'Courier New';font-size:10pt"&gt; @counter &lt;span style="color:blue"&gt;int&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="line-height:normal;margin:0in 0in 0pt" class=MsoNormal&gt;&lt;span style="font-family:'Courier New';color:blue;font-size:10pt"&gt;WHILE&lt;/span&gt;&lt;span style="font-family:'Courier New';font-size:10pt"&gt; &lt;span style="color:gray"&gt;EXISTS&lt;/span&gt;&lt;span style="color:blue"&gt; &lt;/span&gt;&lt;span style="color:gray"&gt;(&lt;/span&gt;&lt;span style="color:blue"&gt;SELECT&lt;/span&gt; 1 &lt;span style="color:blue"&gt;FROM&lt;/span&gt; #Duplicates&lt;span style="color:gray"&gt;)&lt;/span&gt; &lt;span style="color:blue"&gt;BEGIN&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="line-height:normal;margin:0in 0in 0pt" class=MsoNormal&gt;&lt;span style="font-family:'Courier New';font-size:10pt"&gt;&lt;span&gt;      &lt;/span&gt;&lt;span style="color:blue"&gt;SET&lt;/span&gt; @counter &lt;span style="color:gray"&gt;=&lt;/span&gt; 0&lt;/span&gt;&lt;/p&gt;
&lt;p style="line-height:normal;margin:0in 0in 0pt" class=MsoNormal&gt;&lt;span style="font-family:'Courier New';font-size:10pt"&gt;&lt;span&gt;      &lt;/span&gt;&lt;span style="color:blue"&gt;SELECT&lt;/span&gt; &lt;span style="color:blue"&gt;TOP&lt;/span&gt; 1 @currentDuplicate &lt;span style="color:gray"&gt;=&lt;/span&gt; Value &lt;span style="color:blue"&gt;FROM&lt;/span&gt; #Duplicates&lt;/span&gt;&lt;/p&gt;
&lt;p style="line-height:normal;margin:0in 0in 0pt" class=MsoNormal&gt;&lt;span style="font-family:'Courier New';font-size:10pt"&gt;&lt;span&gt;      &lt;/span&gt;&lt;span style="color:blue"&gt;UPDATE&lt;/span&gt; #Table&lt;/span&gt;&lt;/p&gt;
&lt;p style="line-height:normal;margin:0in 0in 0pt" class=MsoNormal&gt;&lt;span style="font-family:'Courier New';font-size:10pt"&gt;&lt;span&gt;            &lt;/span&gt;&lt;span style="color:blue"&gt;SET&lt;/span&gt; Value &lt;span style="color:gray"&gt;=&lt;/span&gt; Value &lt;span style="color:gray"&gt;+&lt;/span&gt; &lt;span style="color:red"&gt;' '&lt;/span&gt; &lt;span style="color:gray"&gt;+&lt;/span&gt; &lt;span style="color:fuchsia"&gt;CAST&lt;/span&gt;&lt;span style="color:gray"&gt;(&lt;/span&gt;@counter &lt;span style="color:blue"&gt;as&lt;/span&gt; &lt;span style="color:blue"&gt;varchar&lt;/span&gt;&lt;span style="color:gray"&gt;(&lt;/span&gt;3&lt;span style="color:gray"&gt;))&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="line-height:normal;margin:0in 0in 0pt" class=MsoNormal&gt;&lt;span style="font-family:'Courier New';font-size:10pt"&gt;&lt;span&gt;                  &lt;/span&gt;&lt;span style="color:gray"&gt;,&lt;/span&gt;@counter &lt;span style="color:gray"&gt;+=&lt;/span&gt; 1&lt;/span&gt;&lt;/p&gt;
&lt;p style="line-height:normal;margin:0in 0in 0pt" class=MsoNormal&gt;&lt;span style="font-family:'Courier New';font-size:10pt"&gt;&lt;span&gt;            &lt;/span&gt;&lt;span style="color:blue"&gt;WHERE&lt;/span&gt; Value &lt;span style="color:gray"&gt;=&lt;/span&gt; @currentDuplicate&lt;/span&gt;&lt;/p&gt;
&lt;p style="line-height:normal;margin:0in 0in 0pt" class=MsoNormal&gt;&lt;span style="font-family:'Courier New';font-size:10pt"&gt;&lt;span&gt;            &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="line-height:normal;margin:0in 0in 0pt" class=MsoNormal&gt;&lt;span style="font-family:'Courier New';font-size:10pt"&gt;&lt;span&gt;      &lt;/span&gt;&lt;span style="color:blue"&gt;DELETE&lt;/span&gt; &lt;span style="color:blue"&gt;FROM&lt;/span&gt; #duplicates &lt;span style="color:blue"&gt;WHERE&lt;/span&gt; value &lt;span style="color:gray"&gt;=&lt;/span&gt; @currentDuplicate&lt;/span&gt;&lt;/p&gt;
&lt;p style="line-height:normal;margin:0in 0in 0pt" class=MsoNormal&gt;&lt;span style="font-family:'Courier New';color:blue;font-size:10pt"&gt;END&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0in 0in 10pt" class=MsoNormal&gt;&lt;span style="line-height:115%;font-family:'Courier New';color:blue;font-size:10pt"&gt;DROP&lt;/span&gt;&lt;span style="line-height:115%;font-family:'Courier New';font-size:10pt"&gt; &lt;span style="color:blue"&gt;TABLE&lt;/span&gt; #Duplicates&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0in 0in 10pt" class=MsoNormal&gt;&lt;font size=3&gt;&lt;font face=Calibri&gt;After running those statements, the table contains the following:&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;table style="border-bottom:medium none;border-left:medium none;border-collapse:collapse;border-top:medium none;border-right:medium none" class=MsoTableGrid border=1 cellspacing=0 cellpadding=0&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style="border-bottom:windowtext 1pt solid;border-left:windowtext 1pt solid;padding-bottom:0in;background-color:transparent;padding-left:5.4pt;width:27.9pt;padding-right:5.4pt;border-top:windowtext 1pt solid;border-right:windowtext 1pt solid;padding-top:0in" valign=top width=37&gt;
&lt;p style="line-height:normal;margin:0in 0in 0pt" class=MsoNormal&gt;&lt;font face=Calibri&gt;&lt;/font&gt; &lt;/p&gt;&lt;/td&gt;
&lt;td style="border-bottom:windowtext 1pt solid;border-left:#f0f0f0;padding-bottom:0in;background-color:transparent;padding-left:5.4pt;width:0.5in;padding-right:5.4pt;border-top:windowtext 1pt solid;border-right:windowtext 1pt solid;padding-top:0in" valign=top width=48&gt;
&lt;p style="line-height:normal;margin:0in 0in 0pt" class=MsoNormal&gt;&lt;font face=Calibri&gt;Id&lt;/font&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style="border-bottom:windowtext 1pt solid;border-left:#f0f0f0;padding-bottom:0in;background-color:transparent;padding-left:5.4pt;width:85.5pt;padding-right:5.4pt;border-top:windowtext 1pt solid;border-right:windowtext 1pt solid;padding-top:0in" valign=top width=114&gt;
&lt;p style="line-height:normal;margin:0in 0in 0pt" class=MsoNormal&gt;&lt;font face=Calibri&gt;Value&lt;/font&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="border-bottom:windowtext 1pt solid;border-left:windowtext 1pt solid;padding-bottom:0in;background-color:transparent;padding-left:5.4pt;width:27.9pt;padding-right:5.4pt;border-top:#f0f0f0;border-right:windowtext 1pt solid;padding-top:0in" valign=top width=37&gt;
&lt;p style="line-height:normal;margin:0in 0in 0pt" class=MsoNormal&gt;&lt;font face=Calibri&gt;1&lt;/font&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style="border-bottom:windowtext 1pt solid;border-left:#f0f0f0;padding-bottom:0in;background-color:transparent;padding-left:5.4pt;width:0.5in;padding-right:5.4pt;border-top:#f0f0f0;border-right:windowtext 1pt solid;padding-top:0in" valign=top width=48&gt;
&lt;p style="line-height:normal;margin:0in 0in 0pt" class=MsoNormal&gt;&lt;font face=Calibri&gt;1&lt;/font&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style="border-bottom:windowtext 1pt solid;border-left:#f0f0f0;padding-bottom:0in;background-color:transparent;padding-left:5.4pt;width:85.5pt;padding-right:5.4pt;border-top:#f0f0f0;border-right:windowtext 1pt solid;padding-top:0in" valign=top width=114&gt;
&lt;p style="line-height:normal;margin:0in 0in 0pt" class=MsoNormal&gt;&lt;font face=Calibri&gt;Test 1&lt;/font&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="border-bottom:windowtext 1pt solid;border-left:windowtext 1pt solid;padding-bottom:0in;background-color:transparent;padding-left:5.4pt;width:27.9pt;padding-right:5.4pt;border-top:#f0f0f0;border-right:windowtext 1pt solid;padding-top:0in" valign=top width=37&gt;
&lt;p style="line-height:normal;margin:0in 0in 0pt" class=MsoNormal&gt;&lt;font face=Calibri&gt;2&lt;/font&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style="border-bottom:windowtext 1pt solid;border-left:#f0f0f0;padding-bottom:0in;background-color:transparent;padding-left:5.4pt;width:0.5in;padding-right:5.4pt;border-top:#f0f0f0;border-right:windowtext 1pt solid;padding-top:0in" valign=top width=48&gt;
&lt;p style="line-height:normal;margin:0in 0in 0pt" class=MsoNormal&gt;&lt;font face=Calibri&gt;2&lt;/font&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style="border-bottom:windowtext 1pt solid;border-left:#f0f0f0;padding-bottom:0in;background-color:transparent;padding-left:5.4pt;width:85.5pt;padding-right:5.4pt;border-top:#f0f0f0;border-right:windowtext 1pt solid;padding-top:0in" valign=top width=114&gt;
&lt;p style="line-height:normal;margin:0in 0in 0pt" class=MsoNormal&gt;&lt;font face=Calibri&gt;Test 2&lt;/font&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="border-bottom:windowtext 1pt solid;border-left:windowtext 1pt solid;padding-bottom:0in;background-color:transparent;padding-left:5.4pt;width:27.9pt;padding-right:5.4pt;border-top:#f0f0f0;border-right:windowtext 1pt solid;padding-top:0in" valign=top width=37&gt;
&lt;p style="line-height:normal;margin:0in 0in 0pt" class=MsoNormal&gt;&lt;font face=Calibri&gt;3&lt;/font&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style="border-bottom:windowtext 1pt solid;border-left:#f0f0f0;padding-bottom:0in;background-color:transparent;padding-left:5.4pt;width:0.5in;padding-right:5.4pt;border-top:#f0f0f0;border-right:windowtext 1pt solid;padding-top:0in" valign=top width=48&gt;
&lt;p style="line-height:normal;margin:0in 0in 0pt" class=MsoNormal&gt;&lt;font face=Calibri&gt;3&lt;/font&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style="border-bottom:windowtext 1pt solid;border-left:#f0f0f0;padding-bottom:0in;background-color:transparent;padding-left:5.4pt;width:85.5pt;padding-right:5.4pt;border-top:#f0f0f0;border-right:windowtext 1pt solid;padding-top:0in" valign=top width=114&gt;
&lt;p style="line-height:normal;margin:0in 0in 0pt" class=MsoNormal&gt;&lt;font face=Calibri&gt;Test 3&lt;/font&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="border-bottom:windowtext 1pt solid;border-left:windowtext 1pt solid;padding-bottom:0in;background-color:transparent;padding-left:5.4pt;width:27.9pt;padding-right:5.4pt;border-top:#f0f0f0;border-right:windowtext 1pt solid;padding-top:0in" valign=top width=37&gt;
&lt;p style="line-height:normal;margin:0in 0in 0pt" class=MsoNormal&gt;&lt;font face=Calibri&gt;4&lt;/font&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style="border-bottom:windowtext 1pt solid;border-left:#f0f0f0;padding-bottom:0in;background-color:transparent;padding-left:5.4pt;width:0.5in;padding-right:5.4pt;border-top:#f0f0f0;border-right:windowtext 1pt solid;padding-top:0in" valign=top width=48&gt;
&lt;p style="line-height:normal;margin:0in 0in 0pt" class=MsoNormal&gt;&lt;font face=Calibri&gt;4&lt;/font&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style="border-bottom:windowtext 1pt solid;border-left:#f0f0f0;padding-bottom:0in;background-color:transparent;padding-left:5.4pt;width:85.5pt;padding-right:5.4pt;border-top:#f0f0f0;border-right:windowtext 1pt solid;padding-top:0in" valign=top width=114&gt;
&lt;p style="line-height:normal;margin:0in 0in 0pt" class=MsoNormal&gt;&lt;font face=Calibri&gt;Another test 1&lt;/font&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="border-bottom:windowtext 1pt solid;border-left:windowtext 1pt solid;padding-bottom:0in;background-color:transparent;padding-left:5.4pt;width:27.9pt;padding-right:5.4pt;border-top:#f0f0f0;border-right:windowtext 1pt solid;padding-top:0in" valign=top width=37&gt;
&lt;p style="line-height:normal;margin:0in 0in 0pt" class=MsoNormal&gt;&lt;font face=Calibri&gt;5&lt;/font&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style="border-bottom:windowtext 1pt solid;border-left:#f0f0f0;padding-bottom:0in;background-color:transparent;padding-left:5.4pt;width:0.5in;padding-right:5.4pt;border-top:#f0f0f0;border-right:windowtext 1pt solid;padding-top:0in" valign=top width=48&gt;
&lt;p style="line-height:normal;margin:0in 0in 0pt" class=MsoNormal&gt;&lt;font face=Calibri&gt;5&lt;/font&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style="border-bottom:windowtext 1pt solid;border-left:#f0f0f0;padding-bottom:0in;background-color:transparent;padding-left:5.4pt;width:85.5pt;padding-right:5.4pt;border-top:#f0f0f0;border-right:windowtext 1pt solid;padding-top:0in" valign=top width=114&gt;
&lt;p style="line-height:normal;margin:0in 0in 0pt" class=MsoNormal&gt;&lt;font face=Calibri&gt;Another test 2&lt;/font&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="border-bottom:windowtext 1pt solid;border-left:windowtext 1pt solid;padding-bottom:0in;background-color:transparent;padding-left:5.4pt;width:27.9pt;padding-right:5.4pt;border-top:#f0f0f0;border-right:windowtext 1pt solid;padding-top:0in" valign=top width=37&gt;
&lt;p style="line-height:normal;margin:0in 0in 0pt" class=MsoNormal&gt;&lt;font face=Calibri&gt;6&lt;/font&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style="border-bottom:windowtext 1pt solid;border-left:#f0f0f0;padding-bottom:0in;background-color:transparent;padding-left:5.4pt;width:0.5in;padding-right:5.4pt;border-top:#f0f0f0;border-right:windowtext 1pt solid;padding-top:0in" valign=top width=48&gt;
&lt;p style="line-height:normal;margin:0in 0in 0pt" class=MsoNormal&gt;&lt;font face=Calibri&gt;6&lt;/font&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style="border-bottom:windowtext 1pt solid;border-left:#f0f0f0;padding-bottom:0in;background-color:transparent;padding-left:5.4pt;width:85.5pt;padding-right:5.4pt;border-top:#f0f0f0;border-right:windowtext 1pt solid;padding-top:0in" valign=top width=114&gt;
&lt;p style="line-height:normal;margin:0in 0in 0pt" class=MsoNormal&gt;&lt;font face=Calibri&gt;Another test 3&lt;/font&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;p style="margin:0in 0in 10pt" class=MsoNormal&gt;&lt;font size=3 face=Calibri&gt;&lt;/font&gt; &lt;/p&gt;
&lt;p style="margin:0in 0in 10pt" class=MsoNormal&gt;&lt;font size=3&gt;&lt;font face=Calibri&gt;As you can see the duplicates are no more, and now we can create the desired unique index/constraint over the column. You should be careful and give enough range to the counter when casting it to a varchar: if at least 1 of the duplicate values has 1000 or more instances, then you’ll need a varchar(4) to store the number.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin:0in 0in 10pt" class=MsoNormal&gt;&lt;font size=3&gt;&lt;font face=Calibri&gt;As a reminder, this solution might not be the most appropriate for all applications, but hopefully it will come in handy to someone in the future, as it has to me.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;
&lt;div&gt;&lt;b&gt;Published:&lt;/b&gt; 11/21/2011 11:30 AM&lt;/div&gt;
&lt;div&gt;&lt;b&gt;BlogTitleForUrl:&lt;/b&gt; sql-server-fix-duplicate-values-for-uniqueness-constraint-&lt;/div&gt;
&lt;div&gt;&lt;b&gt;Categories:&lt;/b&gt; SQL Server;The Web;Software Architecture&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/sieena/blog/~4/8L9a6G09lXw" height="1" width="1"/&gt;</description>
      <author>Brenda Valadez</author>
      <pubDate>Mon, 14 Nov 2011 17:48:20 GMT</pubDate>
      <guid isPermaLink="false">http://www.sieena.com/blog/Lists/Posts/ViewPost.aspx?ID=133</guid>
    <feedburner:origLink>http://www.sieena.com/blog/Lists/Posts/ViewPost.aspx?ID=133</feedburner:origLink></item>
    <item>
      <title>SQL Server: Tip for Setting up replication in Virtual servers</title>
      <link>http://feedproxy.google.com/~r/sieena/blog/~3/SBzTuFsIlek/ViewPost.aspx</link>
      <description>&lt;div&gt;&lt;b&gt;Body:&lt;/b&gt; &lt;div class=ExternalClass5851214CDFD9471E8CFF939A20FAA5BF&gt;&lt;p style="margin:0in 0in 10pt" class=MsoNormal&gt;&lt;span class=MsoSubtleEmphasis&gt;&lt;em&gt;&lt;font color="#808080"&gt;&lt;font face=Calibri&gt;&lt;font size=3&gt;By: Alejandro Villarreal&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0in 0in 10pt" class=MsoNormal&gt;&lt;font face=Calibri&gt;&lt;font size=3&gt;Debugging replication-related problems can be extremely hard if you do not have access to an environment with the exact same replication architecture where the problem occurred in the first place. As consultants working for several clients, it is not feasible to have an exact replica of each of their environments, so a feasible solution is to set up a copy of the desired environment “on demand”, on virtual machines.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin:0in 0in 10pt" class=MsoNormal&gt;&lt;font face=Calibri&gt;&lt;font size=3&gt;This is exactly what we did a couple of weeks back, and although we finally got replication to work, we had to deal with this error first:&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin:0in 0in 10pt 0.5in" class=MsoNormal&gt;&lt;font size=3&gt;&lt;font face=Calibri&gt;Error 18483: Could not connect to server '&amp;lt;&lt;span style="font-family:'Calibri','sans-serif'"&gt;Server&lt;/span&gt;&amp;gt;\&amp;lt;&lt;span style="font-family:'Calibri','sans-serif'"&gt;Instance&lt;/span&gt;&amp;gt;' because '&amp;lt;&lt;i style=""&gt;login&amp;gt;&lt;/i&gt;' is not defined as a remote login at the server.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin:0in 0in 10pt" class=MsoNormal&gt;&lt;font size=3&gt;&lt;font face=Calibri&gt;This happened while configuring the distributor, which was the same server as the publisher (local machine), so it didn’t make sense at all. Why was it attempting to connect to a “remote” server?&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin:0in 0in 10pt" class=MsoNormal&gt;&lt;font size=3 face=Calibri&gt;We finally figured out it was because when we installed SQL Server in the virtual machine, its NetBIOS name was not the one we later gave it (the one we wanted to use to access it). Thus, the &lt;/font&gt;&lt;span style="line-height:115%;font-family:'Courier New';color:fuchsia;font-size:10pt"&gt;@@Servername&lt;/span&gt;&lt;span style="line-height:115%;font-family:'Courier New';font-size:10pt"&gt; &lt;/span&gt;&lt;font size=3 face=Calibri&gt;global variable had a value that we did not expect, and our replication script was inadvertently trying to connect to a server &lt;i style=""&gt;other&lt;/i&gt; than the local machine (run &lt;/font&gt;&lt;span style="line-height:115%;font-family:'Courier New';color:blue;font-size:10pt"&gt;Select&lt;/span&gt;&lt;span style="line-height:115%;font-family:'Courier New';font-size:10pt"&gt; &lt;span style="color:fuchsia"&gt;@@Servername&lt;/span&gt; &lt;/span&gt;&lt;font size=3&gt;&lt;font face=Calibri&gt;to find out the name of the server under which SQL thinks it’s installed).&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin:0in 0in 10pt" class=MsoNormal&gt;&lt;font size=3&gt;&lt;font face=Calibri&gt;The fix is pretty simple. You just need to tell SQL Server to lose that reference, and create a new one with the appropriate NetBIOS name:&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="line-height:normal;margin:0in 0in 0pt" class=MsoNormal&gt;&lt;span style="font-family:'Courier New';color:maroon;font-size:10pt"&gt;sp_dropserver&lt;/span&gt;&lt;span style="font-family:'Courier New';font-size:10pt"&gt; @server&lt;span style="color:gray"&gt;=&lt;/span&gt;&lt;span style="color:red"&gt;'Incorrect-Server-Name'&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="line-height:normal;margin:0in 0in 0pt" class=MsoNormal&gt;&lt;span style="font-family:'Courier New';color:maroon;font-size:10pt"&gt;sp_addserver&lt;/span&gt;&lt;span style="font-family:'Courier New';font-size:10pt"&gt; @server&lt;span style="color:gray"&gt;=&lt;/span&gt;&lt;span style="color:red"&gt;'Correct-Server-Name'&lt;/span&gt;&lt;span style="color:gray"&gt;,&lt;/span&gt; @local&lt;span style="color:gray"&gt;=&lt;/span&gt;&lt;span style="color:red"&gt;'local'&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0in 0in 10pt" class=MsoNormal&gt;&lt;font size=3 face=Calibri&gt; &lt;/font&gt;&lt;/p&gt;
&lt;p style="margin:0in 0in 10pt" class=MsoNormal&gt;&lt;font size=3 face=Calibri&gt;Once we did this, our replication scripts ran successfully and we could start working. Hopefully this will save someone else a bit of a headache while trying to figure out why their replication scripts won’t work in a virtualized environment. You can find more details regarding this problem in this Microsoft KB article: &lt;/font&gt;&lt;a href="http://support.microsoft.com/kb/818334"&gt;&lt;font color="#0000ff" size=3 face=Calibri&gt;http://support.microsoft.com/kb/818334&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;
&lt;div&gt;&lt;b&gt;Published:&lt;/b&gt; 11/14/2011 11:51 AM&lt;/div&gt;
&lt;div&gt;&lt;b&gt;BlogTitleForUrl:&lt;/b&gt; sql-server-tip-for-setting-up-replication-in-virtual-servers&lt;/div&gt;
&lt;div&gt;&lt;b&gt;Categories:&lt;/b&gt; SQL Server;Software Architecture&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/sieena/blog/~4/SBzTuFsIlek" height="1" width="1"/&gt;</description>
      <author>Brenda Valadez</author>
      <pubDate>Mon, 14 Nov 2011 17:52:19 GMT</pubDate>
      <guid isPermaLink="false">http://www.sieena.com/blog/Lists/Posts/ViewPost.aspx?ID=134</guid>
    <feedburner:origLink>http://www.sieena.com/blog/Lists/Posts/ViewPost.aspx?ID=134</feedburner:origLink></item>
    <item>
      <title>Powerful Javascript</title>
      <link>http://feedproxy.google.com/~r/sieena/blog/~3/BvPDlmpjEcA/ViewPost.aspx</link>
      <description>&lt;div&gt;&lt;b&gt;Body:&lt;/b&gt; &lt;div class=ExternalClassA8ACCA625CE2436BB0CC981E9DE37B50&gt;
&lt;div&gt;
&lt;p style="margin:0in 0in 0pt" class=Div&gt;&lt;em&gt;&lt;font color="#808080"&gt;&lt;font size=2&gt;&lt;span class=MsoSubtleEmphasis&gt;&lt;span lang=RU&gt;By &lt;/span&gt;&lt;/span&gt;&lt;span class=MsoSubtleEmphasis&gt;&lt;span&gt;Guillermo Cedillo&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p style="margin:0in 0in 0pt" class=Div&gt;&lt;em&gt;&lt;font color="#808080"&gt;&lt;font size=2&gt;&lt;span class=MsoSubtleEmphasis&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/em&gt; &lt;/p&gt;
&lt;p style="margin:0in 0in 0pt" class=Div&gt;&lt;span lang=RU&gt;&lt;font size=2&gt;C# is becoming more like a functional language in every release; by the other side Javascript is a functional language that was treated as a misunderstood-object-oriented-script language ¬_¬. I hope in the next years these two languages become so closer that they share the same basic principles of the functional languages.  &lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0in 0in 0pt" class=Div&gt;&lt;span lang=RU&gt;&lt;font size=2&gt;&lt;/font&gt;&lt;/span&gt; &lt;/p&gt;
&lt;p style="margin:0in 0in 0pt" class=Div&gt;&lt;span lang=RU&gt;&lt;font size=2&gt;Right now I'm looking closer to two technologies that I think they are going to be something extraordinary: &lt;/font&gt;&lt;a href="http://msdn.microsoft.com/en-us/devlabs/ee794896.aspx"&gt;&lt;font size=2&gt;&lt;span&gt;&lt;span style="color:blue"&gt;RX&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/font&gt;&lt;/a&gt;&lt;a name=icux&gt;&lt;/a&gt;&lt;span&gt;&lt;/span&gt;&lt;font size=2&gt; and &lt;/font&gt;&lt;a href="http://msdn.microsoft.com/en-us/netframework/aa904594.aspx"&gt;&lt;font size=2&gt;&lt;span&gt;&lt;span style="color:blue"&gt;LINQ&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/font&gt;&lt;/a&gt;&lt;a name="i:b8"&gt;&lt;/a&gt;&lt;span&gt;&lt;/span&gt;&lt;font size=2&gt;. &lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0in 0in 0pt" class=Div&gt;&lt;span lang=RU&gt;&lt;font size=2&gt;&lt;/font&gt;&lt;/span&gt; &lt;/p&gt;
&lt;p style="margin:0in 0in 0pt" class=Div&gt;&lt;span lang=RU&gt;&lt;font size=2&gt;LINQ is already a powerful extension to C#, but also there's an &lt;/font&gt;&lt;a href="http://linqjs.codeplex.com/"&gt;&lt;font size=2&gt;&lt;span&gt;&lt;span style="color:blue"&gt;extension for Javascript&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/font&gt;&lt;/a&gt;&lt;a name=djxz&gt;&lt;/a&gt;&lt;span&gt;&lt;/span&gt;&lt;font size=2&gt;. LINQ gives you a lot of freedom in data manipulation, together with jQuery gives you flexibility and lightness in reports of complex data, in custom controls, and in all that I thought were impossible in the client side. &lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0in 0in 0pt" class=Div&gt;&lt;span lang=RU&gt;&lt;font size=2&gt;&lt;/font&gt;&lt;/span&gt; &lt;/p&gt;
&lt;p style="margin:0in 0in 0pt" class=Div&gt;&lt;span lang=RU&gt;&lt;font size=2&gt;Look at this example of LINQ in javascript: &lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0in 0in 0pt" class=Div&gt;&lt;span lang=RU&gt;&lt;font size=2&gt;&lt;/font&gt;&lt;/span&gt; &lt;/p&gt;
&lt;p style="margin:0in 0in 0pt" class=Div&gt;&lt;font size=2&gt;&lt;span style="font-family:'ɼourier New''" lang=RU&gt;// $.Enumerable&lt;/span&gt;&lt;span lang=RU&gt; &lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin:0in 0in 0pt" class=Div&gt;&lt;font size=2&gt;&lt;span style="font-family:'ɼourier New''" lang=RU&gt;$.Enumerable.Range(1, 10).Where(&amp;quot;$%2==0&amp;quot;).ForEach(&amp;quot;alert($)&amp;quot;);&lt;/span&gt;&lt;span lang=RU&gt; &lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin:0in 0in 0pt" class=Div&gt;&lt;font size=2&gt;&lt;span style="font-family:'ɼourier New''" lang=RU&gt;// TojQuery - Enumerable to jQuery&lt;/span&gt;&lt;span lang=RU&gt; &lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin:0in 0in 0pt" class=Div&gt;&lt;font size=2&gt;&lt;span style="font-family:'ɼourier New''" lang=RU&gt;$.Enumerable.Range(1, 10)&lt;/span&gt;&lt;span lang=RU&gt; &lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin:0in 0in 0pt" class=Div&gt;&lt;font size=2&gt;&lt;span style="font-family:'ɼourier New''" lang=RU&gt;    .Select(function (i) { return $(&amp;quot;&amp;lt;option&amp;gt;&amp;quot;).text(i) })&lt;/span&gt;&lt;span lang=RU&gt; &lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin:0in 0in 0pt" class=Div&gt;&lt;font size=2&gt;&lt;span style="font-family:'ɼourier New''" lang=RU&gt;    .TojQuery()&lt;/span&gt;&lt;span lang=RU&gt; &lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin:0in 0in 0pt" class=Div&gt;&lt;font size=2&gt;&lt;span style="font-family:'ɼourier New''" lang=RU&gt;    .appendTo(&amp;quot;#select1&amp;quot;);&lt;/span&gt;&lt;span lang=RU&gt; &lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin:0in 0in 0pt" class=Div&gt;&lt;font size=2&gt;&lt;span style="font-family:'ɼourier New''" lang=RU&gt;// toEnumerable - jQuery to Enumerable&lt;/span&gt;&lt;span lang=RU&gt; &lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin:0in 0in 0pt" class=Div&gt;&lt;font size=2&gt;&lt;span style="font-family:'ɼourier New''" lang=RU&gt;var sum = $(&amp;quot;#select1&amp;quot;).children()&lt;/span&gt;&lt;span lang=RU&gt; &lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin:0in 0in 0pt" class=Div&gt;&lt;font size=2&gt;&lt;span style="font-family:'ɼourier New''" lang=RU&gt;    .toEnumerable()&lt;/span&gt;&lt;span lang=RU&gt; &lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin:0in 0in 0pt" class=Div&gt;&lt;font size=2&gt;&lt;span style="font-family:'ɼourier New''" lang=RU&gt;    .Select(&amp;quot;parseInt($.text())&amp;quot;)&lt;/span&gt;&lt;span lang=RU&gt; &lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin:0in 0in 0pt" class=Div&gt;&lt;font size=2&gt;&lt;span style="font-family:'ɼourier New''" lang=RU&gt;    .Sum(); // 55&lt;/span&gt;&lt;span lang=RU&gt; &lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin:0in 0in 0pt" class=Div&gt;&lt;font size=2&gt;&lt;span lang=RU&gt;&lt;/span&gt;&lt;/font&gt; &lt;/p&gt;
&lt;p style="margin:0in 0in 0pt" class=Div&gt;&lt;span lang=RU&gt;&lt;font size=2&gt;It's the same thinking of LINQ in C#, and it's integrated with jQuery with endless possibilities! &lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0in 0in 0pt" class=Div&gt;&lt;span lang=RU&gt;&lt;font size=2&gt;&lt;/font&gt;&lt;/span&gt; &lt;/p&gt;
&lt;p style="margin:0in 0in 0pt" class=Div&gt;&lt;span lang=RU&gt;&lt;font size=2&gt;The next technology is RX -as in Reactive Extension-. It's similar to LINQ and is also in C#, but it's focused to events. The beauty of RX is that suddenly something as complex as drag and drop in javascript is though and wrote as: &lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0in 0in 0pt" class=Div&gt;&lt;span lang=RU&gt;&lt;font size=2&gt;&lt;/font&gt;&lt;/span&gt; &lt;/p&gt;
&lt;p style="margin:0in 0in 0pt" class=Div&gt;&lt;font size=2&gt;&lt;span style="font-family:'ɼourier New''" lang=RU&gt;//Get the context with jQuery&lt;/span&gt;&lt;span lang=RU&gt; &lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin:0in 0in 0pt" class=Div&gt;&lt;font size=2&gt;&lt;span style="font-family:'ɼourier New''" lang=RU&gt;var mouseDragMe = $(&amp;quot;#mouseDragMe&amp;quot;).context;&lt;/span&gt;&lt;span lang=RU&gt; &lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin:0in 0in 0pt" class=Div&gt;&lt;font size=2&gt;&lt;span style="font-family:'ɼourier New''" lang=RU&gt;//Make it observable&lt;/span&gt;&lt;span lang=RU&gt; &lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin:0in 0in 0pt" class=Div&gt;&lt;font size=2&gt;&lt;span style="font-family:'ɼourier New''" lang=RU&gt;var mouseMove = Rx.Observable.FromHtmlEvent(mouseDragMe, &amp;quot;mousemove&amp;quot;);&lt;/span&gt;&lt;span lang=RU&gt; &lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin:0in 0in 0pt" class=Div&gt;&lt;font size=2&gt;&lt;span style="font-family:'ɼourier New''" lang=RU&gt;var mouseUp = Rx.Observable.FromHtmlEvent(mouseDragMe, &amp;quot;mouseup&amp;quot;);&lt;/span&gt;&lt;span lang=RU&gt; &lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin:0in 0in 0pt" class=Div&gt;&lt;font size=2&gt;&lt;span style="font-family:'ɼourier New''" lang=RU&gt;var mouseDown = Rx.Observable.FromHtmlEvent(mouseDragMe, &amp;quot;mousedown&amp;quot;);&lt;/span&gt;&lt;span lang=RU&gt; &lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin:0in 0in 0pt" class=Div&gt;&lt;font size=2&gt;&lt;span style="font-family:'ɼourier New''" lang=RU&gt;//Describe the gesture&lt;/span&gt;&lt;span lang=RU&gt; &lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin:0in 0in 0pt" class=Div&gt;&lt;font size=2&gt;&lt;span style="font-family:'ɼourier New''" lang=RU&gt;var mouseMoves = mouseMove&lt;/span&gt;&lt;span lang=RU&gt; &lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin:0in 0in 0pt" class=Div&gt;&lt;font size=2&gt;&lt;span style="font-family:'ɼourier New''" lang=RU&gt;    .Skip(1)&lt;/span&gt;&lt;span lang=RU&gt; &lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin:0in 0in 0pt" class=Div&gt;&lt;font size=2&gt;&lt;span style="font-family:'ɼourier New''" lang=RU&gt;    .Zip(mouseMove, function(left, right) {&lt;/span&gt;&lt;span lang=RU&gt; &lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin:0in 0in 0pt" class=Div&gt;&lt;font size=2&gt;&lt;span style="font-family:'ɼourier New''" lang=RU&gt;        return { x1 : left.clientX,&lt;/span&gt;&lt;span lang=RU&gt; &lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin:0in 0in 0pt" class=Div&gt;&lt;font size=2&gt;&lt;span style="font-family:'ɼourier New''" lang=RU&gt;                 y1 : left.clientY,&lt;/span&gt;&lt;span lang=RU&gt; &lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin:0in 0in 0pt" class=Div&gt;&lt;font size=2&gt;&lt;span style="font-family:'ɼourier New''" lang=RU&gt;                 x2 : right.clientX,&lt;/span&gt;&lt;span lang=RU&gt; &lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin:0in 0in 0pt" class=Div&gt;&lt;font size=2&gt;&lt;span style="font-family:'ɼourier New''" lang=RU&gt;                 y2 : right.clientY };&lt;/span&gt;&lt;span lang=RU&gt; &lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin:0in 0in 0pt" class=Div&gt;&lt;font size=2&gt;&lt;span style="font-family:'ɼourier New''" lang=RU&gt;    });&lt;/span&gt;&lt;span lang=RU&gt; &lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin:0in 0in 0pt" class=Div&gt;&lt;font size=2&gt;&lt;span style="font-family:'ɼourier New''" lang=RU&gt;var mouseDrags = mouseDown.SelectMany(function(md) {&lt;/span&gt;&lt;span lang=RU&gt; &lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin:0in 0in 0pt" class=Div&gt;&lt;font size=2&gt;&lt;span style="font-family:'ɼourier New''" lang=RU&gt;    return mouseMoves.TakeUntil(mouseUp);&lt;/span&gt;&lt;span lang=RU&gt; &lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin:0in 0in 0pt" class=Div&gt;&lt;font size=2&gt;&lt;span style="font-family:'ɼourier New''" lang=RU&gt;});&lt;/span&gt;&lt;span lang=RU&gt; &lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin:0in 0in 0pt" class=Div&gt;&lt;font size=2&gt;&lt;span style="font-family:'ɼourier New''" lang=RU&gt;mouseDrags.Subscribe(function(mouseEvents) {&lt;/span&gt;&lt;span lang=RU&gt; &lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin:0in 0in 0pt" class=Div&gt;&lt;font size=2&gt;&lt;span style="font-family:'ɼourier New''" lang=RU&gt;    $(&amp;quot;#results&amp;quot;).html(&lt;/span&gt;&lt;span lang=RU&gt; &lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin:0in 0in 0pt" class=Div&gt;&lt;font size=2&gt;&lt;span style="font-family:'ɼourier New''" lang=RU&gt;        &amp;quot;Old (X: &amp;quot; + mouseEvents.x1 + &amp;quot; Y: &amp;quot; + mouseEvents.y1 + &amp;quot;) &amp;quot; +&lt;/span&gt;&lt;span lang=RU&gt; &lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin:0in 0in 0pt" class=Div&gt;&lt;font size=2&gt;&lt;span style="font-family:'ɼourier New''" lang=RU&gt;        &amp;quot;New (X: &amp;quot; + mouseEvents.x2 + &amp;quot; Y: &amp;quot; + mouseEvents.y2 + &amp;quot;)&amp;quot;);&lt;/span&gt;&lt;span lang=RU&gt; &lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin:0in 0in 0pt" class=Div&gt;&lt;font size=2&gt;&lt;span style="font-family:'ɼourier New''" lang=RU&gt;});&lt;/span&gt;&lt;span lang=RU&gt; &lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin:0in 0in 0pt" class=Div&gt;&lt;font size=2&gt;&lt;span lang=RU&gt;&lt;/span&gt;&lt;/font&gt; &lt;/p&gt;
&lt;p style="margin:0in 0in 0pt" class=Div&gt;&lt;span lang=RU&gt;&lt;font size=2&gt;If you followed the code you should notice that it is very clean and understandable, and it also integrates with jQuery... you know, endless possibilities ^_^ &lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0in 0in 0pt" class=Div&gt;&lt;span lang=RU&gt;&lt;font size=2&gt;&lt;/font&gt;&lt;/span&gt; &lt;/p&gt;
&lt;p style="margin:0in 0in 0pt" class=Div&gt;&lt;span lang=RU&gt;&lt;font size=2&gt;Javascript is something extraordinary, I'm looking forward to these and other technologies. With all the new concepts and new ideas that every day arise, I love more my profession as a humble Developer. &lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;
&lt;div&gt;&lt;b&gt;Published:&lt;/b&gt; 11/14/2011 11:05 AM&lt;/div&gt;
&lt;div&gt;&lt;b&gt;BlogTitleForUrl:&lt;/b&gt; powerful-javascript&lt;/div&gt;
&lt;div&gt;&lt;b&gt;Categories:&lt;/b&gt; Best Practices;JavaScript;The Web&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/sieena/blog/~4/BvPDlmpjEcA" height="1" width="1"/&gt;</description>
      <author>Brenda Valadez</author>
      <pubDate>Mon, 14 Nov 2011 16:58:58 GMT</pubDate>
      <guid isPermaLink="false">http://www.sieena.com/blog/Lists/Posts/ViewPost.aspx?ID=132</guid>
    <feedburner:origLink>http://www.sieena.com/blog/Lists/Posts/ViewPost.aspx?ID=132</feedburner:origLink></item>
  </channel>
</rss>
