<?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;DEEGSXozcSp7ImA9WhRUFEg.&quot;"><id>tag:blogger.com,1999:blog-12330834</id><updated>2012-01-24T17:57:08.489-08:00</updated><title>dgoyani is blogging !!</title><subtitle type="html">Random thoughts on tools and technologies I come across.</subtitle><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://dgoyani.blogspot.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://dgoyani.blogspot.com/" /><author><name>Dhananjay</name><uri>http://www.blogger.com/profile/15183171539153925231</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>19</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/dgoyani" /><feedburner:info uri="dgoyani" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry gd:etag="W/&quot;CUQFQ3w5eip7ImA9WxFWE0Q.&quot;"><id>tag:blogger.com,1999:blog-12330834.post-1976373634994771635</id><published>2010-06-01T04:52:00.000-07:00</published><updated>2010-06-01T04:55:12.222-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-06-01T04:55:12.222-07:00</app:edited><title>Measuring performance: Dictionary Vs If Else</title><content type="html">&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms';"&gt;Mark Needham from Thought Works has recently blogged about &lt;/span&gt;&lt;a href="http://www.markhneedham.com/blog/2010/05/30/c-using-a-dictionary-instead-of-if-statements/"&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms';"&gt;using Dictionary instead of If Else statements&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms';"&gt;. The usage of If Else is very common in similar situations however as number of scenarios grow things can become night mare. And at some point of time you have to think about some smart approach such as the one mentioned by Mark.&lt;br /&gt;&lt;br /&gt;At first, I thought making entire logic dictionary based may impact performance because of key lookup calls. And that motivated me to write a sample script to verify my understanding. Along with the two approaches, I was also interested to know performance implications using Switch statement. For such quick performance tests, I really love playing with &lt;/span&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.diagnostics.stopwatch.aspx"&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms';"&gt;Stopwatch class&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms';"&gt;.&lt;br /&gt;&lt;br /&gt;I run the test 1k times and am very happy with the results I got. Along with better readability and maintainability, you get little bit of performance improvement as well. It’s win-win from all the sides. Such tests may seem trivial but it implant solid craftsmanship towards clean code.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight:bold;"&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms';"&gt;Results (in ms):&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms';"&gt;&lt;br /&gt;Using If Else &gt; 1130&lt;br /&gt;Using Switch &gt; 1057&lt;br /&gt;Using Dictionary &gt; 1062&lt;br /&gt;&lt;br /&gt;Thanks!&lt;br /&gt;Dhananjay&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12330834-1976373634994771635?l=dgoyani.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://dgoyani.blogspot.com/feeds/1976373634994771635/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=12330834&amp;postID=1976373634994771635" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/12330834/posts/default/1976373634994771635?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/12330834/posts/default/1976373634994771635?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/dgoyani/~3/1uy1blGiU4w/measuring-performance-dictionary-vs-if.html" title="Measuring performance: Dictionary Vs If Else" /><author><name>Dhananjay</name><uri>http://www.blogger.com/profile/15183171539153925231</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://dgoyani.blogspot.com/2010/06/measuring-performance-dictionary-vs-if.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkUDQno_eip7ImA9WxFXE0g.&quot;"><id>tag:blogger.com,1999:blog-12330834.post-33933969320964785</id><published>2010-05-20T05:22:00.000-07:00</published><updated>2010-05-20T05:24:33.442-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-05-20T05:24:33.442-07:00</app:edited><title>Smart Data Transfer Object</title><content type="html">&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms';"&gt;Too often it happens when you work on distributed application that you communicate too many times to fulfill a single request. As in any network communication actual data transfer (serialization, compression, transfer over wire, decompression, deserialization, etc) is just one part and other network protocol activities also expense you nicely. You always want to minimize number of calls to the server by fetching all data that you require at once and in result better overall responsiveness.&lt;br /&gt;&lt;br /&gt;In one of the web project, we had to present navigation tree on the left side. The tree nodes were populated based on authorization and node attributes such as Hidden, etc. Initially, when we started with implementation we simply fetched nodes using SELECT N+1 method. That was easy and simple. But as no. of nodes got increased, we started experiencing delayed response.&lt;br /&gt;&lt;br /&gt;So then we come across &lt;/span&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ff649585.aspx"&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms';"&gt;DTO&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms';"&gt; &lt;/span&gt;&lt;a href="http://martinfowler.com/eaaCatalog/dataTransferObject.html"&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms';"&gt;pattern&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms';"&gt; and using my own &lt;/span&gt;&lt;a href="http://dgoyani.blogspot.com/2005/09/effective-way-to-expand-data-tree-in.html"&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms';"&gt;efficient n-level hierarchy traversal&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms';"&gt; method we fetched all tree nodes at once to be sent to the client. But then this approach has contradicted with &lt;/span&gt;&lt;a href="http://www.stevesouders.com/blog/2008/05/14/split-the-initial-payload/"&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms';"&gt;Split the initial payload&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms';"&gt; guideline (its written for web UI for good for any presentation layer) and lazy loading (loading only if required).&lt;br /&gt;&lt;br /&gt;As to solve second round of problem, we limited traversal depth level to 3. That not just reduced number of calls to server (and conforming with DTO) but also increased initial response. At max, however it is not limited, we had depth level of 5 so once the application is loaded client only had to make two more calls to reach to the node at fifth level. Well, I think that is acceptable.&lt;br /&gt;&lt;br /&gt;To further optimize, may be we can think of expanding entire sub-tree when client explicitly ask to drill down for a given node. It just works for us and thought to share with you.&lt;br /&gt;&lt;br /&gt;Thanks!&lt;br /&gt;Dhananjay&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12330834-33933969320964785?l=dgoyani.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://dgoyani.blogspot.com/feeds/33933969320964785/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=12330834&amp;postID=33933969320964785" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/12330834/posts/default/33933969320964785?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/12330834/posts/default/33933969320964785?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/dgoyani/~3/LKHcnn_GJjY/smart-data-transfer-object.html" title="Smart Data Transfer Object" /><author><name>Dhananjay</name><uri>http://www.blogger.com/profile/15183171539153925231</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://dgoyani.blogspot.com/2010/05/smart-data-transfer-object.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEQDSX48fSp7ImA9WxFXEEU.&quot;"><id>tag:blogger.com,1999:blog-12330834.post-941913685524941653</id><published>2010-05-10T22:55:00.000-07:00</published><updated>2010-05-17T00:46:18.075-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-05-17T00:46:18.075-07:00</app:edited><title>Do you buy Abstraction?</title><content type="html">&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms';"&gt;If your answer is NO, go and read below paragraph from &lt;a href="http://weblogs.asp.net/scottgu/default.aspx"&gt;The Gu&lt;/a&gt;. He answered people questioning ASP.NET MVC on the ground of abstraction. Check &lt;a href="http://weblogs.asp.net/scottgu/archive/2010/01/24/about-technical-debates-both-in-general-and-regarding-asp-net-web-forms-and-asp-net-mvc-in-particular.aspx"&gt;his complete post&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;I always find it somewhat ironic when I hear people complain about programming abstractions not being good. Especially when these complaints are published via blogs – whose content is displayed using HTML, is styled with CSS, made interactive with JavaScript, transported over the wire using HTTP, and implemented on the server with apps written in higher-level languages, using object oriented garbage collected frameworks, running on top of either interpreted or JIT-compiled byte code runtimes, and which ultimately store the blog content and comments in relational databases ultimately accessed via SQL query strings. All of this running within a VM on a hosted server – with the OS within the VM partitioning memory across kernel and user mode process boundaries, scheduling work using threads, raising device events using signals, and using an abstract storage API fo disk persistence. It is worth keeping all of that in mind the next time you are reading a “ORM vs Stored Procedures” or “server controls – good/bad?” post. The more interesting debates are about what the best abstractions are for a particular problem.&lt;/blockquote&gt;&lt;br /&gt;Thanks!&lt;br /&gt;Dhananjay&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12330834-941913685524941653?l=dgoyani.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://dgoyani.blogspot.com/feeds/941913685524941653/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=12330834&amp;postID=941913685524941653" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/12330834/posts/default/941913685524941653?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/12330834/posts/default/941913685524941653?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/dgoyani/~3/TTmiREccUeE/do-you-buy-abstraction.html" title="Do you buy Abstraction?" /><author><name>Dhananjay</name><uri>http://www.blogger.com/profile/15183171539153925231</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://dgoyani.blogspot.com/2010/05/do-you-buy-abstraction.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEIHRHg8eCp7ImA9WxFXEEU.&quot;"><id>tag:blogger.com,1999:blog-12330834.post-1865552942049755956</id><published>2010-02-04T21:13:00.000-08:00</published><updated>2010-05-17T00:48:55.670-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-05-17T00:48:55.670-07:00</app:edited><title>SQL Object Search made easy!</title><content type="html">&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms';"&gt;Ever since I developed DB Search Util back in 2006, it has made my life lot easier. I was trying to find a string instance in different tables and was literally clueless. Out of frustration for those two days, I decided to play with SQL system tables and figured out how tables and their schemas are stored. Next thing was quite simple as I just had to query the table to see if particular string instance exist in the row set or not. Obviously there were technical challenges but were trivial, to be honest.&lt;br /&gt;&lt;br /&gt;Since then this tiny utility become popular among Altiris (now Symantec) people at Cybage and there is nothing more satisfying to know that the utility is being introduced in SMP sessions for new comers.&lt;br /&gt;&lt;br /&gt;Even though, I am consciously aware about weaknesses of the tool, I have never stretched myself to developed those extra bits. Biggest among them is an ability to search for SQL Object names itself rather than data. I don’t know if I would do that but recent announcement from red-gate has filled the gap. Give it a try and please yourself when you try to find objects out of 500+.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.red-gate.com/products/SQL_Search/index.htm"&gt;http://www.red-gate.com/products/SQL_Search/index.htm&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Note: For legal purposes I can’t show code snippet of the DB Search Util. However the first paragraph is enough and won’t take more than 6 hours to develop.&lt;br /&gt;&lt;br /&gt;Thanks!&lt;br /&gt;Dhananjay&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12330834-1865552942049755956?l=dgoyani.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://dgoyani.blogspot.com/feeds/1865552942049755956/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=12330834&amp;postID=1865552942049755956" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/12330834/posts/default/1865552942049755956?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/12330834/posts/default/1865552942049755956?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/dgoyani/~3/zi4gxTqQB9I/sql-object-search-made-easy.html" title="SQL Object Search made easy!" /><author><name>Dhananjay</name><uri>http://www.blogger.com/profile/15183171539153925231</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://dgoyani.blogspot.com/2010/02/sql-object-search-made-easy.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEACR3s_eip7ImA9WxFXEEU.&quot;"><id>tag:blogger.com,1999:blog-12330834.post-6585724116555633302</id><published>2009-09-23T23:39:00.000-07:00</published><updated>2010-05-17T00:52:46.542-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-05-17T00:52:46.542-07:00</app:edited><title>Are you worried over cross IE browser support?</title><content type="html">&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms';"&gt;If you are migrating your web application developed for IE6/IE7 to IE8, you know involved pain as much as I do. There are lot of things you have to tweak – and the list is not limited to CSS, JS or DOM. In a recent development where in my job was to support IE8 in native mode without breaking IE7 – I was heavily dependent on &lt;a href="http://www.my-debugbar.com/wiki/IETester/HomePage"&gt;IETester&lt;/a&gt;. However that is more helpful towards rendering, CSS and DOM. So, as to get final picture I managed multiple VMs running different flavors of machines combining operating systems and browsers. This is again not so easy and full of hurdles.&lt;br /&gt;&lt;br /&gt;Finally, today I noticed &lt;a href="http://blogs.msdn.com/xweb/archive/2009/03/18/Microsoft-Expression-Web-SuperPreview-for-Windows-Internet-Explorer.aspx"&gt;Microsoft announcement on Microsoft Expression Web SuperPreview&lt;/a&gt;. I have just &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=8e6ac106-525d-45d0-84db-dccff3fae677&amp;amp;displaylang=en"&gt;downloaded&lt;/a&gt; it and checking how much it would be helpful. This tool announcement makes more sense to me because it’s from IE manufacturer – Microsoft.&lt;br /&gt;&lt;br /&gt;Thanks!&lt;br /&gt;Dhananjay&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12330834-6585724116555633302?l=dgoyani.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://dgoyani.blogspot.com/feeds/6585724116555633302/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=12330834&amp;postID=6585724116555633302" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/12330834/posts/default/6585724116555633302?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/12330834/posts/default/6585724116555633302?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/dgoyani/~3/jfxNuEdSKbo/are-you-worried-over-cross-ie-browser.html" title="Are you worried over cross IE browser support?" /><author><name>Dhananjay</name><uri>http://www.blogger.com/profile/15183171539153925231</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://dgoyani.blogspot.com/2009/09/are-you-worried-over-cross-ie-browser.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CE8MRH48eip7ImA9WxFXEEU.&quot;"><id>tag:blogger.com,1999:blog-12330834.post-8108594799787963985</id><published>2009-09-09T05:10:00.000-07:00</published><updated>2010-05-17T00:54:45.072-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-05-17T00:54:45.072-07:00</app:edited><title>Make sure to check DOLOTO against your web 2.0 sites</title><content type="html">DOLOTO was been eagerly awaited by community for more than a year. The technique to optimize AJAX based applications named - &lt;a href="http://www.stevesouders.com/blog/2008/05/14/split-the-initial-payload/"&gt;Spitting the initial payload&lt;/a&gt; interested many but there was no formal tool to automate that. And most of the time people have to do that manually.&lt;br /&gt;&lt;br /&gt;DOLOTO is brain child of Microsoft Research and more information along with installer can be found at below location. The idea is still fresh and you may want to share your results to “dolotofb at microsoft dot com”.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/devlabs/ee423534.aspx"&gt;DOLOTO: Download time optimizer for Web 2.0 apps&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Thanks!&lt;br /&gt;Dhananjay&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12330834-8108594799787963985?l=dgoyani.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://dgoyani.blogspot.com/feeds/8108594799787963985/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=12330834&amp;postID=8108594799787963985" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/12330834/posts/default/8108594799787963985?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/12330834/posts/default/8108594799787963985?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/dgoyani/~3/aOg2A330KdA/make-sure-to-check-doloto-against-your.html" title="Make sure to check DOLOTO against your web 2.0 sites" /><author><name>Dhananjay</name><uri>http://www.blogger.com/profile/15183171539153925231</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://dgoyani.blogspot.com/2009/09/make-sure-to-check-doloto-against-your.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUYFRHkzeyp7ImA9WxFXEEU.&quot;"><id>tag:blogger.com,1999:blog-12330834.post-5942420000179547576</id><published>2009-07-10T02:27:00.001-07:00</published><updated>2010-05-17T00:58:35.783-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-05-17T00:58:35.783-07:00</app:edited><title>Are you jing?</title><content type="html">&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms';"&gt;One of the most wonderful free tool I have ever come across – “the Jing”. Capture, Save &amp;amp; Share is what the mantra of Jing team. I am listing few important features that would interest you.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms';"&gt;Jing Screen capture:&lt;/span&gt;&lt;/b&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms';"&gt;&lt;br /&gt;&lt;/span&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms';"&gt;Capture screens and decorate it in one go.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms';"&gt;Very rich image edit tool will allow you to put text, arrows, boxes, etc.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms';"&gt;The editing tool is far better than any other including MS paint and it has just required things.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms';"&gt;Jing Video capture:&lt;/span&gt;&lt;/b&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms';"&gt;&lt;br /&gt;&lt;/span&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms';"&gt;Capture screen happening as much as you want&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms';"&gt;Save the entire video and share with your colleagues&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms';"&gt;It saves in SWF format so that you can view the video on any machine.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms';"&gt;I would recommend this tool to any QA and Dev who want to communicate anything visually. Many a times, Dev complain about exact steps for any defect reproduction and then QA carry them to their desk to show the steps. This tool can capture your steps so that you the QA or Dev just have to send the SWF and you are done.&lt;br /&gt;&lt;br /&gt;I played with the tool for some time today and found that it has all the power to put you in a great comfort. Check the below link.&lt;br /&gt;&lt;br /&gt;Link: &lt;/span&gt;&lt;a href="http://www.jingproject.com/"&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms';"&gt;www.jingproject.com&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms';"&gt;&lt;br /&gt;&lt;br /&gt;Thanks!&lt;br /&gt;Dhananjay&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12330834-5942420000179547576?l=dgoyani.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://dgoyani.blogspot.com/feeds/5942420000179547576/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=12330834&amp;postID=5942420000179547576" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/12330834/posts/default/5942420000179547576?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/12330834/posts/default/5942420000179547576?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/dgoyani/~3/Rz7sVNd5Pu4/are-you-jing.html" title="Are you jing?" /><author><name>Dhananjay</name><uri>http://www.blogger.com/profile/15183171539153925231</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://dgoyani.blogspot.com/2009/07/are-you-jing.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUUDQn87eSp7ImA9WxFXEEU.&quot;"><id>tag:blogger.com,1999:blog-12330834.post-6676841006505973171</id><published>2009-07-01T04:42:00.001-07:00</published><updated>2010-05-17T01:01:13.101-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-05-17T01:01:13.101-07:00</app:edited><title>Rich set of .NET services for Rich client</title><content type="html">&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms';"&gt;Starting from static web pages (.HTML, .HTM, etc) to dynamism with server scripts (.asp, .jsp, etc) to OO enabled server scripts (ASP.NET) to powerful client applications (ASP.NET + AJAX), THE web has already stepped into rich model of first class web applications delivery to end users.&lt;br /&gt;&lt;br /&gt;Making the client rich alone will not work. And that is where .NET RIA services comes into play. There is a nice introductory page released recently, which will clear all your questions and give very good understanding of overall picture.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/dd776095.aspx"&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms';"&gt;Getting started with the .NET RIA Services&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms';"&gt;&lt;br /&gt;&lt;br /&gt;Thanks!&lt;br /&gt;Dhananjay&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12330834-6676841006505973171?l=dgoyani.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://dgoyani.blogspot.com/feeds/6676841006505973171/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=12330834&amp;postID=6676841006505973171" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/12330834/posts/default/6676841006505973171?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/12330834/posts/default/6676841006505973171?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/dgoyani/~3/0C3CkJ1a2vs/rich-set-of-net-services-for-rich.html" title="Rich set of .NET services for Rich client" /><author><name>Dhananjay</name><uri>http://www.blogger.com/profile/15183171539153925231</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://dgoyani.blogspot.com/2009/07/rich-set-of-net-services-for-rich.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Dk8HQXwyeCp7ImA9WxFXEEU.&quot;"><id>tag:blogger.com,1999:blog-12330834.post-1293653247442186745</id><published>2009-07-01T02:05:00.001-07:00</published><updated>2010-05-17T01:27:10.290-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-05-17T01:27:10.290-07:00</app:edited><title>Refactoring catalog</title><content type="html">&lt;div&gt;Refactoring is important part of Agile methodology. As they say no code is ever complete and there is a good scope of improvement. As most of my work experience include traditional SDLC models, I always refrain myself from accepting changes and if it becomes mandatory that goes as Requirement bug or Design bug if not change in requirement.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;That was horrible.&lt;/div&gt;&lt;div&gt;That was painful too.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Now with Agile practice, you would say – well, I am open for any changes because my design supports that and importantly my mind too! Does that sound interesting to you?&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;OK, then there are people (Uncle bob, Martin fowler, etc…) who are ready to solve your problems. Being late in the Agile game, it is glad to see that there are tested patterns and practices that you can follow to ensure success in your software projects.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;One of such practice they follow is Refactoring – continuous code improvement. Though it is de-facto in Agile, there is no wrong to practice it in other software execution models.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Definition of Refactoring as per martin fowler’s dedicated site:&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div&gt;Refactoring is a disciplined technique for restructuring an existing body of code, altering its internal structure without changing its external behavior. Its heart is a series of small behavior preserving transformations. Each transformation (called a 'refactoring') does little, but a sequence of transformations can produce a significant restructuring. Since each refactoring is small, it's less likely to go wrong. The system is also kept fully working after each small refactoring, reducing the chances that a system can get seriously broken during the restructuring.&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Click on below links to find well researched articles to dig more.&lt;/div&gt;&lt;div&gt;  &lt;a href="http://www.refactoring.com/index.html"&gt;Refactoring home page&lt;/a&gt;&lt;/div&gt;&lt;div&gt;  &lt;a href="http://www.refactoring.com/catalog/index.html"&gt;Refactoring catalog page&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Thanks!&lt;/div&gt;&lt;div&gt;Dhananjay&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12330834-1293653247442186745?l=dgoyani.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://dgoyani.blogspot.com/feeds/1293653247442186745/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=12330834&amp;postID=1293653247442186745" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/12330834/posts/default/1293653247442186745?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/12330834/posts/default/1293653247442186745?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/dgoyani/~3/JnBQq6KeIXI/refactoring-catalog.html" title="Refactoring catalog" /><author><name>Dhananjay</name><uri>http://www.blogger.com/profile/15183171539153925231</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://dgoyani.blogspot.com/2009/07/refactoring-catalog.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUICQX08eip7ImA9WxFXEEU.&quot;"><id>tag:blogger.com,1999:blog-12330834.post-5507237570321198146</id><published>2009-06-30T04:44:00.001-07:00</published><updated>2010-05-17T01:06:00.372-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-05-17T01:06:00.372-07:00</app:edited><title>Stepping into Silverlight</title><content type="html">&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms';"&gt;Recently, I have started exploring Silverlight 2 to replace existing ASP.NET traditional console to some extent with Silverlight. Well, actually I was going through many articles and web pages, but none other served me well than the below book. I am half way to complete the book and would like to recommend to anybody want to jump in the “expressive world of Silverlight”.&lt;br /&gt;&lt;br /&gt;Title: &lt;/span&gt;&lt;a href="http://www.amazon.com/Pro-Silverlight-C-2008-Windows-Net/dp/1590599497/"&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms';"&gt;Pro Silverlight 2 in C# 2008&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms';"&gt;&lt;br /&gt;Author: Matthew MacDonald&lt;br /&gt;&lt;br /&gt;Thanks!&lt;br /&gt;Dhananjay&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12330834-5507237570321198146?l=dgoyani.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://dgoyani.blogspot.com/feeds/5507237570321198146/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=12330834&amp;postID=5507237570321198146" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/12330834/posts/default/5507237570321198146?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/12330834/posts/default/5507237570321198146?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/dgoyani/~3/N-bIddgie-w/stepping-into-silverlight.html" title="Stepping into Silverlight" /><author><name>Dhananjay</name><uri>http://www.blogger.com/profile/15183171539153925231</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://dgoyani.blogspot.com/2009/06/stepping-into-silverlight.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CU8GRno-fCp7ImA9WxFXEEU.&quot;"><id>tag:blogger.com,1999:blog-12330834.post-3996262542731968506</id><published>2009-04-02T23:50:00.000-07:00</published><updated>2010-05-17T01:10:27.454-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-05-17T01:10:27.454-07:00</app:edited><title>Want to modify Active Directory objects?</title><content type="html">&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms';"&gt;I can't believe I developed a full AD based application without using any tool as such. Recently I got to know about ADSI Edit tool from Microsoft. I would have solved lot of problems quickly with the help of this tool.&lt;br /&gt;&lt;br /&gt;This simple utility can be heaven for anybody who wants to...&lt;br /&gt;&lt;/span&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms';"&gt;develop something using Active Directory; to find attributes and values.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms';"&gt;test some of functionalities which are highly based on AD objects.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms';"&gt;manage/edit AD objects, especially for IT professionals.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms';"&gt;Check the link and get started.&lt;br /&gt;&lt;/span&gt;&lt;a href="I can't believe I developed a full AD based application without using any tool as such. Recently I got to know about ADSI Edit tool from Microsoft. I would have solved lot of problems quickly with the help of this tool. This simple utility can be heaven for anybody who wants to... develop something using Active Directory; to find attributes and values. test some of functionalities which are highly based on AD objects. manage/edit AD objects, especially for IT professionals. Check the link and get started. http://technet.microsoft.com/en-us/library/cc773354.aspx Thanks! Dhananjay"&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms';"&gt;http://technet.microsoft.com/en-us/library/cc773354.aspx&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms';"&gt;&lt;br /&gt;&lt;br /&gt;Thanks!&lt;br /&gt;Dhananjay&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12330834-3996262542731968506?l=dgoyani.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://dgoyani.blogspot.com/feeds/3996262542731968506/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=12330834&amp;postID=3996262542731968506" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/12330834/posts/default/3996262542731968506?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/12330834/posts/default/3996262542731968506?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/dgoyani/~3/EfiBk3sQl24/want-to-modify-active-directory-objects.html" title="Want to modify Active Directory objects?" /><author><name>Dhananjay</name><uri>http://www.blogger.com/profile/15183171539153925231</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://dgoyani.blogspot.com/2009/04/want-to-modify-active-directory-objects.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CU4GSH07fyp7ImA9WxFXEEU.&quot;"><id>tag:blogger.com,1999:blog-12330834.post-1562511962279012012</id><published>2007-10-27T00:14:00.001-07:00</published><updated>2010-05-17T01:12:09.307-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-05-17T01:12:09.307-07:00</app:edited><title>SQL Server 2005 Error: Insufficient result space to convert uniqueidentifier value to char.</title><content type="html">&lt;span style="font-family:trebuchet ms;color:#000000;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;I was trying to convert a uniqueidentifier column into varchar and stuck up with the "Insufficient result space to convert uniqueidentifier value to char." error message. The cause of the problem is I guess default size of varchar. The uniqueidentifier value which when converted to varchar needs atleast 36 characters which includes 32 characters and 4 dashes. &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:trebuchet ms;color:#000000;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;To come out of the error make sure to specify size of the varchar in convert function. Please see the below code for more details.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div&gt;&lt;span style="font-family:trebuchet ms;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;span class="Apple-style-span"  style="color:#3333FF;"&gt;declare @var uniqueidentifier&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:trebuchet ms;color:#3333ff;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;set @var = '1D53379D-C97F-46C2-A22A-0003FA380460'&lt;br /&gt;select convert(varchar(36), @var)&lt;br /&gt;-- select cast(@var as varchar(36))&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;p&gt;&lt;span style="font-family:trebuchet ms;color:#000000;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;Thanks!&lt;br /&gt;Dhananjay&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12330834-1562511962279012012?l=dgoyani.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://dgoyani.blogspot.com/feeds/1562511962279012012/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=12330834&amp;postID=1562511962279012012" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/12330834/posts/default/1562511962279012012?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/12330834/posts/default/1562511962279012012?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/dgoyani/~3/IHHaYweuMDo/sql-server-2005-error-insufficient.html" title="SQL Server 2005 Error: Insufficient result space to convert uniqueidentifier value to char." /><author><name>Dhananjay</name><uri>http://www.blogger.com/profile/15183171539153925231</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://dgoyani.blogspot.com/2007/10/sql-server-2005-error-insufficient.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkcGQH47cCp7ImA9WxFXEEU.&quot;"><id>tag:blogger.com,1999:blog-12330834.post-112780471633609434</id><published>2005-09-26T23:58:00.000-07:00</published><updated>2010-05-17T01:13:41.008-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-05-17T01:13:41.008-07:00</app:edited><title>C# look at IL - .NET disassembler</title><content type="html">&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms';"&gt;While googling came across Lutz Roeder's .NET Reflector - truely .NET disassembler and thought to share it with you. Have a look at the below link for all tools by Lutz.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms';"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.aisto.com/roeder/dotnet/"&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms';"&gt;http://www.aisto.com/roeder/dotnet/&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms';"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms';"&gt;Thanks!&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms';"&gt;Dhananjay&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/12330834-112780471633609434?l=dgoyani.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://dgoyani.blogspot.com/feeds/112780471633609434/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=12330834&amp;postID=112780471633609434" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/12330834/posts/default/112780471633609434?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/12330834/posts/default/112780471633609434?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/dgoyani/~3/4Bh_w-D40Q8/c-look-at-il-net-disassembler.html" title="C# look at IL - .NET disassembler" /><author><name>Dhananjay</name><uri>http://www.blogger.com/profile/15183171539153925231</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://dgoyani.blogspot.com/2005/09/c-look-at-il-net-disassembler.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkYNR3syeyp7ImA9WxFXEEU.&quot;"><id>tag:blogger.com,1999:blog-12330834.post-112773759687850663</id><published>2005-09-26T05:19:00.000-07:00</published><updated>2010-05-17T01:16:36.593-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-05-17T01:16:36.593-07:00</app:edited><title>Using SQL Cache Dependency in ASP.NET</title><content type="html">&lt;span style="font-family:trebuchet ms;color:#000000;"&gt;ASP.NET Cache is used to store static data across web sessions. But what to do when you want to update the Cache as and when SQL/Data changes. The below two articles focus on the same, have a look.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;color:#000000;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;a href="http://www.ondotnet.com/pub/a/dotnet/2005/01/17/sqlcachedependency.html"&gt;&lt;span style="font-family:trebuchet ms;color:#009900;"&gt;ondotnet.com&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/msdnmag/issues/03/04/wickedcode/"&gt;&lt;span style="font-family:trebuchet ms;color:#009900;"&gt;msdn.microsoft.com&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;color:#000000;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;color:#000000;"&gt;Thanks!&lt;/span&gt;&lt;div&gt;&lt;span style="font-family:trebuchet ms;color:#000000;"&gt;Dhananjay&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/12330834-112773759687850663?l=dgoyani.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://dgoyani.blogspot.com/feeds/112773759687850663/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=12330834&amp;postID=112773759687850663" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/12330834/posts/default/112773759687850663?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/12330834/posts/default/112773759687850663?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/dgoyani/~3/qqYQeXnzbq4/using-sql-cache-dependency-in-aspnet.html" title="Using SQL Cache Dependency in ASP.NET" /><author><name>Dhananjay</name><uri>http://www.blogger.com/profile/15183171539153925231</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://dgoyani.blogspot.com/2005/09/using-sql-cache-dependency-in-aspnet.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkQDSXs4eSp7ImA9WxFXEEU.&quot;"><id>tag:blogger.com,1999:blog-12330834.post-112773442933015227</id><published>2005-09-26T04:33:00.000-07:00</published><updated>2010-05-17T01:19:38.531-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-05-17T01:19:38.531-07:00</app:edited><title>Effective way to expand data tree in SQL Server</title><content type="html">&lt;span style="font-family:trebuchet ms;color:#000000;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;There are possibly many ways to expand nodes which are in parent - child relationship. This post focus on the most effective way to do it along with other possible solutions.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;# Multiple round trip to server (worst case)&lt;/strong&gt;&lt;br /&gt;- Make an SP which returns all parent/child (whatever required) IDs&lt;br /&gt;- From code call SP recursively untill you reach the end.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;# Single round trip to server (thats what a better option - again not the best one)&lt;/strong&gt;&lt;br /&gt;- Make an SP which returns everything from the table.&lt;br /&gt;- Just make your recurssion process in Business logic (.NET/Java) rather than T-SQL&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;# Without recursion (hopefully, the best)&lt;/strong&gt;&lt;br /&gt;Let's dig it out, Here is the story. I tried to solve the problem in most effective way using many ways including the above two. But no way could end up into success. I was looking for some logical way at SP end. Below is the table structure and the SP. SP comments would help you to understand it well. Just go through it, it's very easy. Also I would appreciate if you have the solution in some other way.&lt;br /&gt;&lt;br /&gt;Thanks!&lt;br /&gt;Dhananjay&lt;/span&gt;&lt;div&gt;&lt;span style="font-family:trebuchet ms;color:#000000;"&gt;&lt;br /&gt;&lt;strong&gt;Sample Table&lt;/strong&gt;&lt;br /&gt;&lt;span style="font-size:85%;color:#009900;"&gt;CREATE TABLE [_Test_Hierarchy] (&lt;br /&gt;[ID] [numeric](10, 0) IDENTITY (1, 1) NOT NULL ,&lt;br /&gt;[ParentID] [numeric](10, 0) NOT NULL ,&lt;br /&gt;[Name] [varchar] (255) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL&lt;br /&gt;) ON [PRIMARY]&lt;br /&gt;GO&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;strong&gt;Stored Procedure&lt;/strong&gt;&lt;br /&gt;&lt;span style="font-size:85%;color:#009900;"&gt;CREATE PROCEDURE Test_Expand -- Creates an stored procedure&lt;br /&gt;(&lt;br /&gt;@current NUMERIC -- The ID of which all childs are required&lt;br /&gt;)&lt;br /&gt;AS&lt;br /&gt;DECLARE @LinesUpdated INT, @Level INT&lt;br /&gt;&lt;br /&gt;SET NOCOUNT ON&lt;br /&gt;&lt;br /&gt;SET @LinesUpdated = 1 -- It holds the value indicating number of rows inserted into temp table.&lt;br /&gt;SET @Level = 1 -- used to identify the nodes for which we have already added childs.&lt;br /&gt;&lt;br /&gt;CREATE TABLE #stack -- temporary table, you can add more columns as per your comfort.&lt;br /&gt;(&lt;br /&gt;ID NUMERIC,&lt;br /&gt;Lvl INT&lt;br /&gt;)&lt;br /&gt;&lt;br /&gt;INSERT INTO #stack -- Insert the current node and set it's level to 1.&lt;br /&gt;VALUES (@current, @Level)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;WHILE @LinesUpdated &gt; 0&lt;br /&gt;BEGIN&lt;br /&gt;SET @Level = @Level + 1 -- Every loop iteratation increast one level.&lt;br /&gt;&lt;br /&gt;-- Here we need to focus on two criteria while shortlisting.&lt;br /&gt;-- 1. Check all child nodes of the parents already stored into temp table - #stack&lt;br /&gt;-- 2. A node already in the list, must not be repetated. That is why we kept Lvl = @Level - 1 condition. It always search for fresh nodes.&lt;br /&gt;INSERT INTO #stack&lt;br /&gt;SELECT t1.ID, @Level&lt;br /&gt;FROM&lt;br /&gt;_Test_Hierarchy t1,&lt;br /&gt;(SELECT * FROM #stack WHERE Lvl = @Level - 1) s1&lt;br /&gt;WHERE 1 = 1&lt;br /&gt;AND s1.ID = t1.ParentID&lt;br /&gt;&lt;br /&gt;SET @LinesUpdated = @@ROWCOUNT -- @@ROWCOUNT always holds last count of selection. Terminate the loop when no row added.&lt;br /&gt;END&lt;br /&gt;&lt;br /&gt;-- Its very simpe, you must be knowing...&lt;br /&gt;SELECT t1.ID, t1.Name&lt;br /&gt;FROM&lt;br /&gt;#stack s1,&lt;br /&gt;_Test_Hierarchy t1&lt;br /&gt;WHERE 1 = 1&lt;br /&gt;AND s1.ID = t1.ID&lt;br /&gt;&lt;br /&gt;GO&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/12330834-112773442933015227?l=dgoyani.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://dgoyani.blogspot.com/feeds/112773442933015227/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=12330834&amp;postID=112773442933015227" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/12330834/posts/default/112773442933015227?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/12330834/posts/default/112773442933015227?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/dgoyani/~3/ELE0d2NEMWs/effective-way-to-expand-data-tree-in.html" title="Effective way to expand data tree in SQL Server" /><author><name>Dhananjay</name><uri>http://www.blogger.com/profile/15183171539153925231</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://dgoyani.blogspot.com/2005/09/effective-way-to-expand-data-tree-in.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkIMQ3c8eCp7ImA9WxFXEEU.&quot;"><id>tag:blogger.com,1999:blog-12330834.post-112729114228640204</id><published>2005-09-21T01:25:00.000-07:00</published><updated>2010-05-17T01:23:02.970-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-05-17T01:23:02.970-07:00</app:edited><title>Handeling server control event from page itself in .NET</title><content type="html">&lt;span style="font-family:trebuchet ms;color:#000000;"&gt;Let me define the problem statement. Say, we have address control having address1, address2, city, state and some other fields. This post answers to handle "save" button click event from page itself. You already have the event handler on control code behind, but to handle it from main page (where your control resides) is a bit tricky. Here is a step by step guide for a newbie who want to create server control and would like to wire events.&lt;/span&gt;&lt;div&gt;&lt;span style="font-family:trebuchet ms;color:#000000;"&gt;&lt;br /&gt;&gt; Declare an public event in to your control, like...&lt;br /&gt;&lt;span style="color:#009900;"&gt;public event CommandEventHandler SaveCommand; &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&gt; Add btnSave click event handler, and also the defination...&lt;br /&gt;&lt;span style="color:#009900;"&gt;btnSave.Click += new EventHandler(btnSave_Click);&lt;br /&gt;private void btnSave_Click(object sender, EventArgs e)&lt;br /&gt;{&lt;br /&gt;Button button = sender as Button;&lt;br /&gt;if (button != null)&lt;br /&gt;{&lt;br /&gt;CommandEventArgs args = new CommandEventArgs(button.CommandName, button.CommandArgument);&lt;br /&gt;OnSaveCommand(args);&lt;br /&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#009900;"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;color:#000000;"&gt;&lt;br /&gt;&gt; Add OnSaveCommand function...&lt;br /&gt;&lt;span style="color:#009900;"&gt;protected virtual void OnSaveCommand(CommandEventArgs e)&lt;br /&gt;{&lt;br /&gt;if (SaveCommand != null)&lt;br /&gt;SaveCommand(this, e);&lt;br /&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&gt; Now you can have the event handler in your page. Just click on control from page, add your code...&lt;br /&gt;&lt;span style="color:#009900;"&gt;private void AddressControl1_SaveCommand(object sender, System.Web.UI.WebControls.CommandEventArgs e)&lt;br /&gt;{&lt;br /&gt;// my code..&lt;br /&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:trebuchet ms;color:#000000;"&gt;Thanks!&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:trebuchet ms;color:#000000;"&gt;Dhananjay&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/12330834-112729114228640204?l=dgoyani.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://dgoyani.blogspot.com/feeds/112729114228640204/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=12330834&amp;postID=112729114228640204" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/12330834/posts/default/112729114228640204?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/12330834/posts/default/112729114228640204?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/dgoyani/~3/l035vw4kV5c/handeling-server-control-event-from.html" title="Handeling server control event from page itself in .NET" /><author><name>Dhananjay</name><uri>http://www.blogger.com/profile/15183171539153925231</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://dgoyani.blogspot.com/2005/09/handeling-server-control-event-from.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkAFRHo4fCp7ImA9WxFXEEU.&quot;"><id>tag:blogger.com,1999:blog-12330834.post-112687295724862238</id><published>2005-09-16T05:12:00.000-07:00</published><updated>2010-05-17T01:25:15.434-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-05-17T01:25:15.434-07:00</app:edited><title>Refrencing the Root Path/URL in .NET</title><content type="html">&lt;span style="color:#000000;"&gt;&lt;span style="font-family:trebuchet ms;"&gt;A common question from newbies is "How can I reference the root path of my application from controls?". It is common for many server side controls to have properties such as src (source) and hyperlinks/URL etc. ASP.NET has a neat syntax that you can use to reference the root of the applications directory in any server-side controls URL property. This syntax will relief you of having to place relative pathis in your apps directory hierachy.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;&lt;span style="font-family:trebuchet ms;"&gt;Simply prefix the path with the ~ (tilda) character. During the compilation process of the server-side control, ASP.NET will translate that ~ into Request.ApplicationPath.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;An example would look like &lt;span style="color:#009900;"&gt;img src="~/images/logo.gif" runat="server".&lt;/span&gt; Keep in mind that this &lt;span style="color:#000000;"&gt;will work for SERVER-SIDE controls only!&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;&lt;br /&gt;&lt;span style="font-family:Trebuchet MS;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Trebuchet MS;"&gt;Thanks!&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Trebuchet MS;"&gt;&lt;/span&gt;&lt;div&gt;&lt;span style="color:#000000;"&gt;&lt;span style="font-family:Trebuchet MS;"&gt;Dhananjay&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/12330834-112687295724862238?l=dgoyani.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://dgoyani.blogspot.com/feeds/112687295724862238/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=12330834&amp;postID=112687295724862238" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/12330834/posts/default/112687295724862238?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/12330834/posts/default/112687295724862238?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/dgoyani/~3/UErKijNSNOk/refrencing-root-pathurl-in-net.html" title="Refrencing the Root Path/URL in .NET" /><author><name>Dhananjay</name><uri>http://www.blogger.com/profile/15183171539153925231</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://dgoyani.blogspot.com/2005/09/refrencing-root-pathurl-in-net.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkEDRn44fip7ImA9WxFXEEU.&quot;"><id>tag:blogger.com,1999:blog-12330834.post-112244023000106239</id><published>2005-07-26T21:46:00.000-07:00</published><updated>2010-05-17T01:24:37.036-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-05-17T01:24:37.036-07:00</app:edited><title>Skip prerequisite while installing .NET 2003</title><content type="html">Many times .NET 2003 installation fails due to some known / unknown reasons. And while installing it again it might ask you to install prerequisite first even though you have already installed it. You would become confused why it asks me again and again to install prerequisite. Possibly because of installation failure it might have updated wrong registry entries.&lt;br /&gt;The possible solution is...&lt;br /&gt;&lt;br /&gt;Go to Start &gt; Run. And write following command line to run the setup file.&lt;br /&gt;&lt;span class="Apple-style-span"  style="color:#009900;"&gt;G:\setup\setup.exe /NO_BSLN_CHECK&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;And you are done! It won’t ask you to install prerequisite any more...&lt;br /&gt;&lt;br /&gt;Thanks!&lt;br /&gt;Dhananjay&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12330834-112244023000106239?l=dgoyani.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://dgoyani.blogspot.com/feeds/112244023000106239/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=12330834&amp;postID=112244023000106239" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/12330834/posts/default/112244023000106239?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/12330834/posts/default/112244023000106239?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/dgoyani/~3/xqGmN2Lxw_0/skip-prerequisite-while-installing-net.html" title="Skip prerequisite while installing .NET 2003" /><author><name>Dhananjay</name><uri>http://www.blogger.com/profile/15183171539153925231</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://dgoyani.blogspot.com/2005/07/skip-prerequisite-while-installing-net.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkABRHw9eCp7ImA9WxFXEEU.&quot;"><id>tag:blogger.com,1999:blog-12330834.post-111786828498527381</id><published>2005-06-03T23:43:00.000-07:00</published><updated>2010-05-17T01:25:55.260-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-05-17T01:25:55.260-07:00</app:edited><title>How to retrieve the identity-id of last inserted record in ms sql server ?</title><content type="html">&lt;div align="justify"&gt;&lt;span class="Apple-style-span" style="font-family: 'trebuchet ms'; "&gt;In many cases you might require to read back auto-generated id after insertion, specially when you want to use the id as foreign key into other table.&lt;/span&gt;&lt;/div&gt;&lt;p align="justify"&gt;&lt;span style="font-family:trebuchet ms;color:#000000;"&gt;Let's have an example to understand it well.&lt;br /&gt;&lt;span style="color:#009900;"&gt;Table: Users ( UserID - Autogenerate id, UserName, LastName, Address )&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#009900;"&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;Composite key = UserName, LastName, Address&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:trebuchet ms;"&gt;&lt;span style="color:#000000;"&gt;Now, after an insert statement you would like to know the value of UserID. Have a look at the solutions&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Method: 1&lt;/strong&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:trebuchet ms;"&gt;&lt;span style="color:#000000;"&gt;&lt;span style="color:#009900;"&gt;insert into Users(UserName, LastName, Address) values('Hello', 'world', 'Blabla !')&lt;br /&gt;&lt;/span&gt;&lt;span style="color:#009900;"&gt;select userid from users where UserName = 'Hello' and LastName='world' and Address='Blabla !'&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Method: 2&lt;/strong&gt;&lt;br /&gt;MS SQL Server provides set of global variables for different users. Instead of method 1, i would go for the one below...&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:trebuchet ms;"&gt;&lt;span style="color:#000000;"&gt;&lt;span style="color:#009900;"&gt;insert into Users(UserName, LastName, Address) values('Hello', 'world', 'Blabla !')&lt;br /&gt;[ select @@identity ]&lt;br /&gt;[ select * from Users where id = @@identity]&lt;br /&gt;[ set @localVarible = @@identity ]&lt;br /&gt;[ return @@identity ] &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;@@identity holds last inserted record's unique auto-generated id. If your insert statement fails to execute, @@identity holds null.&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS'; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:trebuchet ms;"&gt;&lt;span style="color:#000000;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS'; "&gt;Thanks!&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:trebuchet ms;"&gt;&lt;span style="color:#000000;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS'; "&gt;Dhananjay&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12330834-111786828498527381?l=dgoyani.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/12330834/posts/default/111786828498527381?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/12330834/posts/default/111786828498527381?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/dgoyani/~3/Ggpqc9uLc08/how-to-retrieve-identity-id-of-last.html" title="How to retrieve the identity-id of last inserted record in ms sql server ?" /><author><name>Dhananjay</name><uri>http://www.blogger.com/profile/15183171539153925231</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><feedburner:origLink>http://dgoyani.blogspot.com/2005/06/how-to-retrieve-identity-id-of-last.html</feedburner:origLink></entry></feed>

