<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-5828148405619968357</id><updated>2012-02-16T05:27:22.015-08:00</updated><category term='indexes'/><category term='Integration Services'/><category term='Fun Place'/><category term='SQL Server 2008'/><category term='SQL'/><category term='Character Codes Converter'/><category term='CSS'/><category term='Javascript'/><category term='.Net'/><category term='Image Galleries (css and Javascript)'/><category term='.Net LINQ'/><category term='New features'/><category term='indexing'/><category term='css menus'/><category term='Sliders'/><category term='SQL Order By'/><category term='Fun'/><category term='Object Oriented Programming Concepts (OOP)'/><category term='ASP.Net New features'/><category term='LINQ Framework Design Guidelines'/><category term='Connection String'/><category term='Puneet Singla'/><category term='Great articles .Net'/><category term='Flash'/><category term='Flash. Puneet Singla'/><category term='Visual Studio shortkuts'/><category term='Code Convertors VB.Net to C#.Net'/><category term='State management'/><category term='Development Tools'/><category term='SQL Connection'/><category term='Filtered indexes'/><category term='Jquery'/><category term='NUnit Testing'/><category term='Articles'/><category term='ADO.Net'/><category term='ADO'/><category term='Funny Pictures'/><title type='text'>Puneet Singla</title><subtitle type='html'>Software Developer, Chaandigarh, Mohali, Share important stuff on development tools, ASP.Net, SQL Server, OOPS, SEO, utilities, Web Development, design patterns</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://psingla.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5828148405619968357/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://psingla.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Puneet Singla</name><uri>http://www.blogger.com/profile/11957578103212343335</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_lMwvEp6jzaI/R_5IrYRj2mI/AAAAAAAAAHc/tdtOoptxfT8/S220/puneet.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>31</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-5828148405619968357.post-2539553611335549797</id><published>2010-01-03T09:56:00.000-08:00</published><updated>2010-01-03T09:56:17.429-08:00</updated><title type='text'>Javascript Scroller</title><content type='html'>&lt;b&gt;Javascript Scroller&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.news-scroller.com/index.html" target="_blank"&gt;http://www.news-scroller.com/index.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://psingla.blogspot.com/"&gt;Puneet Singla&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5828148405619968357-2539553611335549797?l=psingla.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://psingla.blogspot.com/feeds/2539553611335549797/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5828148405619968357&amp;postID=2539553611335549797' title='36 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5828148405619968357/posts/default/2539553611335549797'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5828148405619968357/posts/default/2539553611335549797'/><link rel='alternate' type='text/html' href='http://psingla.blogspot.com/2010/01/javascript-scroller.html' title='Javascript Scroller'/><author><name>Puneet Singla</name><uri>http://www.blogger.com/profile/11957578103212343335</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_lMwvEp6jzaI/R_5IrYRj2mI/AAAAAAAAAHc/tdtOoptxfT8/S220/puneet.jpg'/></author><thr:total>36</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5828148405619968357.post-3325048270713641048</id><published>2009-12-04T04:22:00.000-08:00</published><updated>2009-12-04T04:29:57.664-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Articles'/><title type='text'>JQuery Tutorial and Blogs to follow</title><content type='html'>Here is the great article about Jquery:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.west-wind.com/presentations/jQuery/default.aspx" target="_blank"&gt;http://www.west-wind.com/presentations/jQuery/default.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Blogs to Follow:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.west-wind.com/weblog/" target="_blank"&gt;http://www.west-wind.com/weblog/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;ScottGu's Blog:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://weblogs.asp.net/scottgu/default.aspx" target="_blank"&gt;http://weblogs.asp.net/scottgu/default.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://psingla.blogspot.com/"&gt;Puneet Singla&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5828148405619968357-3325048270713641048?l=psingla.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://psingla.blogspot.com/feeds/3325048270713641048/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5828148405619968357&amp;postID=3325048270713641048' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5828148405619968357/posts/default/3325048270713641048'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5828148405619968357/posts/default/3325048270713641048'/><link rel='alternate' type='text/html' href='http://psingla.blogspot.com/2009/12/jquery-tutorial-and-blogs-to-follow.html' title='JQuery Tutorial and Blogs to follow'/><author><name>Puneet Singla</name><uri>http://www.blogger.com/profile/11957578103212343335</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_lMwvEp6jzaI/R_5IrYRj2mI/AAAAAAAAAHc/tdtOoptxfT8/S220/puneet.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5828148405619968357.post-5550889588010400416</id><published>2009-11-02T08:58:00.001-08:00</published><updated>2009-11-02T08:59:09.835-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Development Tools'/><title type='text'>Development tools</title><content type='html'>https://browserlab.adobe.com/index.html#&lt;br /&gt;&lt;br /&gt;http://viewlike.us&lt;br /&gt;&lt;br /&gt;A tool for source-code control that integrates into Basecamp. Very small learning curve, please provide feedback:&lt;br /&gt;&lt;br /&gt;https://www.springloops.com/&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;And a nifty set of tools that might make some jobs easier:&lt;br /&gt;&lt;br /&gt;http://web.appstorm.net/roundups/51-web-apps-for-web-designers-and-developers/&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5828148405619968357-5550889588010400416?l=psingla.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://psingla.blogspot.com/feeds/5550889588010400416/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5828148405619968357&amp;postID=5550889588010400416' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5828148405619968357/posts/default/5550889588010400416'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5828148405619968357/posts/default/5550889588010400416'/><link rel='alternate' type='text/html' href='http://psingla.blogspot.com/2009/11/development-tools.html' title='Development tools'/><author><name>Puneet Singla</name><uri>http://www.blogger.com/profile/11957578103212343335</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_lMwvEp6jzaI/R_5IrYRj2mI/AAAAAAAAAHc/tdtOoptxfT8/S220/puneet.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5828148405619968357.post-1893694598283906242</id><published>2009-09-22T00:10:00.000-07:00</published><updated>2009-09-22T00:15:56.061-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Fun'/><title type='text'>Fun Video - Funkey Monkey</title><content type='html'>&lt;object width="320" height="266" class="BLOG_video_class" id="BLOG_video-5003f5f32129b100" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"&gt;&lt;param name="movie" value="http://www.youtube.com/get_player"&gt;&lt;param name="bgcolor" value="#FFFFFF"&gt;&lt;param name="allowfullscreen" value="true"&gt;&lt;param name="flashvars" value="flvurl=http://v16.nonxt8.googlevideo.com/videoplayback?id%3D5003f5f32129b100%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1333079403%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D4EC0D563623B478F905D369B68E2DAFACDB18789.7F7B2C13E0197C2EAEB75F9BBFA4BBB1E695FD2%26key%3Dck1&amp;amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3D5003f5f32129b100%26offsetms%3D5000%26itag%3Dw160%26sigh%3Dum3HGloZGQsaWaZ7ij95wFcuF_s&amp;amp;autoplay=0&amp;amp;ps=blogger"&gt;&lt;embed src="http://www.youtube.com/get_player" type="application/x-shockwave-flash"width="320" height="266" bgcolor="#FFFFFF"flashvars="flvurl=http://v16.nonxt8.googlevideo.com/videoplayback?id%3D5003f5f32129b100%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1333079403%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D4EC0D563623B478F905D369B68E2DAFACDB18789.7F7B2C13E0197C2EAEB75F9BBFA4BBB1E695FD2%26key%3Dck1&amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3D5003f5f32129b100%26offsetms%3D5000%26itag%3Dw160%26sigh%3Dum3HGloZGQsaWaZ7ij95wFcuF_s&amp;autoplay=0&amp;ps=blogger"allowFullScreen="true" /&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://psingla.blogspot.com/"&gt;Puneet Singla&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5828148405619968357-1893694598283906242?l=psingla.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://psingla.blogspot.com/feeds/1893694598283906242/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5828148405619968357&amp;postID=1893694598283906242' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5828148405619968357/posts/default/1893694598283906242'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5828148405619968357/posts/default/1893694598283906242'/><link rel='alternate' type='text/html' href='http://psingla.blogspot.com/2009/09/fun-video-funkey-monkey.html' title='Fun Video - Funkey Monkey'/><author><name>Puneet Singla</name><uri>http://www.blogger.com/profile/11957578103212343335</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_lMwvEp6jzaI/R_5IrYRj2mI/AAAAAAAAAHc/tdtOoptxfT8/S220/puneet.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5828148405619968357.post-4809976156938471159</id><published>2009-09-21T05:04:00.000-07:00</published><updated>2009-09-21T05:11:12.384-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='State management'/><category scheme='http://www.blogger.com/atom/ns#' term='Great articles .Net'/><category scheme='http://www.blogger.com/atom/ns#' term='.Net'/><title type='text'>Must Read Articles - ASP.Net, SQL Server</title><content type='html'>&lt;h1&gt;Great article on Session state management&lt;/h1&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.codeproject.com/KB/aspnet/ExploringSession.aspx" target="_blank"&gt;http://www.codeproject.com/KB/aspnet/ExploringSession.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://psingla.blogspot.com/"&gt;Puneet Singla&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5828148405619968357-4809976156938471159?l=psingla.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://psingla.blogspot.com/feeds/4809976156938471159/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5828148405619968357&amp;postID=4809976156938471159' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5828148405619968357/posts/default/4809976156938471159'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5828148405619968357/posts/default/4809976156938471159'/><link rel='alternate' type='text/html' href='http://psingla.blogspot.com/2009/09/aspnet-state-management.html' title='Must Read Articles - ASP.Net, SQL Server'/><author><name>Puneet Singla</name><uri>http://www.blogger.com/profile/11957578103212343335</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_lMwvEp6jzaI/R_5IrYRj2mI/AAAAAAAAAHc/tdtOoptxfT8/S220/puneet.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5828148405619968357.post-848868745274151791</id><published>2009-08-28T11:44:00.000-07:00</published><updated>2009-08-28T11:50:10.164-07:00</updated><title type='text'>Fine Drywall - Home Renovations and Home Additions, Custom Home Building, Drywall Installation, Drywall Contractors</title><content type='html'>&lt;h2&gt;Fine Drywall Ltd - Surrey, BC. Canada | Home Renovations and Home Additions, Custom Home Building, Drywall Installation, Framing Contractors, Drywall Contractors&lt;/h2&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.finedrywall.com/"&gt;Fine drywall&lt;/a&gt; offers a full suite of drywall related &lt;a href="http://www.finedrywall.com/ourservices.php"&gt;services&lt;/a&gt; to its customers.&lt;br /&gt;&lt;b&gt;Fine Drywall&lt;/b&gt; specializes in doing new home construction. We also do construction in multifamily units and can readily assist you with updating your home  or basement. Furthermore, Fine Drywall has the skills necessary to work on light commercial projects.&lt;br /&gt;&lt;br /&gt;New home construction is the primary focus for Fine Drywall. Fine Drywall continues to service many of the top &lt;a href="http://www.finedrywall.com/aboutus.php"&gt;residential builders&lt;/a&gt; in the city.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5828148405619968357-848868745274151791?l=psingla.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://psingla.blogspot.com/feeds/848868745274151791/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5828148405619968357&amp;postID=848868745274151791' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5828148405619968357/posts/default/848868745274151791'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5828148405619968357/posts/default/848868745274151791'/><link rel='alternate' type='text/html' href='http://psingla.blogspot.com/2009/08/fine-drywall-home-renovations-and-home.html' title='Fine Drywall - Home Renovations and Home Additions, Custom Home Building, Drywall Installation, Drywall Contractors'/><author><name>Puneet Singla</name><uri>http://www.blogger.com/profile/11957578103212343335</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_lMwvEp6jzaI/R_5IrYRj2mI/AAAAAAAAAHc/tdtOoptxfT8/S220/puneet.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5828148405619968357.post-223303200902746238</id><published>2009-08-28T07:45:00.000-07:00</published><updated>2009-08-28T07:46:19.847-07:00</updated><title type='text'>Puneet Singla</title><content type='html'>As I flow in the river of knowledge throughout my life, I wish to reflect upon &amp; share things that I find fascinating.I have always been passionate about computers &amp; programming. Flying in winds of information overload. keeping a tap on programming, web-design, security and open-source web applications.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://psingla.blogspot.com/"&gt;Puneet Singla&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5828148405619968357-223303200902746238?l=psingla.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://psingla.blogspot.com/feeds/223303200902746238/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5828148405619968357&amp;postID=223303200902746238' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5828148405619968357/posts/default/223303200902746238'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5828148405619968357/posts/default/223303200902746238'/><link rel='alternate' type='text/html' href='http://psingla.blogspot.com/2009/08/puneet-singla.html' title='Puneet Singla'/><author><name>Puneet Singla</name><uri>http://www.blogger.com/profile/11957578103212343335</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_lMwvEp6jzaI/R_5IrYRj2mI/AAAAAAAAAHc/tdtOoptxfT8/S220/puneet.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5828148405619968357.post-1715495576995716817</id><published>2009-08-13T23:26:00.000-07:00</published><updated>2009-08-13T23:28:31.336-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Code Convertors VB.Net to C#.Net'/><title type='text'></title><content type='html'>&lt;h2&gt;.Net Code translation VB.NET to C#.Net And C#.Net to VB.Net&lt;/h2&gt;&lt;br /&gt;&lt;br /&gt;Telrik code convertor&lt;br /&gt;&lt;br /&gt;http://www.telerik.com/community/forums/open-source-projects/code-converter.aspx&lt;br /&gt;&lt;br /&gt;http://www.carlosag.net/Tools/CodeTranslator/&lt;br /&gt;&lt;br /&gt;&lt;a href="http://psingla.blogspot.com/"&gt;Puneet Singla&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5828148405619968357-1715495576995716817?l=psingla.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://psingla.blogspot.com/feeds/1715495576995716817/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5828148405619968357&amp;postID=1715495576995716817' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5828148405619968357/posts/default/1715495576995716817'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5828148405619968357/posts/default/1715495576995716817'/><link rel='alternate' type='text/html' href='http://psingla.blogspot.com/2009/08/blog-post.html' title=''/><author><name>Puneet Singla</name><uri>http://www.blogger.com/profile/11957578103212343335</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_lMwvEp6jzaI/R_5IrYRj2mI/AAAAAAAAAHc/tdtOoptxfT8/S220/puneet.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5828148405619968357.post-7863786042193946391</id><published>2009-08-06T22:19:00.000-07:00</published><updated>2009-08-06T22:24:42.550-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='NUnit Testing'/><title type='text'>NUnit Testing Tutorial</title><content type='html'>&lt;span style="font-weight:bold;"&gt;NUnit: A tutorial&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;What is unit testing?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;According to Jeff Canna, unit testing ensures that a particular method of a class&lt;br /&gt;successfully performs a set of specific tasks. Each test confirms that a method&lt;br /&gt;produces the expected output when given a known input.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;What is NUnit?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;NUnit is an open source framework that facilitates unit testing for all .NET languages.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;How do I get NUnit?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Download the appropriate file from here and install it. That’s it!!&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Writing NUnit tests&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;One question that crossed my mind when I was learning NUnit was whether I should&lt;br /&gt;create my test project as an executable or as a class library. I finally decided to use a&lt;br /&gt;class library because I wouldn’t be running my test project in a stand-alone manner&lt;br /&gt;anyway. But, creating a test project as an executable would cause no problems. It’s up&lt;br /&gt;to you to decide.&lt;br /&gt;&lt;br /&gt;Now, let’s get going. Let us first write the class for which we would write unit test&lt;br /&gt;cases. Our class would be called Arithmetica. It would contain four methods to&lt;br /&gt;perform the basic arithmetic operations – Add, Subtract, Multiply and Divide.&lt;br /&gt;using System;&lt;br /&gt;&lt;br /&gt;namespace Arithmetica&lt;br /&gt;{&lt;br /&gt;public class Arithmetica&lt;br /&gt;{&lt;br /&gt;public int Add(int augend, int addend)&lt;br /&gt;{&lt;br /&gt;return augend + addend;&lt;br /&gt;}&lt;br /&gt;public int Subtract(int minuend, int subtrahend)&lt;br /&gt;{&lt;br /&gt;return minuend - subtrahend;&lt;br /&gt;}public int Multiply(int firstFactor, int secondFactor)&lt;br /&gt;{&lt;br /&gt;return firstFactor * secondFactor;&lt;br /&gt;}&lt;br /&gt;public int Divide(int dividend, int divisor)&lt;br /&gt;{&lt;br /&gt;return dividend / divisor;&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;The above code should be placed in a separate project and compiled into a separate&lt;br /&gt;assembly. That’s how unit testing is performed. The test cases are not a part of the&lt;br /&gt;production code. Implementing unit test within the main assembly not only bloats the&lt;br /&gt;actual code, it will also create additional dependencies to NUnit.Framework.&lt;br /&gt;Secondly, in a multi-team environment, a separate unit test assembly provides the&lt;br /&gt;ease of addition and management. [3]&lt;br /&gt;Now, let’s write the test cases for the Arithmetica class. This would involve the&lt;br /&gt;following steps:&lt;br /&gt;1. Create a new project of “Class Library” type (see discussion above) and name it&lt;br /&gt;Arithmetica.UnitTests.&lt;br /&gt;2. Add the project containing the Arithmetica class into the solution of&lt;br /&gt;Arithmetica.UnitTests.&lt;br /&gt;3. Add reference to nunit.framework.dll. This DLL is located in a directory called bin&lt;br /&gt;under the directory where NUnit is installed.&lt;br /&gt;4. Add the following lines in the class in which you are writing the unit test cases:&lt;br /&gt;using System;&lt;br /&gt;using NUnit.Framework;&lt;br /&gt;5. The class which contains the tests must be declared public and decorated with the&lt;br /&gt;TestFixture attribute as follows:&lt;br /&gt;namespace Arithmetica&lt;br /&gt;{&lt;br /&gt;[TestFixture]&lt;br /&gt;public class ArithmeticaUnitTests&lt;br /&gt;{&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;6. Now, you may want to do setup activities which are performed before executing&lt;br /&gt;any test. In our case, we want to create an object of the Arithmetica class. This is done&lt;br /&gt;by decorating the method in which you want to perform the setup activities with the&lt;br /&gt;TestFixtureSetup attribute as follows:&lt;br /&gt;[TestFixture]&lt;br /&gt;public class ArithmeticaUnitTests{&lt;br /&gt;private Arithmetica arithmetica;&lt;br /&gt;[TestFixtureSetUp]&lt;br /&gt;public void SetUp()&lt;br /&gt;{&lt;br /&gt;arithmetica = new Arithmetica();&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;Note that a TestFixture can have at most one TestFixtureSetup method.&lt;br /&gt;7. You may also want to perform a set of clean up activities after executing all the&lt;br /&gt;tests. The method which does this is decorated with the TestFixtureTearDown&lt;br /&gt;attribute.&lt;br /&gt;namespace Arithmetica&lt;br /&gt;{&lt;br /&gt;[TestFixture]&lt;br /&gt;public class ArithmeticaUnitTests&lt;br /&gt;{&lt;br /&gt;private Arithmetica arithmetica;&lt;br /&gt;[TestFixtureSetUp]&lt;br /&gt;public void SetUp()&lt;br /&gt;{&lt;br /&gt;arithmetica = new Arithmetica();&lt;br /&gt;}&lt;br /&gt;[TestFixtureTearDown]&lt;br /&gt;public void TearDown()&lt;br /&gt;{&lt;br /&gt;arithmetica = null;&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;Again, a TestFixture can contain at most one TestFixtureTearDown method. Other&lt;br /&gt;setup and teardown attributes for NUnit include SetUp, TearDown, SetUpFixture and&lt;br /&gt;TearDownFixture. You may refer NUnit documentation for these.&lt;br /&gt;8. Now, let’s write the test for the Add method. Every test method must be decorated&lt;br /&gt;with the Test attribute. You can have as many test methods in a test fixture as you&lt;br /&gt;desire.&lt;br /&gt;[Test]&lt;br /&gt;public void TestAdd()&lt;br /&gt;{&lt;br /&gt;int result = arithmetica.Add(2, 3);&lt;br /&gt;Assert.AreEqual(result, 5);&lt;br /&gt;}&lt;br /&gt;Here, the Add method of Arithmetica class is called with the parameters 2 and 3 and&lt;br /&gt;the sum is stored in result. Then, we check whether result is equal to 5. You can read&lt;br /&gt;more about assertions in NUnit documentation.9. If you are expecting an exception to be thrown in the test method, you can decorate&lt;br /&gt;it with the ExpectedException attribute as follows:&lt;br /&gt;[Test, ExpectedException(typeof(DivideByZeroException))]&lt;br /&gt;public void TestDivide()&lt;br /&gt;{&lt;br /&gt;int result = arithmetica.Divide(2, 0);&lt;br /&gt;}&lt;br /&gt;It must be noted here that the precise type of the exception must be specified in the&lt;br /&gt;ExpectedException attribute. Using Exception instead of DivideByZeroException will&lt;br /&gt;cause the test to fail.&lt;br /&gt;10. Similarly, you may write the other test cases. Here is the listing of the tests that I&lt;br /&gt;wrote:&lt;br /&gt;using System;&lt;br /&gt;using NUnit.Framework;&lt;br /&gt;namespace Arithmetica&lt;br /&gt;{&lt;br /&gt;[TestFixture]&lt;br /&gt;public class ArithmeticaUnitTests&lt;br /&gt;{&lt;br /&gt;private Arithmetica arithmetica;&lt;br /&gt;[TestFixtureSetUp]&lt;br /&gt;public void SetUp()&lt;br /&gt;{&lt;br /&gt;arithmetica = new Arithmetica();&lt;br /&gt;}&lt;br /&gt;[TestFixtureTearDown]&lt;br /&gt;public void TearDown()&lt;br /&gt;{&lt;br /&gt;arithmetica = null;&lt;br /&gt;}&lt;br /&gt;[Test]&lt;br /&gt;public void TestAdd()&lt;br /&gt;{&lt;br /&gt;int result = arithmetica.Add(2, 3);&lt;br /&gt;Assert.AreEqual(result, 5);&lt;br /&gt;}&lt;br /&gt;[Test]&lt;br /&gt;public void TestSubtract()&lt;br /&gt;{&lt;br /&gt;int result = arithmetica.Subtract(3, 2);&lt;br /&gt;Assert.AreEqual(result, 1);&lt;br /&gt;result = arithmetica.Subtract(2, 3);&lt;br /&gt;Assert.AreEqual(result, -1);&lt;br /&gt;}&lt;br /&gt;[Test]&lt;br /&gt;public void TestMultiply(){&lt;br /&gt;int result = arithmetica.Multiply(2, 3);&lt;br /&gt;Assert.AreEqual(result, 6);&lt;br /&gt;}&lt;br /&gt;[Test, ExpectedException(typeof(DivideByZeroException))]&lt;br /&gt;public void TestDivide()&lt;br /&gt;{&lt;br /&gt;int result = arithmetica.Divide(4, 2);&lt;br /&gt;Assert.AreEqual(result, 2);&lt;br /&gt;result = arithmetica.Divide(2, 0);&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;After this, build the assembly. Please note that the TestFixtureSetUp,&lt;br /&gt;TestFixtureTearDown and Test methods must be defined with the following method&lt;br /&gt;signature:&lt;br /&gt;public void MethodName()&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://psingla.blogspot.com/"&gt;Puneet Singla&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5828148405619968357-7863786042193946391?l=psingla.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://psingla.blogspot.com/feeds/7863786042193946391/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5828148405619968357&amp;postID=7863786042193946391' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5828148405619968357/posts/default/7863786042193946391'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5828148405619968357/posts/default/7863786042193946391'/><link rel='alternate' type='text/html' href='http://psingla.blogspot.com/2009/08/nunit-tutorial-what-is-unit-testing.html' title='NUnit Testing Tutorial'/><author><name>Puneet Singla</name><uri>http://www.blogger.com/profile/11957578103212343335</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_lMwvEp6jzaI/R_5IrYRj2mI/AAAAAAAAAHc/tdtOoptxfT8/S220/puneet.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5828148405619968357.post-7682318758204216441</id><published>2009-07-11T10:34:00.000-07:00</published><updated>2009-08-13T23:23:45.691-07:00</updated><title type='text'>Ten Must-Have Tools Every Developer Should Download Now</title><content type='html'>&lt;strong&gt;NUnit to write unit tests &lt;br /&gt;NDoc to create code documentation &lt;br /&gt;NAnt to build your solutions &lt;br /&gt;CodeSmith to generate code &lt;br /&gt;FxCop to police your code &lt;br /&gt;Snippet Compiler to compile small bits of code &lt;br /&gt;Two different switcher tools, the ASP.NET Version Switcher and the Visual Studio .NET Project Converter &lt;br /&gt;Regulator to build regular expressions &lt;br /&gt;.NET Reflector to examine assemblies&lt;/strong&gt; &lt;br /&gt; &lt;br /&gt;&lt;h1&gt;Here is list of must have tools listed by Scott Hanselman's ComputerZen.com&lt;/h1&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;b&gt;THREE WAY TIE:&lt;/b&gt; &lt;a href="http://www.flos-freeware.ch/notepad2.html"&gt;&lt;strong&gt;Notepad2&lt;/strong&gt;&lt;/a&gt;&amp;nbsp;or &lt;a href="http://notepad-plus.sourceforge.net/uk/site.htm"&gt;&lt;strong&gt;Notepad++&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;&amp;nbsp;(&lt;/strong&gt;&lt;a href="http://www.scintilla.org/SciTE.html"&gt;&lt;strong&gt;Scite&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt; also uses the same codebase)&lt;/strong&gt; or &lt;a href="http://www.e-texteditor.com/"&gt;&lt;b&gt;&lt;font color="#ff0000"&gt;E-TextEditor&lt;/font&gt;&lt;/b&gt;&lt;/a&gt; - The first two are great text editors. Each has first class CR/LF support, ANSI to Unicode switching, whitespace and line ending graphics and Mouse Wheel Zooming. A must. Here's how to completely replace &lt;a href="http://blogs.msdn.com/omars/archive/2004/04/30/124093.aspx"&gt;notepad.exe&lt;/a&gt;. Personally I renamed Notepad2.exe to "n.exe" which saves me a few dozen "otepad"s a day. Here's how to &lt;a href="http://dotnetjunkies.com/WebLog/rohancragg/archive/2004/05/21/14127.aspx"&gt;have Notepad2 be your View Source Editor&lt;/a&gt;. Here's how to &lt;a href="http://weblogs.asp.net/pleloup/archive/2004/05/12/130566.aspx"&gt;add Notepad2 to the Explorer context menu&lt;/a&gt;. E-TextEditor is new on the block this year, inspired by TextMate in the Macintosh. It includes a "bundle" system that uses the scripting power of the &lt;a href="http://www.cygwin.com/"&gt;Cygwin&lt;/a&gt; Linux-like environment for Windows to provide a more IDE-like experience than Notepad2 or Notepad++. It costs, though, but you should absolutely try it's 30-day trial before you shell out your US$35. &lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;Notepad++ is built on the same fundamental codebase as Notepad2, and includes tabbed editing and more language syntax highlighting. Is one better than the other? They are different. I use Notepad2 as a better Notepad, but more and more I find myself using &lt;a href="http://www.e-texteditor.com/"&gt;E-TextEditor aka TextMate for Windows&lt;/a&gt; when I need to crunch serious text. As with all opinions, there's no right answer, and I think there's room for multiple text editors in my life. These are the three I use.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.microsoft.com/windowsserver2003/technologies/management/powershell/default.mspx"&gt;&lt;strong&gt;PowerShell&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt; - &lt;/strong&gt;The full power of .NET, WMI and COM all from a command line. PowerShell has a steep learning curve, much like the tango, but oh, my, when you really start dancing...woof. I also use &lt;a href="http://www.hanselman.com/blog/IntroducingPowerShellPromptHere.aspx"&gt;PowerShell Prompt Here&lt;/a&gt;. &lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;I also recommend after installing PowerShell that you immediately go get &lt;a href="http://thepowershellguy.com/blogs/posh/pages/powertab.aspx"&gt;&lt;strong&gt;&lt;font color="#ff0000"&gt;PowerTab&lt;/font&gt;&lt;/strong&gt;&lt;/a&gt; to enable amazing "ANSI-art" style command-line tab completion. &lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Next, go get the&lt;font color="#ff0000"&gt;&lt;strong&gt; &lt;/strong&gt;&lt;/font&gt;&lt;a href="http://www.codeplex.com/PowerShellCX"&gt;&lt;font color="#ff0000"&gt;&lt;strong&gt;PowerShell Community Extensions&lt;/strong&gt;&lt;/font&gt;&lt;/a&gt; to add dozens of useful commands to PowerShell. &lt;br /&gt;&lt;/li&gt;&lt;li&gt;If you're willing to pay (and wait a little) keep an eye on &lt;a href="http://www.powershellplus.com/"&gt;&lt;strong&gt;&lt;font color="#ff0000"&gt;PowerShell Plus&lt;/font&gt;&lt;/strong&gt;&lt;/a&gt;. I'm on the beta, and while it'll cost a reasonable fee, it'll be amazing. Certainly not required, but very shiny.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.aisto.com/roeder/dotnet/"&gt;&lt;strong&gt;Lutz's Reflector&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt; &lt;a href="http://www.hanselman.com/blog/ReflectorAddinsAndPowerShellLanguageSupportForReflector.aspx"&gt;&lt;font color="#ff0000"&gt;and its Many AddIns&lt;/font&gt;&lt;/a&gt; &lt;/strong&gt;- The tool that changed the world and the way we learn about .NET. Download it, select an interesting method and hit the space bar. Take the time to install the Add-Ins and check out the amazing static analysis you can do with things like the Diff and Graph. &lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;&lt;a href="http://www.bayden.com/SlickRun/"&gt;SlickRun&lt;/a&gt;&lt;/strong&gt; - A free floating dynamic "command prompt" with alias support that continues to amaze. My tips for effective use: read the instructions, edit the slickrun.ini file and bind it to Window-R. Also set ChaseCursor so when you hit Win-R, you'll have a floating transparent command line anywhere your mouse is. I recommend you also use larger fonts! Get to know this little box. It's the bomb. I've tried &lt;a href="http://www.hanselman.com/blog/ReplacingStartRunTheQuestContinues.aspx"&gt;dozens of launchers&lt;/a&gt;, giving each days of actual use, but I keep coming back to SlickRun. &lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.getfirebug.com/"&gt;&lt;b&gt;&lt;font color="#ff0000"&gt;FireBug&lt;/font&gt;&lt;/b&gt;&lt;/a&gt; - Arguably the most powerful in-browser IDE available. It's a complete x-ray into your browser including HTML, CSS and JavaScript, all live on the page. A must have. &lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.microsoft.com/technet/sysinternals/Miscellaneous/ZoomIt.mspx"&gt;&lt;strong&gt;ZoomIt&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt; &lt;/strong&gt;- ZoomIt is so elegant and so fast, it has&amp;nbsp;taken over as my #1 screen magnifier. Do try it, and spend more time with happy audiences and less time dragging a magnified window around. Believe me, I've tried at least ten different magnifiers, and ZoomIt continues to be the best. &lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.ntwind.com/software/winsnap.html"&gt;&lt;strong&gt;WinSnap&lt;/strong&gt;&lt;/a&gt; and &lt;a href="http://www.windowclippings.com/"&gt;&lt;strong&gt;&lt;font color="#ff0000"&gt;Window Clippings&lt;/font&gt;&lt;/strong&gt;&lt;/a&gt; - I'm torn between two of the finest screenshot utilities I've ever found. Free, clean, fast and tight, WinSnap has as many (or as few) options as you'd like. Also does wonders with rounded corners and transparency. It includes a 32-bit and 64-bit version, as well as a portable no-install version. However, Window Clippings also has no install, includes 32 and 64-bit and is only $10. It's a tough one. I use Window Clippings at least daily, and I use WinSnap a few times a week. Kenny Kerr of Window Clippings is &lt;a href="http://weblogs.asp.net/kennykerr/archive/2007/06/27/looking-forward-to-window-clippings-2-1.aspx"&gt;actively adding new features&lt;/a&gt; and has &lt;a href="http://weblogs.asp.net/kennykerr/archive/2007/06/05/add-watermarks-to-your-window-clippings-images.aspx"&gt;a nice clean add-in model&lt;/a&gt; on his &lt;a href="http://www.windowclippings.com/Developers/"&gt;Developers site&lt;/a&gt;. Both these apps are worth your download. &lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.devexpress.com/coderush"&gt;&lt;strong&gt;CodeRush and Refactor!&lt;/strong&gt;&lt;/a&gt;&amp;nbsp;(and &lt;a href="http://www.devexpress.com/Downloads/NET/DXCore/"&gt;DxCore&lt;/a&gt;)&amp;nbsp;- Apparently my enthusiasm for CodeRush has been noticed by a few. It just keeps getting better. However, the best kept secret about CodeRush isn't all the shiny stuff, it's&amp;nbsp;the free Extensibility Engine called DxCore that brings VS.NET plugins to the masses. Don't miss out on free add-ins like &lt;a href="http://www.paraesthesia.com/blog/comments.php?id=701_0_1_0_C"&gt;CR_Documentor&lt;/a&gt;&amp;nbsp;and &lt;a href="http://www.sturmnet.org/blog/cr-electric-editing/"&gt;ElectricEditing&lt;/a&gt;. &lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.microsoft.com/technet/sysinternals/default.mspx"&gt;&lt;strong&gt;SysInternals&lt;/strong&gt;&lt;/a&gt; - I showed specifically &lt;a href="http://www.microsoft.com/technet/sysinternals/Utilities/ProcessExplorer.mspx"&gt;ProcExp&lt;/a&gt; and &lt;a href="http://www.microsoft.com/technet/sysinternals/Utilities/AutoRuns.mspx"&gt;AutoRuns&lt;/a&gt;, but anything Mark and Bryce do is pure gold. ProcExp is a great Taskman replacement and includes the invaluable "Find DLL" feature. It can also highlight any .NET processes. AutoRuns is an amazing aggregated view of any and all things that run at startup on your box. &lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;A great new addition to the SysInternals Family is&lt;font color="#ff0000"&gt; &lt;/font&gt;&lt;a href="http://www.microsoft.com/technet/sysinternals/utilities/processmonitor.mspx"&gt;&lt;strong&gt;&lt;font color="#ff0000"&gt;Process Monitor&lt;/font&gt;&lt;/strong&gt;&lt;/a&gt;, a utility that eclipses both &lt;a href="http://www.microsoft.com/technet/sysinternals/utilities/filemon.mspx"&gt;Filemon&lt;/a&gt; and &lt;a href="http://www.microsoft.com/technet/sysinternals/utilities/regmon.mspx"&gt;Regmon&lt;/a&gt;. It runs on any version of Windows and lets you see exactly what a process is doing. Indispensable for developing. &lt;br /&gt;&lt;/li&gt;&lt;li&gt;It's also worth calling out the legendary &lt;a href="http://www.microsoft.com/technet/sysinternals/Utilities/ProcessExplorer.mspx"&gt;&lt;strong&gt;Process Explorer&lt;/strong&gt;&lt;/a&gt; as a standout and must-have utility.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.foldershare.com/"&gt;&lt;strong&gt;FolderShare&lt;/strong&gt;&lt;/a&gt; - It takes a minute to grok, but FolderShare lets you synchronize folders between systems, between OS's, behind firewalls. Truly change the way you use your machine. Save a file in a folder and it will always been on your other three machines when you need it. Also access files, if you like, from remote locations. And it's free. &lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://psingla.blogspot.com/"&gt;Puneet Singla&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5828148405619968357-7682318758204216441?l=psingla.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://psingla.blogspot.com/feeds/7682318758204216441/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5828148405619968357&amp;postID=7682318758204216441' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5828148405619968357/posts/default/7682318758204216441'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5828148405619968357/posts/default/7682318758204216441'/><link rel='alternate' type='text/html' href='http://psingla.blogspot.com/2009/07/ten-must-have-tools-every-developer.html' title='Ten Must-Have Tools Every Developer Should Download Now'/><author><name>Puneet Singla</name><uri>http://www.blogger.com/profile/11957578103212343335</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_lMwvEp6jzaI/R_5IrYRj2mI/AAAAAAAAAHc/tdtOoptxfT8/S220/puneet.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5828148405619968357.post-7594157744900688670</id><published>2009-07-07T12:52:00.000-07:00</published><updated>2009-07-08T12:06:07.408-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='css menus'/><title type='text'>Pure CSS Menus</title><content type='html'>here is the list of some good css menus:&lt;br /&gt;&lt;br /&gt;http://purecssmenu.com/&lt;br /&gt;&lt;br /&gt;http://www.opencube.com/index.asp&lt;br /&gt;&lt;br /&gt;http://www.alistapart.com/articles/horizdropdowns&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Dropdown Menu&lt;/strong&gt;&lt;br /&gt;http://www.cssplay.co.uk/menus/pro_dropline7.html&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Dropline&lt;/strong&gt;&lt;br /&gt;http://www.cssplay.co.uk/menus/pro_dropline.html&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://psingla.blogspot.com/"&gt;Puneet Singla&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5828148405619968357-7594157744900688670?l=psingla.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://psingla.blogspot.com/feeds/7594157744900688670/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5828148405619968357&amp;postID=7594157744900688670' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5828148405619968357/posts/default/7594157744900688670'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5828148405619968357/posts/default/7594157744900688670'/><link rel='alternate' type='text/html' href='http://psingla.blogspot.com/2009/07/pure-css-menus.html' title='Pure CSS Menus'/><author><name>Puneet Singla</name><uri>http://www.blogger.com/profile/11957578103212343335</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_lMwvEp6jzaI/R_5IrYRj2mI/AAAAAAAAAHc/tdtOoptxfT8/S220/puneet.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5828148405619968357.post-80431113473009126</id><published>2009-06-23T00:25:00.000-07:00</published><updated>2009-06-23T00:30:16.995-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL Order By'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL'/><title type='text'>SQL Order By clause - List specific values on the top of list</title><content type='html'>&lt;span style="font-weight:bold;"&gt;List Specific values on the top in the order by clause&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;List all the coutries from counties table order by CountryName, but if you need to have "United States" and "Germany" on the top of list.&lt;br /&gt;&lt;br /&gt;select * from Countries Order by &lt;br /&gt;CASE Name &lt;br /&gt;WHEN 'United States' THEN 1     &lt;br /&gt;WHEN 'Germany' THEN 2     &lt;br /&gt;ELSE 100&lt;br /&gt;END,&lt;br /&gt;Name&lt;br /&gt;&lt;br /&gt;&lt;a href="http://psingla.blogspot.com/"&gt;Puneet Singla&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5828148405619968357-80431113473009126?l=psingla.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://psingla.blogspot.com/feeds/80431113473009126/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5828148405619968357&amp;postID=80431113473009126' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5828148405619968357/posts/default/80431113473009126'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5828148405619968357/posts/default/80431113473009126'/><link rel='alternate' type='text/html' href='http://psingla.blogspot.com/2009/06/sql-order-by-clause-list-specific.html' title='SQL Order By clause - List specific values on the top of list'/><author><name>Puneet Singla</name><uri>http://www.blogger.com/profile/11957578103212343335</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_lMwvEp6jzaI/R_5IrYRj2mI/AAAAAAAAAHc/tdtOoptxfT8/S220/puneet.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5828148405619968357.post-5295781675437696322</id><published>2009-06-09T11:28:00.000-07:00</published><updated>2009-06-09T11:37:22.952-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio shortkuts'/><category scheme='http://www.blogger.com/atom/ns#' term='.Net'/><title type='text'>Visual Studio shortkuts</title><content type='html'>&lt;strong&gt;Here are some Visual Studio shortcuts that helped me increase my coding speed.&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;Open Smart Tag: &lt;/strong&gt;Ctrl + . &lt;br /&gt;&lt;strong&gt;Open Smart Tag&lt;/strong&gt;: Ctrl + . &lt;br /&gt;&lt;strong&gt;Cycle Clipboard Ring&lt;/strong&gt;: Ctrl + Shift + V &lt;br /&gt;&lt;strong&gt;Go to Definition&lt;/strong&gt;: F12 &lt;br /&gt;&lt;strong&gt;Go to Line&lt;/strong&gt;: Ctrl + G &lt;br /&gt;&lt;strong&gt;Vertical Block Selection: Alt + Mouse or Shift + Alt + Right Arrow &lt;br /&gt;View Properties Window: F4 or Alt + Enter &lt;br /&gt;Comment Selection: Ctrl + K, Ctrl + C &lt;br /&gt;Uncomment Selection: Ctrl + K, Ctrl + U &lt;br /&gt;Toggle Code / Design Views: F7 &lt;br /&gt;Incremental Search: Ctrl + I &lt;br /&gt;View Object Browser: Ctrl + Alt + J &lt;br /&gt;Delete Line: Ctrl + L or Shift + Delete &lt;br /&gt;Add New Item to Project: Ctrl + Shift + A &lt;br /&gt;Find All References: Shift + F12 &lt;br /&gt;The Rename Refactor: Ctrl + R, R &lt;br /&gt;Find All References: Shift + F12 &lt;br /&gt;Format Document: Ctrl + K, Ctrl + D &lt;br /&gt;View Task List: Ctrl + \, Ctrl + T &lt;br /&gt;Find in Files: Ctrl + Shift + F &lt;br /&gt;Toggle Outlining Expansion: Ctrl + M, Ctrl + M &lt;br /&gt;Save Any Output Window: Ctrl + S &lt;br /&gt;Build Solution: Ctrl + Shift + B Ctrl + Shift + V &lt;br /&gt;&lt;/strong&gt;&lt;br /&gt;&lt;a href="http://psingla.blogspot.com/"&gt;Puneet Singla&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5828148405619968357-5295781675437696322?l=psingla.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://psingla.blogspot.com/feeds/5295781675437696322/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5828148405619968357&amp;postID=5295781675437696322' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5828148405619968357/posts/default/5295781675437696322'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5828148405619968357/posts/default/5295781675437696322'/><link rel='alternate' type='text/html' href='http://psingla.blogspot.com/2009/06/visual-studio-shortkuts.html' title='Visual Studio shortkuts'/><author><name>Puneet Singla</name><uri>http://www.blogger.com/profile/11957578103212343335</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_lMwvEp6jzaI/R_5IrYRj2mI/AAAAAAAAAHc/tdtOoptxfT8/S220/puneet.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5828148405619968357.post-4449493939240527960</id><published>2009-06-04T11:23:00.000-07:00</published><updated>2009-06-18T07:17:17.266-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='CSS'/><category scheme='http://www.blogger.com/atom/ns#' term='Sliders'/><category scheme='http://www.blogger.com/atom/ns#' term='Jquery'/><title type='text'>Javascript Modal Popup</title><content type='html'>&lt;strong&gt;Javascript Modal Popup&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;http://www.ericmmartin.com/simplemodal/&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Agile Carousel: JQuery Carousel Plugin&lt;/strong&gt;&lt;br /&gt;http://www.5bosses.com/examples/agile_carousel/simple_example/carousel.html&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;100 Popular jQuery Examples, Plugins and Tutorials&lt;/span&gt;&lt;br /&gt;http://www.templatelite.com/100-popular-jquery-plugins/&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;&lt;br /&gt;Spry Sliding Panels widget:&lt;/span&gt;&lt;br /&gt;http://www.adobe.com/devnet/dreamweaver/articles/sliding_panel.html&lt;br /&gt;&lt;br /&gt;See Sliding panel at techSmith&lt;br /&gt;http://www.techsmith.com/camtasia.asp&lt;br /&gt;&lt;br /&gt;&lt;a href="http://psingla.blogspot.com/"&gt;Puneet Singla&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5828148405619968357-4449493939240527960?l=psingla.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://psingla.blogspot.com/feeds/4449493939240527960/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5828148405619968357&amp;postID=4449493939240527960' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5828148405619968357/posts/default/4449493939240527960'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5828148405619968357/posts/default/4449493939240527960'/><link rel='alternate' type='text/html' href='http://psingla.blogspot.com/2009/06/javascript-modal-popup.html' title='Javascript Modal Popup'/><author><name>Puneet Singla</name><uri>http://www.blogger.com/profile/11957578103212343335</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_lMwvEp6jzaI/R_5IrYRj2mI/AAAAAAAAAHc/tdtOoptxfT8/S220/puneet.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5828148405619968357.post-5858419001503788231</id><published>2009-06-04T06:55:00.000-07:00</published><updated>2009-06-04T10:35:52.406-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL'/><title type='text'>SQL Server Useful System Stored Procedures</title><content type='html'>&lt;h4&gt;SQL Server Help: Useful System Stored Procedures&lt;/h4&gt;&lt;br /&gt;SQL Server provides a number of useful system stored procedures that allow you to determine information about the database itself. Note that if you have problems running any of these stored procedures, check that the user you're running them as actually has permissions to execute the stored procedure in question.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Find out which tables and views are in a database&lt;/strong&gt;&lt;br /&gt;This is simply achieved by making use of the sp_tables system stored procedure, i.e.&lt;br /&gt;&lt;br /&gt;EXEC sp_tables&lt;br /&gt;&lt;br /&gt;The returned results set contains a list of the tables (and views) in the current database. The TABLE_NAME column gives the name of the table. The TABLE_TYPE column indicates if the table is a TABLE, SYSTEM TABLE or a VIEW. The TABLE_OWNER column is also useful as it shows the table's owner.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Find out which columns are in a database table&lt;/strong&gt;&lt;br /&gt;This is achieved by making use of the sp_columns system stored procedure, passing in the table name as the parameter, i.e.&lt;br /&gt;&lt;br /&gt;EXEC sp_columns 'sales'&lt;br /&gt;&lt;br /&gt;The returned results set contains a list of the table's columns. There are quite a few columns in the results set, so only the most useful will be described here:&lt;br /&gt;&lt;br /&gt;The COLUMN_NAME column gives the name of the column. &lt;br /&gt;The TYPE_NAME column gives the column's data type. &lt;br /&gt;The LENGTH column gives the column's data type length. &lt;br /&gt;The IS_NULLABLE column shows whether the column accepts null values. &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Programmatically display a View's Transact-SQL&lt;/strong&gt;&lt;br /&gt;The system stored procedure sp_helptext will return a results set containing the lines of Transact-SQL that comprise the View. For example, the following will return the text of the stored procedure Order Details Extended's CREATE VIEW statement: &lt;br /&gt;&lt;br /&gt;EXEC sp_helptext 'Order Details Extended'&lt;br /&gt;&lt;br /&gt;The text of the CREATE VIEW statement is contained within the Text column of the results set.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Find out which stored procedures are in a database&lt;/strong&gt;&lt;br /&gt;This is achieved by making use of the sp_stored_procedures system stored procedure, &lt;br /&gt;&lt;br /&gt;EXEC sp_stored_procedures&lt;br /&gt;&lt;br /&gt;The returned results set contains a list of the stored procedures in the database in which it is executed. in the results set, the PROCEDURE_NAME column gives the name of the stored procedure.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Programmatically display a stored procedure's Transact-SQL&lt;/strong&gt;&lt;br /&gt;The system stored procedure sp_helptext will return a results set containing the lines of Transact-SQL that comprise the stored procedure. For example, the following will return the text of the stored procedure CustOrdersDetail's CREATE PROCEDURE statement: &lt;br /&gt;&lt;br /&gt;EXEC sp_helptext 'CustOrdersDetail'&lt;br /&gt;&lt;br /&gt;The text is contained within the Text column of the results set.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://psingla.blogspot.com/"&gt;Useful Links&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Puneet Singla&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5828148405619968357-5858419001503788231?l=psingla.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://psingla.blogspot.com/feeds/5858419001503788231/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5828148405619968357&amp;postID=5858419001503788231' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5828148405619968357/posts/default/5858419001503788231'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5828148405619968357/posts/default/5858419001503788231'/><link rel='alternate' type='text/html' href='http://psingla.blogspot.com/2009/06/sql.html' title='SQL Server Useful System Stored Procedures'/><author><name>Puneet Singla</name><uri>http://www.blogger.com/profile/11957578103212343335</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_lMwvEp6jzaI/R_5IrYRj2mI/AAAAAAAAAHc/tdtOoptxfT8/S220/puneet.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5828148405619968357.post-2869896921756339787</id><published>2009-06-01T00:49:00.000-07:00</published><updated>2009-06-01T00:51:16.722-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Fun Place'/><category scheme='http://www.blogger.com/atom/ns#' term='Funny Pictures'/><title type='text'>Office Fun Place</title><content type='html'>JokeOffice - Office Fun Place&lt;br /&gt;&lt;br /&gt;&lt;a href="http://jokeoffice.com/" target="_blank"&gt;http://jokeoffice.com/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Puneet Singla&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5828148405619968357-2869896921756339787?l=psingla.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://psingla.blogspot.com/feeds/2869896921756339787/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5828148405619968357&amp;postID=2869896921756339787' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5828148405619968357/posts/default/2869896921756339787'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5828148405619968357/posts/default/2869896921756339787'/><link rel='alternate' type='text/html' href='http://psingla.blogspot.com/2009/06/office-fun-place.html' title='Office Fun Place'/><author><name>Puneet Singla</name><uri>http://www.blogger.com/profile/11957578103212343335</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_lMwvEp6jzaI/R_5IrYRj2mI/AAAAAAAAAHc/tdtOoptxfT8/S220/puneet.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5828148405619968357.post-484676964604059607</id><published>2009-05-29T11:22:00.000-07:00</published><updated>2009-06-02T12:47:05.152-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Flash'/><title type='text'>Flash XML Image Slide Show</title><content type='html'>&lt;span style="font-weight:bold;"&gt;Free Flash Image Slide show:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;http://www.flabell.com/flash/XML-Image-Slideshow-40&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Flash Image slide show with Marquee caption&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;http://www.lightenna.com/products/website_components/flash_xml_slideshow&lt;br /&gt;&lt;br /&gt;DNN Image Rotator&lt;br /&gt;http://www.aboutdnn.com/FreeModule/FlashImageRotator.aspx&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.google.com"&gt;Puneet Singla&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5828148405619968357-484676964604059607?l=psingla.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://psingla.blogspot.com/feeds/484676964604059607/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5828148405619968357&amp;postID=484676964604059607' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5828148405619968357/posts/default/484676964604059607'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5828148405619968357/posts/default/484676964604059607'/><link rel='alternate' type='text/html' href='http://psingla.blogspot.com/2009/05/flash-xml-image-slide-show.html' title='Flash XML Image Slide Show'/><author><name>Puneet Singla</name><uri>http://www.blogger.com/profile/11957578103212343335</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_lMwvEp6jzaI/R_5IrYRj2mI/AAAAAAAAAHc/tdtOoptxfT8/S220/puneet.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5828148405619968357.post-3252302762276723274</id><published>2009-05-29T07:09:00.000-07:00</published><updated>2009-05-29T07:11:03.816-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Character Codes Converter'/><title type='text'>Decimal, Hexadecimal Character Codes in HTML Unicode convertor</title><content type='html'>http://code.cside.com/3rdpage/us/unicode/converter.html&lt;br /&gt;&lt;br /&gt;Puneet Singla&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5828148405619968357-3252302762276723274?l=psingla.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://psingla.blogspot.com/feeds/3252302762276723274/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5828148405619968357&amp;postID=3252302762276723274' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5828148405619968357/posts/default/3252302762276723274'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5828148405619968357/posts/default/3252302762276723274'/><link rel='alternate' type='text/html' href='http://psingla.blogspot.com/2009/05/decimal-hexadecimal-character-codes-in.html' title='Decimal, Hexadecimal Character Codes in HTML Unicode convertor'/><author><name>Puneet Singla</name><uri>http://www.blogger.com/profile/11957578103212343335</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_lMwvEp6jzaI/R_5IrYRj2mI/AAAAAAAAAHc/tdtOoptxfT8/S220/puneet.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5828148405619968357.post-6428295518806700260</id><published>2009-05-28T12:06:00.000-07:00</published><updated>2009-05-28T12:08:52.084-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Flash. Puneet Singla'/><title type='text'>Open Source XML Free Flash Banner</title><content type='html'>Download XML Free Flash Banner&lt;br /&gt;&lt;a href="http://www.weberdesignlabs.com/blog/?p=33"&gt;http://www.weberdesignlabs.com/blog/?p=33&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Puneet Singla&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5828148405619968357-6428295518806700260?l=psingla.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://psingla.blogspot.com/feeds/6428295518806700260/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5828148405619968357&amp;postID=6428295518806700260' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5828148405619968357/posts/default/6428295518806700260'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5828148405619968357/posts/default/6428295518806700260'/><link rel='alternate' type='text/html' href='http://psingla.blogspot.com/2009/05/open-source-xml-free-flash-banner.html' title='Open Source XML Free Flash Banner'/><author><name>Puneet Singla</name><uri>http://www.blogger.com/profile/11957578103212343335</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_lMwvEp6jzaI/R_5IrYRj2mI/AAAAAAAAAHc/tdtOoptxfT8/S220/puneet.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5828148405619968357.post-6276907106547354255</id><published>2009-05-27T20:56:00.000-07:00</published><updated>2009-05-27T21:02:47.302-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL Connection'/><category scheme='http://www.blogger.com/atom/ns#' term='Connection String'/><category scheme='http://www.blogger.com/atom/ns#' term='ADO'/><category scheme='http://www.blogger.com/atom/ns#' term='ADO.Net'/><category scheme='http://www.blogger.com/atom/ns#' term='.Net'/><category scheme='http://www.blogger.com/atom/ns#' term='Puneet Singla'/><title type='text'>ADO.NET</title><content type='html'>&lt;span style="font-weight:bold;"&gt;ADO &amp; Its Limitations&lt;/span&gt; - ActiveX Data Objects. Connectivity using this architecture is based on the concept of dedicated connection between the front &amp; the back end. We create a Recordset, connect it to a datasource (often a Database) and work. Changes to the data are updated on the database immediately. The ADO RecordSet is limited in flexibility and functionality. For example, most useful data analysis or presentation requires views of your data that span multiple tables or data sources. Using ADO, this cannot be accomplished without performing a SQL JOIN. As you may or may not know, this is a performance drag. It consumes memory and CPU power on the database server—precious resources especially with today’s Internet user demands. Because a RecordSet is essentially a single result table, navigation is sequential, row-by-row. Thus, if you perform a joining query the resulting data is “flattened”; any relations that may have existed are not relationally navigable. &lt;br /&gt;ADO data types are based on COM/COM+ data types. For example, in COM/COM+ programming the BSTR is typically used to represent strings that need to be interoperable across languages. For those of you who do not know, the BSTR type is a null-terminated string whose leading WORD contains the length of the string. Unfortunately, the BSTR type is really a stranger to all languages and only makes sense in the COM context. For C, C++, and other lower level languages you must use special COM run-time functions to create and destroy them, and rapid application development (RAD) environments like Microsoft Visual Basic® need explicit support in the runtime to handle these types.&lt;br /&gt;Sharing data between components in your application or elsewhere is done through COM marshalling. This limits sharing of data to a COM or COM-friendly environment. &lt;br /&gt;There are also problems with marshalling through firewalls, because they tend to restrict the type of data that can pass through them. COM marshalling requires (COM) system services on the “other side” of the firewall (the server), but firewalls are often set up to block such traffic because it could pose a security threat.&lt;br /&gt; &lt;br /&gt; &lt;br /&gt;&lt;span style="font-weight:bold;"&gt;ADO.NET&lt;/span&gt; -  is a data-access technology that enables applications to connect to data stores and manipulate data contained in them in various ways. It is based on the .NET Framework and it is highly integrated with the rest of the Framework class library.&lt;br /&gt;The ADO.NET API is designed so it can be used from all programming languages that target the .NET Framework, such as Visual Basic, C#, J# and Visual C++.&lt;br /&gt;The ADO.NET stack has two major parts: providers and services. &lt;br /&gt;ADO.NET "providers" are the components that know how to talk to specific data stores (for example, there is a provider to talk to SQL Server databases, and another one to talk to Oracle databases). All providers surface a unified API on top of which other layers can be built.&lt;br /&gt;ADO.NET also includes services built on top of the providers that are designed to facilitate writing applications. One such service is support for an in-memory cache that retains the relational shape of the data, and does change-tracking and constraint validation among other things; this service surfaces through the ADO.NET DataSet, and includes components to interact with the provider layer.&lt;br /&gt;ADO.NET is part of the .NET Framework, so in order to use ADO.NET in your applications all you need is the .NET Framework installed in the computers where your application will be used. &lt;br /&gt;ADO.NET Connection - You use the ADO.NET Connection object to create a connection between your program and a database engine. You will normally keep this connection open just long enough to retrieve or update data. By quickly opening, then closing a connection, you use server resources for as little time as possible. This helps you develop scalable, fast applications that are resource-friendly. The fewer resources you use, the more users you can support on your applications at one time.&lt;br /&gt;If you are creating a database application, you will eventually need to open a connection to that database. An ADO.NET Connection object allows you to create that connection. You will also need to retrieve and modify data in the database, and that is where you will need to use the ADO.NET Command object. &lt;br /&gt;When connecting to SQL Server 7.0 or greater, you use the SqlConnection and SqlCommand objects in the System.Data.SqlClient namespace. When connecting to other OLE DB datasources, use the OleDbConnection and OleDbCommand in the System.Data.OleDb namespace. &lt;br /&gt;To modify data within a database -  &lt;br /&gt;1. Create a SqlConnection or an OleDbConnection object and give it a connection string. &lt;br /&gt;2. Open the connection to the database. &lt;br /&gt;3. Create a SqlCommand or an OleDbCommand object and assign to it the connection object you opened. &lt;br /&gt;4. Place an SQL statement into the Command object. &lt;br /&gt;5. Execute the SQL statement by invoking the ExecuteNonQuery method on the Command object. &lt;br /&gt;Dim objConn as SqlClient.SqlConnection&lt;br /&gt;Dim strCon as String&lt;br /&gt;Try&lt;br /&gt; 'Create a connection object&lt;br /&gt; objConn=New SqlClient.SqlConnection()&lt;br /&gt; &lt;br /&gt; 'Build the Connection String&lt;br /&gt; strCon &amp;="Data Source=(local);"&lt;br /&gt; strCon &amp;="Initial Catalog=Northwind;"&lt;br /&gt; strConn &amp;= "User ID=sa;"&lt;br /&gt; strConn &amp;= "Password=;"&lt;br /&gt; objConn.ConnectionString = strConn &lt;br /&gt; objConn.Open() 'Open the Connection&lt;br /&gt; &lt;br /&gt; 'The connection is now open&lt;br /&gt; 'Write your code here&lt;br /&gt; objConn.Close()&lt;br /&gt;Catch oExcept As Exception&lt;br /&gt;        MessageBox.Show(oExcept.Message)&lt;br /&gt;End Try&lt;br /&gt;In this event procedure, you first create a new instance of a SqlConnection class. Then you fill in the ConnectionString property prior to opening the connection.&lt;br /&gt;About Connection Strings - A connection string has a set of semi-colon-separated attributes. Each .Net Data Provider connection string looks different, depending on the type of .NET Data Provider you need to use and which attributes are set for each different type of database system. For example, the connection string below is an example of what you use to connect to a local SQL Server. Note that each parameter is separated by a semicolon.&lt;br /&gt;Data Source=(local);Initial Catalog=Northwind;User ID=sa;Password=;&lt;br /&gt;The connection string shown below is an example of how you would connect to a Microsoft Access 2000 database using the OleDbConnection object in System.Data.OleDb.&lt;br /&gt;Provider=Microsoft.Jet.OleDb.4.0;Data Source=C:\Northwind.mdb&lt;br /&gt;Parameters in a Connection String - The parameters depends on which data provider is being used.&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Server&lt;/span&gt; - The name of the SQL Server we wish to access. This is usually the name of the computer that is running SQL server. We may use "local" or "localhost" for local computer. If we are using named instances of SQL server, then the parameter would contain the computer name, followed by a backslash, followed by the named instance of the SQL server.&lt;br /&gt;Database - The name of the database we want to connect to.&lt;br /&gt;User ID - A user ID configured in the SQL Server by the SQL Server administrator.&lt;br /&gt;Password - The password associated with the user ID used.&lt;br /&gt;Note that connection string can also contain the Windows NT account security settings. This is done very simple, by passing the paramater "integrated security=true".&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;ADO.NET Command Object&lt;/span&gt; - The Command object is very similar to the old ADO command object. It is used to store SQL statements that need to be executed against a data source. The Command object can execute SELECT statements, INSERT, UPDATE, or DELETE statements, stored procedures, or any other statement understood by the database. See sample code... &lt;br /&gt;&lt;br /&gt;Dim ObjCom as SqlClient.SqlCommand&lt;br /&gt;ObjCom.SqlConnection(strCon)&lt;br /&gt;ObjCom.Connection.Open()&lt;br /&gt;ObjCom.CommandText = "Select * from tblSample"&lt;br /&gt;ObjCom.ExecuteNonQuery()&lt;br /&gt;SqlCommand objects are not used much when we use datasets and data adapters. &lt;br /&gt;Following are some properties of the SqlCommand class...&lt;br /&gt;Connection Property - This property contains data about the connection string. It must be set on the SqlCommand object before it is executed. For the command to execute properly, the connection must be open at the time of execution.&lt;br /&gt;CommandText Property - This property specifies the SQL string or the Stored Procedure. &lt;br /&gt;objCommand.CommandText = "Insert into Employees (empid, empname) values ('EMI0334','Mario Brother')"&lt;br /&gt;Paramaters Collection - If we want to update values in the Employees table above, but we do not know the values at design time, we make use of placeholders. These are variables prefixed with "@" symbol. Our code will look like this...&lt;br /&gt;objCommand.CommandText = "Insert into Employees (empid, empname) values (@empid, @empname)&lt;br /&gt;Next, we have to create parameters that will be used to insert values into the placeholders. For this, we need to add parameters to the parameters collection of the SqlCommand object. This is done so that the values added through the parameters collection &amp; placeholders get included in the SQL statement. Here, parameters mean the parameters to be passed to the SQL statement/Stored Procedures, not the method's parameters.&lt;br /&gt;In order to add parameters to the SqlCommand object, we write the following code...&lt;br /&gt;objCommand.CommandText = "Insert into Employees (empid, empname) values (@empid, @empname)"&lt;br /&gt;objCommand.Parameters.Add("@empID", txtempid.text)&lt;br /&gt;objCommand.Parameters.Add("@empname", txtempname.text)&lt;br /&gt; &lt;br /&gt;&lt;span style="font-weight:bold;"&gt;ExecuteNonQuery Method &lt;/span&gt;- Once the connection is open, we run the query in the SqlCommand object using the ExecuteNonQuery method. This is very simple as shown below...&lt;br /&gt;objConnection.Open()&lt;br /&gt;objCommand.ExecuteNonQuery()&lt;br /&gt;objConnection.Close()&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;DataReader&lt;/span&gt; - In ADO.NET, you no longer have a Recordset. Instead, you have new objects such as DataSets, DataTables, and DataReaders that will be used to retrieve records from data sources. &lt;br /&gt;The DataReader object is a forward-only type of cursor that provides the fastest way to retrieve records from a data source. Because its direction is limited to forward-only, it provides great performance for programmatically processing results or loading list boxes, combo boxes, etc.&lt;br /&gt;Below is code to load a listbox using a DataReader...&lt;br /&gt;Private Sub frmProduct_Load( _ &lt;br /&gt; ByVal sender As System.Object, _&lt;br /&gt; ByVal e As System.EventArgs) Handles MyBase.Load&lt;br /&gt;        ListLoad()&lt;br /&gt;End Sub&lt;br /&gt; &lt;br /&gt;Within the Load Event, we are making a call to ListLoad() Procedure. Note that ListLoad does &lt;br /&gt;not have any constructor, hence we are using MyBase.Load to invoke the constructor of the&lt;br /&gt;class System.Object.&lt;br /&gt; &lt;br /&gt;Private Sub ListLoad()&lt;br /&gt;    Dim oCmd As SqlClient.SqlCommand&lt;br /&gt;    Dim oDR As SqlClient.SqlDataReader&lt;br /&gt;    Dim strSQL As String&lt;br /&gt;    Dim strConn As String&lt;br /&gt;&lt;br /&gt;    strConn = ConnectStringBuild()&lt;br /&gt;&lt;br /&gt;    strSQL = "SELECT ProductName "&lt;br /&gt;    strSQL &amp;= "FROM Products"&lt;br /&gt;&lt;br /&gt;    Try&lt;br /&gt;        oCmd = New SqlClient.SqlCommand()&lt;br /&gt;        With oCmd&lt;br /&gt;            .Connection = _&lt;br /&gt;             New SqlClient.SqlConnection(strConn)&lt;br /&gt;            .Connection.Open()&lt;br /&gt;            .CommandText = strSQL&lt;br /&gt;            oDR = .ExecuteReader()&lt;br /&gt;        End With&lt;br /&gt;&lt;br /&gt;        lstProducts.Items.Clear()&lt;br /&gt;        Do While oDR.Read()&lt;br /&gt;            lstProducts.Items.Add(oDR.Item("ProductName"))&lt;br /&gt;        Loop&lt;br /&gt;&lt;br /&gt;    Catch oExcept As Exception&lt;br /&gt;        MessageBox.Show(oExcept.Message)&lt;br /&gt;&lt;br /&gt;    End Try&lt;br /&gt;End Sub&lt;br /&gt;The code above declares two objects, one for the Command and one for the DataReader. &lt;br /&gt;The Command object holds and executes the SELECT statement to send to the data source. The DataReader is the object that retrieves the data from the result set that comes back from the SELECT statement. Set the Connection property on the Command object to a new instance of a Connection object. You pass a connection string to this new Connection object. After the proper connection string is set, you can open the connection on the command object. &lt;br /&gt;Place the SELECT statement into the CommandText property. When you invoke the ExecuteReader method, the command object submits the SELECT statement to the back end data source. The result is returned and the DataReader object is given a pointer to this result set. The cursor is set just before the first record in this result set.&lt;br /&gt;You will loop through each of the rows in the DataReader by invoking the Read method. The Read method moves the cursor from one row to the next. After the Read method has executed, you can pass the name of the column you wish to retrieve to the Item property on the DataReader. This returns the actual data from that column. &lt;br /&gt;The data returned from the Item property comes back as an Object data type. Because the items you add to the list box are of type Object, no conversion is required when using the Add method of the Items collection on the list box. In this manner, you continue looping until the Read method returns a False. This means you have hit the end of the rows of data that were returned from the SELECT statement. &lt;br /&gt;Here goes the ConnectStringBuild function...&lt;br /&gt;Private Function ConnectStringBuild() As String&lt;br /&gt;    Dim strConn As String&lt;br /&gt;&lt;br /&gt;    strConn &amp;= "Data Source=(local);"&lt;br /&gt;    strConn &amp;= "Initial Catalog=Northwind;"&lt;br /&gt;    strConn &amp;= "User ID=sa"&lt;br /&gt;&lt;br /&gt;    Return strConn&lt;br /&gt;End Function&lt;br /&gt; &lt;br /&gt;&lt;span style="font-weight:bold;"&gt;SqlDataAdapter&lt;/span&gt; - It is a Data Adapter class for SQL Server databases. It can be used with SQL 2k, SQL 7, MSDE. &lt;br /&gt;Now whats a Data Adapter? -&gt; It is a class that acts as a bridge between the Data Source (means the database) &lt;br /&gt;and the in-memory data objects such as a Dataset. To access a database, a command object is used. We &lt;br /&gt;normally pass a command string and a connection string to the constructor of a Data Adapter. This way, we dont &lt;br /&gt;need to use the SqlCommand Object while retrieving data from the database. We pass the data (using Fill method) &lt;br /&gt;retrieved from the data source through the data adapter to a dataset (or any other in-memory object like a datatable). &lt;br /&gt; &lt;br /&gt; &lt;br /&gt; &lt;br /&gt;Sample Code of filling a textbox with data from a datasource using a data adapter...&lt;br /&gt; &lt;br /&gt;Dim con as SqlConnection = New SqlConnection("Server=;Database=;User ID=;Password=;")&lt;br /&gt;Dim strcom as string = "Select * from employees where empid = 334"&lt;br /&gt;Dim da as SqlDataAdapter=New SqlDataAdapter(strcom,con)&lt;br /&gt;Dim ds as dataset&lt;br /&gt;da.fill(ds)&lt;br /&gt;textbox1.datasource = ds&lt;br /&gt;textbox1.databind&lt;br /&gt; &lt;br /&gt;Similarly, we can fill a datagrid with data...&lt;br /&gt; &lt;br /&gt;Dim con as SqlConnection = New SqlConnection("Server=;Database=;User ID=;Password=;")&lt;br /&gt;Dim strcom as string = "Select * from employees "&lt;br /&gt;Dim da as SqlDataAdapter=New SqlDataAdapter(strcom,con)&lt;br /&gt;Dim ds as dataset&lt;br /&gt;da.fill(ds,"employees")&lt;br /&gt;datagrid1.datasource = ds&lt;br /&gt;datagrid1.databind&lt;br /&gt; &lt;br /&gt;NOTE: In the code above, we have passed the name of the table in the Fill method. This is actually not really necessary&lt;br /&gt;until we have more than one table in the data adapter.&lt;br /&gt;  &lt;br /&gt;Select Command Property (of the Data Adapter)- This property is used to hold the SQL command that is used to &lt;br /&gt;retrieve data from the data source. In the figure above, we can see that the CommandText and Connection are &lt;br /&gt;properties of the Select Command propety. CommandType is also a property of Select Command. See example &lt;br /&gt;below...&lt;br /&gt; &lt;br /&gt;Dim da as new SqlDataAdapter&lt;br /&gt;da.SelectCommand = New SqlCommand( )&lt;br /&gt;With da.SelectCommand&lt;br /&gt;  .Connection = objConnection&lt;br /&gt;  .CommandText = "select * from employees"&lt;br /&gt;End With&lt;br /&gt;  &lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Dataset&lt;/span&gt; - DataSet object is like an in-memory database. This object holds a collection of DataTable objects. Each &lt;br /&gt;DataTable object is a representation of the data that was retrieved via a SELECT statement or stored procedure &lt;br /&gt;execution. The data in a DataSet can be written out or read in as XML. DataSets also store schema information, &lt;br /&gt;constraints, and relationships between multiple DataTable objects. Through a DataSet you can add, edit, and delete data.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5828148405619968357-6276907106547354255?l=psingla.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://psingla.blogspot.com/feeds/6276907106547354255/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5828148405619968357&amp;postID=6276907106547354255' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5828148405619968357/posts/default/6276907106547354255'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5828148405619968357/posts/default/6276907106547354255'/><link rel='alternate' type='text/html' href='http://psingla.blogspot.com/2009/05/ado-its-limitations-activex-data.html' title='ADO.NET'/><author><name>Puneet Singla</name><uri>http://www.blogger.com/profile/11957578103212343335</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_lMwvEp6jzaI/R_5IrYRj2mI/AAAAAAAAAHc/tdtOoptxfT8/S220/puneet.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5828148405619968357.post-1205382758981412084</id><published>2009-05-26T12:35:00.000-07:00</published><updated>2009-05-26T12:37:18.782-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='.Net'/><title type='text'>Add styles, stylesheets to page header ASP.Net 2.0</title><content type='html'>To change a page's title:&lt;br /&gt;&lt;br /&gt;this.Header.Title = "This is the new page title.";&lt;br /&gt;&lt;br /&gt;To add a style attribute for the page:&lt;br /&gt;&lt;br /&gt;Style style = new Style();&lt;br /&gt;style.ForeColor = System.Drawing.Color.Navy;&lt;br /&gt;style.BackColor = System.Drawing.Color.LightGray;&lt;br /&gt;&lt;br /&gt;// Add the style to the header for the body of the page&lt;br /&gt;this.Header.StyleSheet.CreateStyleRule(style, null, "body");&lt;br /&gt;&lt;br /&gt;To add a stylesheet to :&lt;br /&gt;&lt;br /&gt;HtmlLink link = new HtmlLink();&lt;br /&gt;link.Attributes.Add("type", "text/css");&lt;br /&gt;link.Attributes.Add("rel", "stylesheet");&lt;br /&gt;link.Attributes.Add("href", "~/newstyle.css");&lt;br /&gt;this.Header.Controls.Add(link);&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5828148405619968357-1205382758981412084?l=psingla.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://psingla.blogspot.com/feeds/1205382758981412084/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5828148405619968357&amp;postID=1205382758981412084' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5828148405619968357/posts/default/1205382758981412084'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5828148405619968357/posts/default/1205382758981412084'/><link rel='alternate' type='text/html' href='http://psingla.blogspot.com/2009/05/add-styles-stylesheets-to-page-header.html' title='Add styles, stylesheets to page header ASP.Net 2.0'/><author><name>Puneet Singla</name><uri>http://www.blogger.com/profile/11957578103212343335</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_lMwvEp6jzaI/R_5IrYRj2mI/AAAAAAAAAHc/tdtOoptxfT8/S220/puneet.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5828148405619968357.post-2583162376008782089</id><published>2009-05-26T06:13:00.000-07:00</published><updated>2009-05-26T06:15:11.420-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='LINQ Framework Design Guidelines'/><title type='text'>LINQ Framework Design Guidelines</title><content type='html'>here is a very good resource on LINQ design guidelines that you can read more on it here:&lt;br /&gt;&lt;br /&gt;LINQ Framework Design Guidelines (&lt;a href="http://blogs.msdn.com/mirceat/archive/2008/03/13/linq-framework-design-guidelines.aspx" target="_blank"&gt;http://blogs.msdn.com/mirceat/archive/2008/03/13/linq-framework-design-guidelines.aspx&lt;/a&gt;)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5828148405619968357-2583162376008782089?l=psingla.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://psingla.blogspot.com/feeds/2583162376008782089/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5828148405619968357&amp;postID=2583162376008782089' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5828148405619968357/posts/default/2583162376008782089'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5828148405619968357/posts/default/2583162376008782089'/><link rel='alternate' type='text/html' href='http://psingla.blogspot.com/2009/05/linq-framework-design-guidelines.html' title='LINQ Framework Design Guidelines'/><author><name>Puneet Singla</name><uri>http://www.blogger.com/profile/11957578103212343335</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_lMwvEp6jzaI/R_5IrYRj2mI/AAAAAAAAAHc/tdtOoptxfT8/S220/puneet.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5828148405619968357.post-3046723174870300206</id><published>2009-05-19T06:03:00.001-07:00</published><updated>2009-05-26T06:25:48.680-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ASP.Net New features'/><category scheme='http://www.blogger.com/atom/ns#' term='.Net LINQ'/><category scheme='http://www.blogger.com/atom/ns#' term='Puneet Singla'/><title type='text'>Introducing LINQ Tutorial</title><content type='html'>http://msmvps.com/blogs/abu/archive/2008/06/30/introducing-linq-tutorial.aspx&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: arial; font-size: x-small; color: rgb(102, 102, 204);"&gt;&lt;li&gt;&lt;a href="http://weblogs.asp.net/scottgu/archive/2007/05/19/using-linq-to-sql-part-1.aspx" target="_blank"&gt;Part 1: Introduction to LINQ to SQL&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://weblogs.asp.net/scottgu/archive/2007/05/29/linq-to-sql-part-2-defining-our-data-model-classes.aspx" target="_blank"&gt;Part 2: Defining our Data Model Classes&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://weblogs.asp.net/scottgu/archive/2007/06/29/linq-to-sql-part-3-querying-our-database.aspx" target="_blank"&gt;Part 3: Querying our Database&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://weblogs.asp.net/scottgu/archive/2007/07/11/linq-to-sql-part-4-updating-our-database.aspx" target="_blank"&gt;Part 4: Updating our Database&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://weblogs.asp.net/scottgu/archive/2007/07/16/linq-to-sql-part-5-binding-ui-using-the-asp-linqdatasource-control.aspx" target="_blank"&gt;Part 5: Binding UI using the ASP:LinqDataSource Control&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://weblogs.asp.net/scottgu/archive/2007/08/16/linq-to-sql-part-6-retrieving-data-using-stored-procedures.aspx" target="_blank"&gt;Part 6: Retrieving Data Using Stored Procedures&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://weblogs.asp.net/scottgu/archive/2007/08/23/linq-to-sql-part-7-updating-our-database-using-stored-procedures.aspx" target="_blank"&gt;Part 7: Updating our Database using Stored Procedures&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://weblogs.asp.net/scottgu/archive/2007/08/27/linq-to-sql-part-8-executing-custom-sql-expressions.aspx" target="_blank"&gt;Part 8: Executing Custom SQL Expressions&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://weblogs.asp.net/scottgu/archive/2007/09/07/linq-to-sql-part-9-using-a-custom-linq-expression-with-the-lt-asp-linqdatasource-gt-control.aspx"&gt;Part 9: Using a Custom LINQ Expression with the &lt;asp:linqdatasource&gt; control&lt;/a&gt;&lt;/li&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5828148405619968357-3046723174870300206?l=psingla.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://psingla.blogspot.com/feeds/3046723174870300206/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5828148405619968357&amp;postID=3046723174870300206' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5828148405619968357/posts/default/3046723174870300206'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5828148405619968357/posts/default/3046723174870300206'/><link rel='alternate' type='text/html' href='http://psingla.blogspot.com/2009/05/introducing-linq-tutorial.html' title='Introducing LINQ Tutorial'/><author><name>Puneet Singla</name><uri>http://www.blogger.com/profile/11957578103212343335</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_lMwvEp6jzaI/R_5IrYRj2mI/AAAAAAAAAHc/tdtOoptxfT8/S220/puneet.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5828148405619968357.post-6665058329857963512</id><published>2009-05-19T03:43:00.000-07:00</published><updated>2009-06-01T01:45:27.083-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server 2008'/><category scheme='http://www.blogger.com/atom/ns#' term='New features'/><category scheme='http://www.blogger.com/atom/ns#' term='Filtered indexes'/><category scheme='http://www.blogger.com/atom/ns#' term='indexing'/><category scheme='http://www.blogger.com/atom/ns#' term='indexes'/><category scheme='http://www.blogger.com/atom/ns#' term='Integration Services'/><title type='text'>Useful Features in SQL Server 2008</title><content type='html'>&lt;h1&gt;Useful Features in SQL Server 2008   &lt;/h1&gt;&lt;span style="font-weight: bold;"&gt;Encryption at rest&lt;/span&gt; &lt;p&gt;Whole databases can be encrypted with a master key (which can be stored in an HSM), rather than encrypting by each column. No code changes are required, hence this feature is called Transparent Data Encryption. It gives true encryption of data at rest, included backup files.&lt;/p&gt;&lt;span style="font-weight: bold;"&gt;Filtered indexes &lt;/span&gt; &lt;p&gt; An index can be created with a filter (i.e. index all rows where MyDateField is not null), thus making much more meaningful indexes &amp;rarrow; improved performance.&lt;/p&gt;&lt;span style="font-weight: bold;"&gt;Sparse columns support &lt;/span&gt; &lt;p&gt;There are times when you want to create say 20 columns, only a portion of which will be used at any given time (perhaps there are multiple applications using the table, and they each have a few unique needs). If you create all these columns, your table becomes a little unwieldy in many ways. You can use an XML column to store just the subset required, or in 2008 you can use the new sparse columns feature. This will improve indexing and manageability.&lt;/p&gt;&lt;span style="font-weight: bold;"&gt;Performance Data Collector&lt;/span&gt; &lt;p&gt;The new Performance Data Collector stores query information in a data warehouse, making it easy to answer questions like "whose query was hogging the resources this morning, causing my job to get a timeout?"&lt;/p&gt;&lt;span style="font-weight: bold;"&gt;Resource Governor&lt;/span&gt; &lt;p&gt;Allows the administrator to allocate resource slices to different users or classes of users; thus for instance you could specify that the core processing user would always get (if needed) a minimum of 40% of the CPU &amp;amp; RAM, and you could specify that the marketing users (once they have beefy report models to work with) never get more than 10% of the resources. For example.&lt;/p&gt;&lt;span style="font-weight: bold;"&gt;Report Builder &lt;/span&gt; &lt;p&gt;The Reporting Services Report Builder has been entirely redesigned — now looks like an Office 2007 application. The table and matrix controls have been replaced with a far more flexible &lt;a href="http://msdn2.microsoft.com/en-us/library/bb934258%28SQL.100%29.aspx"&gt;tablix&lt;/a&gt;  control that allows you to do all kinds of cool things.&lt;br /&gt;&lt;/p&gt;&lt;span style="font-weight: bold;"&gt;Integration Services&lt;/span&gt; &lt;p&gt;These upgrades are basically in the area of performance improvements, particularly with regard to the Lookup data flow task. Other improvements / new functionality: ADO.Net as default data source (rather than OLEDB); data profiling task; C# as new / default language for scripting tasks.&lt;/p&gt;&lt;span style="font-weight: bold;"&gt;Transact SQL / Database Engine&lt;/span&gt; &lt;p&gt;Finally, we get to the heart of SQL Server: the structured query language. Supposedly this thing is much faster. There is some new syntax available: &lt;code&gt;GROUPING SETS&lt;/code&gt; for enhanced BI-type queries; &lt;code&gt;MERGE&lt;/code&gt; to perform inserts, updates, and deletes in one statement; the&lt;code&gt;+=&lt;/code&gt; operator, and more. There's also the new Change Data Capture for enhanced auditability and better incremental bulk loads.&lt;/p&gt;&lt;br /&gt;&lt;br&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Multiple Insert Rows&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;SQL Server 2008 supports the option of inserting multiple records in one statement. Each row of data is followed by a comma until reaching the last row where the INSERT command is completed like normal.&lt;br /&gt;&lt;br /&gt;INSERT INTO Customers&lt;br /&gt; (CustID, CustName)&lt;br /&gt;VALUES&lt;br /&gt; ('Cust1', 'Smith Company'),&lt;br /&gt; ('Cust2', 'Perform Company'),&lt;br /&gt; ('Cust3', 'Test Inc');&lt;br /&gt;&lt;br /&gt;Other version of SQL Server require a separate statement to be executed for each record insert.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5828148405619968357-6665058329857963512?l=psingla.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://psingla.blogspot.com/feeds/6665058329857963512/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5828148405619968357&amp;postID=6665058329857963512' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5828148405619968357/posts/default/6665058329857963512'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5828148405619968357/posts/default/6665058329857963512'/><link rel='alternate' type='text/html' href='http://psingla.blogspot.com/2009/05/useful-features-in-sql-server-2008.html' title='Useful Features in SQL Server 2008'/><author><name>Puneet Singla</name><uri>http://www.blogger.com/profile/11957578103212343335</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_lMwvEp6jzaI/R_5IrYRj2mI/AAAAAAAAAHc/tdtOoptxfT8/S220/puneet.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5828148405619968357.post-6133519537465929999</id><published>2009-04-24T11:00:00.001-07:00</published><updated>2009-12-09T22:47:13.514-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Image Galleries (css and Javascript)'/><title type='text'>Image galleries</title><content type='html'>Very Nice Image Galleries&lt;br /&gt;&lt;br /&gt;http://smoothgallery.jondesign.net/showcase/gallery/#&lt;br /&gt;&lt;br /&gt;http://dhtmlsite.com/imagegalleries.php&lt;br /&gt;&lt;br /&gt;http://highslide.com/&lt;br /&gt;&lt;br /&gt;http://www.dhtmlgoodies.com/scripts/image_slideshow/image_slideshow.html&lt;br /&gt;&lt;br /&gt;http://joshuaink2006.johnoxton.co.uk/templates/gallery/index.htm&lt;br /&gt;&lt;br /&gt;http://sonspring.com/journal/slideshow-alternative&lt;br /&gt;&lt;br /&gt;http://iamacamera.org/sandbox/photoshuffler/&lt;br /&gt;&lt;br /&gt;Very Nice Image Slide show&lt;br /&gt;http://www.cfcms.nl/voorbeelden-van-cfcms-systemen.html&lt;br /&gt;&lt;br /&gt;Nice tool tip &amp; On Image Hover Shows nice image gallery&lt;br /&gt;http://www.catswhocode.com/blog/how-to-create-a-fancy-image-gallery-with-jquery&lt;br /&gt;&lt;br /&gt;&lt;b&gt;FLASH Image Galleries&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.visual-blast.com/flash/free-flash-gallery-solutions-for-your-images/" target="_blank"&gt;http://www.visual-blast.com/flash/free-flash-gallery-solutions-for-your-images/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5828148405619968357-6133519537465929999?l=psingla.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://psingla.blogspot.com/feeds/6133519537465929999/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5828148405619968357&amp;postID=6133519537465929999' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5828148405619968357/posts/default/6133519537465929999'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5828148405619968357/posts/default/6133519537465929999'/><link rel='alternate' type='text/html' href='http://psingla.blogspot.com/2009/04/very-nice-image-galleries.html' title='Image galleries'/><author><name>Puneet Singla</name><uri>http://www.blogger.com/profile/11957578103212343335</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_lMwvEp6jzaI/R_5IrYRj2mI/AAAAAAAAAHc/tdtOoptxfT8/S220/puneet.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5828148405619968357.post-4306671083906158650</id><published>2008-10-16T05:19:00.000-07:00</published><updated>2009-05-26T06:23:39.650-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Object Oriented Programming Concepts (OOP)'/><category scheme='http://www.blogger.com/atom/ns#' term='.Net'/><category scheme='http://www.blogger.com/atom/ns#' term='Puneet Singla'/><title type='text'>Introduction to Object Oriented Programming Concepts (OOP) and More</title><content type='html'>http://www.codeproject.com/KB/architecture/OOP_Concepts_and_manymore.aspx&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5828148405619968357-4306671083906158650?l=psingla.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://psingla.blogspot.com/feeds/4306671083906158650/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5828148405619968357&amp;postID=4306671083906158650' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5828148405619968357/posts/default/4306671083906158650'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5828148405619968357/posts/default/4306671083906158650'/><link rel='alternate' type='text/html' href='http://psingla.blogspot.com/2008/10/introduction-to-object-oriented.html' title='Introduction to Object Oriented Programming Concepts (OOP) and More'/><author><name>Puneet Singla</name><uri>http://www.blogger.com/profile/11957578103212343335</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_lMwvEp6jzaI/R_5IrYRj2mI/AAAAAAAAAHc/tdtOoptxfT8/S220/puneet.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5828148405619968357.post-5827918733101022133</id><published>2008-10-16T04:18:00.000-07:00</published><updated>2008-10-16T04:20:49.176-07:00</updated><title type='text'>Free SEO Tools</title><content type='html'>&lt;h2&gt;Free SEO Tools &lt;strong&gt;&lt;a href="http://www.zonixsoft.com/" target="_blank"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(Must Have)&lt;/span&gt;&lt;br /&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/h2&gt;          &lt;div class="snap_preview"&gt; &lt;p&gt;&lt;strong&gt;Here are six important SEO Tools to get you started:&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;1.&lt;/strong&gt; &lt;a href="http://www.webconfs.com/anchor-text-analysis.php" target="_blank"&gt;Backlink Anchor Text Analysis&lt;/a&gt; - This tool is especially useful, as we all know that anchor text (if you don’t, then take my word for it) plays a huge part in the weight given to a link to your site. By inputting your URL, you can check all of the backlinks pointing to your site and the anchor text used for each. Quality, relevant, keyword related anchor text is the best way to link to someone, so if you see people that are linking to you using the infamous “click here”, kindly shoot them an email and ask them to change it if they have time. It’s worth the trouble.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;2.&lt;/strong&gt; &lt;a href="http://freekeywords.wordtracker.com/" target="_blank"&gt;Free Keyword Suggestion Tool&lt;/a&gt; - Okay, so I covered this a little in my last post, but it’s definitley worth listing again. As you know, it’s an quick way to nail down some nice keywords, and get a general idea of the amount of search volume each one commands. Quick, easy, and fun.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;3.&lt;/strong&gt; &lt;a href="http://www.webconfs.com/domain-stats.php" target="_blank"&gt;Domain Stats Tool&lt;/a&gt; - Yeah, spying on your competitor is so much fun! This tool comes in handy if you just can’t seem to figure out why your enemies are ranking higher than you (other than the normal stuff). Input a URL, and it will tell you things like domain age, big directory listings, backlink count in the big 3 (Google, Yahoo, MSN). Nothing too detailed, but it may be useful information at one point or another.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;4.&lt;/strong&gt; &lt;a href="http://www.seochat.com/seo-tools/keyword-difficulty/" target="_blank"&gt;Keyword Difficulty Check&lt;/a&gt; - This seo tool is just downright cool. In your quest for the ultimate keywords, wouldn’t it be nice to see how difficult it would be to rank for a particular keyword? Problem solved. This famous tool over at SEOChat will do just that. It will tell you how hard it’s going to be percentage wise to rank for whatever keyword you put in. For instance, the keyword “SEO” gets a score of 78.5%, compared to “Florida SEO Company” scores a 42.03%. I could actually do this for hours, so I better move on before I digress….&lt;/p&gt; &lt;p&gt;&lt;strong&gt;5.&lt;/strong&gt; &lt;a href="http://www.seochat.com/seo-tools/google-vs-yahoo/" target="_blank"&gt;Google Vs. Yahoo Search Results&lt;/a&gt; - Talk about interesting. This tool lets you put in a keyword or keyphrase of your choice, and after it runs, it will present you with a graph showing where they rank on each site. Lines are drawn across the graph for matching domains. It’s very cool to see how each search engine ranks pages for certain keywords. For instance, I ran a query on the keyword “seo tips”, and I noticed that the 3rd result site in Google is ranked well over 40 in Yahoo. Not all of them are that far apart..some are actually really close. By the way, does anyone know the algorithms for each? I just need to borrow it real quick….&lt;/p&gt; &lt;p&gt;&lt;strong&gt;6.&lt;/strong&gt; &lt;a href="http://www.seomoz.org/term-extractor" target="_blank"&gt;Term Extractor&lt;/a&gt; - This little handy tool will let you input a URL, and after analyzing, it will tell you what it thinks is a search engine targeted term. This is a VERY clever tool, which I recommend you run on your site periodically, that way if you’re trying to target “garden tools” and the term extractor tells you that it thinks “sea monkey poop” is more SE targeted, that you have some work to do, keyword density wise!&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/5828148405619968357-5827918733101022133?l=psingla.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://psingla.blogspot.com/feeds/5827918733101022133/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5828148405619968357&amp;postID=5827918733101022133' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5828148405619968357/posts/default/5827918733101022133'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5828148405619968357/posts/default/5827918733101022133'/><link rel='alternate' type='text/html' href='http://psingla.blogspot.com/2008/10/free-seo-tools.html' title='Free SEO Tools'/><author><name>Puneet Singla</name><uri>http://www.blogger.com/profile/11957578103212343335</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_lMwvEp6jzaI/R_5IrYRj2mI/AAAAAAAAAHc/tdtOoptxfT8/S220/puneet.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5828148405619968357.post-4706301737127425063</id><published>2008-10-14T11:27:00.001-07:00</published><updated>2008-10-14T11:30:47.617-07:00</updated><title type='text'>Ten Must-Have Tools Every Developer Should Download Now</title><content type='html'>&lt;ul&gt;&lt;li class="ListingBullet"&gt;NUnit to write unit tests&lt;/li&gt;&lt;li class="ListingBullet"&gt;NDoc to create code documentation&lt;/li&gt;&lt;li class="ListingBullet"&gt;NAnt to build your solutions&lt;/li&gt;&lt;li class="ListingBullet"&gt;CodeSmith to generate code&lt;/li&gt;&lt;li class="ListingBullet"&gt;FxCop to police your code&lt;/li&gt;&lt;li class="ListingBullet"&gt;Snippet Compiler to compile small bits of code&lt;/li&gt;&lt;li class="ListingBullet"&gt;Two different switcher tools, the ASP.NET Version Switcher and the Visual Studio .NET Project Converter&lt;/li&gt;&lt;li class="ListingBullet"&gt;Regulator to build regular expressions&lt;/li&gt;&lt;li class="ListingBullet"&gt;.NET Reflector to examine assemblies&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5828148405619968357-4706301737127425063?l=psingla.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://psingla.blogspot.com/feeds/4706301737127425063/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5828148405619968357&amp;postID=4706301737127425063' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5828148405619968357/posts/default/4706301737127425063'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5828148405619968357/posts/default/4706301737127425063'/><link rel='alternate' type='text/html' href='http://psingla.blogspot.com/2008/10/ten-must-have-tools-every-developer.html' title='Ten Must-Have Tools Every Developer Should Download Now'/><author><name>Puneet Singla</name><uri>http://www.blogger.com/profile/11957578103212343335</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_lMwvEp6jzaI/R_5IrYRj2mI/AAAAAAAAAHc/tdtOoptxfT8/S220/puneet.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5828148405619968357.post-8165174213127303831</id><published>2008-10-06T11:06:00.001-07:00</published><updated>2008-10-06T11:06:49.128-07:00</updated><title type='text'>Jokes</title><content type='html'>&lt;span&gt; A guy phones up his boss,&lt;br /&gt;   but gets the boss s wife instead.&lt;br /&gt;   "I'm afraid he died last week."&lt;br /&gt;   she explains. The next day the&lt;br /&gt;   man calls again and asks for&lt;br /&gt;   the boss. "I told you" the wife replies,&lt;br /&gt;   "he died last week." The next day&lt;br /&gt;   he calls again and once more&lt;br /&gt;   asks to Speak to his boss.&lt;br /&gt;   By this time the wife is getting&lt;br /&gt;   upset and shouts, "I'VE ALREADY&lt;br /&gt;   TOLD YOU TWICE, MY HUSBAND,&lt;br /&gt;   YOUR TEAMLEAD, DIED LAST WEEK! WHY DO YOU KEEP CALLING?"&lt;br /&gt;   He replied laughing,&lt;br /&gt;   "I just love hearing it...! !"&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5828148405619968357-8165174213127303831?l=psingla.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://psingla.blogspot.com/feeds/8165174213127303831/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5828148405619968357&amp;postID=8165174213127303831' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5828148405619968357/posts/default/8165174213127303831'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5828148405619968357/posts/default/8165174213127303831'/><link rel='alternate' type='text/html' href='http://psingla.blogspot.com/2008/10/jokes.html' title='Jokes'/><author><name>Puneet Singla</name><uri>http://www.blogger.com/profile/11957578103212343335</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_lMwvEp6jzaI/R_5IrYRj2mI/AAAAAAAAAHc/tdtOoptxfT8/S220/puneet.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5828148405619968357.post-6553096949548422486</id><published>2008-10-06T09:43:00.000-07:00</published><updated>2008-10-06T09:46:36.243-07:00</updated><title type='text'>keyboard shortcuts</title><content type='html'>&lt;h3 id="tocHeadRef"&gt;General keyboard shortcuts&lt;/h3&gt;&lt;script type="text/javascript"&gt;loadTOCNode(2, 'moreinformation');&lt;/script&gt;&lt;table class="list ul"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="bullet"&gt;•&lt;/td&gt;&lt;td class="text"&gt;CTRL+C (Copy)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="bullet"&gt;•&lt;/td&gt;&lt;td class="text"&gt;CTRL+X (Cut)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="bullet"&gt;•&lt;/td&gt;&lt;td class="text"&gt;CTRL+V (Paste)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="bullet"&gt;•&lt;/td&gt;&lt;td class="text"&gt;CTRL+Z (Undo)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="bullet"&gt;•&lt;/td&gt;&lt;td class="text"&gt;DELETE (Delete) &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="bullet"&gt;•&lt;/td&gt;&lt;td class="text"&gt;SHIFT+DELETE (Delete the selected item permanently without     placing the item in the Recycle Bin) &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="bullet"&gt;•&lt;/td&gt;&lt;td class="text"&gt;CTRL while dragging an item (Copy the selected item)     &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="bullet"&gt;•&lt;/td&gt;&lt;td class="text"&gt;CTRL+SHIFT while dragging an item (Create a shortcut to the     selected item)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="bullet"&gt;•&lt;/td&gt;&lt;td class="text"&gt;F2 key (Rename the selected item)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="bullet"&gt;•&lt;/td&gt;&lt;td class="text"&gt;CTRL+RIGHT ARROW (Move the insertion point to the beginning     of the next word) &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="bullet"&gt;•&lt;/td&gt;&lt;td class="text"&gt;CTRL+LEFT ARROW (Move the insertion point to the beginning     of the previous word) &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="bullet"&gt;•&lt;/td&gt;&lt;td class="text"&gt;CTRL+DOWN ARROW (Move the insertion point to the beginning     of the next paragraph) &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="bullet"&gt;•&lt;/td&gt;&lt;td class="text"&gt;CTRL+UP ARROW (Move the insertion point to the beginning of     the previous paragraph) &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="bullet"&gt;•&lt;/td&gt;&lt;td class="text"&gt;CTRL+SHIFT with any of the arrow keys (Highlight a block of     text) &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="bullet"&gt;•&lt;/td&gt;&lt;td class="text"&gt;SHIFT with any of the arrow keys (Select more than one item     in a window or on the desktop, or select text in a document) &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="bullet"&gt;•&lt;/td&gt;&lt;td class="text"&gt;CTRL+A (Select all) &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="bullet"&gt;•&lt;/td&gt;&lt;td class="text"&gt;F3 key (Search for a file or a folder) &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="bullet"&gt;•&lt;/td&gt;&lt;td class="text"&gt;ALT+ENTER (View the properties for the selected item)     &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="bullet"&gt;•&lt;/td&gt;&lt;td class="text"&gt;ALT+F4 (Close the active item, or quit the active program)     &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="bullet"&gt;•&lt;/td&gt;&lt;td class="text"&gt;ALT+ENTER (Display the properties of the selected object)     &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="bullet"&gt;•&lt;/td&gt;&lt;td class="text"&gt;ALT+SPACEBAR (Open the shortcut menu for the active window)     &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="bullet"&gt;•&lt;/td&gt;&lt;td class="text"&gt;CTRL+F4 (Close the active document in programs that enable     you to have multiple documents open simultaneously) &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="bullet"&gt;•&lt;/td&gt;&lt;td class="text"&gt;ALT+TAB (Switch between the open items) &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="bullet"&gt;•&lt;/td&gt;&lt;td class="text"&gt;ALT+ESC (Cycle through items in the order that they had     been opened) &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="bullet"&gt;•&lt;/td&gt;&lt;td class="text"&gt;F6 key (Cycle through the screen elements in a window or on     the desktop) &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="bullet"&gt;•&lt;/td&gt;&lt;td class="text"&gt;F4 key (Display the Address bar list in My Computer or     Windows Explorer) &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="bullet"&gt;•&lt;/td&gt;&lt;td class="text"&gt;SHIFT+F10 (Display the shortcut menu for the selected item)     &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="bullet"&gt;•&lt;/td&gt;&lt;td class="text"&gt;ALT+SPACEBAR (Display the System menu for the active     window) &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="bullet"&gt;•&lt;/td&gt;&lt;td class="text"&gt;CTRL+ESC (Display the Start menu) &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="bullet"&gt;•&lt;/td&gt;&lt;td class="text"&gt;ALT+Underlined letter in a menu name (Display the     corresponding menu)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="bullet"&gt;•&lt;/td&gt;&lt;td class="text"&gt;Underlined letter in a command name on an open menu     (Perform the corresponding command)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="bullet"&gt;•&lt;/td&gt;&lt;td class="text"&gt;F10 key (Activate the menu bar in the active     program)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="bullet"&gt;•&lt;/td&gt;&lt;td class="text"&gt;RIGHT ARROW (Open the next menu to the right, or open a     submenu)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="bullet"&gt;•&lt;/td&gt;&lt;td class="text"&gt;LEFT ARROW (Open the next menu to the left, or close a     submenu)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="bullet"&gt;•&lt;/td&gt;&lt;td class="text"&gt;F5 key (Update the active window)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="bullet"&gt;•&lt;/td&gt;&lt;td class="text"&gt;BACKSPACE (View the folder one level up in My Computer or     Windows Explorer) &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="bullet"&gt;•&lt;/td&gt;&lt;td class="text"&gt;ESC (Cancel the current task)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="bullet"&gt;•&lt;/td&gt;&lt;td class="text"&gt;SHIFT when you insert a CD-ROM into the CD-ROM drive     (Prevent the CD-ROM from automatically playing)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="bullet"&gt;•&lt;/td&gt;&lt;td class="text"&gt;CTRL+SHIFT+ESC (Open Task Manager)&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;h3 id="tocHeadRef"&gt;Dialog box keyboard shortcuts&lt;/h3&gt;&lt;script type="text/javascript"&gt;loadTOCNode(2, 'moreinformation');&lt;/script&gt;If you press SHIFT+F8 in extended selection list boxes, you enable extended selection mode. In this mode, you can use an arrow key to move a cursor without changing the selection. You can press CTRL+SPACEBAR or SHIFT+SPACEBAR to adjust the selection. To cancel extended selection mode, press SHIFT+F8 again. Extended selection mode cancels itself when you move the focus to another control.&lt;table class="list ul"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="bullet"&gt;•&lt;/td&gt;&lt;td class="text"&gt;CTRL+TAB (Move forward through the tabs)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="bullet"&gt;•&lt;/td&gt;&lt;td class="text"&gt;CTRL+SHIFT+TAB (Move backward through the tabs)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="bullet"&gt;•&lt;/td&gt;&lt;td class="text"&gt;TAB (Move forward through the options)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="bullet"&gt;•&lt;/td&gt;&lt;td class="text"&gt;SHIFT+TAB (Move backward through the options)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="bullet"&gt;•&lt;/td&gt;&lt;td class="text"&gt;ALT+Underlined letter (Perform the corresponding command or     select the corresponding option)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="bullet"&gt;•&lt;/td&gt;&lt;td class="text"&gt;ENTER (Perform the command for the active option or     button)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="bullet"&gt;•&lt;/td&gt;&lt;td class="text"&gt;SPACEBAR (Select or clear the check box if the active     option is a check box)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="bullet"&gt;•&lt;/td&gt;&lt;td class="text"&gt;Arrow keys (Select a button if the active option is a group     of option buttons)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="bullet"&gt;•&lt;/td&gt;&lt;td class="text"&gt;F1 key (Display Help)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="bullet"&gt;•&lt;/td&gt;&lt;td class="text"&gt;F4 key (Display the items in the active list)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="bullet"&gt;•&lt;/td&gt;&lt;td class="text"&gt;BACKSPACE (Open a folder one level up if a folder is     selected in the &lt;b&gt;Save As&lt;/b&gt; or &lt;b&gt;Open&lt;/b&gt; dialog box) &lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;h3 id="tocHeadRef"&gt;Microsoft natural keyboard shortcuts&lt;/h3&gt;&lt;script type="text/javascript"&gt;loadTOCNode(2, 'moreinformation');&lt;/script&gt;&lt;table class="list ul"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="bullet"&gt;•&lt;/td&gt;&lt;td class="text"&gt;Windows Logo (Display or hide the Start menu)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="bullet"&gt;•&lt;/td&gt;&lt;td class="text"&gt;Windows Logo+BREAK (Display the &lt;b&gt;System Properties&lt;/b&gt; dialog box)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="bullet"&gt;•&lt;/td&gt;&lt;td class="text"&gt;Windows Logo+D (Display the desktop)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="bullet"&gt;•&lt;/td&gt;&lt;td class="text"&gt;Windows Logo+M (Minimize all of the windows)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="bullet"&gt;•&lt;/td&gt;&lt;td class="text"&gt;Windows Logo+SHIFT+M (Restore the minimized     windows)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="bullet"&gt;•&lt;/td&gt;&lt;td class="text"&gt;Windows Logo+E (Open My Computer)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="bullet"&gt;•&lt;/td&gt;&lt;td class="text"&gt;Windows Logo+F (Search for a file or a folder)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="bullet"&gt;•&lt;/td&gt;&lt;td class="text"&gt;CTRL+Windows Logo+F (Search for computers)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="bullet"&gt;•&lt;/td&gt;&lt;td class="text"&gt;Windows Logo+F1 (Display Windows Help)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="bullet"&gt;•&lt;/td&gt;&lt;td class="text"&gt;Windows Logo+ L (Lock the keyboard)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="bullet"&gt;•&lt;/td&gt;&lt;td class="text"&gt;Windows Logo+R (Open the &lt;b&gt;Run&lt;/b&gt; dialog box)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="bullet"&gt;•&lt;/td&gt;&lt;td class="text"&gt;Windows Logo+U (Open Utility Manager)&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5828148405619968357-6553096949548422486?l=psingla.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://psingla.blogspot.com/feeds/6553096949548422486/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5828148405619968357&amp;postID=6553096949548422486' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5828148405619968357/posts/default/6553096949548422486'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5828148405619968357/posts/default/6553096949548422486'/><link rel='alternate' type='text/html' href='http://psingla.blogspot.com/2008/10/general-keyboard-shortcuts-loadtocnode2.html' title='keyboard shortcuts'/><author><name>Puneet Singla</name><uri>http://www.blogger.com/profile/11957578103212343335</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_lMwvEp6jzaI/R_5IrYRj2mI/AAAAAAAAAHc/tdtOoptxfT8/S220/puneet.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5828148405619968357.post-7862746083867172962</id><published>2008-04-10T10:00:00.000-07:00</published><updated>2008-04-10T10:02:36.195-07:00</updated><title type='text'>Intresting topics</title><content type='html'>What are your intrests and hobbies...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5828148405619968357-7862746083867172962?l=psingla.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://psingla.blogspot.com/feeds/7862746083867172962/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5828148405619968357&amp;postID=7862746083867172962' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5828148405619968357/posts/default/7862746083867172962'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5828148405619968357/posts/default/7862746083867172962'/><link rel='alternate' type='text/html' href='http://psingla.blogspot.com/2008/04/intresting-topics.html' title='Intresting topics'/><author><name>Puneet Singla</name><uri>http://www.blogger.com/profile/11957578103212343335</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_lMwvEp6jzaI/R_5IrYRj2mI/AAAAAAAAAHc/tdtOoptxfT8/S220/puneet.jpg'/></author><thr:total>0</thr:total></entry></feed>
