<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;CE8MSX8zcSp7ImA9WhRbEE8.&quot;"><id>tag:blogger.com,1999:blog-5179143545338829173</id><updated>2012-01-31T07:14:48.189-08:00</updated><category term="Personal" /><category term="Lagaan" /><category term="Uniform Interface" /><category term="BCS" /><category term="thread safe collections" /><category term="WCF Client" /><category term="Code warnings" /><category term="sys.server" /><category term="Windows Server 2008" /><category term="CRM Online" /><category term="Writing good code" /><category term="FetchXml" /><category term="Visual Studio Unit Test" /><category term="Exception Handling in REST" /><category term="Telnet" /><category term="Statelessness" /><category term="Code Generation" /><category term="Classic" /><category term="Visual Studio 2008" /><category term="thread safe ictionary" /><category term="Signing" /><category term="variable parameters" /><category term="URN" /><category term="Sharepoint 2010" /><category term="List" /><category term="ROA" /><category term="CRM2011" /><category term="Bing REST API" /><category term="TR9" /><category term="Cuil" /><category term="Services" /><category term="Notes Error" /><category term="8D8529D3-625D-4496-8354-3DAD630ECC1B" /><category term="Network Service credential" /><category term="NotesView" /><category term="bangalore traffic" /><category term="MySQL" /><category term="OBAF" /><category term="Visual Studio Package Load Failure" /><category term="Stunnware" /><category term="ItemReceivers" /><category term="Http Module" /><category term="Domino Interop" /><category term="AppPool" /><category term="URL" /><category term="Style Cop" /><category term=".NET Framework" /><category term="ESR/XI/PI" /><category term="IIS" /><category term="Role Privileges" /><category term="Synonym" /><category term="C# Keywords" /><category term="Assembly" /><category term="Plug in" /><category term="thread safe" /><category term="Custom Workflow Activity" /><category term="food bangalore" /><category term="auto generated code" /><category term="Connectedness" /><category term="Hyderabad" /><category term="Developer Summit" /><category term="Certificate" /><category term="Message ID" /><category term="Class not found" /><category term="Lotus Notes" /><category term="delegate" /><category term=".NET" /><category term="Options Set" /><category term="; Silverlight; Web Resource" /><category term="LIVE" /><category term="team spirit" /><category term="Cartoon" /><category term="34 bit process" /><category term="ApplicationException" /><category term="Palo Alto" /><category term="Addressability" /><category term="Powershell" /><category term="Binding Failure" /><category term="generic" /><category term="drive" /><category term="Exchange" /><category term="BDC" /><category term="Connection Closed" /><category term="Explorer" /><category term="11.30 deadline in bangalore" /><category term="SQL Server" /><category term="IT" /><category term="Replication" /><category term="GhostDoc" /><category term="documentary" /><category term="IE 8" /><category term="URI" /><category term="Strong Name" /><category term="SOA" /><category term="ReportServer" /><category term="GeneratedCode" /><category term="bangalore" /><category term="The Commons" /><category term="NCERT" /><category term="Seattle" /><category term="SMTP" /><category term="VSTestHost" /><category term="Santa Cruz" /><category term="GAC" /><category term="Telnet not working on Windows Server 2008" /><category term="Clustering" /><category term="Domino" /><category term="Oracle Duet" /><category term="PS2" /><category term="CBSE" /><category term="Linked Server" /><category term="SSL" /><category term="Product Review" /><category term="midnight food" /><category term="making of lagaan" /><category term="503" /><category term="Windows 7" /><category term="Speaker Sessions" /><category term="Scalability" /><category term="CA1" /><category term="Workflow Activity" /><category term="Reports" /><category term="REST" /><category term="California" /><category term="Mail Header" /><category term="chale chalo" /><category term="FTSearch" /><category term="Redmond" /><category term="Search" /><category term="MSDN In Person" /><category term="Registry" /><category term="Google" /><category term="CRM 2011 Beta" /><category term="SOAP" /><category term="C#" /><category term="Utility" /><category term="Integrated" /><category term="local server" /><category term="predicate" /><category term="NArrange" /><category term="params" /><category term="WCF" /><category term="NotesSQL" /><category term="Availability" /><category term="dictionary" /><category term="ROA Tenet" /><category term="GeoCode" /><category term="collections" /><category term="traffic" /><category term="drink and drive" /><category term="WCF Exceptions" /><category term="fuslogvw" /><category term="Debug Exceptions" /><category term="Books" /><category term="Duet" /><title>Dunno</title><subtitle type="html" /><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://luckyabhishek.blogspot.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://luckyabhishek.blogspot.com/" /><link rel="next" type="application/atom+xml" href="http://www.blogger.com/feeds/5179143545338829173/posts/default?start-index=26&amp;max-results=25&amp;redirect=false&amp;v=2" /><author><name>Abhishek</name><uri>http://www.blogger.com/profile/06037992570806202609</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>85</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/blogspot/rhnR" /><feedburner:info uri="blogspot/rhnr" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry gd:etag="W/&quot;CE8MSX8ycSp7ImA9WhRbEE8.&quot;"><id>tag:blogger.com,1999:blog-5179143545338829173.post-3843194888985792365</id><published>2012-01-31T07:14:00.000-08:00</published><updated>2012-01-31T07:14:48.199-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-31T07:14:48.199-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term=".NET Framework" /><category scheme="http://www.blogger.com/atom/ns#" term="ApplicationException" /><title>Deriving the Exceptions from Exception class or ApplicationException class</title><content type="html">&lt;div style="font-family: Verdana,sans-serif;"&gt;I was doing a code review today and chanced to look upon msdn to get some guidance around how to work with Exceptions.&amp;nbsp;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif;"&gt;Thankfully the guideline around the application specific exceptions derving from ApplicationException has changed and now it is advised that application developers should derive their exceptions from Exception class.&amp;nbsp;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif;"&gt;The reason for that is fairly simple. If all application exceptions had to derive from ApplicationException class then it would have meant that something as simple as ArgumentException had to be reinvented. Because applications do have cases where the ArgumentException has to be thrown and in that case i would want to reuse the ArgumentException class provided by the framework. And this class is deriving from the Exception class and not ApplicationException class. So it simply was not working :) &lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif;"&gt; &lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif;"&gt;For more details check Remarks section on &lt;a href="http://msdn.microsoft.com/en-us/library/system.applicationexception%28v=vs.100%29.aspx%20"&gt;this&lt;/a&gt; msdn page.&amp;nbsp;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif;"&gt;&lt;br /&gt;
~Abhishek&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5179143545338829173-3843194888985792365?l=luckyabhishek.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/MhLGTrjaFCg4WB3m_ZUwuVLFsN4/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/MhLGTrjaFCg4WB3m_ZUwuVLFsN4/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/MhLGTrjaFCg4WB3m_ZUwuVLFsN4/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/MhLGTrjaFCg4WB3m_ZUwuVLFsN4/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/rhnR/~4/cnCR-fQKcQc" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://luckyabhishek.blogspot.com/feeds/3843194888985792365/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5179143545338829173&amp;postID=3843194888985792365&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5179143545338829173/posts/default/3843194888985792365?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5179143545338829173/posts/default/3843194888985792365?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/rhnR/~3/cnCR-fQKcQc/deriving-exceptions-from-exception.html" title="Deriving the Exceptions from Exception class or ApplicationException class" /><author><name>Abhishek</name><uri>http://www.blogger.com/profile/06037992570806202609</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://luckyabhishek.blogspot.com/2012/01/deriving-exceptions-from-exception.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DE4HRHwycSp7ImA9WhZaFUw.&quot;"><id>tag:blogger.com,1999:blog-5179143545338829173.post-3267014723156329516</id><published>2011-07-01T03:42:00.000-07:00</published><updated>2011-07-01T03:42:15.299-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-07-01T03:42:15.299-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="CRM Online" /><category scheme="http://www.blogger.com/atom/ns#" term="; Silverlight; Web Resource" /><title>CRM Online :- Setting up an efficient developer environment for SilverLight resources</title><content type="html">&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;I've started working on a project where i am supposed to build a silverlight web resource for CRM Online and test it. The Web Resource will use CRM OData APIs to communicate with the CRM Online system and hence it can be tested only once it is hosted within an HTML page which is hosted in a CRM Online as a web Resource.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;Now here are the steps one needs to follow in order to debug this silverlight code..&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;1) Upload the xap file as a web resource in the CRM Online instance using the Web UI&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;2) Publish the xap file&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;3) Navigate to the html file using the URL&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;4) Attach the IE to visual studio and then debug the code by setting break points&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;This makes the debugging and developing the applications very tedious since every build means that i have to upload the resource and do navigation as well...&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;In order to make this process efficient here is the setup i have done on my machine&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;1) Use Web Resource Upload Utility to upload the xap file on CRM Online instance. Now every time you build your solution all you need to do is to click a button to upload and publish the new xap file to CRM Online instance.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;2) In the web project you got created when you create a silverlight project add a new html page where onload of the body redirect the browser to the url where your html file is added. Here's how the code of html might look like...&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-ooc3v_9fh70/Tg2kcpK4y_I/AAAAAAAAAN8/ajus7624bls/s1600/Untitled.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/-ooc3v_9fh70/Tg2kcpK4y_I/AAAAAAAAAN8/ajus7624bls/s1600/Untitled.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;Set this html page as the startup page when you debug the stuff...&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;And you are set...&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;Now every time you change your code the debug process looks like the following&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;1) Build the silverlight project and use the web resource upload utility to upload the xap file&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;2) Press F5 and the html page you've in your web project will redirect you to CRM Online where your xap is being hosted&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;And you are set. I might work on a command line utility to build and publish the xap file on CRM Online instance if it becomes a lengthy project. But for a small POC kind of work this is much more efficient then the normal way one has to follow...&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;hope this helps&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;cheers!&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;~Abhishek&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5179143545338829173-3267014723156329516?l=luckyabhishek.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/zvL0KD0kG0C-Si0TRfvC83ISChw/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/zvL0KD0kG0C-Si0TRfvC83ISChw/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/zvL0KD0kG0C-Si0TRfvC83ISChw/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/zvL0KD0kG0C-Si0TRfvC83ISChw/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/rhnR/~4/iyzjMjV2Bf4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://luckyabhishek.blogspot.com/feeds/3267014723156329516/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5179143545338829173&amp;postID=3267014723156329516&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5179143545338829173/posts/default/3267014723156329516?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5179143545338829173/posts/default/3267014723156329516?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/rhnR/~3/iyzjMjV2Bf4/crm-online-setting-up-efficient.html" title="CRM Online :- Setting up an efficient developer environment for SilverLight resources" /><author><name>Abhishek</name><uri>http://www.blogger.com/profile/06037992570806202609</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/-ooc3v_9fh70/Tg2kcpK4y_I/AAAAAAAAAN8/ajus7624bls/s72-c/Untitled.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://luckyabhishek.blogspot.com/2011/07/crm-online-setting-up-efficient.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEMFQ3k_eCp7ImA9WhZaFUw.&quot;"><id>tag:blogger.com,1999:blog-5179143545338829173.post-8154496333007898040</id><published>2011-07-01T02:26:00.000-07:00</published><updated>2011-07-01T02:26:52.740-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-07-01T02:26:52.740-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="CRM Online" /><title>CRM Online :- How to get the organization name</title><content type="html">&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;While working with CRM Online sometimes it is necessary to get the organization name to do some tasks (Like using a Web Resource Upload Utility)&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;Now in an on premise CRM system the organization name can be found from the URL or from the deployment manager. But there's no such flexibility in case of CRM Online.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;To get the organization unique name you need to go to&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;Settings -&amp;gt; Customization -&amp;gt; Developer Resources and there you would find the name of the organization as you can see in the below screenshot.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-_QOyEcVHSac/Tg2SxlkBZyI/AAAAAAAAAN4/iLEoeVZN_9k/s1600/Untitled.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://4.bp.blogspot.com/-_QOyEcVHSac/Tg2SxlkBZyI/AAAAAAAAAN4/iLEoeVZN_9k/s320/Untitled.png" width="262" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;This is the organization name you can use to connect to your CRM Online instance with utilities such as Web Resource Upload Utility :)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;NJoi!!!&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;~Abhishek&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5179143545338829173-8154496333007898040?l=luckyabhishek.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/877CsVbz_8iBZ5Q9_d-7vcELVes/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/877CsVbz_8iBZ5Q9_d-7vcELVes/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/877CsVbz_8iBZ5Q9_d-7vcELVes/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/877CsVbz_8iBZ5Q9_d-7vcELVes/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/rhnR/~4/xn-589H9TiQ" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://luckyabhishek.blogspot.com/feeds/8154496333007898040/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5179143545338829173&amp;postID=8154496333007898040&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5179143545338829173/posts/default/8154496333007898040?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5179143545338829173/posts/default/8154496333007898040?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/rhnR/~3/xn-589H9TiQ/crm-online-how-to-get-organization-name.html" title="CRM Online :- How to get the organization name" /><author><name>Abhishek</name><uri>http://www.blogger.com/profile/06037992570806202609</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/-_QOyEcVHSac/Tg2SxlkBZyI/AAAAAAAAAN4/iLEoeVZN_9k/s72-c/Untitled.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://luckyabhishek.blogspot.com/2011/07/crm-online-how-to-get-organization-name.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEABQHs6eSp7ImA9WhZUGUg.&quot;"><id>tag:blogger.com,1999:blog-5179143545338829173.post-4132761446506940910</id><published>2011-06-13T01:12:00.000-07:00</published><updated>2011-06-13T01:12:31.511-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-06-13T01:12:31.511-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Sharepoint 2010" /><category scheme="http://www.blogger.com/atom/ns#" term="Powershell" /><title>How to use Sharepoint Cmdlets in powershell</title><content type="html">&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;To use the powershell commandlets in sharepoint 2010 one needs to add the ps snapin&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="line-height: 13px;"&gt;&lt;span style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-style: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;Microsoft.SharePoint.PowerShell which can be done using the following command on windows powershell&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="line-height: 13px;"&gt;&lt;span style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-style: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="line-height: 13px;"&gt;&lt;span style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-style: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; line-height: 13px;"&gt;Add-PSSnapin Microsoft.SharePoint.PowerShell.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="line-height: 13px;"&gt;&lt;span style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-style: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-style: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="line-height: 13px;"&gt;&lt;span style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-style: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-style: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;Njoi&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="line-height: 13px;"&gt;&lt;span style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-style: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-style: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;~Abhishek&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5179143545338829173-4132761446506940910?l=luckyabhishek.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/YzBKm9Z8K3HrP7TnHpvIb_aKblQ/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/YzBKm9Z8K3HrP7TnHpvIb_aKblQ/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/YzBKm9Z8K3HrP7TnHpvIb_aKblQ/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/YzBKm9Z8K3HrP7TnHpvIb_aKblQ/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/rhnR/~4/CFMC-OPbu5E" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://luckyabhishek.blogspot.com/feeds/4132761446506940910/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5179143545338829173&amp;postID=4132761446506940910&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5179143545338829173/posts/default/4132761446506940910?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5179143545338829173/posts/default/4132761446506940910?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/rhnR/~3/CFMC-OPbu5E/how-to-use-sharepoint-cmdlets-in.html" title="How to use Sharepoint Cmdlets in powershell" /><author><name>Abhishek</name><uri>http://www.blogger.com/profile/06037992570806202609</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://luckyabhishek.blogspot.com/2011/06/how-to-use-sharepoint-cmdlets-in.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0ANQXw-eSp7ImA9WhZUFU8.&quot;"><id>tag:blogger.com,1999:blog-5179143545338829173.post-6026548751719900283</id><published>2011-06-08T02:36:00.000-07:00</published><updated>2011-06-08T02:36:30.251-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-06-08T02:36:30.251-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="ReportServer" /><category scheme="http://www.blogger.com/atom/ns#" term="Reports" /><category scheme="http://www.blogger.com/atom/ns#" term="CRM2011" /><title>CRM 2011 :- Error while Scheduling a report to run</title><content type="html">&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;I tried scheduling a report to run on a daily basis and store the snapshots for the user in the CRM 2011 system. Doing this was simple as i selected the report in the reports view and did the scheduling.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;However the report snapshots were not getting displayed at all and&amp;nbsp;every time&amp;nbsp;i tried to open the snapshot it gave an error saying "&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; line-height: 16px;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;The selected report is not ready for viewing. The report is still being rendered or a report snapshot is not available. (rsReportNotReady)"&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="color: #333333; line-height: 16px;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="color: #333333; line-height: 16px;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;The culprit was the fact that Snapshot isolation was turned on in my reportserver database. To get rid of this error and to allow the snapshots to be running properly i executed the following query on my reportserver databse and i was good to go...&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="color: #333333; line-height: 16px;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="color: #333333; line-height: 16px;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;"&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333;"&gt;&lt;span class="Apple-style-span" style="line-height: 16px;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;ALTER DATABASE ReportServer&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="color: #333333;"&gt;&lt;span class="Apple-style-span" style="line-height: 16px;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;SET ALLOW_SNAPSHOT_ISOLATION OFF;"&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="color: #333333;"&gt;&lt;span class="Apple-style-span" style="line-height: 16px;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="color: #333333;"&gt;&lt;span class="Apple-style-span" style="line-height: 16px;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;Hope this helps in case you are stuck while trying to schedule the reports in your CRM installation.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="color: #333333;"&gt;&lt;span class="Apple-style-span" style="line-height: 16px;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="color: #333333;"&gt;&lt;span class="Apple-style-span" style="line-height: 16px;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;~Abhishek&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5179143545338829173-6026548751719900283?l=luckyabhishek.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/FLheAHFvzR_Y-esa22URisaQBLc/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/FLheAHFvzR_Y-esa22URisaQBLc/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/FLheAHFvzR_Y-esa22URisaQBLc/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/FLheAHFvzR_Y-esa22URisaQBLc/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/rhnR/~4/T_Gav8YfgjI" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://luckyabhishek.blogspot.com/feeds/6026548751719900283/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5179143545338829173&amp;postID=6026548751719900283&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5179143545338829173/posts/default/6026548751719900283?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5179143545338829173/posts/default/6026548751719900283?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/rhnR/~3/T_Gav8YfgjI/crm-2011-error-while-scheduling-report.html" title="CRM 2011 :- Error while Scheduling a report to run" /><author><name>Abhishek</name><uri>http://www.blogger.com/profile/06037992570806202609</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://luckyabhishek.blogspot.com/2011/06/crm-2011-error-while-scheduling-report.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEUBRnwzfCp7ImA9WhZVE08.&quot;"><id>tag:blogger.com,1999:blog-5179143545338829173.post-7899565892939270291</id><published>2011-05-25T05:24:00.000-07:00</published><updated>2011-05-25T05:24:17.284-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-05-25T05:24:17.284-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Stunnware" /><category scheme="http://www.blogger.com/atom/ns#" term="FetchXml" /><category scheme="http://www.blogger.com/atom/ns#" term="CRM2011" /><title>Stunnware Fetch Xml Doesn't show the attribute of an entity</title><content type="html">&lt;span style="font-family: Verdana, sans-serif;"&gt;If you use the Fetch Xml Wizard from Stunnware sometimes you may face an issue where the Wizard doesn't show one of the attributes which you added to an entity in the Attribute Picker. &lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;This happened to me recently and when i did a little investigation i figured out that the Wizard maintains a offline metadata cache for your organization in "%localappdata%\Stunnware\Stunnware Tools Metadata Cache" folder to improve performance. &lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;Now sometimes the cache doesn't get refreshed after you make a change in the CRM metadata on the server. To fix this you need to exit the stunnware tools wizard and delete the folder from the path "%localappdata%\Stunnware\Stunnware Tools Metadata Cache" and boom you'd see your changes being reflected on the wizard. &lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;Njoi!!!!&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;~Abhishek&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5179143545338829173-7899565892939270291?l=luckyabhishek.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/xMA3ss_XUqaZsYlFg149hnPUK5k/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/xMA3ss_XUqaZsYlFg149hnPUK5k/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/xMA3ss_XUqaZsYlFg149hnPUK5k/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/xMA3ss_XUqaZsYlFg149hnPUK5k/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/rhnR/~4/WnBB7eJfcDs" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://luckyabhishek.blogspot.com/feeds/7899565892939270291/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5179143545338829173&amp;postID=7899565892939270291&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5179143545338829173/posts/default/7899565892939270291?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5179143545338829173/posts/default/7899565892939270291?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/rhnR/~3/WnBB7eJfcDs/stunnware-fetch-xml-doesnt-show.html" title="Stunnware Fetch Xml Doesn't show the attribute of an entity" /><author><name>Abhishek</name><uri>http://www.blogger.com/profile/06037992570806202609</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://luckyabhishek.blogspot.com/2011/05/stunnware-fetch-xml-doesnt-show.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0QGRX09cCp7ImA9Wx9bFEk.&quot;"><id>tag:blogger.com,1999:blog-5179143545338829173.post-5680977707921988827</id><published>2011-02-22T23:14:00.000-08:00</published><updated>2011-02-22T23:15:24.368-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-02-22T23:15:24.368-08:00</app:edited><title>Reading a VHD File</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;If you ever need to read a vhd file for reasons like you lost the password for your vpc etc there's a cool feature in Windows 7 using which you can mount the vhd file on your hard disk.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;You can do so by following the steps below&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;1) Open Computer Management&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;2) Go to Storage -&amp;gt; Disk Management and click on it&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;3) Once the Panel opens you can right click on Disk Management and you would see an option called Attach VHD&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-1oSt9fti340/TWSzfPrXYbI/AAAAAAAAANA/-oMYEROj6mM/s1600/2011-02-23_124249.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/-1oSt9fti340/TWSzfPrXYbI/AAAAAAAAANA/-oMYEROj6mM/s1600/2011-02-23_124249.png" /&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;4) Click on Attach VHD option. It will popup a dialog asking for location of your VHD&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;5) Browse to you VHD select and click OK on the dialog and Voila all the data on your VHD is mounted as a partition on your machine.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;Have fun :)&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;~Abhishek&lt;/span&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5179143545338829173-5680977707921988827?l=luckyabhishek.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/mFyI6JZfAOwqx1XB27tmostYBzE/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/mFyI6JZfAOwqx1XB27tmostYBzE/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/mFyI6JZfAOwqx1XB27tmostYBzE/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/mFyI6JZfAOwqx1XB27tmostYBzE/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/rhnR/~4/CtLWrhadlts" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://luckyabhishek.blogspot.com/feeds/5680977707921988827/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5179143545338829173&amp;postID=5680977707921988827&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5179143545338829173/posts/default/5680977707921988827?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5179143545338829173/posts/default/5680977707921988827?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/rhnR/~3/CtLWrhadlts/reading-vhd-file.html" title="Reading a VHD File" /><author><name>Abhishek</name><uri>http://www.blogger.com/profile/06037992570806202609</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-1oSt9fti340/TWSzfPrXYbI/AAAAAAAAANA/-oMYEROj6mM/s72-c/2011-02-23_124249.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://luckyabhishek.blogspot.com/2011/02/reading-vhd-file.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEcAR3o-fip7ImA9Wx9XEkQ.&quot;"><id>tag:blogger.com,1999:blog-5179143545338829173.post-916426743033191114</id><published>2011-01-05T21:34:00.000-08:00</published><updated>2011-01-05T21:34:06.456-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-01-05T21:34:06.456-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Windows Server 2008" /><category scheme="http://www.blogger.com/atom/ns#" term="Telnet" /><category scheme="http://www.blogger.com/atom/ns#" term="Telnet not working on Windows Server 2008" /><title>Telnet not working on Windows Server 2008</title><content type="html">&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;While trying to test my SMTP server connectivity i wanted to use telnet on my Windows Server 2008 box. So i did the usual thing i.e. went to command prompt and typed "telnet servername port" and voila i got an error which said "'telnet' is not recognized as an internal or external command,operable program or batch file."&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;Now that's unfair because telnet is supposed to work. Well the good part which microsoft has done with Windows Server 2008 is that they have given everything but its disabled. So to fix it you need to go to Server Manager -&amp;gt; Features -&amp;gt; Add Feature. Select the Telnet client in the wizard which comes up and you are good to go.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;~Abhishek&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5179143545338829173-916426743033191114?l=luckyabhishek.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/-okRtSOKKsFZWwV6cjR4BtWMGx0/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/-okRtSOKKsFZWwV6cjR4BtWMGx0/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/-okRtSOKKsFZWwV6cjR4BtWMGx0/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/-okRtSOKKsFZWwV6cjR4BtWMGx0/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/rhnR/~4/Bp1-Wr69YBA" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://luckyabhishek.blogspot.com/feeds/916426743033191114/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5179143545338829173&amp;postID=916426743033191114&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5179143545338829173/posts/default/916426743033191114?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5179143545338829173/posts/default/916426743033191114?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/rhnR/~3/Bp1-Wr69YBA/telnet-not-working-on-windows-server.html" title="Telnet not working on Windows Server 2008" /><author><name>Abhishek</name><uri>http://www.blogger.com/profile/06037992570806202609</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://luckyabhishek.blogspot.com/2011/01/telnet-not-working-on-windows-server.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEAFSH89eip7ImA9Wx9QF00.&quot;"><id>tag:blogger.com,1999:blog-5179143545338829173.post-2353235771073026339</id><published>2010-12-30T01:51:00.000-08:00</published><updated>2010-12-30T01:51:59.162-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-12-30T01:51:59.162-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Custom Workflow Activity" /><category scheme="http://www.blogger.com/atom/ns#" term="GeoCode" /><category scheme="http://www.blogger.com/atom/ns#" term="CRM 2011 Beta" /><category scheme="http://www.blogger.com/atom/ns#" term="Bing REST API" /><title>CRM 2011 Beta :- GetGeoCode activity for the CRM Workflows</title><content type="html">&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;With Maps becoming more and more popular way of looking at the data like addresses it has become necessary that we save the addresses of the entities in longitude and&amp;nbsp;latitude&amp;nbsp;format so as to ensure that it can be displayed on the maps easily.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;I have an entity called School in my CRM 2011 Beta system and it has an address associated with it. A few of the attributes of entity are&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;1) Name&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;2) AddressLine&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;3) City&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;4) PostalCode&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;5) State&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;6) Country (Defaulted to USA for this discussion)&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;7) A few more attributes which are not relevant for this discussion&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt; &lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;There's a CRM Form where the user of the system goes and creates the entity instances of the system. The requirement is to show all the schools in the CRM system on a Bing Map. Now this can be achieved using various controls and SDKs like Telerik Controls, Bing Map SDK, Open Map Provider for Telerik Controls and some Google Map APIs as well. But most of these SDKs expect a Longitude and&amp;nbsp;Latitude&amp;nbsp;to be provided for the address so that they can quickly pinpoint the location on their map.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt; &lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;Longitude and Latitude is something i can't ask the user to fill as many end users might not understand what it means and most won't have any idea about the latitude and longitude on which the school is present on the map. So the easiest way is to achieve it using a plug in or workflow which can run asynchronously to populate the longitude and latitude of the school entity instance. I chose to do it using a workflow process.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;But the question is how would the workflow process determine the longitude and latitude given the Address. The answer to this is that there are various Geocode APIs available. A few popular ones are&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;1) Yahoo &lt;/span&gt;&lt;a href="http://developer.yahoo.com/geo/placefinder/"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;PlaceFinder&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt; API&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;2) Google &lt;/span&gt;&lt;a href="http://code.google.com/apis/maps/documentation/geocoding/"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;GeoCode&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt; API&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;3) Bing &lt;/span&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/cc966793.aspx"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;GeoCode&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt; Service&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;4) Bing &lt;/span&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ff701715.aspx"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;Locations&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt; API&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt; &lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;In my case i chose to use Bing Locations API to find the longitude and location of the given address.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt; &lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;It is a rest based service and can be called by shooting a GET request on the URL in the following format&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;http://dev.virtualearth.net/REST/v1/Locations/{CountryCode}/{StateCode}/{PostalCode}/{City}/{StreetAddress}?output=xml&amp;amp;key={BingMapKey}&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;You can get a BingMap API access key for free by creating an account on&amp;nbsp;&lt;/span&gt;&lt;a href="https://www.bingmapsportal.com/"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;https://www.bingmapsportal.com/&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;The sample CRM Activity code which i wrote can be downloaded from &lt;a href="http://www.box.net/shared/vahrtvtl0k"&gt;here&lt;/a&gt;. You can compile this code into a dll. Sign it with a key and register the same using CRM Plugin Registration Utility which ships with CRM SDK.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;Njoi the APIs.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;~Abhishek&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5179143545338829173-2353235771073026339?l=luckyabhishek.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/DkqjZTRDZDULa5h_PIX2swwDgOs/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/DkqjZTRDZDULa5h_PIX2swwDgOs/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/DkqjZTRDZDULa5h_PIX2swwDgOs/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/DkqjZTRDZDULa5h_PIX2swwDgOs/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/rhnR/~4/25mrlgnDtKE" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://luckyabhishek.blogspot.com/feeds/2353235771073026339/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5179143545338829173&amp;postID=2353235771073026339&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5179143545338829173/posts/default/2353235771073026339?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5179143545338829173/posts/default/2353235771073026339?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/rhnR/~3/25mrlgnDtKE/crm-2011-beta-getgeocode-activity-for.html" title="CRM 2011 Beta :- GetGeoCode activity for the CRM Workflows" /><author><name>Abhishek</name><uri>http://www.blogger.com/profile/06037992570806202609</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://luckyabhishek.blogspot.com/2010/12/crm-2011-beta-getgeocode-activity-for.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkQBRXc-fip7ImA9Wx9SGEQ.&quot;"><id>tag:blogger.com,1999:blog-5179143545338829173.post-2545130720527356019</id><published>2010-12-09T03:32:00.000-08:00</published><updated>2010-12-09T03:32:34.956-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-12-09T03:32:34.956-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Role Privileges" /><category scheme="http://www.blogger.com/atom/ns#" term="CRM 2011 Beta" /><title>Insufficient Privileges. The logged-on user does not have the appropriate security permissions to view these records or perform the specific action.</title><content type="html">&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;While working on CRM 2011 Beta i created a simple entity model and created a role. On this role i gave read permissions for all the entities in the entity model and then assigned a user to this role.&amp;nbsp;&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;After this when i logged on to the CRM system using the web client with the user just created i was assuming that i would get all the entities in my workplace and i would be able to work with them. But turned out i got the above message instead which said.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;"Insufficient Privileges. The logged-on user does not have the appropriate security permissions to view these records or perform the specific action."&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;I checked the event viewer and found nothing about this message. So the only option was to look into the CRM trace and figure out what is going wrong.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;Here are the steps to enable tracing&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;1) Make 3 registry entries on the CRM Server box under "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSCRM"&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;a)&amp;nbsp;TraceEnabled of type DWORD 32 bit and set its value to 1&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;b)&amp;nbsp;C:\CRMTrace of type string and value as "C:\CRMTrace" . It can be any &amp;nbsp; &amp;nbsp; &amp;nbsp;folder path&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;c)&amp;nbsp;TraceRefresh &amp;nbsp;of type DWORD 32 bit with any value between 0 and 99&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;Once this is done the CRM tracing is enabled on the machine. However to my surprise the trace was happening in "C:\Program Files\Microsoft Dynamics CRM\Trace" folder and not in the folder which i mentioned in the registry key.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;But without the key the tracing doesn't work so let it be there.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;Once this is done try to login to the CRM system using the same user and you would see a message in the trace which would look something like&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;"Crm Exception: Message: Principal user (Id=04becef6-fcf5-df11-96ef-00155d647b03, type=8) is missing prvReadCustomization privilege (Id=7bb3b531-ac45-4977-89c8-b99768e55ab8), ErrorCode: -2147220960"&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;this basically means that the user is missing a Customization Read privilege in the settings. To fix this we can go in the Setting area as an administrator user and give this privilege to the user or role to which the user belongs.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;Hope this helps in case you are stuck with this kind of problem in 2011 - Beta system.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;Njoi!!!&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;~Abhishek&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5179143545338829173-2545130720527356019?l=luckyabhishek.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/sYLssZXrCdPnhBmJoL5hS-zQDI8/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/sYLssZXrCdPnhBmJoL5hS-zQDI8/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/sYLssZXrCdPnhBmJoL5hS-zQDI8/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/sYLssZXrCdPnhBmJoL5hS-zQDI8/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/rhnR/~4/fsun_kwhzH4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://luckyabhishek.blogspot.com/feeds/2545130720527356019/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5179143545338829173&amp;postID=2545130720527356019&amp;isPopup=true" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5179143545338829173/posts/default/2545130720527356019?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5179143545338829173/posts/default/2545130720527356019?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/rhnR/~3/fsun_kwhzH4/insufficient-privileges-logged-on-user.html" title="Insufficient Privileges. The logged-on user does not have the appropriate security permissions to view these records or perform the specific action." /><author><name>Abhishek</name><uri>http://www.blogger.com/profile/06037992570806202609</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>2</thr:total><feedburner:origLink>http://luckyabhishek.blogspot.com/2010/12/insufficient-privileges-logged-on-user.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEIGRXY9fip7ImA9Wx9SGEw.&quot;"><id>tag:blogger.com,1999:blog-5179143545338829173.post-8430221473797259515</id><published>2010-12-08T05:55:00.000-08:00</published><updated>2010-12-08T05:55:24.866-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-12-08T05:55:24.866-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="ItemReceivers" /><category scheme="http://www.blogger.com/atom/ns#" term="Sharepoint 2010" /><title>Getting logged on user details in ItemAdding event in SPItemEventReceiver</title><content type="html">&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;I am writing a sharepoint 2010 Custom List event receiver. I am able to get the events which are happening on the list items however there's no obvious way to get the logged on user's details in ItemAdding Event.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;This is the event which occurs before the Item is added.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;SPContext.Current is null for some reason and hence its kind of a dead end to go towards this path.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;A non obvious way to achieve this is by using the following code snippet.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;public override void ItemAdding(SPItemEventProperties properties)&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;{&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;div id="imcontent"&gt;&lt;span style="color: black; direction: ltr; word-wrap: break-word;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;SPUser user = &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; properties.OpenWeb().AllUsers.GetByID(properties.CurrentUserId)&lt;/span&gt;&lt;/div&gt;&lt;div id="imcontent"&gt;&lt;span style="color: black; direction: ltr; word-wrap: break-word;"&gt;}&lt;/span&gt;&lt;/div&gt;&lt;div id="imcontent"&gt;&lt;span style="color: black; direction: ltr; word-wrap: break-word;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div id="imcontent"&gt;&lt;span style="color: black; direction: ltr; word-wrap: break-word;"&gt;~Abhishek&lt;/span&gt;&lt;/div&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5179143545338829173-8430221473797259515?l=luckyabhishek.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/1WjPCt0xLcZfP70WgdGkmgpWD7M/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/1WjPCt0xLcZfP70WgdGkmgpWD7M/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/1WjPCt0xLcZfP70WgdGkmgpWD7M/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/1WjPCt0xLcZfP70WgdGkmgpWD7M/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/rhnR/~4/kAhpsDnwDWc" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://luckyabhishek.blogspot.com/feeds/8430221473797259515/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5179143545338829173&amp;postID=8430221473797259515&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5179143545338829173/posts/default/8430221473797259515?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5179143545338829173/posts/default/8430221473797259515?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/rhnR/~3/kAhpsDnwDWc/getting-logged-on-user-details-in.html" title="Getting logged on user details in ItemAdding event in SPItemEventReceiver" /><author><name>Abhishek</name><uri>http://www.blogger.com/profile/06037992570806202609</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://luckyabhishek.blogspot.com/2010/12/getting-logged-on-user-details-in.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Ak8FR38_eSp7ImA9Wx9SFEg.&quot;"><id>tag:blogger.com,1999:blog-5179143545338829173.post-1132479868632087624</id><published>2010-12-04T02:33:00.000-08:00</published><updated>2010-12-04T02:33:36.141-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-12-04T02:33:36.141-08:00</app:edited><title>CRM 2011 Beta :- Querying linked entities from the system using FetchXml</title><content type="html">&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;Many a times there's a requirement on querying the data from entity and joining the data with the linked entity as well.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;e.g. If i have a "Student Event" entity in the CRM system which has a many to one relationship with the "Student" event and if i want to display the "Student Event " details on my UI then obviously i would want to display the "name" attribute of the student on the UI as well. Now if i use RetriveMultiple method to get these details it would take more then one hit on the CRM Server to get all the relevant data.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;To avoid the round trip on the server i can instead use FetchXml method on the CRM Web service. This method would return all the data to me in the form of xml.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;The method takes xml query as input and this xml can be formed using a Stunnware tool which can be downloaded &lt;a href="http://www.stunnware.com/products/tools4/downloads/SwTools4.5.31.zip"&gt;here&lt;/a&gt;.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;Using this tool we can easily create and test the xml which has to be passed to FetchXml method. However there's a catch. If you use this tool to generate the fetch xml it would generate an xml which would look like&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;
&amp;lt;fetch count="50" mapping="logical" version="1.0"&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;entity name="studentevent"&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;all-attributes&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;link-entity from="studentid" name="student" to="studentid"&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;all-attributes&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/all-attributes&amp;gt;&amp;lt;/link-entity&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/all-attributes&amp;gt;&amp;lt;/entity&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/fetch&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;and when you execute FetchXml API using this xml you would get all the attributes of the student event entity to be returned however the attributes of the student would not be returned.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;To solve this you need to manually edit the xml and add an alias attribute to the linkentity student. So the final xml should look something like&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;
&amp;lt;fetch mapping="logical" count="50" version="1.0"&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;entity name="studentevent"&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;all-attributes /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;link-entity name="student" from="studentid" to="studentid" &lt;b&gt;alias="studentdetails"&lt;/b&gt;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;all-attributes /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/link-entity&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/entity&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/fetch&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and this would get you the attributes of studentdetails entity as well.&lt;br /&gt;
&lt;br /&gt;
This may be a bug in the stunnware tool or may be because it was buit to be used against CRM 4.0. Otherwise the tool is an excellent way to generate the xml to query the CRM System with linked entities.&lt;br /&gt;
&lt;br /&gt;
Njoi!!!&lt;br /&gt;
~Abhishek&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5179143545338829173-1132479868632087624?l=luckyabhishek.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/oMiy_nIEZwCwPzkKb6Ofb2eMYnc/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/oMiy_nIEZwCwPzkKb6Ofb2eMYnc/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/oMiy_nIEZwCwPzkKb6Ofb2eMYnc/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/oMiy_nIEZwCwPzkKb6Ofb2eMYnc/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/rhnR/~4/0brLOwijsRM" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://luckyabhishek.blogspot.com/feeds/1132479868632087624/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5179143545338829173&amp;postID=1132479868632087624&amp;isPopup=true" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5179143545338829173/posts/default/1132479868632087624?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5179143545338829173/posts/default/1132479868632087624?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/rhnR/~3/0brLOwijsRM/crm-2011-beta-querying-linked-entities.html" title="CRM 2011 Beta :- Querying linked entities from the system using FetchXml" /><author><name>Abhishek</name><uri>http://www.blogger.com/profile/06037992570806202609</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>2</thr:total><feedburner:origLink>http://luckyabhishek.blogspot.com/2010/12/crm-2011-beta-querying-linked-entities.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DE8FQnc-cCp7ImA9Wx9SEkQ.&quot;"><id>tag:blogger.com,1999:blog-5179143545338829173.post-6615377706956534646</id><published>2010-12-02T05:13:00.000-08:00</published><updated>2010-12-02T05:33:33.958-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-12-02T05:33:33.958-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Workflow Activity" /><category scheme="http://www.blogger.com/atom/ns#" term="Plug in" /><category scheme="http://www.blogger.com/atom/ns#" term="CRM 2011 Beta" /><title>CRM 2011 Beta :- Creating a Workflow Activity to Generate GUIDs</title><content type="html">&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;I am working on CRM 2011 Beta and one of the scenarios I have to create a new entity instance from within a process (Previously known as CRM Workflow.). One of the attributes of this entity is a text field which is supposed to store a GUID and hence by definition it should be unique per instance of the entity.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;I couldn't find a way to generate a GUID on the Process designer. This means i have to write a custom activity which would generate a GUID and pass it on to the next step of creating the entity instance.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;In this post i will capture how to create a custom activity. How to register it with CRM 2011 Beta and how to use it in my Process. I will try to attach appropriate snapshots where necessary.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;Before starting to do anything we have to download the CRM 2011 Beta SDK from &lt;a href="http://go.microsoft.com/fwlink/?LinkID=200082&amp;amp;clcid=0x409"&gt;here&lt;/a&gt;. I extracted the SDK in C:\Temp on my machine however it can be extracted anywhere you want to.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;Of course we will need CRM 2011 Beta to be installed on a machine in order to deploy and test the activity from within a process. We will need Visual Studio 2010 to develop the plug in. (This is not a must as you can use utilities from &amp;nbsp;.NET SDK to build the code however i am going to use Visual Studio 2010 as i have it installed on my box already).&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;First we will create an activity using Visual Studio&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;1) Create a New Activity Library type of project in Visual Studio 2010. You can find the template in the Workflow section.&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;2) Delete the Activity1.xaml File as we are not going to use it.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;3) Add a reference to Microsoft.Xrm.Sdk.dll and Microsoft.Xrm.Workflow.dll which can be found in the bin folder inside the folder where you extracted the CRM SDK.&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;4) After doing this if you compile the project you might get a warning which would say that the above 2 assemblies refer to the Syste.ServiceModel.Web assembly which is not present in the .NET Framework Client Profile target which is defined for the project. Change the target profile of your project to .NET Framework 4. This can be done by going to properties of your Project and changing the Target Framework.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;5) Create a class called&amp;nbsp;GenerateGuidActivity deriving from CodeActivity class inside System.Activities namespace. Make sure that it is a public sealed class.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;6) To add functionality to the activity we need to override Execute(CodeActivityContext context) method. We will come back to the implementation inside this method.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;7) We do not have any input to this process step as it is just supposed to generate a new Guid everytime. So we do not have any input to the activity. However we have to send the Guid as output of the step. So we will just create a property which needs to return this Guid. Since this would be a output parameter for the Activity we would want to define the property as&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;public OutArgument&lt;string&gt; NewGuid { get; set; }&lt;/string&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;Note that i have defined argument as type string and not Guid. This is because CRM doesn't understand Guid as output type.&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;8) In order to ensure that CRM Process designer can understand this as well. We need to decorate the property with an attribute i.e.&amp;nbsp;[Output("NewGuid")]&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;9) Once this is done we can go ahead and implement the Execute method. That would be simple. Just create a new Guid and set it with the context. &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;this.NewGuid.Set(context, Guid.NewGuid().ToString());&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;10) Build your code and make sure that the activity compiles.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;11) Since the assembly has to be deployed on a CRM Server it would be a good idea to sign it using a key file and give full trust to the key using caspol.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;Now comes the time to deploy this activity to be accessible by CRM Process Designer. To do that we will use the Plugin Registration Tool which ships with CRM 2011 Beta SDK. &amp;nbsp;You can find the code for tool in SDK\tools\pluginregistration folder. Open the solution, build and run it.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;12) On the home screen Create a New connection using the menu option. Just enter the server name, user name and a friendly name for the connection.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;Press Connect wait for the connection to complete. Once connected the screen would look like the following.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_P7Ju-YCf3bE/TPePSJ9fV7I/AAAAAAAAAMc/JzZQ1puQp78/s1600/Register1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="113" src="http://1.bp.blogspot.com/_P7Ju-YCf3bE/TPePSJ9fV7I/AAAAAAAAAMc/JzZQ1puQp78/s400/Register1.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;13) Now click Register menu and Choose "Register New Assembly" Option.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;14) On the dialog box which opens browse and select the assembly which contains the custom activity we built earlier.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;15) Check the Select All checkbox&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;16) Leave the other values to be default i.e. Isolation Mode = None , Location Where assembly &amp;nbsp;has to be stored = "Database"&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;17) Click Register Selected Plugins. (PS: You might get a dialog saying that there are no plugins to register. The reason for this may be that the Workflow activity you made earlier is not a public class. You might want to change it to a public class to make this work. Another problem which you might face is an error which says "Public assembly must have public key token." This is happening because you forgot to sign your assembly with a key).&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;18) Once the registration is successful we can go ahead and give a friendly name to this Workflow Activity using the plugin Registration tool. Just enter the name and press Save. Check the figure below for more clarity.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_P7Ju-YCf3bE/TPeVMpkDVoI/AAAAAAAAAMg/mJRbwiSx1YM/s1600/Register2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="269" src="http://4.bp.blogspot.com/_P7Ju-YCf3bE/TPeVMpkDVoI/AAAAAAAAAMg/mJRbwiSx1YM/s400/Register2.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;19) After this you can go and access this custom workflow activity from the Process designer to be used in your process.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;Happy coding...&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;~Abhishek&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;PS :- Pasting the code of the above exercise....&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;using System.Activities;&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;using System;&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;using Microsoft.Xrm.Sdk.Workflow;&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;namespace Microsoft.Xrm.CustomWorkflowActivity&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;{&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;public sealed class GenerateGuidActivity : CodeActivity&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;{&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;protected override void Execute(CodeActivityContext context)&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.NewGuid.Set(context, Guid.NewGuid().ToString());&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;[Output("NewGuid")]&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public OutArgument&lt;string&gt; NewGuid { get; set; }&lt;/string&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5179143545338829173-6615377706956534646?l=luckyabhishek.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/xKuqJYbFsDQWIRb1QKpi3bI1xpk/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/xKuqJYbFsDQWIRb1QKpi3bI1xpk/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/xKuqJYbFsDQWIRb1QKpi3bI1xpk/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/xKuqJYbFsDQWIRb1QKpi3bI1xpk/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/rhnR/~4/j38K2SSNQlw" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://luckyabhishek.blogspot.com/feeds/6615377706956534646/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5179143545338829173&amp;postID=6615377706956534646&amp;isPopup=true" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5179143545338829173/posts/default/6615377706956534646?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5179143545338829173/posts/default/6615377706956534646?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/rhnR/~3/j38K2SSNQlw/crm-2011-beta-creating-workflow.html" title="CRM 2011 Beta :- Creating a Workflow Activity to Generate GUIDs" /><author><name>Abhishek</name><uri>http://www.blogger.com/profile/06037992570806202609</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/_P7Ju-YCf3bE/TPePSJ9fV7I/AAAAAAAAAMc/JzZQ1puQp78/s72-c/Register1.png" height="72" width="72" /><thr:total>1</thr:total><feedburner:origLink>http://luckyabhishek.blogspot.com/2010/12/crm-2011-beta-creating-workflow.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0MMR306eCp7ImA9Wx9SEk0.&quot;"><id>tag:blogger.com,1999:blog-5179143545338829173.post-5802144468585032817</id><published>2010-12-01T04:11:00.000-08:00</published><updated>2010-12-01T04:11:26.310-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-12-01T04:11:26.310-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Sharepoint 2010" /><category scheme="http://www.blogger.com/atom/ns#" term="BCS" /><category scheme="http://www.blogger.com/atom/ns#" term="CRM 2011 Beta" /><title>Problem Accessing Dynamics CRM 2011 Beta services from BCS in Sharepoint 2010</title><content type="html">Dynamics 2011 Beta exposes a new oData based service which can be used to pull data out from the system. I am working on BCS for Sharepoint 2010 for a simple demo and i decided to use this service to pull data from CRM 2011 beta system.&lt;br /&gt;
After setting the reference i tried to use the DataContext object to pull data out and got an exception which said&lt;br /&gt;
"Request version '1.0' is too low for the response. The lowest supported version is '2.0'."&lt;br /&gt;
On digging a little deep i realized that some header mismatch is happening between the oData service and my client.&lt;br /&gt;
MSDN social says that in order to change this header from 1.0 to 2.0 i need to target my assemblies to compile and run against .NET 4.0. To my utter surprise Sharepoint 2010 runtime can't load the assemblies which are targeted for 4.0 and hence i had to fall back on using the old way of accessing data from CRM which is using CRM data service. That's bad news as this means i will have to write lot of code which i could have done without.&lt;br /&gt;
The good thing though is that i will learn the old way of accessing data from the system. Will try to post some code samples.....&lt;br /&gt;
&lt;br /&gt;
Regards, Abhishek&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5179143545338829173-5802144468585032817?l=luckyabhishek.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/Fg5tbnBy8il1ldoMRTMh5bj-DaA/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Fg5tbnBy8il1ldoMRTMh5bj-DaA/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/Fg5tbnBy8il1ldoMRTMh5bj-DaA/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Fg5tbnBy8il1ldoMRTMh5bj-DaA/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/rhnR/~4/avS_jaa-NGQ" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://luckyabhishek.blogspot.com/feeds/5802144468585032817/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5179143545338829173&amp;postID=5802144468585032817&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5179143545338829173/posts/default/5802144468585032817?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5179143545338829173/posts/default/5802144468585032817?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/rhnR/~3/avS_jaa-NGQ/problem-accessing-dynamics-crm-2011.html" title="Problem Accessing Dynamics CRM 2011 Beta services from BCS in Sharepoint 2010" /><author><name>Abhishek</name><uri>http://www.blogger.com/profile/06037992570806202609</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://luckyabhishek.blogspot.com/2010/12/problem-accessing-dynamics-crm-2011.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUMFSHc8eyp7ImA9Wx9SEEk.&quot;"><id>tag:blogger.com,1999:blog-5179143545338829173.post-1685017467309070093</id><published>2010-11-29T07:10:00.000-08:00</published><updated>2010-11-29T07:10:19.973-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-11-29T07:10:19.973-08:00</app:edited><title>Enabling live id authentication for sharepoint Server 2010</title><content type="html">&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;I am working on Sharepoint 2010 and needed to enable live id authentication for my website.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;Blog from&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #30332d;"&gt;&lt;a href="http://www.wictorwilen.se/Post/Visual-guide-to-Windows-Live-ID-authentication-with-SharePoint-2010-part-1.aspx"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;http://www.wictorwilen.se/Post/Visual-guide-to-Windows-Live-ID-authentication-with-SharePoint-2010-part-1.aspx&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;is a great step by step guide to enable the live authentication on your server....&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="color: #30332d;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="color: #30332d;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;It rocks :)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="color: #30332d;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="color: #30332d;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;~Abhishek&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5179143545338829173-1685017467309070093?l=luckyabhishek.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/z9iKr2l3Yj3XrxtRjI29VDop0Zw/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/z9iKr2l3Yj3XrxtRjI29VDop0Zw/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/z9iKr2l3Yj3XrxtRjI29VDop0Zw/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/z9iKr2l3Yj3XrxtRjI29VDop0Zw/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/rhnR/~4/0U5fNlU6SUE" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://luckyabhishek.blogspot.com/feeds/1685017467309070093/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5179143545338829173&amp;postID=1685017467309070093&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5179143545338829173/posts/default/1685017467309070093?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5179143545338829173/posts/default/1685017467309070093?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/rhnR/~3/0U5fNlU6SUE/enabling-live-id-authentication-for.html" title="Enabling live id authentication for sharepoint Server 2010" /><author><name>Abhishek</name><uri>http://www.blogger.com/profile/06037992570806202609</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://luckyabhishek.blogspot.com/2010/11/enabling-live-id-authentication-for.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkMFQ3g9fyp7ImA9Wx9SEE4.&quot;"><id>tag:blogger.com,1999:blog-5179143545338829173.post-4548139539168300414</id><published>2010-11-29T03:32:00.000-08:00</published><updated>2010-11-29T03:33:32.667-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-11-29T03:33:32.667-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Options Set" /><category scheme="http://www.blogger.com/atom/ns#" term="CRM 2011 Beta" /><title>CRM 2011 Beta :- Creating large number of Options in an Options Set</title><content type="html">&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;So its been ages since i wrote anything in this space and i feel terrible for not being&amp;nbsp;committed. However that's not the point for which i am here today.&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;I am here to share a small utility which can help you in developing applications on &lt;/span&gt;&lt;a href="http://www.microsoft.com/downloads/en/details.aspx?FamilyID=0c7dcc45-9d41-4e2e-8126-895517b4274c"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;Microsoft Dynamics CRM 2011 Beta&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;Recently i have been working on creating a &lt;/span&gt;&lt;a href="http://www.sifinfo.org/us/sif-specification.asp"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;S&lt;span id="goog_1872281163"&gt;&lt;/span&gt;&lt;span id="goog_1872281164"&gt;&lt;/span&gt;IF&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;compliant data model using CRM 2011 beta for an education domain offering. While trying create the Options Set for this data model i realized that some of the options like country, Language etc. have&amp;nbsp;up-to&amp;nbsp;450 (or more) options. So creating an Options Set becomes a time consuming and error prone process.&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;So me and one of my colleagues (&lt;a href="http://nishantrana.wordpress.com/"&gt;Nishant Rana&lt;/a&gt;) decided to write a utility which would help in creating the options in an options set by using CRM 2011 metadata service. The source code for the utility can be downloaded &lt;/span&gt;&lt;a href="http://www.box.net/shared/a0kp5hv916"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;here&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;.&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;In order to compile and run the utility you would need CRM 2011 SDK on your box. Once you run the utility you would see a form which looks like :-&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_P7Ju-YCf3bE/TPOB6EtEmnI/AAAAAAAAAMY/Nb2vt301o1Y/s1600/snapshot.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="270" src="http://4.bp.blogspot.com/_P7Ju-YCf3bE/TPOB6EtEmnI/AAAAAAAAAMY/Nb2vt301o1Y/s320/snapshot.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;The input values to the form are&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class="MsoListParagraphCxSpFirst" style="mso-list: l0 level1 lfo1; text-indent: -.25in;"&gt;&lt;span lang="EN-AU"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;1) User Name :- This is &amp;nbsp;a CRM User Name who has the permission to update the options set&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpFirst" style="mso-list: l0 level1 lfo1; text-indent: -.25in;"&gt;&lt;span lang="EN-AU"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;2) Password :- The password for the user&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpFirst" style="mso-list: l0 level1 lfo1; text-indent: -.25in;"&gt;&lt;span lang="EN-AU"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;3) Domain :- Domain of the CRM Machine&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpFirst" style="mso-list: l0 level1 lfo1; text-indent: -.25in;"&gt;&lt;span lang="EN-AU"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;4) Organization service URL :- Replace the server name and port in the given URL&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpFirst" style="mso-list: l0 level1 lfo1; text-indent: -.25in;"&gt;&lt;span lang="EN-AU"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;5) Seed value :- This is the integer value which would be given to the first option in the text file &amp;nbsp; &amp;nbsp;. Other options values would be seed value +1... seedvalue + n&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpFirst" style="mso-list: l0 level1 lfo1; text-indent: -.25in;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;6) Options Set Schema name :- Name of the options set in the CRM schema&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpFirst" style="mso-list: l0 level1 lfo1; text-indent: -.25in;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;7) Select File :- Select the text file which has the options in it.&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpFirst" style="mso-list: l0 level1 lfo1; text-indent: -.25in;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpFirst" style="mso-list: l0 level1 lfo1; text-indent: -.25in;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;Happy CRM 2011 coding to all of you. Do share your comments/feedbacks and thoughts on the utility.&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpFirst" style="mso-list: l0 level1 lfo1; text-indent: -.25in;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpFirst" style="mso-list: l0 level1 lfo1; text-indent: -.25in;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;&amp;nbsp; ~Abhishek&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5179143545338829173-4548139539168300414?l=luckyabhishek.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/bpJ1-ays7wmNWUGUrgCZubO2zKA/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/bpJ1-ays7wmNWUGUrgCZubO2zKA/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/bpJ1-ays7wmNWUGUrgCZubO2zKA/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/bpJ1-ays7wmNWUGUrgCZubO2zKA/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/rhnR/~4/7sUZ-rvOkKY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://luckyabhishek.blogspot.com/feeds/4548139539168300414/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5179143545338829173&amp;postID=4548139539168300414&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5179143545338829173/posts/default/4548139539168300414?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5179143545338829173/posts/default/4548139539168300414?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/rhnR/~3/7sUZ-rvOkKY/crm-2011-beta-creating-large-number-of.html" title="CRM 2011 Beta :- Creating large number of Options in an Options Set" /><author><name>Abhishek</name><uri>http://www.blogger.com/profile/06037992570806202609</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/_P7Ju-YCf3bE/TPOB6EtEmnI/AAAAAAAAAMY/Nb2vt301o1Y/s72-c/snapshot.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://luckyabhishek.blogspot.com/2010/11/crm-2011-beta-creating-large-number-of.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Ck4EQX8yfCp7ImA9WxFVEkg.&quot;"><id>tag:blogger.com,1999:blog-5179143545338829173.post-8173785342173707110</id><published>2010-06-11T03:05:00.000-07:00</published><updated>2010-06-11T03:08:20.194-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-06-11T03:08:20.194-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Connection Closed" /><category scheme="http://www.blogger.com/atom/ns#" term="WCF Exceptions" /><title>WCF Client The underlying connection was closed: The connection was closed unexpectedly.</title><content type="html">&lt;span style="font-family: Verdana, sans-serif;"&gt;There can be several reasons as to why we get the exception "WCF Client The underlying connection was closed: The connection was closed unexpectedly." on a WCF client. However i hit an interesting reason today. &lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Verdana;"&gt;So here's how my code structure was &lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-family: Verdana;"&gt;[OperationContract]&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Verdana;"&gt;Response ProcessRequest(Request request)&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-family: Verdana;"&gt;[DataContract]&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Verdana;"&gt;enum SomeEnum&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Verdana;"&gt;{&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Verdana;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [EnumMember]&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Verdana;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Value1 =1,&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Verdana;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Verdana;"&gt;&amp;nbsp;&amp;nbsp; [EnumMember]&lt;/span&gt;&lt;span style="font-family: Verdana;"&gt;}&lt;/span&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="font-family: Verdana, sans-serif;"&gt;Value2 =2,&lt;/span&gt;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-family: Verdana;"&gt;[DataContract]&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Verdana;"&gt;class Response&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Verdana;"&gt;{&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Verdana;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [DataMember]&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Verdana;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;string Message;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Verdana;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [DataMember]&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Verdana;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SomeEnum EnumValue;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Verdana;"&gt;}&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-family: Verdana;"&gt;Now in my implementation i was trying to send a Response object which looked like &lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Verdana;"&gt;Response response = new Response(){Message="Some Message"};&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Verdana;"&gt;return response;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-family: Verdana;"&gt;Now this compiled fine and looked like it would work great however when i called the method ProcessRequest from my WCF client i got an exception message with the text "WCF Client The underlying connection was closed: The connection was closed unexpectedly.". There's no visible and obvious reason as to why this must be happening. &lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Verdana;"&gt;On enabling the WCF tracing i found that the error is in serializing the value of SomeEnum in this response. Apparently the Enum has nothing with value 0 and hence the framework is not able serialize the Response. &lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Verdana;"&gt;Apparently WCF server stack eats up this exception and closes the connection to the client. The exception doesn't even show up on visual studio and hence it is almost impossible to detect what's going on unless we have a server side tracing enabled. &lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5179143545338829173-8173785342173707110?l=luckyabhishek.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/xAceYC9_HW_MfBQDqNNrNVxFJ9M/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/xAceYC9_HW_MfBQDqNNrNVxFJ9M/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/xAceYC9_HW_MfBQDqNNrNVxFJ9M/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/xAceYC9_HW_MfBQDqNNrNVxFJ9M/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/rhnR/~4/KJJoW2I33bE" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://luckyabhishek.blogspot.com/feeds/8173785342173707110/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5179143545338829173&amp;postID=8173785342173707110&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5179143545338829173/posts/default/8173785342173707110?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5179143545338829173/posts/default/8173785342173707110?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/rhnR/~3/KJJoW2I33bE/wcf-client-underlying-connection-was.html" title="WCF Client The underlying connection was closed: The connection was closed unexpectedly." /><author><name>Abhishek</name><uri>http://www.blogger.com/profile/06037992570806202609</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://luckyabhishek.blogspot.com/2010/06/wcf-client-underlying-connection-was.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEQFRnc-eyp7ImA9WxFSEEg.&quot;"><id>tag:blogger.com,1999:blog-5179143545338829173.post-6303818753579905059</id><published>2010-04-12T00:11:00.000-07:00</published><updated>2010-04-12T00:11:57.953-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-04-12T00:11:57.953-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="REST" /><category scheme="http://www.blogger.com/atom/ns#" term="Speaker Sessions" /><category scheme="http://www.blogger.com/atom/ns#" term="Developer Summit" /><title>Speaking at the Developer Summit</title><content type="html">&lt;span class="Apple-style-span" style="font-family: Arial; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;All,&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;a href="http://www.developermarch.com/developersummit/img/speakers/spkslide/85_Abhishek_Shrishail.jpg" imageanchor="1" style="clear: right; display: inline !important; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" src="http://www.developermarch.com/developersummit/img/speakers/spkslide/85_Abhishek_Shrishail.jpg" /&gt;&lt;/a&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;I am speaking at the Great Indian Developer Summit on RESTful services. You can check the details of the session&amp;nbsp;&lt;a href="http://www.developermarch.com/developersummit/sessions.html#session28"&gt;here&lt;/a&gt;.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Arial; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Times New Roman'; font-size: medium;"&gt;&lt;span class="Apple-style-span" style="color: black; font-family: Arial; font-size: 13px;"&gt;You can see the snapshot of the session created by the GIDS people on the right.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Arial; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;I love the snapshot for sure :).&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Arial; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Arial; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;See you all at &lt;a href="http://www.developersummit.com/"&gt;Developer Summit&lt;/a&gt;&amp;nbsp;at IISC Bangalore&amp;nbsp;on 20th April....&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Arial; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Arial; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;~Abhishek&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5179143545338829173-6303818753579905059?l=luckyabhishek.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/IP7TgWBchZVzvzXZJzTI6tI-3FE/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/IP7TgWBchZVzvzXZJzTI6tI-3FE/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/IP7TgWBchZVzvzXZJzTI6tI-3FE/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/IP7TgWBchZVzvzXZJzTI6tI-3FE/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/rhnR/~4/tXwzh66a9x0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://luckyabhishek.blogspot.com/feeds/6303818753579905059/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5179143545338829173&amp;postID=6303818753579905059&amp;isPopup=true" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5179143545338829173/posts/default/6303818753579905059?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5179143545338829173/posts/default/6303818753579905059?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/rhnR/~3/tXwzh66a9x0/speaking-at-developer-summit.html" title="Speaking at the Developer Summit" /><author><name>Abhishek</name><uri>http://www.blogger.com/profile/06037992570806202609</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>1</thr:total><feedburner:origLink>http://luckyabhishek.blogspot.com/2010/04/speaking-at-developer-summit.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CU4BR3s-fSp7ImA9WxBSGUQ.&quot;"><id>tag:blogger.com,1999:blog-5179143545338829173.post-5090292882227165680</id><published>2009-12-28T01:51:00.000-08:00</published><updated>2009-12-28T01:52:36.555-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-12-28T01:52:36.555-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Notes Error" /><category scheme="http://www.blogger.com/atom/ns#" term="NotesView" /><category scheme="http://www.blogger.com/atom/ns#" term="FTSearch" /><title>Notes Error: Maximum allowable documents exceeded for a temporary full text index</title><content type="html">&lt;span style="font-family: Verdana, sans-serif;"&gt;While executing FTSearch method on NotesView class you might get an exception which says "Notes&lt;/span&gt;&lt;br /&gt;
&lt;div class="MsoPlainText"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;
&lt;/div&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;Error: Maximum allowable documents exceeded for a temporary full text index"&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;div&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;The exception occurs when Full Text indexing is disabled on the database and the number of items in the database is huge.&lt;/span&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;When we try to execute a FTSearch method on such a database a temporary Full Text index is created on the database. The number of items which can be indexed by this temporary index is set to some default value and if the number of items in the database exceeds this default value then we get this exception. We can override this setting in server's notes.ini using the following parameter&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;TEMP_INDEX_MAX_DOC=&lt;i&gt;number&lt;/i&gt;&lt;number&gt;&lt;/number&gt;&lt;/span&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;Once we set this number to a value greater then number of items in the database the API should start working.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;More details can be found&amp;nbsp;&lt;a href="http://www-01.ibm.com/support/docview.wss?uid=swg21093466"&gt;here&lt;/a&gt;.&lt;/span&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;~Abhishek&lt;/span&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5179143545338829173-5090292882227165680?l=luckyabhishek.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/TTNtRe_HaadLmKDCuPSRJVtzScs/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/TTNtRe_HaadLmKDCuPSRJVtzScs/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/TTNtRe_HaadLmKDCuPSRJVtzScs/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/TTNtRe_HaadLmKDCuPSRJVtzScs/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/rhnR/~4/grDTJHBrQvg" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://luckyabhishek.blogspot.com/feeds/5090292882227165680/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5179143545338829173&amp;postID=5090292882227165680&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5179143545338829173/posts/default/5090292882227165680?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5179143545338829173/posts/default/5090292882227165680?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/rhnR/~3/grDTJHBrQvg/notes-error-maximum-allowable-documents.html" title="Notes Error: Maximum allowable documents exceeded for a temporary full text index" /><author><name>Abhishek</name><uri>http://www.blogger.com/profile/06037992570806202609</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://luckyabhishek.blogspot.com/2009/12/notes-error-maximum-allowable-documents.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUMMSXg4fip7ImA9WxBSGUQ.&quot;"><id>tag:blogger.com,1999:blog-5179143545338829173.post-2408404993060748803</id><published>2009-12-28T01:44:00.000-08:00</published><updated>2009-12-28T01:44:48.636-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-12-28T01:44:48.636-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Domino Interop" /><category scheme="http://www.blogger.com/atom/ns#" term="NotesSQL" /><category scheme="http://www.blogger.com/atom/ns#" term="Lotus Notes" /><category scheme="http://www.blogger.com/atom/ns#" term="Domino" /><title>Accessing Lotus Notes Database from .NET</title><content type="html">&lt;span style="font-family: Verdana, sans-serif;"&gt;I am working on a project where i need to get some data our of Lotus Notes application and found a couple of ways to extract the data out.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;1) Easiest way to extract the data is to use Lotus Notes SDK which gets installed on the system when the Notes Client is installed.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;You can set a reference to domobj.tlb and generate a interop assembly to call the APIs. The API documentation can be found on&amp;nbsp;&lt;/span&gt;&lt;a href="http://www-12.lotus.com/ldd/doc/lotusscript/lotusscript.nsf/Notes%204.6%20Classes?OpenNavigator"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;here&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;Some of the APIs like search on the NotesDatabase doesn't seem to work and if that's the case then we can use the second approach.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;2) The best part of lotus notes is that the data is exposed using ODBC. We can install the ODBC driver can be downloaded and installed from&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;a href="http://www.ibm.com/developerworks/lotus/products/notesdomino/notessql/"&gt;here&lt;/a&gt;.Once done we can use the classes from System.Data.Odbc namespace and access the items and their properties.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;Will post some tweaks when i start using these things....&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;~Abhishek&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5179143545338829173-2408404993060748803?l=luckyabhishek.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/pdAjdC07h9CWuEVEftmz6VEHnO4/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/pdAjdC07h9CWuEVEftmz6VEHnO4/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/pdAjdC07h9CWuEVEftmz6VEHnO4/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/pdAjdC07h9CWuEVEftmz6VEHnO4/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/rhnR/~4/eusXTDCO81o" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://luckyabhishek.blogspot.com/feeds/2408404993060748803/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5179143545338829173&amp;postID=2408404993060748803&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5179143545338829173/posts/default/2408404993060748803?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5179143545338829173/posts/default/2408404993060748803?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/rhnR/~3/eusXTDCO81o/accessing-lotus-notes-database-from-net.html" title="Accessing Lotus Notes Database from .NET" /><author><name>Abhishek</name><uri>http://www.blogger.com/profile/06037992570806202609</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://luckyabhishek.blogspot.com/2009/12/accessing-lotus-notes-database-from-net.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Dk4ER3Y-fyp7ImA9WxNWFUw.&quot;"><id>tag:blogger.com,1999:blog-5179143545338829173.post-5996072405380824898</id><published>2009-10-14T02:50:00.000-07:00</published><updated>2009-10-14T03:08:26.857-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-10-14T03:08:26.857-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="ROA Tenet" /><category scheme="http://www.blogger.com/atom/ns#" term="ROA" /><category scheme="http://www.blogger.com/atom/ns#" term="Connectedness" /><title>Resource Oriented Architecture - Part 5 (Connectedness)</title><content type="html">&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;One of the important features of web is its connectedness. i.e. almost all the web is interconnected through something called as hyperlinks. &lt;/span&gt;&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;So any resource which is addressable on web can be connected from another resource using a hyperlink. In an application based on ROA all the resources should be connected to each other. Connectedness can be achieved in an application if we choose the right representation for a resource. Xml is used to represent any entity in a RPC based architecture. Xml is a default choice because of the fact that it is structured way to represent the entity, hence can be easily understood by computer programs. &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;As of today the web service returns the data in the form of Xml to make it machine readable while web application represent the data in HTML format in order to make the data human readable. However what we forget is that there's another representation called XHTML which is nothing but HTML which is also a well formed Xml. &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;So if we can represent all the resources in XHTML computers can parse it as Xml while human can read it on browser as HTML. This also gives us a way to interconnect all the resources in a ROA based application using hyperlinks.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;There's no such rule which says that resources should always use XHTML however that would be the preferable since it merges web application and web service and hence make the life easy.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;We can still use Xml to represent the resources however in such a case the link to relevant resources should be embedded in the representation of the resource in order to ensure that the whole system is navigable if the user has link to one resource within a system. &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;This concludes the 5 part series about resource oriented architecture. The next logical step for me would be to design an application using ROA tenets, which involves identifying the right resources, their representation. I might take an enterprise application to do his exercise. &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Hope to find some time to do that....&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;~Abhishek&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5179143545338829173-5996072405380824898?l=luckyabhishek.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/23TT-w8pFhc3HqjarIIVT9zLup4/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/23TT-w8pFhc3HqjarIIVT9zLup4/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/23TT-w8pFhc3HqjarIIVT9zLup4/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/23TT-w8pFhc3HqjarIIVT9zLup4/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/rhnR/~4/itjpGGdBLBY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://luckyabhishek.blogspot.com/feeds/5996072405380824898/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5179143545338829173&amp;postID=5996072405380824898&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5179143545338829173/posts/default/5996072405380824898?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5179143545338829173/posts/default/5996072405380824898?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/rhnR/~3/itjpGGdBLBY/resource-oriented-architecture-part-5.html" title="Resource Oriented Architecture - Part 5 (Connectedness)" /><author><name>Abhishek</name><uri>http://www.blogger.com/profile/06037992570806202609</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://luckyabhishek.blogspot.com/2009/10/resource-oriented-architecture-part-5.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkENRn49eSp7ImA9WxNWEEs.&quot;"><id>tag:blogger.com,1999:blog-5179143545338829173.post-1306967450542484282</id><published>2009-10-08T22:36:00.000-07:00</published><updated>2009-10-08T23:11:37.061-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-10-08T23:11:37.061-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="ROA Tenet" /><category scheme="http://www.blogger.com/atom/ns#" term="ROA" /><category scheme="http://www.blogger.com/atom/ns#" term="Uniform Interface" /><title>Resource Oriented Architecture - Part 4 (Uniform Interface)</title><content type="html">&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;The RPC style services are very good in creating and documenting the contract. However if i look at it from a high level view i am creating a new interface for every service in the world. &lt;/span&gt;&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Imagine this i can write so many services to manage a CRM account e.g. createAccount, updateAcccount, deleteAccount, addOppurtunity, winOptions, looseOptions so on and so forth i.e. for every conceivable action i want to take on a account i can probably create a new method in the contract. This becomes so difficult to manage when orchestrating the services to come up with a business process. Because its very difficult to understand what services can be called at what stage in a business process.&lt;br /&gt;&lt;br /&gt;Now when i give this to a programmer who's building an orchestration using these services. There's no uniformity in the interfaces which allow the programmer to come up with a pattern or a way to know what might be possible in the system. One has to be a domain expert to work with such a system. &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;That's why ROA proposes to have a uniform interface which should be exposed by the resources inside a system. i.e. once you know the URL of a resource it can support upto 6 methods which are nothing but http verbs. Let's have a look at them &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;1) OPTIONS :- This is a metadata based verb, i.e. it is supposed to tell the caller as to what all http methods does the resource support.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;2) GET :- As the name implies this would return the resource content to the caller. The format of content is another story and we'd discuss in the next tenet.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;3) HEAD :- This is supposed to return the http header information to the caller. e.g. when was the content last modified. This is an important verb as based on this we can take advantage of http caching infrastructure. &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;4) PUT :- This verb is supposed to create or update a resource. Ideally if the request is sent to a non existant URI then we are supposed to create the resource while if the resource exists on the server then it is supposed to be replaced by the new one &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;5) DELETE :- As the name implies, it can be used to delete or archive the resource. &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;6) POST :- This is one of the most open ended verb which has been left out in http and hence the most abused one by SOA. Anyways in a ROA this verb can be used either to append content to an existing resource or to create new content where the URI of the newly created resource would be defined by the server. &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;All in all we can conclude that a resource can support CRUD operations using PUT/POST, GET, PUT/POST, DELETE http verbs, while a resource can define the supported operations using OPTIONS http verb. HEAD is a verb which can be used to take advantage of caching mechanism. &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Now once we've this kind of system in place we've to ensure that we define our system in such a way that each entity, state or a stage of business process can be represented as a resource. So in our example of CRM system we can create 3 resources i.e. Account, Oppurtunity, Option&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;and then both these resources can support GET, PUT, POST and DELETE operations. So createAccount becomes a PUT request to http://crmsystem/account/myAccount/1234, deleteAccount becomes a DELETE request to http://crmsystem/account/myAccount/1234,&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;addOppurunity becomes a PUT request to http://crmsystem/account/1234/Oppurtunity/1,&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;winOptions, looseOption can become a POST request to  http://crmsystem/account/myAccount/1234/Options/1&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;The beauty of the whole system lies in the fact that each entity has a URI and each URI supports a uniform interface. So when i give a URI  of an opportunity http://crmsystem/account/1234/Opportunity/1) to a programmer in my company, at the very least he knows the following &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;1) To get the details of the opportunity he has to  hit the URI with http GET request &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;2) To delete the oppurtunity he has to hit the URI with  http DELETE request &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;3) To update the oppurtunity PUT or POST should help &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;4) To know what is supported OPTIONS can be used. &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;In this world we literally can live with these verbs and most if not all programming problems can be broken into resources. The business process orchestrations can stream line themselves around these verbs and the world might become much simpler for us as programmers :). &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;~Abhishek&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5179143545338829173-1306967450542484282?l=luckyabhishek.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/_yoCr2Uy9BX5PDrmOxbhEyiDZKM/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/_yoCr2Uy9BX5PDrmOxbhEyiDZKM/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/_yoCr2Uy9BX5PDrmOxbhEyiDZKM/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/_yoCr2Uy9BX5PDrmOxbhEyiDZKM/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/rhnR/~4/pBl7KZIMNnY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://luckyabhishek.blogspot.com/feeds/1306967450542484282/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5179143545338829173&amp;postID=1306967450542484282&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5179143545338829173/posts/default/1306967450542484282?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5179143545338829173/posts/default/1306967450542484282?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/rhnR/~3/pBl7KZIMNnY/resource-oriented-architecture-part-3_08.html" title="Resource Oriented Architecture - Part 4 (Uniform Interface)" /><author><name>Abhishek</name><uri>http://www.blogger.com/profile/06037992570806202609</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://luckyabhishek.blogspot.com/2009/10/resource-oriented-architecture-part-3_08.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUQMSXk5fCp7ImA9WxNXGUQ.&quot;"><id>tag:blogger.com,1999:blog-5179143545338829173.post-3929880654605937906</id><published>2009-10-08T02:15:00.000-07:00</published><updated>2009-10-08T02:16:28.724-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-10-08T02:16:28.724-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="ROA Tenet" /><category scheme="http://www.blogger.com/atom/ns#" term="Addressability" /><category scheme="http://www.blogger.com/atom/ns#" term="ROA" /><title>Resource Oriented Architecture - Part 3 (Addressability)</title><content type="html">&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;URLs is one of very simple and powerful feature of WWW. It is because of URL that everything is discoverable and locatable on the web.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;e.g. a builder putting his URL on an advertisement bill board and everyone who hits that URI gets access to all the resources about a project which builder has put on the web.&lt;/span&gt;&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;If we look at a search results of google each page of the search results is a resource and each page has a unique URL.&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;e.g. &lt;/span&gt;&lt;/span&gt;&lt;a href="http://www.google.com/search?q=india&amp;amp;start=35"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;http://www.google.com/search?q=India&amp;amp;start=35&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt; will take me to a page which would have the search results for the query "India" and the page contents would start from 35th search result.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;In a resource oriented world each resource inside a system would have a unique URL to locate it. e.g. in a CRM system all the accounts would have a unique URL to navigate to them. Which basically means that all the accounts are addressable. If we shoot a "http GET request" to that URL we should be able to get details about that account.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;So an account with ID=1234 can be represented as http://crmsystem/account/1234&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Even a collection of accounts is a resource e.g. all the accounts from Hyderabad can be resource found by sending a http get request to http://crmsystem/accounts/hyderabad&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Note the subtle difference between the URLs. The first URL contains the string account while the second one contains accounts, which signifies that the first resource is just an account while the second one is a collection of accounts.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;This approach is very different from classic SOA applications where we'd write 2 web service operations called getAccountbyId(string accountId) and getAccountsForRegion(string region). Both the operations will have a single URL which would be http://crmsystem/services and can be invoked by sending appropriate SOAP envelope to this URL using http POST method. Its not really intuitive for a user or a machine as to what kind of POST requests one is supposed to send on the URL.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Another important aspect to note about this tenet is that a URL is non-ambiguous and can point to one and only one resource, while a resource can be located by using 2 different URLs. e.g. an account with accountId=1234 which is a top performing account can be represented by 2 different URLs i.e. http://crmsystem/account/1234 and http://crmsystem/account/topPerformer. In this case the URL http://crmsystem/account/1234 points to a static resource and ideally won't change while http://crmsystem/account/topPerformer is a dynamic calculated resource and can point to different resources at different times.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;This tenet will closely relate to the next tenet i would discuss in my next post in this series i.e. Uniform Interface.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;~Abhishek&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5179143545338829173-3929880654605937906?l=luckyabhishek.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/nACuqcSBngQfu7vJa43pq6iNydA/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/nACuqcSBngQfu7vJa43pq6iNydA/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/nACuqcSBngQfu7vJa43pq6iNydA/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/nACuqcSBngQfu7vJa43pq6iNydA/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/rhnR/~4/MUi1DLVTECk" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://luckyabhishek.blogspot.com/feeds/3929880654605937906/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5179143545338829173&amp;postID=3929880654605937906&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5179143545338829173/posts/default/3929880654605937906?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5179143545338829173/posts/default/3929880654605937906?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/rhnR/~3/MUi1DLVTECk/resource-oriented-architecture-part-3.html" title="Resource Oriented Architecture - Part 3 (Addressability)" /><author><name>Abhishek</name><uri>http://www.blogger.com/profile/06037992570806202609</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://luckyabhishek.blogspot.com/2009/10/resource-oriented-architecture-part-3.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUEDSHYzcSp7ImA9WxNXF08.&quot;"><id>tag:blogger.com,1999:blog-5179143545338829173.post-1126538380489829361</id><published>2009-10-05T00:16:00.000-07:00</published><updated>2009-10-05T00:27:59.889-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-10-05T00:27:59.889-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="URN" /><category scheme="http://www.blogger.com/atom/ns#" term="URI" /><category scheme="http://www.blogger.com/atom/ns#" term="URL" /><title>URI, URN and URL why 3 terms</title><content type="html">&lt;span style="font-family: verdana;"&gt;I am attending a training and an interesting question came up while discussing WCF i.e. what is the difference between the terms URI, URN and URL and most of the times we do see the terms being used in various documents and we hardly care about the fact that they are more or less different acronyms and there has to be a difference. &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;And turns out there's a subtle difference &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;1) URI :- Uniform Resource Identifier &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;                 This is like a base class. i.e. if this term is used then it can mean both URN and URL. Simply signifies that both URL and URN can be used in the context.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;2) URN :- Uniform Resource Name&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;                   This is a URI which can ensure the uniqueness of a name in a given context. e.g. URN "Flat no. 302". Its unique in an apartment. but apartment name is not present in the URN. We can say that a URN can be used for identification but can't be used to locate a resource without a context&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;3) URL :- Uniform Resource Locator &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;                  This is a URI which can be used to locate a resource. This also is a URI and can ensure uniqueness alongwith the mechanism to locate it. e.g. http://luckyabhishek.blogspot.com is a URL which is unique and also communicates the mechanism to discover/locate it. &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;Interesting and subtle differences pointed by Ramkumar (Our instructor)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;Let me go back to training now as Ram has already figured out that i am not listening to him and doing something else. Alas .. he'd not know that i am blogging the discussion we just had ....&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;~Abhishek&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5179143545338829173-1126538380489829361?l=luckyabhishek.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/r3hAYVqksAVYS9YEqXlic3BZMD4/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/r3hAYVqksAVYS9YEqXlic3BZMD4/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/r3hAYVqksAVYS9YEqXlic3BZMD4/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/r3hAYVqksAVYS9YEqXlic3BZMD4/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/rhnR/~4/3YaxpQ1G9zE" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://luckyabhishek.blogspot.com/feeds/1126538380489829361/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5179143545338829173&amp;postID=1126538380489829361&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5179143545338829173/posts/default/1126538380489829361?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5179143545338829173/posts/default/1126538380489829361?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/rhnR/~3/3YaxpQ1G9zE/uri-urn-and-url-why-3-terms.html" title="URI, URN and URL why 3 terms" /><author><name>Abhishek</name><uri>http://www.blogger.com/profile/06037992570806202609</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://luckyabhishek.blogspot.com/2009/10/uri-urn-and-url-why-3-terms.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DE4HQn05fyp7ImA9WxNQFkQ.&quot;"><id>tag:blogger.com,1999:blog-5179143545338829173.post-59815492353797085</id><published>2009-09-23T01:55:00.000-07:00</published><updated>2009-09-23T02:08:53.327-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-09-23T02:08:53.327-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Visual Studio Unit Test" /><category scheme="http://www.blogger.com/atom/ns#" term="34 bit process" /><category scheme="http://www.blogger.com/atom/ns#" term="VSTestHost" /><category scheme="http://www.blogger.com/atom/ns#" term="Registry" /><title>Unit Tests for registry read fails in Visual Studio on 64 bit machines</title><content type="html">&lt;span style="font-size:100%;"&gt;&lt;span style="font-family: verdana;"&gt;My my my... &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;A hotch potch of Windows Server 2008 and Visual Studio 2008 on a 64 bit machine killed my 3-4 hours today... &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;So here's the deal &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;I've a method in one of my dlls which reads a certain value from a sub key of HKEY_LOCAL_MACHINE\SOFTWARE Then i wrote a unit test to test this method. Turns out it fails to read the Registry. I was amazed because registry entry did exist in the registry. After struggling for about an hour or so i decided to write a console application to test the method. And the method worked :O. So now i was in a situation where a method works from the console application while fails from a unit test. &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;I thought that its a permissions issue so i gave full trust to both the assemblies i.e. unit test assembly and the assembly i was testing. Even that didn't help. &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;Looking at the task manager of the system i saw that the unit tests run under a process call VSTestHost.exe. So next i tried to give full trust to this exe however that's not possible since it is a win32 exe. &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;A relook at the Task Manager showed me that the process runs under VSTestHost.exe*32 means a 32 bit process running on a 64 bit OS. Nothing suspicious about it in the first look. However if you look at the nodes below HKEY_LOCAL_MACHINE\SOFTWARE in the registry you see a node called Wow6432Node and that made me think. After some search i figured out that if you run a 32 bit process on a 64 bit machine and try to read the subkeys of HKEY_LOCAL_MACHINE\SOFTWARE The registry reads are actually directed to HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node. So i made an entry in this node and it worked. &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;Lesson :- Be careful while working with registries if you depend on registry for your program to work. &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;Happy coding :) &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;~Abhishek&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5179143545338829173-59815492353797085?l=luckyabhishek.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/N3QsFhA6-DPJKilY9emdDM017fo/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/N3QsFhA6-DPJKilY9emdDM017fo/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/N3QsFhA6-DPJKilY9emdDM017fo/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/N3QsFhA6-DPJKilY9emdDM017fo/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/rhnR/~4/7nliVO_HvIY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://luckyabhishek.blogspot.com/feeds/59815492353797085/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5179143545338829173&amp;postID=59815492353797085&amp;isPopup=true" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5179143545338829173/posts/default/59815492353797085?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5179143545338829173/posts/default/59815492353797085?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/rhnR/~3/7nliVO_HvIY/unit-tests-for-registry-read-fails-in.html" title="Unit Tests for registry read fails in Visual Studio on 64 bit machines" /><author><name>Abhishek</name><uri>http://www.blogger.com/profile/06037992570806202609</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>1</thr:total><feedburner:origLink>http://luckyabhishek.blogspot.com/2009/09/unit-tests-for-registry-read-fails-in.html</feedburner:origLink></entry></feed>

