<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
  version="2.0">
  <channel>
    <title>With Great Power comes Great Response.write('Ability')</title>
    <atom:link
      href="https://docs.microsoft.com/archive/blogs/phaniraj/feed.xml"
      rel="self"
      type="application/rss+xml" />
    <link>https://docs.microsoft.com/archive/blogs/phaniraj/feed.xml</link>
    <description />
    <lastBuildDate>Wed, 17 Apr 2019 03:11:48 GMT</lastBuildDate>
    <language>en-US</language>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>1</sy:updateFrequency>
    <item>
      <title>Building a HQL IDE for Apache Hive</title>
      <link>https://docs.microsoft.com/archive/blogs/phaniraj/building-a-hql-ide-for-apache-hive</link>
      <pubDate>Mon, 17 Dec 2012 13:30:00 GMT</pubDate>
      <dc:creator><![CDATA[Phani Raju MSFT]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/phaniraj/2012/12/17/building-a-hql-ide-for-apache-hive/</guid>
      <description><![CDATA[My new team ( https://www.hadooponazure.com/) works on making Windows Server &amp; Windows Azure the...]]></description>
      <content:encoded><![CDATA[<p>My new team ( <a title="https://www.hadooponazure.com/" href="https://www.hadooponazure.com/">https://www.hadooponazure.com/</a>) works on making <br />Windows Server &amp; Windows Azure the best environment for hosting Hadoop.&nbsp;&nbsp; <br />As one my new challenges, I&rsquo;ve been tasked with building an editor / job manager to Apache Hive. <br />Seen below is my first draft at providing a terminal for running and saving Hive Jobs using HQL.</p>
<p>Please direct all comments/feedback to PhaniRaj AT Microsoft DOT COM</p>
<p>This is what the editor looks like&nbsp; :</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/75/24/metablogapi/6521.HiveQueryEditor_53FA16DB.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-75-24-metablogapi/6521.HiveQueryEditor_5F00_53FA16DB.png"><img style="border: 0px currentcolor; display: inline;" title="HiveQueryEditor" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/75/24/metablogapi/5543.HiveQueryEditor_thumb_1EED87AB.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-75-24-metablogapi/5543.HiveQueryEditor_5F00_thumb_5F00_1EED87AB.png" alt="HiveQueryEditor" width="806" height="436" border="0" /></a>&nbsp;</p>
<p>Let&rsquo;s start by first creating a connection to your local Hive server.</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/75/24/metablogapi/5047.CreateNewConnection_2CBFCDA6.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-75-24-metablogapi/5047.CreateNewConnection_5F00_2CBFCDA6.png"><img style="border: 0px currentcolor; display: inline;" title="CreateNewConnection" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/75/24/metablogapi/4061.CreateNewConnection_thumb_5EB76E30.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-75-24-metablogapi/4061.CreateNewConnection_5F00_thumb_5F00_5EB76E30.png" alt="CreateNewConnection" width="397" height="351" border="0" /></a></p>
<p>Once the connection is created, we connect to the Hive server by using the <a href="http://social.technet.microsoft.com/wiki/contents/articles/6226.how-to-connect-excel-to-hadoop-on-azure-via-hiveodbc-en-us.aspx">Microsoft ODBC Driver for Hive</a> . <br />We&rsquo;ll soon move the console over to use Apache&rsquo;s new Templeton apis for metadata access and job submission. <br />You can learn more about Templeton here : <a title="http://people.apache.org/~thejas/templeton_doc_latest/" href="http://people.apache.org/~thejas/templeton_doc_latest/">http://people.apache.org/~thejas/templeton_doc_latest/</a> </p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/75/24/metablogapi/3465.LoadingMetadata_6C89B42B.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-75-24-metablogapi/3465.LoadingMetadata_5F00_6C89B42B.png"><img style="border: 0px currentcolor; display: inline;" title="LoadingMetadata" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/75/24/metablogapi/7607.LoadingMetadata_thumb_4C6EA76E.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-75-24-metablogapi/7607.LoadingMetadata_5F00_thumb_5F00_4C6EA76E.png" alt="LoadingMetadata" width="240" height="96" border="0" /></a></p>
<h4>Support for basic Hive Metadata visualization</h4>
<p>We visualize the Hive metadata as a hierarchical tree-view .</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/75/24/metablogapi/7587.metadata_tree_2C539AB1.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-75-24-metablogapi/7587.metadata_5F00_tree_5F00_2C539AB1.png"><img style="border: 0px currentcolor; display: inline;" title="metadata_tree" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/75/24/metablogapi/5444.metadata_tree_thumb_25345E39.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-75-24-metablogapi/5444.metadata_5F00_tree_5F00_thumb_5F00_25345E39.png" alt="metadata_tree" width="193" height="395" border="0" /></a></p>
<h4>A query editor for HQL that supports syntax coloring, auto completion and other fun activities.</h4>
<p>The IDE hosts an editor that supports auto completion &amp; syntax coloring for HQL keywords &amp; functions. <br />You can find HQL&rsquo;s language specification here : <a title="https://cwiki.apache.org/confluence/display/Hive/LanguageManual" href="https://cwiki.apache.org/confluence/display/Hive/LanguageManual">https://cwiki.apache.org/confluence/display/Hive/LanguageManual</a> <br /> <br />Clicking on a table name from the above tree view produces a sample query that selects the first 10 rows from the table.&nbsp;&nbsp;</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/75/24/metablogapi/3301.SampleQueryFromTable_572BFEC3.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-75-24-metablogapi/3301.SampleQueryFromTable_5F00_572BFEC3.png"><img style="border: 0px currentcolor; display: inline;" title="SampleQueryFromTable" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/75/24/metablogapi/2705.SampleQueryFromTable_thumb_4C027479.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-75-24-metablogapi/2705.SampleQueryFromTable_5F00_thumb_5F00_4C027479.png" alt="SampleQueryFromTable" width="302" height="357" border="0" /></a></p>
<p>You can edit this query or clear it and start over.</p>
<h4>HQL Code Snippets for common tasks in Hive</h4>
<p>We&rsquo;ve seeded the editor with some code snippets for common tasks . <br />Below is an example of the &ldquo;Create External Table&rdquo; code snippet.</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/75/24/metablogapi/5037.CodeSnippets1_2BE767BC.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-75-24-metablogapi/5037.CodeSnippets1_5F00_2BE767BC.png"><img style="border: 0px currentcolor; display: inline;" title="CodeSnippets1" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/75/24/metablogapi/3884.CodeSnippets1_thumb_5DDF0846.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-75-24-metablogapi/3884.CodeSnippets1_5F00_thumb_5F00_5DDF0846.png" alt="CodeSnippets1" width="472" height="244" border="0" /></a></p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/75/24/metablogapi/2388.CodeSnippets2_52B57DFC.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-75-24-metablogapi/2388.CodeSnippets2_5F00_52B57DFC.png"><img style="border: 0px currentcolor; display: inline;" title="CodeSnippets2" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/75/24/metablogapi/2311.CodeSnippets2_thumb_1DA8EECC.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-75-24-metablogapi/2311.CodeSnippets2_5F00_thumb_5F00_1DA8EECC.png" alt="CodeSnippets2" width="518" height="106" border="0" /></a>&nbsp;&nbsp; </p>
<h4>Auto completion&nbsp; support for hive Functions in the editor.</h4>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/75/24/metablogapi/7181.HiveFunctionsAutocompletion_2B7B34C7.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-75-24-metablogapi/7181.HiveFunctionsAutocompletion_5F00_2B7B34C7.png"><img style="border: 0px currentcolor; display: inline;" title="HiveFunctionsAutocompletion" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/75/24/metablogapi/6505.HiveFunctionsAutocompletion_thumb_726457C4.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-75-24-metablogapi/6505.HiveFunctionsAutocompletion_5F00_thumb_5F00_726457C4.png" alt="HiveFunctionsAutocompletion" width="379" height="191" border="0" /></a></p>
<p>&nbsp;</p>
<h4>Auto completion&nbsp; support for hive keywords in the editor.</h4>
<p>About 163 keywords in HQL are supported in the editor.</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/75/24/metablogapi/1738.HiveKeywordAutocompletion_766EA596.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-75-24-metablogapi/1738.HiveKeywordAutocompletion_5F00_766EA596.png"><img style="border: 0px currentcolor; display: inline;" title="HiveKeywordAutocompletion" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/75/24/metablogapi/7674.HiveKeywordAutocompletion_thumb_6B451B4C.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-75-24-metablogapi/7674.HiveKeywordAutocompletion_5F00_thumb_5F00_6B451B4C.png" alt="HiveKeywordAutocompletion" width="426" height="323" border="0" /></a></p>
<p>&nbsp;</p>
<h4>Metadata sensitive auto completion support for queries.</h4>
<p>We inject the metadata we gleaned from the Hive server into the editor so that <br />you can use intellisense on column names in your queries.</p>
<p>&nbsp;</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/75/24/metablogapi/8255.Metadata_autocompletion_6425DED4.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-75-24-metablogapi/8255.Metadata_5F00_autocompletion_5F00_6425DED4.png"><img style="border: 0px currentcolor; display: inline;" title="Metadata_autocompletion" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/75/24/metablogapi/0825.Metadata_autocompletion_thumb_440AD217.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-75-24-metablogapi/0825.Metadata_5F00_autocompletion_5F00_thumb_5F00_440AD217.png" alt="Metadata_autocompletion" width="378" height="378" border="0" /></a></p>
<p>Once you have the query written, hit &ldquo;Run Query&rdquo; to kick off query execution. <br />We kick off the Hive job and wait for its completion, intermittently polling for the results.</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/75/24/metablogapi/1212.QueryRunning_51DD1812.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-75-24-metablogapi/1212.QueryRunning_5F00_51DD1812.png"><img style="border: 0px currentcolor; display: inline;" title="QueryRunning" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/75/24/metablogapi/5444.QueryRunning_thumb_55E765E4.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-75-24-metablogapi/5444.QueryRunning_5F00_thumb_5F00_55E765E4.png" alt="QueryRunning" width="240" height="134" border="0" /></a></p>
<p>Once the query is finished successfully, you will see the query icon light up.</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/75/24/metablogapi/3301.QuerySucceeded_4ABDDB9A.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-75-24-metablogapi/3301.QuerySucceeded_5F00_4ABDDB9A.png"><img style="border: 0px currentcolor; display: inline;" title="QuerySucceeded" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/75/24/metablogapi/2705.QuerySucceeded_thumb_2AA2CEDD.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-75-24-metablogapi/2705.QuerySucceeded_5F00_thumb_5F00_2AA2CEDD.png" alt="QuerySucceeded" width="246" height="121" border="0" /></a></p>
<p>Clicking on the query icon should bring up the results in a tabular format.</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/75/24/metablogapi/1727.QueryResults_0A87C220.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-75-24-metablogapi/1727.QueryResults_5F00_0A87C220.png"><img style="border: 0px currentcolor; display: inline;" title="QueryResults" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/75/24/metablogapi/2388.QueryResults_thumb_557B32EF.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-75-24-metablogapi/2388.QueryResults_5F00_thumb_5F00_557B32EF.png" alt="QueryResults" width="640" height="410" border="0" /></a></p>
<p>If on the other hand, the query failed, you will see a &ldquo;query failed&rdquo; icon next to the query.</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/75/24/metablogapi/1803.QueryFailed_70B38BF0.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-75-24-metablogapi/1803.QueryFailed_5F00_70B38BF0.png"><img style="border: 0px currentcolor; display: inline;" title="QueryFailed" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/75/24/metablogapi/8750.QueryFailed_thumb_09AF5C36.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-75-24-metablogapi/8750.QueryFailed_5F00_thumb_5F00_09AF5C36.png" alt="QueryFailed" width="266" height="102" border="0" /></a></p>
<p>Clicking on this will bring up a window with links where you can further see details about why the query failed.</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/75/24/metablogapi/7587.QueryFailed_details_69944F78.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-75-24-metablogapi/7587.QueryFailed_5F00_details_5F00_69944F78.png"><img style="border: 0px currentcolor; display: inline;" title="QueryFailed_details" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/75/24/metablogapi/5025.QueryFailed_details_thumb_1B8BF003.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-75-24-metablogapi/5025.QueryFailed_5F00_details_5F00_thumb_5F00_1B8BF003.png" alt="QueryFailed_details" width="682" height="154" border="0" />&nbsp;</a></p>
<p>In conclusion, I hope this is something that you find useful. <br />As always your feedback and comments are welcome at my email mentioned above. <br />There&rsquo;s many other features that we&rsquo;re planning for this editor and will post regular updates to this work as we progress.</p>]]></content:encoded>
    </item>
    <item>
      <title>Async extension methods for OData Windows 8 client library</title>
      <link>https://docs.microsoft.com/archive/blogs/phaniraj/async-extension-methods-for-odata-windows-8-client-library</link>
      <pubDate>Wed, 22 Aug 2012 09:46:00 GMT</pubDate>
      <dc:creator><![CDATA[Phani Raju MSFT]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/phaniraj/2012/08/22/async-extension-methods-for-odata-windows-8-client-library/</guid>
      <description><![CDATA[If you’re writing Windows Store applications and want to use the async goodness that the platform...]]></description>
      <content:encoded><![CDATA[<p>If you’re writing Windows Store applications and want to use the async goodness that the platform allows with your OData client applications,    <br />take a look at these extension methods that allow you to use the await and async keywords in your apps.     <br />    <br />Some useful links </p>  <ul>   <li><a href="http://www.microsoft.com/en-us/download/details.aspx?id=30714">WCF Data Services Tools for Windows Store Apps RC</a></li>    <li><a href="http://msdn.microsoft.com/en-us/vstudio/async.aspx">Visual Studio Asynchronous Programming</a></li>    <li><a href="http://msdn.microsoft.com/en-us/windows/apps/br229516.aspx">Downloads for Metro style app development</a></li> </ul>  <p>&#160;</p> <script src="https://gist.github.com/3427256.js"> </script>]]></content:encoded>
    </item>
    <item>
      <title>Upcoming edits to the OData Explorer.</title>
      <link>https://docs.microsoft.com/archive/blogs/phaniraj/upcoming-edits-to-the-odata-explorer</link>
      <pubDate>Tue, 29 May 2012 12:31:00 GMT</pubDate>
      <dc:creator><![CDATA[Phani Raju MSFT]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/phaniraj/2012/05/29/upcoming-edits-to-the-odata-explorer/</guid>
      <description><![CDATA[This blog post outlines some key changes to the OData Explorer which should be published soon. Take...]]></description>
      <content:encoded><![CDATA[<p>This blog post outlines some key changes to the OData Explorer which should be published soon. <br />Take a look below and let me know what you think.The overall theme is simplicity , <br />we&rsquo;ve removed a lot of superfluous cruft in the UI . Also, moving to OData Library and <br />Edm Library has helped me get rid of pesky bugs that existed in the last version.</p>
<h4>Add new workspace window</h4>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/75/24/metablogapi/2211.AddnewWorkspace_1EE7DE03.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-75-24-metablogapi/2211.AddnewWorkspace_5F00_1EE7DE03.png"><img style="border: 0px currentcolor; display: inline; background-image: none;" title="AddnewWorkspace" border="0" alt="AddnewWorkspace" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/75/24/metablogapi/1638.AddnewWorkspace_thumb_2C4DF109.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-75-24-metablogapi/1638.AddnewWorkspace_5F00_thumb_5F00_2C4DF109.png" width="240" height="158" /></a></p>
<h4>Browse collections exposed by an OData Service.</h4>
<p>&nbsp;</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/75/24/metablogapi/3113.SelectCollection_6C17D78E.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-75-24-metablogapi/3113.SelectCollection_5F00_6C17D78E.png"><img style="display: inline; background-image: none;" title="SelectCollection" border="0" alt="SelectCollection" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/75/24/metablogapi/0564.SelectCollection_thumb_72CAE111.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-75-24-metablogapi/0564.SelectCollection_5F00_thumb_5F00_72CAE111.png" width="338" height="484" />&nbsp;</a></p>
<p>&nbsp;</p>
<h4>Get first 50 rows from a collection in the OData Service.</h4>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/75/24/metablogapi/5367.SelectProducts_04A774DF.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-75-24-metablogapi/5367.SelectProducts_5F00_04A774DF.png"><img style="border: 0px currentcolor; display: inline; background-image: none;" title="SelectProducts" border="0" alt="SelectProducts" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/75/24/metablogapi/0160.SelectProducts_thumb_725EAE1C.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-75-24-metablogapi/0160.SelectProducts_5F00_thumb_5F00_725EAE1C.png" width="644" height="360" />&nbsp;</a></p>
<h4>Filter by reference navigation properties in the Query Builder menu.</h4>
<p><br />If a type Product has a&nbsp; 1:1 relationship with Categories, you can filter a Products by properties of its <br />Category.</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/75/24/metablogapi/1145.FilterByNavigationProperty_322894A2.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-75-24-metablogapi/1145.FilterByNavigationProperty_5F00_322894A2.png"><img style="border: 0px currentcolor; display: inline; background-image: none;" title="FilterByNavigationProperty" border="0" alt="FilterByNavigationProperty" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/75/24/metablogapi/8562.FilterByNavigationProperty_thumb_4405286F.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-75-24-metablogapi/8562.FilterByNavigationProperty_5F00_thumb_5F00_4405286F.png" width="568" height="484" />&nbsp;</a></p>
<h4>Clicking on &ldquo;Edit&rdquo; next to each row in the grid brings up the edit menu which allows you to :</h4>
<h4>Edit property values and save to the server . <br /><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/75/24/metablogapi/2318.EditTable_1CCADF3A.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-75-24-metablogapi/2318.EditTable_5F00_1CCADF3A.png"><img style="display: inline; background-image: none;" title="EditTable" border="0" alt="EditTable" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/75/24/metablogapi/8883.EditTable_thumb_588A77ED.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-75-24-metablogapi/8883.EditTable_5F00_thumb_5F00_588A77ED.png" width="355" height="484" /></a> <br /> <br />Edit Raw ATOM for an entity and save to the server</h4>
<p>Use this feature to send malformed ATOM payloads to your service and test how the server handles it.</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/75/24/metablogapi/2630.EditRawAtom_6A670BBA.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-75-24-metablogapi/2630.EditRawAtom_5F00_6A670BBA.png"><img style="display: inline; background-image: none;" title="EditRawAtom" border="0" alt="EditRawAtom" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/75/24/metablogapi/7433.EditRawAtom_thumb_2A30F240.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-75-24-metablogapi/7433.EditRawAtom_5F00_thumb_5F00_2A30F240.png" width="411" height="484" /></a></p>
<h4>Edit Raw JSON for an entity and save to the server.</h4>
<p>Use this feature to send malformed JSON payloads to your service and test how the server handles it. <br /> <br /><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/75/24/metablogapi/0160.EditRawJSON_3C0D860D.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-75-24-metablogapi/0160.EditRawJSON_5F00_3C0D860D.png"><img style="display: inline; background-image: none;" title="EditRawJSON" border="0" alt="EditRawJSON" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/75/24/metablogapi/1145.EditRawJSON_thumb_62DB9C4D.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-75-24-metablogapi/1145.EditRawJSON_5F00_thumb_5F00_62DB9C4D.png" width="374" height="484" /></a></p>]]></content:encoded>
    </item>
    <item>
      <title>Bookmarklet to customize Facebook buttons</title>
      <link>https://docs.microsoft.com/archive/blogs/phaniraj/bookmarklet-to-customize-facebook-buttons</link>
      <pubDate>Wed, 16 May 2012 14:53:00 GMT</pubDate>
      <dc:creator><![CDATA[Phani Raju MSFT]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/phaniraj/2012/05/16/bookmarklet-to-customize-facebook-buttons/</guid>
      <description><![CDATA[What is it ?&nbsp;
This bookmarklet is a simple javascript function that changes the contents of...]]></description>
      <content:encoded><![CDATA[<p><br /><span style="font-size: medium;">What is it ?&nbsp;</span></p>
<p><span style="font-size: small;">This bookmarklet is a simple javascript function that changes the contents of standard buttons on Facebook.com.<br /></span><span style="font-size: small;">It changes the "Like" button content to be "Can you Dig it?", unlike to "Stop Digging it", and Comment to "Holler!"</span></p>
<p><span style="font-size: medium;">How do I install this bookmarklet ?</span>&nbsp;</p>
<p><span style="font-size: small;">Step 1 : Right-click this link and select "Copy Link address",<a href="javascript:function digIt(){var cLT=function(l,m){l.value=m;l.title=m;};var cLH=function(l,m){l.innerHTML=m;l.title=m;};var gECN=function(cN){return document.getElementsByClassName(cN);};var lMr=&quot;Can you Dig it?&quot;;var i=0;var links=gECN(&quot;default_message&quot;);for(i=0;i<links.length;i++){cLH(links[i],links[i].innerHTML==&quot;Like&quot;?lMr:&quot;Stop digging it&quot;);}var lBs=gECN(&quot;like_link&quot;);for(i=0;i<lBs.length;i++){cLT(lBs[i],lMr);}var cL=gECN(&quot;comment_link&quot;);for(i=0;i<cL.length;i++){cLT(cL[i].firstChild,&quot;Holler!&quot;)}};digIt();"> Bookmarklet link</a></span><br /><span style="font-size: small;">Step 2 : Open the bookmarklet manager in your browser and add a bookmark with the contents of the above link as the Link Address.</span><br /><span style="font-size: small;">Step 3 : Open up facebook.com and click the bookmark you created in Step 2.&nbsp;</span><br /><span style="font-size: small;">Step 4 : Profit !&nbsp;</span></p>]]></content:encoded>
    </item>
    <item>
      <title>Developing Windows 8 Metro style applications that consume OData</title>
      <link>https://docs.microsoft.com/archive/blogs/phaniraj/developing-windows-8-metro-style-applications-that-consume-odata</link>
      <pubDate>Thu, 26 Apr 2012 10:38:00 GMT</pubDate>
      <dc:creator><![CDATA[Phani Raju MSFT]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/phaniraj/2012/04/26/developing-windows-8-metro-style-applications-that-consume-odata/</guid>
      <description><![CDATA[The Source code for the sample app is available here ( Download )
You&rsquo;ll need : 1. Windows 8...]]></description>
      <content:encoded><![CDATA[<p>The Source code for the sample app is available here ( <a href="http://sdrv.ms/IrEzwN">Download</a> )</p>
<p>You&rsquo;ll need : <br />1. <a href="http://msdn.microsoft.com/en-us/windows/apps">Windows 8 Consumer preview and developer tools</a> <br />2. OData Client library preview for Windows 8 Metro ( <b><span>Update:&nbsp;</span></b><span><a href="https://sn2prd0310.outlook.com/owa/14.16.152.1/scripts/premium/redir.aspx?C=cvlFgTtlT0a3UGVHy3SS3lS3A-uhFc8Iz3KR2we21q2WSAxNQsPyqNAtVaqhFlSzDdP1bKucMx8.&amp;URL=http%3a%2f%2fwww.microsoft.com%2fvisualstudio%2f11%2fen-us%2fdownloads%3fWT.mc_id%3dMSCOM_EN_US_HP_CAROUSEL_124GMUS017412%26CR_CC%3d200088137%23groups" target="_blank">Visual Studio 2012 RC</a>&nbsp;has been released and contains an updated version of these assemblies, along with fully-integrated support for Add Service Reference. Install the Ultimate, Professional, or Premium editions on&nbsp;<a href="https://sn2prd0310.outlook.com/owa/14.16.152.1/scripts/premium/redir.aspx?C=cvlFgTtlT0a3UGVHy3SS3lS3A-uhFc8Iz3KR2we21q2WSAxNQsPyqNAtVaqhFlSzDdP1bKucMx8.&amp;URL=http%3a%2f%2fwindows.microsoft.com%2fen-US%2fwindows-8%2frelease-preview" target="_blank">Windows 8 Release Preview</a>&nbsp;to get the update.</span>) . <br /> <br />We&rsquo;re releasing a preview version of the client libraries for Windows 8 Metro-Style applications to give our users <br />the ability to create applications that work on Windows 8 .&nbsp;&nbsp; This client library will work with servers <br />that comply with the OData v1-v3 protocols. In the blog post below we will describe a sample application <br />we built and is available for download using this client library.</p>
<p>Step Zero is to generate the client types for the Netflix OData Service using the DataSvcUtil.exe tool. <br />We haven&rsquo;t updated the &ldquo;Add Service Reference&rdquo;&nbsp; gesture in Visual Studio 11 yet, so you&rsquo;ll have to generate the client <br />types manually . <br /> <br />Here is how you generate the client proxy types for the Netflix OData Service</p>
<p>Open a command prompt as administrator and navigate to %windir%\Microsoft.NET\Framework\v4.0.30128</p>
<p>Run this command :</p>
<p>DataSvcutil.exe /uri:<a href="http://odata.netflix.com/Catalog/">http://odata.netflix.com/Catalog/</a> /DataServiceCollection /Version:2.0 <br /> /out:netflixClientTypes.cs</p>
<p>Copy the generated netflixClientTypes.cs file into the application you create in the next step.</p>
<p>Open Visual Studio&nbsp;11 &gt; &ldquo;Create new Project&rdquo; &gt;&rdquo;Grid Application&rdquo;</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/75/24/metablogapi/0726.New_Metro_Grid_Project_3675B0B9.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-75-24-metablogapi/0726.New_5F00_Metro_5F00_Grid_5F00_Project_5F00_3675B0B9.png"><img width="640" height="439" title="New_Metro_Grid_Project" style="border: 0px currentcolor; display: inline; background-image: none;" alt="New_Metro_Grid_Project" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/75/24/metablogapi/0317.New_Metro_Grid_Project_thumb_0F3B6784.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-75-24-metablogapi/0317.New_5F00_Metro_5F00_Grid_5F00_Project_5F00_thumb_5F00_0F3B6784.png" border="0" /></a></p>
<p>&nbsp;</p>
<h4>&ldquo;Genres&rdquo; view</h4>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/75/24/metablogapi/6406.Genres_20ABC85C.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-75-24-metablogapi/6406.Genres_5F00_20ABC85C.png"><img width="465" height="480" title="Genres" style="border: 0px currentcolor; display: inline; background-image: none;" alt="Genres" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/75/24/metablogapi/4428.Genres_thumb_275ED1DF.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-75-24-metablogapi/4428.Genres_5F00_thumb_5F00_275ED1DF.png" border="0" /></a></p>
<p>&nbsp;&nbsp;</p>
<p>To build this view, we will add an &ldquo;Items Page&rdquo; and customize the Item template to display <br />details specific to the &ldquo;Genre&rdquo; type in the client types such as &ldquo;Name&rdquo;. <br />We further create a custom property called &ldquo;TileTitle&rdquo; which is the first title in the genre, <br /> to see how this is implemented, please consult the ODataSampleViewModel.cs file. <br />When a user selects a &ldquo;Genre&rdquo; we will set the &ldquo;SelectedGenre&rdquo; property on the view model <br />and navigate to the &ldquo;Titles&rdquo; screen shown below.</p>
<p>&nbsp;</p>
<h4>&ldquo;Titles In Genre&rdquo; view.</h4>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/75/24/metablogapi/0702.Titles_470DABA7.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-75-24-metablogapi/0702.Titles_5F00_470DABA7.png"><img width="640" height="350" title="Titles" style="border: 0px currentcolor; display: inline; background-image: none;" alt="Titles" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/75/24/metablogapi/7242.Titles_thumb_5B92FB25.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-75-24-metablogapi/7242.Titles_5F00_thumb_5F00_5B92FB25.png" border="0" /></a></p>
<p>To create this view, we will add another &ldquo;Items Page&rdquo; and customize the item template to display details specific to the &ldquo;Title&rdquo; <br />type in the generated client types. To load these titles, we track the selected Genre and call the &ldquo;LoadTitlesForGenre&rdquo; <br />method on the view model with the selected genre. <br />When a user selects a Title, we navigate to the &ldquo;TitleDetails&rdquo; view shown below, with the selected title as a navigation parameter.</p>
<h4>&ldquo;Title Details&rdquo; view :</h4>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/75/24/metablogapi/4812.TitleDetail_6650527A.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-75-24-metablogapi/4812.TitleDetail_5F00_6650527A.png"><img width="373" height="480" title="TitleDetail" style="border: 0px currentcolor; display: inline; background-image: none;" alt="TitleDetail" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/75/24/metablogapi/7167.TitleDetail_thumb_261A3900.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-75-24-metablogapi/7167.TitleDetail_5F00_thumb_5F00_261A3900.png" border="0" /></a></p>
<p>To create this view, we add a &ldquo;Basic page&rdquo; and customize the layout to show the above content <br />from the selected title which is passed in as a navigation parameter.</p>
<p>Phani Raj, <br />Software Design Engineer 2, <br />OData / WCF Data Services</p>]]></content:encoded>
    </item>
    <item>
      <title>Updated Site navigation</title>
      <link>https://docs.microsoft.com/archive/blogs/phaniraj/updated-site-navigation</link>
      <pubDate>Sun, 13 Nov 2011 10:30:01 GMT</pubDate>
      <dc:creator><![CDATA[Phani Raju MSFT]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/phaniraj/2011/11/13/updated-site-navigation/</guid>
      <description><![CDATA[I've updated the site navigation to make it easier for my blog visitors to find useful links and...]]></description>
      <content:encoded><![CDATA[<p>I've updated the site navigation to make it easier for my blog visitors to find useful links and quick answers to the questions they come here with.<br />After analyzing the number of views on my blog posts, I've curated them into links in the left hand side under :</p>
<ol>
<li>Useful links for OData Server applications : a list of links for debugging/configuring your OData Server application.</li>
<li>Useful links for OData Cilent applications : a list of links for using the Data Services client library, DataServiceContext, effectively in your client applications.</li>
<li>OData applications I built : Self-promoting set of links for applications I've built which either use OData or enable people to browse OData feeds.</li>
</ol>]]></content:encoded>
    </item>
    <item>
      <title>Excel 2007 and consuming OData services</title>
      <link>https://docs.microsoft.com/archive/blogs/phaniraj/excel-2007-and-consuming-odata-services</link>
      <pubDate>Tue, 06 Sep 2011 00:19:00 GMT</pubDate>
      <dc:creator><![CDATA[Phani Raju MSFT]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/phaniraj/2011/09/06/excel-2007-and-consuming-odata-services/</guid>
      <description><![CDATA[Hi all,
I'm running a short survey to guage interest in an Excel 2007 plugin that reads OData...]]></description>
      <content:encoded><![CDATA[<p>Hi all,</p>
<p>I'm running a short survey to guage interest in an Excel 2007 plugin that reads OData feeds.</p>
<p>Please take this short survey so that I can figure out which scenarios you want to target with this plugin.</p>
<p><a href="http://www.surveymonkey.com/s/DCX9QH7" title="http://www.surveymonkey.com/s/DCX9QH7" target="_blank">Survey link</a></p>]]></content:encoded>
    </item>
    <item>
      <title>PBA</title>
      <link>https://docs.microsoft.com/archive/blogs/phaniraj/pba</link>
      <pubDate>Mon, 15 Aug 2011 10:42:59 GMT</pubDate>
      <dc:creator><![CDATA[Phani Raju MSFT]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/phaniraj/2011/08/15/pba/</guid>
      <description><![CDATA[Test post, please ignore.]]></description>
      <content:encoded><![CDATA[<p>Test post, please ignore.</p>]]></content:encoded>
    </item>
    <item>
      <title>T4 templates for WCF Data Services Part–II, Client Code-Gen</title>
      <link>https://docs.microsoft.com/archive/blogs/phaniraj/t4-templates-for-wcf-data-services-partii-client-code-gen</link>
      <pubDate>Thu, 03 Mar 2011 20:31:02 GMT</pubDate>
      <dc:creator><![CDATA[Phani Raju MSFT]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/phaniraj/2011/03/03/t4-templates-for-wcf-data-services-partii-client-code-gen/</guid>
      <description><![CDATA[Click here to download.  GenerateDataServiceContext.tt generates a strongly-typed...]]></description>
      <content:encoded><![CDATA[<p>   <br /><a href="http://cid-925c2d2bb2d03c6b.office.live.com/self.aspx/Blog%20Demos/WCF%20Data%20Services%20T4%20Templates.zip">Click here to download.</a></p>  <p><strong>GenerateDataServiceContext.tt </strong>generates a strongly-typed DataServiceContext type based on the service description.     <br />    <br /><strong>GenerateEntityTypes.tt</strong> generates the client-side proxies for entity types exposed by the OData service.</p>  <p><strong>GenerateViewModels.tt <strong>( Silverlight Only ) </strong></strong>generates viewmodels based on the entity type and provides some ease-of-use apis.</p>  <p>More documentation coming soon.</p>]]></content:encoded>
    </item>
    <item>
      <title>Lessons learnt building the Windows Phone OData browser</title>
      <link>https://docs.microsoft.com/archive/blogs/phaniraj/lessons-learnt-building-the-windows-phone-odata-browser</link>
      <pubDate>Sun, 06 Feb 2011 20:12:08 GMT</pubDate>
      <dc:creator><![CDATA[Phani Raju MSFT]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/phaniraj/2011/02/06/lessons-learnt-building-the-windows-phone-odata-browser/</guid>
      <description><![CDATA[One of the reasons for re-building the OData browser for Windows Phone was to experience first hand...]]></description>
      <content:encoded><![CDATA[<p>One of the reasons for re-building the OData browser for Windows Phone was to experience first hand the issues our developers face when writing an app for the marketplace that uses the client library my team produces. This blog post describes what I learnt as a developer on the OData browser and what feedback the team received after this exercise.   <br />    <br /><strong>Disclaimer </strong>: I wrote a lot of the code for the browser such as metadata parsing, dynamic service access without client types and other features for the <a href="http://Silverlight.net/ODataExplorer">Silverlight version of the OData browser.</a> About 40% of the code for the Windows Phone browser was brought over from the Silverlight version. The rest of the 60% of code is in the UI and the tombstoning management of data in the app. </p>  <h4>The Good : </h4>  <p><strong>1.</strong> The client library’s events the app depended upon were still present and worked just as well.     <br /><strong>2.</strong> The OData library had no issues at all with feeds of any kind ( paged/non-paged/with count ) , it worked without a hitch.    <br /><strong>3. </strong>The databinding classes worked fine for the Phone environment and completion fired events on the right( UI ) thread.&#160; <br /><strong>4. </strong>Tombstoning for DataServiceCollection and DataServiceContext works quite well for the rows in the app.     <br /><strong>5. </strong>The platform is quite nice for debugging on the physical device. Other than some really convoluted tombstoning issues, VS and the debugger chugged along just fine.</p>  <h4>The “Needs Improvement”:</h4>  <p><strong>1.</strong> The <a href="http://msdn.microsoft.com/en-us/library/ee652863(VS.95).aspx">DataServiceCollection.LoadAsync&lt;T&gt;</a> api doesn’t return an IAsyncResult when you call it.The reason this is important is because&#160; the marketplace’s certification requirements state that long running network tasks need a “Cancel” button. And the way to cancel a request made by the OData client library is to call CancelRequest on the DataServiceContext instance being used by the app. Since I was using DataServiceCollection in my app and kicking off requests using the LoadAsync and LoadNextPartialSetAsync apis, I couldn’t cancel the current request without a rewrite. Finally, I had to stop using the LoadAsync API on the collection and moved to using <a href="http://msdn.microsoft.com/en-us/library/cc646724(v=VS.90).aspx">DataServiceContext.BeginExecute&lt;T&gt;</a> which does return an IAsyncResult and I could CancelRequest when the UI shows the “Cancel” button.     <br /><strong>2. </strong>No Credentials support via <a href="http://msdn.microsoft.com/en-us/library/system.data.services.client.dataservicecontext.usedefaultcredentials(VS.95).aspx">UseDefaultCredentials</a> and <a href="http://msdn.microsoft.com/en-us/library/system.data.services.client.dataservicecontext.credentials(v=VS.95).aspx">Credentials</a> properties on the DataServiceContext&#160; type. This prevented me from adding support in the app for authenticated services.     <br /><strong>3. </strong>The emulator is slow on my laptop, I may have to buy a new laptop if I want to use the emulator for developing apps.And here’s a joke for sticking so far with this blog post.     <br /><em><font face="Tahoma">&#160;&#160;&#160; How slow is it ?        <br />&#160;&#160;&#160; It’s so slow that the January update for the Phone will be released by the time the emulator starts.</font></em></p>  <p>I am looking for other perspectives on developing apps for the marketplace with the OData client library.    <br />How do you find developing with the client library on the Phone ?     <br />What are your pet peeves ? and What are the top features you love ?</p>]]></content:encoded>
    </item>
  </channel>
</rss>