<?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/opensearch/1.1/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0' gd:etag='W/&quot;CEQCR3o8eyp7ImA9WhNWF0k.&quot;'><id>tag:blogger.com,1999:blog-5773096095549745377</id><updated>2012-12-17T03:06:06.473-08:00</updated><category term='LINQ'/><category term='Visual Studio'/><category term='Testing Tools'/><category term='Database'/><category term='Web Technologies'/><category term='SQL Server'/><category term='Microsoft Excel'/><category term='Others'/><category term='AJAX'/><category term='JavaScript'/><category term='Web 2.0'/><category term='WPF'/><category term='Application Architecture'/><category term='ASP .Net'/><category term='Silverlight'/><category term='HTML5'/><category term='Books'/><category term='C Sharp'/><title>Dot Net - Pros &amp; Cons</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://latestfeatures.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5773096095549745377/posts/default?redirect=false&amp;v=2'/><link rel='alternate' type='text/html' href='http://latestfeatures.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/5773096095549745377/posts/default?start-index=26&amp;max-results=25&amp;redirect=false&amp;v=2'/><author><name>JKiran</name><uri>http://www.blogger.com/profile/14647583186013938517</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>55</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry gd:etag='W/&quot;CEQCR3ozfCp7ImA9WhNWF0k.&quot;'><id>tag:blogger.com,1999:blog-5773096095549745377.post-7825512878797712996</id><published>2012-12-17T03:06:00.000-08:00</published><updated>2012-12-17T03:06:06.484-08:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2012-12-17T03:06:06.484-08:00</app:edited><category scheme='http://www.blogger.com/atom/ns#' term='HTML5'/><title>Html5 Web Designing softwares</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;/div&gt;
&lt;b&gt;&lt;a href="http://www.adobe.com/products/muse.html"&gt;Adobe Muse&lt;/a&gt;:&lt;/b&gt;&amp;nbsp;Adobe Muse is a website designing software which supports Html5. It’s basic concept is  everyone can creates website without coding knowledge.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;a href="http://www.microsoft.com/expression/products/Web_Overview.aspx"&gt;Microsoft Expression web 4&lt;/a&gt;&lt;/b&gt;:&amp;nbsp;Microsoft Expression web 4 sp1 support Html5. But it need to install &lt;a href="http://gallery.expression.microsoft.com/Web4HTML5SchemaAddIn"&gt;Html5 schema&lt;/a&gt;  plugin. It has some &lt;a href="http://blogs.msdn.com/b/xweb/archive/2010/10/06/add-html5-support-to-expression-web-4.aspx"&gt;installation guide&lt;/a&gt;.  &lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://www.adobe.com/cfusion/tdrc/index.cfm?product=dreamweaver"&gt;&lt;b&gt;Adobe Dreamweaver 11.0.3&lt;/b&gt;&lt;/a&gt;:&amp;nbsp;Adobe Dreamweaver is a most famous Adobe web design software. Adobe Dreamweaver 11.0.3&amp;nbsp;&lt;a href="http://blogs.adobe.com/csupdates/2010/08/31/dreamweaver-cs5-11-0-3-updater/"&gt;update&lt;/a&gt; support Html5.&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://www.websitex5.com/en/evolution-9.html"&gt;&lt;b&gt;WebSite X5 Evolution 9&lt;/b&gt;&lt;/a&gt;:&amp;nbsp;WebSite X5 Evolution 9 is a great tool to create html 5 websites. It’s offer to inntegrates JavaScript jQuery library ,UTF8 format.  &lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;a href="http://tumult.com/hype/"&gt;Tumult Hype&lt;/a&gt; (support Mac OS only):&lt;/b&gt;&amp;nbsp;Tumult hype is a most popular Html5 Web content making software for Mac OS. User can creates Animated presentations.&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://html.adobe.com/edge/"&gt;&lt;b&gt;Adobe edge&lt;/b&gt;&lt;/a&gt;:&amp;nbsp;Adobe edge is a most powerful adobe application to create html5 web content.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;a href="http://www.embarcadero.com/products/HTML5-Builder"&gt;HTML5 Builder&lt;/a&gt;&lt;/b&gt;:&amp;nbsp;html5 builder is a powerful application to create html5 based website and apps&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;a href="http://www.kendoui.com/"&gt;Kendo UI&lt;/a&gt;&lt;/b&gt;:&amp;nbsp;Kendo UI  offer user to create Html5 web apps.&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://easyhtml5video.com/"&gt;&lt;b&gt;Easy Html5  Video Convertor:&lt;/b&gt;&lt;/a&gt;&amp;nbsp;Easy Html5 Video is a free html5 video convertor Used to create html5 video&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;a href="http://www.photo-flash-maker.com/"&gt;Photo Slideshow Maker&lt;/a&gt;&lt;/b&gt;:&amp;nbsp;Photo Slideshow Maker offer user to create html5 photo slide show&lt;/div&gt;
&lt;div class="blogger-post-footer"&gt;&lt;a href="http://secure.bidvertiser.com/performance/bdv_rss_rd.dbm?pid=33354&amp;bid=263059&amp;PHS=33354263059&amp;click=1&amp;rsrc=3" target="_blank"&gt;&lt;img src="http://bdv.bidvertiser.com/BidVertiser.dbm?pid=33354&amp;bid=263059&amp;PHS=33354263059&amp;imagerss=1&amp;rsrc=3" border="0"/&gt;&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5773096095549745377-7825512878797712996?l=latestfeatures.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://latestfeatures.blogspot.com/feeds/7825512878797712996/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5773096095549745377&amp;postID=7825512878797712996' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5773096095549745377/posts/default/7825512878797712996?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5773096095549745377/posts/default/7825512878797712996?v=2'/><link rel='alternate' type='text/html' href='http://latestfeatures.blogspot.com/2012/12/html5-web-designing-softwares.html' title='Html5 Web Designing softwares'/><author><name>KiranM Kumar</name><uri>https://plus.google.com/116928083721963042892</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-pfO51ziqYxg/AAAAAAAAAAI/AAAAAAAAAAA/vXWwnQNAYO0/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry gd:etag='W/&quot;AkQMRX09eip7ImA9WhNREU8.&quot;'><id>tag:blogger.com,1999:blog-5773096095549745377.post-6845472125056079315</id><published>2012-11-05T07:13:00.000-08:00</published><updated>2012-11-05T07:13:04.362-08:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2012-11-05T07:13:04.362-08:00</app:edited><category scheme='http://www.blogger.com/atom/ns#' term='Microsoft Excel'/><category scheme='http://www.blogger.com/atom/ns#' term='ASP .Net'/><title>Microsoft Excel cannot access the file is solved by creating a folder?</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
&lt;b&gt;Error:&lt;/b&gt;&lt;br /&gt;
Microsoft Office Excel cannot access the file '&lt;i&gt;c:\inetpub\wwwroot\Timesheet\App_Data\Template.xlsx&lt;/i&gt;'. There are several possible reasons:&lt;br /&gt;
&lt;br /&gt;
&lt;ul style="text-align: left;"&gt;
&lt;li&gt;The file name or path does not exist.&lt;/li&gt;
&lt;li&gt;The file is being used by another program.&lt;/li&gt;
&lt;li&gt;The workbook you are trying to save has the same name as a currently open workbook.&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
&lt;b&gt;Solution:&lt;/b&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;ol style="text-align: left;"&gt;
&lt;li&gt;Create directory "C:\Windows\SysWOW64\config\systemprofile\Desktop " (for 64 bit Windows) or "C:\Windows\System32\config\systemprofile\Desktop " (for 32 bit Windows)&lt;/li&gt;
&lt;li&gt;Set Full control permissions for directory Desktop (for example in Win7 &amp;amp; IIS 7 &amp;amp; DefaultAppPool set permissions for user "IIS AppPool\DefaultAppPool")&lt;/li&gt;
&lt;/ol&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="blogger-post-footer"&gt;&lt;a href="http://secure.bidvertiser.com/performance/bdv_rss_rd.dbm?pid=33354&amp;bid=263059&amp;PHS=33354263059&amp;click=1&amp;rsrc=3" target="_blank"&gt;&lt;img src="http://bdv.bidvertiser.com/BidVertiser.dbm?pid=33354&amp;bid=263059&amp;PHS=33354263059&amp;imagerss=1&amp;rsrc=3" border="0"/&gt;&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5773096095549745377-6845472125056079315?l=latestfeatures.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://latestfeatures.blogspot.com/feeds/6845472125056079315/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5773096095549745377&amp;postID=6845472125056079315' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5773096095549745377/posts/default/6845472125056079315?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5773096095549745377/posts/default/6845472125056079315?v=2'/><link rel='alternate' type='text/html' href='http://latestfeatures.blogspot.com/2012/11/microsoft-excel-cannot-access-file-is.html' title='Microsoft Excel cannot access the file is solved by creating a folder?'/><author><name>KiranM Kumar</name><uri>https://plus.google.com/116928083721963042892</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-pfO51ziqYxg/AAAAAAAAAAI/AAAAAAAAAAA/vXWwnQNAYO0/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry gd:etag='W/&quot;CEQAR3k4eCp7ImA9WhJaGUg.&quot;'><id>tag:blogger.com,1999:blog-5773096095549745377.post-8293636954127960348</id><published>2012-10-11T03:45:00.003-07:00</published><updated>2012-10-11T03:45:46.730-07:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2012-10-11T03:45:46.730-07:00</app:edited><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server'/><title>How to find the Query Execution Time</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
&lt;br /&gt;
One method is to save the time before and after the query and to calculate&amp;nbsp;the difference, something like this:&lt;br /&gt;
&lt;br /&gt;
DECLARE @start_time DATETIME, @end_time DATETIME&lt;br /&gt;
SET @start_time = CURRENT_TIMESTAMP&lt;br /&gt;
&lt;br /&gt;
-- query goes here&lt;br /&gt;
&lt;br /&gt;
SET @end_time = CURRENT_TIMESTAMP&lt;br /&gt;
SELECT DATEDIFF(ms, @start_time, @end_time)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;/div&gt;
&lt;div class="blogger-post-footer"&gt;&lt;a href="http://secure.bidvertiser.com/performance/bdv_rss_rd.dbm?pid=33354&amp;bid=263059&amp;PHS=33354263059&amp;click=1&amp;rsrc=3" target="_blank"&gt;&lt;img src="http://bdv.bidvertiser.com/BidVertiser.dbm?pid=33354&amp;bid=263059&amp;PHS=33354263059&amp;imagerss=1&amp;rsrc=3" border="0"/&gt;&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5773096095549745377-8293636954127960348?l=latestfeatures.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://latestfeatures.blogspot.com/feeds/8293636954127960348/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5773096095549745377&amp;postID=8293636954127960348' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5773096095549745377/posts/default/8293636954127960348?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5773096095549745377/posts/default/8293636954127960348?v=2'/><link rel='alternate' type='text/html' href='http://latestfeatures.blogspot.com/2012/10/how-to-find-query-execution-time.html' title='How to find the Query Execution Time'/><author><name>KiranM Kumar</name><uri>https://plus.google.com/116928083721963042892</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-pfO51ziqYxg/AAAAAAAAAAI/AAAAAAAAAAA/vXWwnQNAYO0/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry gd:etag='W/&quot;A0EGQn0ycCp7ImA9WhJaGEk.&quot;'><id>tag:blogger.com,1999:blog-5773096095549745377.post-5793201912965346351</id><published>2012-10-09T23:13:00.000-07:00</published><updated>2012-10-09T23:13:43.398-07:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2012-10-09T23:13:43.398-07:00</app:edited><category scheme='http://www.blogger.com/atom/ns#' term='Books'/><title>WCF Books</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
&lt;a href="http://4.bp.blogspot.com/-8EEMpozu_Zk/UHURAuQ2diI/AAAAAAAAI1k/9XaBdKEJu70/s1600/ProgrammingWCFServices-Juval.gif" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="200" src="http://4.bp.blogspot.com/-8EEMpozu_Zk/UHURAuQ2diI/AAAAAAAAI1k/9XaBdKEJu70/s200/ProgrammingWCFServices-Juval.gif" width="152" /&gt;&lt;/a&gt;&lt;b&gt;Programming WCF Services, 2nd Edition:&amp;nbsp;&lt;/b&gt;Programming WCF Services will teach you how to design and develop SOA-WCF-based applications. You will need to be an experienced developer who has a fair understanding of .NET and C# 2.0. A couple of points about Programming WCF Services, first, this isn't a beginners book; the author dives down into advanced material in spots almost without notice. If you want to become proficient using WCF, you will be buying this book eventually. You will find that this book will become both a reference as well as well as a guide.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Author:&lt;/b&gt; Juval Lowy&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;ISBN:&lt;/b&gt; 978-0-596-52130-1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-fSv9SknFBWg/UHURC8WkwUI/AAAAAAAAI10/PXIypEpU_Jc/s1600/Wrox-Professional-Wcf-Programming.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="200" src="http://2.bp.blogspot.com/-fSv9SknFBWg/UHURC8WkwUI/AAAAAAAAI10/PXIypEpU_Jc/s200/Wrox-Professional-Wcf-Programming.jpg" width="159" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;b&gt;Wrox-Professional WCF Programming:&amp;nbsp;&lt;/b&gt;This book is very good for beginners. This books covers all the topics in WCF in general. I will recommend this book, for initial stage of learning.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Author:&lt;/b&gt; Scott Klein&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;ISBN:&lt;/b&gt; 9780470089842&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-PxjerlPsa7I/UHUQ-hld9II/AAAAAAAAI1U/ivMyD_tWm3w/s1600/Microsoft-WCF-Step-by-Step.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="200" src="http://3.bp.blogspot.com/-PxjerlPsa7I/UHUQ-hld9II/AAAAAAAAI1U/ivMyD_tWm3w/s200/Microsoft-WCF-Step-by-Step.jpg" width="168" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;b&gt;Microsoft Windows Communication Foundation Step by Step:&amp;nbsp;&lt;/b&gt;Covering the concepts and details necessary to enable you to build connected solutions, this book offers hands-on guidance for creating the Web services you need to implement robust business applications for Windows. Teach yourself the essentials of Windows Communication Foundation-one step at a time. With this practical tutorial, you get hands-on guidance for creating the Web services you need to implement robust business applications for Windows.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Author&lt;/b&gt;: John Sharp&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;ISBN:&lt;/b&gt; 9780735623361&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-AOEc9Mkbl_Y/UHUQ_nSliMI/AAAAAAAAI1Y/8CG5286ztFI/s1600/Pro-WCF.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="200" src="http://3.bp.blogspot.com/-AOEc9Mkbl_Y/UHUQ_nSliMI/AAAAAAAAI1Y/8CG5286ztFI/s200/Pro-WCF.jpg" width="164" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;b&gt;Pro WCF: Practical Microsoft SOA Implementation Book Description:&amp;nbsp;&lt;/b&gt;This is also a very good book. The book covers all the WCF topics in depth while using a lot of examples schemas and screenshots. This is a great book about how to develop WCF services. I really recommend this book, but I like juval's more.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Author:&lt;/b&gt; Chris Peiris, Dennis Mulder, Shawn Cicoria,&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;ISBN:&lt;/b&gt; 1590597028&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-TVqoPSlRH6o/UHURBlBP5nI/AAAAAAAAI1s/CileWdRhCzU/s1600/WCF-Hands-On.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="200" src="http://3.bp.blogspot.com/-TVqoPSlRH6o/UHURBlBP5nI/AAAAAAAAI1s/CileWdRhCzU/s200/WCF-Hands-On.jpg" width="164" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;b&gt;Microsoft Windows Communication Foundation: Hands-on:&amp;nbsp;&lt;/b&gt;You will gain a comprehensive understanding of how to apply the Windows Communication Foundation to almost any distributed computing problem, from enterprise scale to peer-to-peer. Most importantly, after reading the book and working through the examples, you will actually have considerable experience using WCF, because the book takes you through the steps of actually building Windows Communication Foundation solutions.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Author&lt;/b&gt;: Craig McMurtry&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;ISBN:&lt;/b&gt; 0672328771&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-hVpFgyQImCI/UHUQ9ouy2LI/AAAAAAAAI1M/-HH3juZh-uo/s1600/Learning-WCF.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="200" src="http://1.bp.blogspot.com/-hVpFgyQImCI/UHUQ9ouy2LI/AAAAAAAAI1M/-HH3juZh-uo/s200/Learning-WCF.jpg" width="152" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;b&gt;Learning WCF:&amp;nbsp;&lt;/b&gt;This also one of the nice book from O'Relliy. One of my great architect also recommend this book.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Author&lt;/b&gt;: Michele Leroux Bustamante&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;ISBN:&lt;/b&gt; 978-0-596-10162-6&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class="blogger-post-footer"&gt;&lt;a href="http://secure.bidvertiser.com/performance/bdv_rss_rd.dbm?pid=33354&amp;bid=263059&amp;PHS=33354263059&amp;click=1&amp;rsrc=3" target="_blank"&gt;&lt;img src="http://bdv.bidvertiser.com/BidVertiser.dbm?pid=33354&amp;bid=263059&amp;PHS=33354263059&amp;imagerss=1&amp;rsrc=3" border="0"/&gt;&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5773096095549745377-5793201912965346351?l=latestfeatures.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://latestfeatures.blogspot.com/feeds/5793201912965346351/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5773096095549745377&amp;postID=5793201912965346351' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5773096095549745377/posts/default/5793201912965346351?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5773096095549745377/posts/default/5793201912965346351?v=2'/><link rel='alternate' type='text/html' href='http://latestfeatures.blogspot.com/2012/10/wcf-books.html' title='WCF Books'/><author><name>KiranM Kumar</name><uri>https://plus.google.com/116928083721963042892</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-pfO51ziqYxg/AAAAAAAAAAI/AAAAAAAAAAA/vXWwnQNAYO0/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-8EEMpozu_Zk/UHURAuQ2diI/AAAAAAAAI1k/9XaBdKEJu70/s72-c/ProgrammingWCFServices-Juval.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry gd:etag='W/&quot;CUICSXk4fip7ImA9WhJUFkw.&quot;'><id>tag:blogger.com,1999:blog-5773096095549745377.post-541189815863830936</id><published>2012-09-14T02:06:00.001-07:00</published><updated>2012-09-14T02:06:08.736-07:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2012-09-14T02:06:08.736-07:00</app:edited><category scheme='http://www.blogger.com/atom/ns#' term='C Sharp'/><title>C#  - Threading</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;In itself, this is a huge topic. Most easy-to-apply, synchronization-related optimizations focus on minimizing the amount of code executing inside synchronized blocks, which may involve moving some code from inside to outside such blocks. In some cases, thoughtful programming may allow elimination of synchronization entirely from a class (see "Immutable Objects").&lt;br /&gt;
&lt;br /&gt;
Performing a multithreaded micro-benchmark is more complicated than running a simple loop. In the simplest method, multiple threads are spawned, each looping over the benchmarked code; the reading is not started until all threads are successfully executing the code, and is terminated before the threads are shut down.&lt;br /&gt;
&lt;b&gt;&lt;br /&gt;
&lt;/b&gt; &lt;b&gt;Thread Reuse&lt;/b&gt;&lt;br /&gt;
Newbie programmers make the common mistake of spawning a new thread for every request or other action. This can result in worse performance than using a single-threaded approach; the relative performance degradation is worse the quicker the individual requests can be serviced.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Writing Your Own Threading Code&lt;/b&gt;&lt;br /&gt;
Even better than the .NET thread pool, with its dependence on delegates, is to write your own threading code. Instead of using QueueUserWorkItem(), you typically write your own queueing code to coordinate work items. This also allows other benefits such as priority-based queueing.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Immutable Objects&lt;/b&gt;&lt;br /&gt;
Immutable objects are objects in which the data cannot be changed. In most cases, this is achieved by setting all fields in constructor methods and providing only property getters and/or methods that retrieve data from the object, without any mutator logic whatsoever. Many classes in the .NET Common Type System are immutable: System.String, System. Drawing.Font, etc. In addition, care should be taken that any values returned from property accessors, etc. are immutable as well. Otherwise, this data may be copied to insure the integrity of the object itself. Example 11 shows the performance benefit of immutable objects over synchronization.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Data Copying&lt;/b&gt;&lt;br /&gt;
This flies in the face of the advice given earlier, to minimize the use of objects. However, it's really the other side of the coin from immutable objects. Object copying allows you to use the data in a non-immutable object, but in a way that still completely avoids synchronization. The more highly multithreaded the environment, the more strategies like this make sense.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Read-Write Locks&lt;/b&gt;&lt;br /&gt;
Synchronization issues in managed code mirror those in databases. In some situations, optimistic concurrency strategies can be used; in some dirty reads are acceptable, etc. For situations in which a structure is seldom updated and often read, the ReaderWriterLock class can give significant performance benefits over simple synchronization. It allows either multiple read access or single write access at once. Example 12 compares ReaderWriterLock to simple synchronization in a read-heavy scenario.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://secure.bidvertiser.com/performance/bdv_rss_rd.dbm?pid=33354&amp;bid=263059&amp;PHS=33354263059&amp;click=1&amp;rsrc=3" target="_blank"&gt;&lt;img src="http://bdv.bidvertiser.com/BidVertiser.dbm?pid=33354&amp;bid=263059&amp;PHS=33354263059&amp;imagerss=1&amp;rsrc=3" border="0"/&gt;&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5773096095549745377-541189815863830936?l=latestfeatures.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://latestfeatures.blogspot.com/feeds/541189815863830936/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5773096095549745377&amp;postID=541189815863830936' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5773096095549745377/posts/default/541189815863830936?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5773096095549745377/posts/default/541189815863830936?v=2'/><link rel='alternate' type='text/html' href='http://latestfeatures.blogspot.com/2012/09/c-threading.html' title='C#  - Threading'/><author><name>KiranM Kumar</name><uri>https://plus.google.com/116928083721963042892</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-pfO51ziqYxg/AAAAAAAAAAI/AAAAAAAAAAA/vXWwnQNAYO0/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry gd:etag='W/&quot;CUIESXs6eSp7ImA9WhJUFkw.&quot;'><id>tag:blogger.com,1999:blog-5773096095549745377.post-5672504115978246905</id><published>2012-09-14T02:05:00.000-07:00</published><updated>2012-09-14T02:05:08.511-07:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2012-09-14T02:05:08.511-07:00</app:edited><category scheme='http://www.blogger.com/atom/ns#' term='C Sharp'/><title>C#  - Working With Strings</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;b&gt;Don't Use String.Format() to Concatenate Strings&lt;/b&gt;&lt;br /&gt;
While string-formatting routines built into .NET are very useful for globalization and other tasks, they're not meant to be used for appending strings to each other. Example 7 tests the performance difference between String.Format() and string concatenation.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Use StringBuilder to Build Strings Inside Loops&lt;/b&gt;&lt;br /&gt;
The StringBuilder class is basically an array list for string fragments; the StringBuilder takes care of expanding its internal char array, hiding this from the user. The use of this class is also specially optimized by the .NET compiler, making it impossible to duplicate this functionality with equivalent performance (for instance, by manipulating char arrays directly and converting to a string afterwards). Example 8 shows the performance benefit of building a large string using StringBuilder instead of string concatenation.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Don't Use StringBuilder to Concatenate Small Numbers of Strings&lt;/b&gt;&lt;br /&gt;
Many .NET developers who consider themselves well-versed in performance matters advocate the use of the StringBuilder class whenever possible. However, it's not the fastest approach for concatenating small numbers of strings. Actually, any number can be combined in a single statement, although the performance benefit tends to dwindle above five or six substrings. This is due to instantiation and destruction overhead for the StringBuilder instance, as well as method-call overhead involved in calling Append() once for every added substring and ToString() once the string is built. What are the alternatives? Plus-sign concatenation and the String.Concat() method are equivalent; I prefer plus signs for readability. Note that this cannot be used across loops because the entire concatenation must occur within a single statement. Example 9 tests String.Concat() vs. StringBuilder for various numbers of substrings.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Don't Be Afraid to Use String Literals&lt;/b&gt;&lt;br /&gt;
Many developers incorrectly assume that a new object is created for every string literal, and, therefore, avoid their use. In some cases, using string literals directly in your code is a better approach than using string constants! It can make the code easier to understand and has no adverse impact on performance. This is due to the use of the .NET interned string table; this table maintains a String instance for every known string and reuses this instance whenever the same character sequence is used as a literal. See the documentation of the String.Intern() method for more details. Example 10 compares string literals to the use of string constants.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://secure.bidvertiser.com/performance/bdv_rss_rd.dbm?pid=33354&amp;bid=263059&amp;PHS=33354263059&amp;click=1&amp;rsrc=3" target="_blank"&gt;&lt;img src="http://bdv.bidvertiser.com/BidVertiser.dbm?pid=33354&amp;bid=263059&amp;PHS=33354263059&amp;imagerss=1&amp;rsrc=3" border="0"/&gt;&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5773096095549745377-5672504115978246905?l=latestfeatures.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://latestfeatures.blogspot.com/feeds/5672504115978246905/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5773096095549745377&amp;postID=5672504115978246905' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5773096095549745377/posts/default/5672504115978246905?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5773096095549745377/posts/default/5672504115978246905?v=2'/><link rel='alternate' type='text/html' href='http://latestfeatures.blogspot.com/2012/09/c-working-with-strings.html' title='C#  - Working With Strings'/><author><name>KiranM Kumar</name><uri>https://plus.google.com/116928083721963042892</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-pfO51ziqYxg/AAAAAAAAAAI/AAAAAAAAAAA/vXWwnQNAYO0/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry gd:etag='W/&quot;CUMGQnw4fSp7ImA9WhJUFkw.&quot;'><id>tag:blogger.com,1999:blog-5773096095549745377.post-7179062586842891295</id><published>2012-09-14T02:03:00.001-07:00</published><updated>2012-09-14T02:03:43.235-07:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2012-09-14T02:03:43.235-07:00</app:edited><category scheme='http://www.blogger.com/atom/ns#' term='C Sharp'/><title>C# - Working with Collections</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;b&gt;Avoid Overuse of Collections&lt;/b&gt;&lt;br /&gt;
This might sound strange, but I'm not advocating working without data structures. The fact is, I've seen collections used many times when they don't actually simplify the code or provide any benefit at all. The single biggest avoidable use of collections is the use of an ArrayList when a simple array would suffice. It should be obvious that there's no way that calling a collection method - which may do significant work under the covers - can compare to something as simple as an array access for performance. See Example 3 for more information.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;For vs ForEach&lt;/b&gt;&lt;br /&gt;
The rumor abounds that the foreach loop is bad for performance. The truth is actually a little more complicated. Basically, foreach involves no performance penalty when used against arrays. However, when used against lists it involves the same overhead as creating an enumerator and using it within a try/catch block! Ildasm.exe may come in handy here to see what's going on. This isn't a complete killer, but if you do enough list access you may want to avoid it. Example 4 compares the two statements for access against an array and an ArrayList.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Enumerators: Don't Go Overboard&lt;/b&gt;&lt;br /&gt;
Just because the possibility exists for the enumerating of a collection doesn't mean you have to do it. For instance, the ArrayList class is useful as an array replacement; one of its best features is indexed element access. By using an enumerator with ArrayList, you hide its most useful features and introduce needless overhead. Example 5 shows the performance difference between indexed access and the use of an enumerator.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Avoid Overuse of Collection Wrappers&lt;/b&gt;&lt;br /&gt;
A peek at the code in classes such as ArrayList shows that, to implement synchronized, fixed-size, and read-only versions of these, methods such as Synchronized() actually create a new wrapper list around the original one (this scheme was copied from Java). While this is nice from certain design standpoints, it degrades performance; the method-call overhead for each operation is multiplied. For a fixed-size, synchronized ArrayList, this overhead is tripled! Chances are, if you're working with a collection and need synchronization, the code using the collection is already synchronized. In any case, simply locking on the collection itself around every access turns out to be faster than using a synchronized wrapper. Example 6 compares the use of a synchronized ArrayList with synchronizing access to an ArrayList.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://secure.bidvertiser.com/performance/bdv_rss_rd.dbm?pid=33354&amp;bid=263059&amp;PHS=33354263059&amp;click=1&amp;rsrc=3" target="_blank"&gt;&lt;img src="http://bdv.bidvertiser.com/BidVertiser.dbm?pid=33354&amp;bid=263059&amp;PHS=33354263059&amp;imagerss=1&amp;rsrc=3" border="0"/&gt;&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5773096095549745377-7179062586842891295?l=latestfeatures.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://latestfeatures.blogspot.com/feeds/7179062586842891295/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5773096095549745377&amp;postID=7179062586842891295' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5773096095549745377/posts/default/7179062586842891295?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5773096095549745377/posts/default/7179062586842891295?v=2'/><link rel='alternate' type='text/html' href='http://latestfeatures.blogspot.com/2012/09/c-working-with-collections.html' title='C# - Working with Collections'/><author><name>KiranM Kumar</name><uri>https://plus.google.com/116928083721963042892</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-pfO51ziqYxg/AAAAAAAAAAI/AAAAAAAAAAA/vXWwnQNAYO0/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry gd:etag='W/&quot;CUQDSHkzfSp7ImA9WhJUFkw.&quot;'><id>tag:blogger.com,1999:blog-5773096095549745377.post-7656065457980675758</id><published>2012-09-14T02:02:00.003-07:00</published><updated>2012-09-14T02:02:59.785-07:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2012-09-14T02:02:59.785-07:00</app:edited><category scheme='http://www.blogger.com/atom/ns#' term='C Sharp'/><title>C#  - Properties, Methods, and Delegates</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;b&gt;Avoiding Overuse of Property Getters and Setters&lt;/b&gt;&lt;br /&gt;
Most people don't realize that property getters and setters are similar to methods when it comes to overhead; it's mainly syntax that differentiates them. A non-virtual property getter or setter that contains no instructions other than the field access will be inlined by the compiler, but in many other cases, this isn't possible. You should carefully consider your use of properties; from inside a class, access fields directly (if possible), and never blindly call properties repeatedly without storing the value in a variable. All that said, this doesn't mean that you should use public fields! Example 1 demonstrates the performance of properties and field access in several common situations.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;About Delegates&lt;/b&gt;&lt;br /&gt;
Delegates are slower to execute than interface methods. Delegates are often used to introduce a level of indirection in code, but in almost all cases interfaces allow a cleaner design. Of course, it's impossible to completely shun delegates; the entire event-handling paradigm in .NET is based on them. Example 2 compares the performance of delegates and direct method calls.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Minimizing Method Calls&lt;/b&gt;&lt;br /&gt;
The .NET compiler is capable of performing many optimizations for release builds. One of them is called "method inlining." If method A calls method B and certain other conditions are met, such as the code in method B being small enough, the code from B will be copied into A during compilation. However, .NET won't or can't inline certain types of methods, such as virtual methods or methods over a certain size. Each method invocation/property access entails significant overhead, such as the allocation of a stack frame, etc. Of course, you should never repeatedly call a method for the same result on purpose, but you should also be mindful of the impact of method calls in general.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Using the 'Sealed' Keyword&lt;/b&gt;&lt;br /&gt;
Wherever extensibility is not required, you should use the sealed keyword. This makes your design easier to understand, as someone can tell at a glance if a certain class or method isn't meant to be extended or overridden. It also increases the chances that the compiler will inline code.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://secure.bidvertiser.com/performance/bdv_rss_rd.dbm?pid=33354&amp;bid=263059&amp;PHS=33354263059&amp;click=1&amp;rsrc=3" target="_blank"&gt;&lt;img src="http://bdv.bidvertiser.com/BidVertiser.dbm?pid=33354&amp;bid=263059&amp;PHS=33354263059&amp;imagerss=1&amp;rsrc=3" border="0"/&gt;&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5773096095549745377-7656065457980675758?l=latestfeatures.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://latestfeatures.blogspot.com/feeds/7656065457980675758/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5773096095549745377&amp;postID=7656065457980675758' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5773096095549745377/posts/default/7656065457980675758?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5773096095549745377/posts/default/7656065457980675758?v=2'/><link rel='alternate' type='text/html' href='http://latestfeatures.blogspot.com/2012/09/c-properties-methods-and-delegates.html' title='C#  - Properties, Methods, and Delegates'/><author><name>KiranM Kumar</name><uri>https://plus.google.com/116928083721963042892</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-pfO51ziqYxg/AAAAAAAAAAI/AAAAAAAAAAA/vXWwnQNAYO0/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry gd:etag='W/&quot;CUQFQ3w8eCp7ImA9WhJUFkw.&quot;'><id>tag:blogger.com,1999:blog-5773096095549745377.post-8256137731793913284</id><published>2012-09-14T02:01:00.000-07:00</published><updated>2012-09-14T02:01:52.270-07:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2012-09-14T02:01:52.270-07:00</app:edited><category scheme='http://www.blogger.com/atom/ns#' term='C Sharp'/><title>C#  - Working with Objects and Value Types</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;b&gt;Objects: A Double Whammy&lt;/b&gt;&lt;br /&gt;
Objects are expensive to use, partly because of the overhead involved in allocating memory from the heap (which is actually well-optimized in .NET) and partly because every created object must eventually be destroyed. The destruction of an object may take longer than its creation and initialization, especially if the class contains a custom finalization routine. Also, the garbage collector runs in an indeterministic way; there's no guarantee that an object's memory will be immediately reclaimed when it goes out of scope, and until it's collected, this wasted memory can adversely affect performance.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;The Garbage Collector in a Nutshell&lt;/b&gt;&lt;br /&gt;
It's necessary to understand garbage collection to appreciate the full impact of using objects. The single most important fact to know about the garbage collector is that it divides objects into three "generations": 0, 1, and 2. Every object starts out in generation 0; if it survives (if at least one reference is maintained) long enough, it goes to 1; much later, it transitions to 2. The cost of collecting an object increases with each generation. For this reason, it's important to avoid creating unnecessary objects, and to destroy each reference as quickly as possible. The objects that are left will often be long-lived and won't be destroyed until application shutdown.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Lazy Instantiation/Initialization&lt;/b&gt;&lt;br /&gt;
The Singleton design pattern is often used to provide a single global instance of a class. Sometimes it's the case that a particular singleton won't be needed during an application run. It's generally good practice to delay the creation of any object until it's needed, unless there's a specific need to the contrary - for instance, to pre-cache slow-initializing objects such as database connections. The "double-checked locking" pattern is useful in these situations, as a way to avoid synchronization and still ensure that a needed action is only performed once. Lazy initialization is a technique that can enhance the performance of an entire application through object reduction.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Avoiding Use of Class Destructors&lt;/b&gt;&lt;br /&gt;
Class destructors (implemented as the Finalize() method in VB.NET) cause extra overhead for the garbage collector, because it must track which objects have been finalized before their memory can be reclaimed. I've never had a need for finalizers in a purely managed application.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Casting and Boxing/Unboxing Overhead&lt;/b&gt;&lt;br /&gt;
Casting is the dynamic conversion of a type at runtime to another, and boxing is the creation of a reference wrapper for a value type (unboxing being the conversion back to the wrapped value type). The overhead of both is most heavily felt in collections classes, as they all - with the exception of certain specialized ones like StringDictionary - store each value as an Object. For instance, when you store an Int32 in an ArrayList, it is first boxed (wrapped in an object) when it is inserted; each time the value is read, it is unboxed before it is returned to the calling code.&lt;br /&gt;
&lt;br /&gt;
This will be fixed in the next version of .NET with the introduction of generics, but for now you can avoid it by creating strongly typed collections and by typing variables and parameters as strongly as possible. If you're unsure about whether or not boxing/unboxing is taking place, you can check the IL of your code for appearances of the box and unbox keywords.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Trusting the Garbage Collector&lt;/b&gt;&lt;br /&gt;
Programmers new to .NET sometimes worry about memory allocation to the point that they explicitly invoke System.GC.Collect(). Garbage collection is a fairly expensive process, and it usually works best when left to its own devices. The .NET garbage collection scheme can intentionally delay reclamation of objects until memory is available, and in particular longer-lived objects (those that make it to generation 1 or 2) may not be reclaimed for an extended period. Even a simple "Hello, world!" console application may allocate 15 MB or more of memory for its "working set." My advice: don't call GC.Collect() unless you really know what you're doing.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://secure.bidvertiser.com/performance/bdv_rss_rd.dbm?pid=33354&amp;bid=263059&amp;PHS=33354263059&amp;click=1&amp;rsrc=3" target="_blank"&gt;&lt;img src="http://bdv.bidvertiser.com/BidVertiser.dbm?pid=33354&amp;bid=263059&amp;PHS=33354263059&amp;imagerss=1&amp;rsrc=3" border="0"/&gt;&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5773096095549745377-8256137731793913284?l=latestfeatures.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://latestfeatures.blogspot.com/feeds/8256137731793913284/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5773096095549745377&amp;postID=8256137731793913284' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5773096095549745377/posts/default/8256137731793913284?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5773096095549745377/posts/default/8256137731793913284?v=2'/><link rel='alternate' type='text/html' href='http://latestfeatures.blogspot.com/2012/09/c-working-with-objects-and-value-types.html' title='C#  - Working with Objects and Value Types'/><author><name>KiranM Kumar</name><uri>https://plus.google.com/116928083721963042892</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-pfO51ziqYxg/AAAAAAAAAAI/AAAAAAAAAAA/vXWwnQNAYO0/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry gd:etag='W/&quot;CkQBQHk_fCp7ImA9WhJVFk0.&quot;'><id>tag:blogger.com,1999:blog-5773096095549745377.post-7480023431848039528</id><published>2012-09-02T06:58:00.003-07:00</published><updated>2012-09-02T08:39:11.744-07:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2012-09-02T08:39:11.744-07:00</app:edited><category scheme='http://www.blogger.com/atom/ns#' term='AJAX'/><category scheme='http://www.blogger.com/atom/ns#' term='ASP .Net'/><title>AJAX Calendar Extender IE8 Bug</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;The calendar extender that comes with the &lt;a href="http://ajaxcontroltoolkit.codeplex.com/Release/ProjectReleases.aspx"&gt;AJAX Control Toolkit&lt;/a&gt; has a bug in IE8 whereby the "left/right" arrows to scroll through months do not work.&lt;br /&gt;
&lt;br /&gt;
This is caused by the fact that the ‘title’ div spans the full width of the control and so the links end up behind this div.&lt;br /&gt;
&lt;br /&gt;
To fix this problem, add the following line to your stylesheet:&lt;br /&gt;
&lt;br /&gt;
&lt;div style="border: 1px solid #e3e3e3; text-align: center;"&gt;&lt;i&gt;.ajax__calendar_title {width:140px; margin:auto; }&lt;/i&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://secure.bidvertiser.com/performance/bdv_rss_rd.dbm?pid=33354&amp;bid=263059&amp;PHS=33354263059&amp;click=1&amp;rsrc=3" target="_blank"&gt;&lt;img src="http://bdv.bidvertiser.com/BidVertiser.dbm?pid=33354&amp;bid=263059&amp;PHS=33354263059&amp;imagerss=1&amp;rsrc=3" border="0"/&gt;&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5773096095549745377-7480023431848039528?l=latestfeatures.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://latestfeatures.blogspot.com/feeds/7480023431848039528/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5773096095549745377&amp;postID=7480023431848039528' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5773096095549745377/posts/default/7480023431848039528?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5773096095549745377/posts/default/7480023431848039528?v=2'/><link rel='alternate' type='text/html' href='http://latestfeatures.blogspot.com/2012/09/ajax-calendar-extender-ie8-bug.html' title='AJAX Calendar Extender IE8 Bug'/><author><name>JKiran</name><uri>http://www.blogger.com/profile/14647583186013938517</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry gd:etag='W/&quot;CkMEQH89eyp7ImA9WhJVFk0.&quot;'><id>tag:blogger.com,1999:blog-5773096095549745377.post-4789518493393982426</id><published>2011-12-26T09:09:00.001-08:00</published><updated>2012-09-02T08:40:01.163-07:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2012-09-02T08:40:01.163-07:00</app:edited><category scheme='http://www.blogger.com/atom/ns#' term='Database'/><title>SQL SERVER – Reset sa Password</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;1.Open the SQL Server express management studio&lt;br /&gt;
2.Connect to SQL Server using windows authentication&lt;br /&gt;
3.Right click the server name and choose properties&lt;br /&gt;
4.Go to security tab. Change server authentication to “SQL Server and Windows Authentication mode”&lt;br /&gt;
5.Click OK and restart SQL Server&lt;br /&gt;
6.Go to SQL Server studio management express&lt;br /&gt;
7.Expand the server and choose security and expand logins&lt;br /&gt;
8.Right click on SA, from properties modify the password and confirm password&lt;br /&gt;
&lt;br /&gt;
Or&amp;nbsp; &lt;br /&gt;
&lt;br /&gt;
To reset the sa password, you can make the following:&lt;br /&gt;
1. Login to the SQL Server box as the Administrator.&lt;br /&gt;
2. Run SQL Server Enterprise Manager.&lt;br /&gt;
3. Right-click the server name and choose ‘Edit SQL Server Registration properties’.&lt;br /&gt;
4. Choose ‘Use Windows authentication’ and click OK button.&lt;br /&gt;
5. Expand a server, expand a Security and click Logins.&lt;br /&gt;
6. Double-click the sa login and specify new password on the General tab. (enable Login to)&lt;br /&gt;
&lt;br /&gt;
Or You Can Use&lt;br /&gt;
&lt;br /&gt;
USE [master]&lt;br /&gt;
GO&lt;br /&gt;
ALTER LOGIN [sa] WITH DEFAULT_DATABASE=[master],&lt;br /&gt;
DEFAULT_LANGUAGE=[us_english], CHECK_EXPIRATION=ON, CHECK_POLICY=ON&lt;br /&gt;
GO&lt;br /&gt;
USE [master]&lt;br /&gt;
GO&lt;br /&gt;
ALTER LOGIN [sa] WITH PASSWORD=N’’ MUST_CHANGE&lt;br /&gt;
GO&lt;br /&gt;
&lt;br /&gt;
Or&amp;nbsp; &lt;br /&gt;
&lt;br /&gt;
From a command prompt&lt;br /&gt;
OSQL -S -E&lt;br /&gt;
1&amp;gt; EXEC sp_password NULL, ‘’, ‘sa’&lt;br /&gt;
2&amp;gt; GO&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://secure.bidvertiser.com/performance/bdv_rss_rd.dbm?pid=33354&amp;bid=263059&amp;PHS=33354263059&amp;click=1&amp;rsrc=3" target="_blank"&gt;&lt;img src="http://bdv.bidvertiser.com/BidVertiser.dbm?pid=33354&amp;bid=263059&amp;PHS=33354263059&amp;imagerss=1&amp;rsrc=3" border="0"/&gt;&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5773096095549745377-4789518493393982426?l=latestfeatures.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://latestfeatures.blogspot.com/feeds/4789518493393982426/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5773096095549745377&amp;postID=4789518493393982426' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5773096095549745377/posts/default/4789518493393982426?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5773096095549745377/posts/default/4789518493393982426?v=2'/><link rel='alternate' type='text/html' href='http://latestfeatures.blogspot.com/2011/12/sql-server-reset-sa-password.html' title='SQL SERVER – Reset sa Password'/><author><name>JKiran</name><uri>http://www.blogger.com/profile/14647583186013938517</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry gd:etag='W/&quot;CkUAQXo5fCp7ImA9WhJVFk0.&quot;'><id>tag:blogger.com,1999:blog-5773096095549745377.post-1481048099623263376</id><published>2010-05-12T23:49:00.001-07:00</published><updated>2012-09-02T08:37:20.424-07:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2012-09-02T08:37:20.424-07:00</app:edited><category scheme='http://www.blogger.com/atom/ns#' term='Books'/><title>Pragmatic Bookshelf -  Mastering DOJO</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;a href="http://www.ziddu.com/download/9839757/PragmaticBookshelfMasteringDojoJun2008eBook-BBL.rar.html" target="_blank"&gt;Pragmatic Bookshelf -  Mastering DOJO - Javascript and Ajax Tools for Great Web Experience&lt;/a&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;br /&gt;
&lt;/b&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_fHFBLJTM8Zc/S-ugk0KLyaI/AAAAAAAAACg/eXi_6IZ56Ns/s1600/Mastering+DOJO.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;" target="_blank"&gt; &lt;img border="0" src="http://3.bp.blogspot.com/_fHFBLJTM8Zc/S-ugk0KLyaI/AAAAAAAAACg/eXi_6IZ56Ns/s1600/Mastering+DOJO.JPG" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;b&gt;&lt;br /&gt;
&lt;/b&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;To download &lt;/span&gt;&lt;b&gt;&lt;a href="http://www.ziddu.com/download/9839757/PragmaticBookshelfMasteringDojoJun2008eBook-BBL.rar.html" target="_blank"&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;Click Here&lt;/span&gt;&lt;/a&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://secure.bidvertiser.com/performance/bdv_rss_rd.dbm?pid=33354&amp;bid=263059&amp;PHS=33354263059&amp;click=1&amp;rsrc=3" target="_blank"&gt;&lt;img src="http://bdv.bidvertiser.com/BidVertiser.dbm?pid=33354&amp;bid=263059&amp;PHS=33354263059&amp;imagerss=1&amp;rsrc=3" border="0"/&gt;&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5773096095549745377-1481048099623263376?l=latestfeatures.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://latestfeatures.blogspot.com/feeds/1481048099623263376/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5773096095549745377&amp;postID=1481048099623263376' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5773096095549745377/posts/default/1481048099623263376?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5773096095549745377/posts/default/1481048099623263376?v=2'/><link rel='alternate' type='text/html' href='http://latestfeatures.blogspot.com/2010/05/pragmatic-bookshelf-mastering-dojo.html' title='Pragmatic Bookshelf -  Mastering DOJO'/><author><name>JKiran</name><uri>http://www.blogger.com/profile/14647583186013938517</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_fHFBLJTM8Zc/S-ugk0KLyaI/AAAAAAAAACg/eXi_6IZ56Ns/s72-c/Mastering+DOJO.JPG' height='72' width='72'/><thr:total>1</thr:total></entry><entry gd:etag='W/&quot;CkUASX4yfyp7ImA9WhJVFk0.&quot;'><id>tag:blogger.com,1999:blog-5773096095549745377.post-6098151307358212462</id><published>2010-05-12T23:35:00.001-07:00</published><updated>2012-09-02T08:37:28.097-07:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2012-09-02T08:37:28.097-07:00</app:edited><category scheme='http://www.blogger.com/atom/ns#' term='Books'/><title>OReilly Dojo The Definitive Guide</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;a href="http://www.ziddu.com/download/9839758/OReillyDojoTheDefinitiveGuideJun2008.rar.html" target="_blank"&gt;OReilly Dojo The Definitive Guide&lt;/a&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;br /&gt;
&lt;/b&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_fHFBLJTM8Zc/S-udKuiiiDI/AAAAAAAAACc/l2xjmfTWQt8/s1600/Oreilly-DOJO.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;" target="_blank"&gt;&lt;img border="0" height="320" src="http://4.bp.blogspot.com/_fHFBLJTM8Zc/S-udKuiiiDI/AAAAAAAAACc/l2xjmfTWQt8/s320/Oreilly-DOJO.jpg" width="243" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;b&gt;&lt;br /&gt;
&lt;/b&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;To download &lt;/span&gt;&lt;a href="http://www.ziddu.com/download/9839758/OReillyDojoTheDefinitiveGuideJun2008.rar.html" target="_blank"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;Click Here&lt;/span&gt;&lt;/b&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://secure.bidvertiser.com/performance/bdv_rss_rd.dbm?pid=33354&amp;bid=263059&amp;PHS=33354263059&amp;click=1&amp;rsrc=3" target="_blank"&gt;&lt;img src="http://bdv.bidvertiser.com/BidVertiser.dbm?pid=33354&amp;bid=263059&amp;PHS=33354263059&amp;imagerss=1&amp;rsrc=3" border="0"/&gt;&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5773096095549745377-6098151307358212462?l=latestfeatures.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://latestfeatures.blogspot.com/feeds/6098151307358212462/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5773096095549745377&amp;postID=6098151307358212462' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5773096095549745377/posts/default/6098151307358212462?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5773096095549745377/posts/default/6098151307358212462?v=2'/><link rel='alternate' type='text/html' href='http://latestfeatures.blogspot.com/2010/05/oreilly-dojo-definitive-guide.html' title='OReilly Dojo The Definitive Guide'/><author><name>JKiran</name><uri>http://www.blogger.com/profile/14647583186013938517</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_fHFBLJTM8Zc/S-udKuiiiDI/AAAAAAAAACc/l2xjmfTWQt8/s72-c/Oreilly-DOJO.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry gd:etag='W/&quot;A0UFQn46fCp7ImA9WhJVFUQ.&quot;'><id>tag:blogger.com,1999:blog-5773096095549745377.post-1081583829842568553</id><published>2010-05-12T19:57:00.001-07:00</published><updated>2012-09-02T08:20:13.014-07:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2012-09-02T08:20:13.014-07:00</app:edited><category scheme='http://www.blogger.com/atom/ns#' term='Books'/><title>Professional JavaScript Frameworks - Prototype YUI, ExtJS, Dojo, MooTools 2009</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;a href="http://rapidshare.com/files/383425801/Professional.JavaScript.Frameworks.-.Prototype_YUI_ExtJS_Dojo_MooTools.2009__www.amaderforum.com.rar.html"&gt;P&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;rofessional JavaScript Frameworks - Prototype YUI, ExtJS, Dojo, MooTools 2009&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_fHFBLJTM8Zc/S-tptsfZYhI/AAAAAAAAACU/qxpwGoZ6SFQ/s1600/00145be1_medium.jpeg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_fHFBLJTM8Zc/S-tptsfZYhI/AAAAAAAAACU/qxpwGoZ6SFQ/s1600/00145be1_medium.jpeg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;To download &lt;/span&gt;&lt;a href="http://rapidshare.com/files/383425801/Professional.JavaScript.Frameworks.-.Prototype_YUI_ExtJS_Dojo_MooTools.2009__www.amaderforum.com.rar.html"&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;b&gt;Click Here&lt;/b&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;span class="Apple-style-span" style="color: #fff2cc;"&gt;www.amaderforum.com&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://secure.bidvertiser.com/performance/bdv_rss_rd.dbm?pid=33354&amp;bid=263059&amp;PHS=33354263059&amp;click=1&amp;rsrc=3" target="_blank"&gt;&lt;img src="http://bdv.bidvertiser.com/BidVertiser.dbm?pid=33354&amp;bid=263059&amp;PHS=33354263059&amp;imagerss=1&amp;rsrc=3" border="0"/&gt;&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5773096095549745377-1081583829842568553?l=latestfeatures.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://latestfeatures.blogspot.com/feeds/1081583829842568553/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5773096095549745377&amp;postID=1081583829842568553' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5773096095549745377/posts/default/1081583829842568553?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5773096095549745377/posts/default/1081583829842568553?v=2'/><link rel='alternate' type='text/html' href='http://latestfeatures.blogspot.com/2010/05/professional-javascript-frameworks.html' title='Professional JavaScript Frameworks - Prototype YUI, ExtJS, Dojo, MooTools 2009'/><author><name>JKiran</name><uri>http://www.blogger.com/profile/14647583186013938517</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_fHFBLJTM8Zc/S-tptsfZYhI/AAAAAAAAACU/qxpwGoZ6SFQ/s72-c/00145be1_medium.jpeg' height='72' width='72'/><thr:total>0</thr:total></entry><entry gd:etag='W/&quot;DEABSHk-fSp7ImA9WxVRGU0.&quot;'><id>tag:blogger.com,1999:blog-5773096095549745377.post-2170209816635619152</id><published>2009-01-25T09:55:00.000-08:00</published><updated>2009-01-25T10:05:59.755-08:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2009-01-25T10:05:59.755-08:00</app:edited><title>Visual Studio 2008 Tips &amp; Tricks for Developers</title><content type='html'>&lt;ol&gt;&lt;li&gt;&lt;strong&gt;Working in Full Screen Mode in Visual Studio&lt;/strong&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Alt+Shift+Enter is the shortcut to enter to fullscreen mode in Visual Studio&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Its sometimes really helpful and more appealing for developers to work in full screen mode&lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;strong&gt;Editing &lt;/strong&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;For &lt;strong&gt;Copying &lt;/strong&gt;a line in the IDE just go to the start of the line and press Ctrl+C,there is no need to select anything&lt;/li&gt;&lt;br /&gt;&lt;li&gt;For &lt;strong&gt;Pasting &lt;/strong&gt;a line just go to the start of the line and just press Ctrl+V&lt;/li&gt;&lt;br /&gt;&lt;li&gt;For &lt;strong&gt;Deleting &lt;/strong&gt;a line just go to the start of the line and press Ctrl+X, this is not actually delete but its similar to cut if you do Ctrl+X on current line and go to some other place in your code and do Ctrl+V then it will paste the same line there.&lt;/li&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_fHFBLJTM8Zc/SXypEg3JVSI/AAAAAAAAABg/VjJFJUE64H0/s1600-h/CropperCapture[1].jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5295293156886664482" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 320px; CURSOR: hand; HEIGHT: 133px; TEXT-ALIGN: center" alt="" src="http://2.bp.blogspot.com/_fHFBLJTM8Zc/SXypEg3JVSI/AAAAAAAAABg/VjJFJUE64H0/s320/CropperCapture%5B1%5D.jpg" border="0" /&gt;&lt;/a&gt;&lt;/ol&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;strong&gt;Expanding and Collapsing the code units&lt;/strong&gt;&lt;br /&gt;&lt;ol&gt;&lt;br /&gt;&lt;li&gt;This nice little shortcuts has saved me a lot of time.Whenever i am working on a large piece of code i always get confused and make some changes in other Method or property because they were looking similar.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;But now with this shortcut i collapse one method as soon as it is finished.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;The shortcut is &lt;strong&gt;Ctrl+M+M.&lt;/strong&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Just go to the beginning or end of the method or property or any code block and hit the shortcut it will expand or collapse the code block comparing to its present state.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;If you want to collapse all your code units or blocks to their definitions then the shortcut to achieve this is &lt;strong&gt;Ctrk+M+O or Ctrl+M Ctrl+O.This is also a very handy shortcut which helps a lot in development&lt;/strong&gt;.&lt;/li&gt;&lt;br /&gt;&lt;/ol&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;strong&gt;Automatic Text Indentation and Formatting&lt;/strong&gt;&lt;br /&gt;&lt;ol&gt;&lt;br /&gt;&lt;li&gt;This shortcut helps me to write beautiful and decorative code which is easy to understand by any person.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Shortcut is just press Ctrl+K+D.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;This works not only in C# and VB code behind but it works well in aspx pages.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;If you want to just format the selected piece  of code then just press &lt;strong&gt;Ctrl+K+F&lt;/strong&gt;&lt;/li&gt;&lt;br /&gt;&lt;/ol&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://secure.bidvertiser.com/performance/bdv_rss_rd.dbm?pid=33354&amp;bid=263059&amp;PHS=33354263059&amp;click=1&amp;rsrc=3" target="_blank"&gt;&lt;img src="http://bdv.bidvertiser.com/BidVertiser.dbm?pid=33354&amp;bid=263059&amp;PHS=33354263059&amp;imagerss=1&amp;rsrc=3" border="0"/&gt;&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5773096095549745377-2170209816635619152?l=latestfeatures.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://latestfeatures.blogspot.com/feeds/2170209816635619152/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5773096095549745377&amp;postID=2170209816635619152' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5773096095549745377/posts/default/2170209816635619152?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5773096095549745377/posts/default/2170209816635619152?v=2'/><link rel='alternate' type='text/html' href='http://latestfeatures.blogspot.com/2009/01/visual-studio-2008-tips-tricks-for.html' title='Visual Studio 2008 Tips &amp; Tricks for Developers'/><author><name>JKiran</name><uri>http://www.blogger.com/profile/14647583186013938517</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_fHFBLJTM8Zc/SXypEg3JVSI/AAAAAAAAABg/VjJFJUE64H0/s72-c/CropperCapture%5B1%5D.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry gd:etag='W/&quot;A08DRHozeCp7ImA9WhJVFUQ.&quot;'><id>tag:blogger.com,1999:blog-5773096095549745377.post-8897215863837655121</id><published>2008-09-29T21:35:00.001-07:00</published><updated>2012-09-02T08:31:15.480-07:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2012-09-02T08:31:15.480-07:00</app:edited><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio'/><title>Microsoft Unveils Next Version of Visual Studio and .NET Framework</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Reveals extensive enhancements for simplified application life-cycle management, provides sneak peek at all key focus areas for Visual Studio 2010 and the .NET Framework 4.0.&lt;br /&gt;
&lt;br /&gt;
Microsoft Corp. today provided the first look at the next version of its developer tools and platform, which will be named Visual Studio 2010 and the .NET Framework 4.0. Microsoft described the next release through the following five focus areas: riding the next-generation platform wave, inspiring developer delight, powering breakthrough departmental applications, enabling emerging trends such as cloud computing, and democratizing application life-cycle management (ALM).&lt;br /&gt;
&lt;br /&gt;
Today’s announcement included an in-depth look at how Visual Studio Team System (VSTS) 2010 (code-named “Rosario”) will help democratize ALM with a unique solution that brings all the members of a development organization into the application development life cycle, and removes many of the existing barriers to integration. Additional details on the other focus areas will be disclosed over the product development cycle.&lt;br /&gt;
&lt;br /&gt;
“With Visual Studio 2010 and the .NET Framework 4.0, we are focused on the core pillars of developer experience, support for the latest platforms spanning client, server, services and devices, targeted experiences for specific application types, and core architecture improvements,” said S. “Soma” Somasegar, senior vice president of the Developer Division at Microsoft. “These pillars are designed specifically to meet the needs of developers, the teams that drive the application life cycle from idea to delivery, and the customers that demand the highest quality applications across multiple platforms. You can expect to hear a lot more about Visual Studio 2010 and the .NET Framework 4.0 in the coming months.”&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-weight: bold;"&gt;Democratizing Application Life-Cycle Management&lt;/span&gt;&lt;br /&gt;
Today, much of application development remains siloed throughout the  enterprise, leading to decreased productivity and lengthy product development  cycles. With VSTS 2010, Microsoft is taking the next step forward in giving  individuals and development organizations an advanced solution that enables them  to integrate effectively and build and deliver high-quality applications.&lt;br /&gt;
This includes new capabilities that make it easier for all contributors on  the software team to participate throughout the life cycle — from the core  developers and testers to the wider team of project managers, designers and  business analysts. Highlights include the following:&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Modeling tools.&lt;/span&gt; With VSTS 2010 Architecture, Microsoft will enable both technical and nontechnical users to create and use models to collaborate and to define business and system functionality graphically. The new version supports both Unified Modeling Language and Domain Specific Language support, so development organizations will have the right tool for right job. The new modeling capabilities in VSTS 2010 are a core part of the larger Microsoft modeling platform, which will also include the “Oslo” repository, tools and language.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Improved efficiency throughout the test cycle.&lt;/b&gt; With VSTS 2010,  Microsoft has made a significant investment in testing features and dramatically  simplifying the tools required to integrate testing across the life cycle. New  features include the ability to eliminate nonreproducible bugs, fast setup and  deployment of tests to ensure the highest degree of completeness of test,  focused test planning and progress tracking, and ensuring that all code changes  are properly tested.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Substantial improvements in collaboration capabilities.&lt;/b&gt; Microsoft has  made major investments in the capabilities and scalability of Team Foundation  Server (TFS) including significant improvements that allow teams to configure  and adopt any flavor of Agile development processes. Teams can track and trace  work more easily with richer linking of work items enabling hierarchical work  item relationships. In the source code management system, TFS now provides  visualization tools for tracking changes across branches and into the production  build. VSTS 2010 also introduces workflow-based builds that catch errors before  they have a chance to affect the rest of the team or, worse, enter production.  Finally, administrators will find dramatically simpler TFS deployment and  management.&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
“The application life cycle is an integral part of today’s business.  Regardless of core competencies, all organizations are driven by software that  is created and customized to deliver a competitive advantage,” said Theresa  Lanowitz, founder of voke, inc. “Enterprises that invest in an ALM solution can  decrease their total cost of ownership of applications in their IT portfolio,  and bring about a global approach that is an integrated and expansive system  consisting of people, processes and technology. This global approach to ALM  facilitates collaboration and takes the risk out of software development to  produce predictable and reliable results for an optimized business outcome.  Solutions such as VSTS are poised to take advantage of market opportunity by  offering an application life-cycle platform to help enterprises realize this ROI  benefit.”&lt;br /&gt;
In another move to increase integration across the life cycle, Microsoft also  announced that VSTS 2010 will provide a unified VSTS Development and Database  product. As a benefit to existing Software Assurance (SA) customers, those who  currently own Visual Studio Team System 2008 Development Edition or Visual  Studio Team System 2008 Database Edition will receive all the following products  starting Oct. 1, 2008, for free:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Visual Studio Team System 2008 Development Edition&lt;/li&gt;
&lt;li&gt;Visual Studio Team System 2008 Database Edition&lt;/li&gt;
&lt;li&gt;Visual Studio 2005 Team System for Software Developers&lt;/li&gt;
&lt;li&gt;Visual Studio 2005 Team System for Database Professionals&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://secure.bidvertiser.com/performance/bdv_rss_rd.dbm?pid=33354&amp;bid=263059&amp;PHS=33354263059&amp;click=1&amp;rsrc=3" target="_blank"&gt;&lt;img src="http://bdv.bidvertiser.com/BidVertiser.dbm?pid=33354&amp;bid=263059&amp;PHS=33354263059&amp;imagerss=1&amp;rsrc=3" border="0"/&gt;&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5773096095549745377-8897215863837655121?l=latestfeatures.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://latestfeatures.blogspot.com/feeds/8897215863837655121/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5773096095549745377&amp;postID=8897215863837655121' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5773096095549745377/posts/default/8897215863837655121?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5773096095549745377/posts/default/8897215863837655121?v=2'/><link rel='alternate' type='text/html' href='http://latestfeatures.blogspot.com/2008/09/microsoft-unveils-next-version-of.html' title='Microsoft Unveils Next Version of Visual Studio and .NET Framework'/><author><name>JKiran</name><uri>http://www.blogger.com/profile/14647583186013938517</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry gd:etag='W/&quot;CkYARXgyfip7ImA9WxdTEEo.&quot;'><id>tag:blogger.com,1999:blog-5773096095549745377.post-3862450412247325582</id><published>2008-05-06T03:27:00.000-07:00</published><updated>2008-05-06T03:35:44.696-07:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2008-05-06T03:35:44.696-07:00</app:edited><title>VB.NET vs C#.NET</title><content type='html'>&lt;span style="font-size:130%;"&gt;&lt;strong&gt;VB.NET Advantages&lt;/strong&gt;&lt;br /&gt;&lt;/span&gt;&lt;ul&gt;&lt;li&gt;Support for optional parameters - very handy for some COM interoperability&lt;/li&gt;&lt;li&gt;Support for late binding with &lt;code&gt;Option Strict&lt;/code&gt; off - type safety at compile time goes out of the window, but legacy libraries which don't have strongly typed interfaces become easier to use.&lt;/li&gt;&lt;li&gt;Support for named indexers (aka properties with parameters).&lt;/li&gt;&lt;li&gt;Various legacy VB functions (provided in the &lt;code&gt;Microsoft.VisualBasic&lt;/code&gt; namespace, and can be used by other languages with a reference to the &lt;code&gt;Microsoft.VisualBasic.dll&lt;/code&gt;). Many of these can be harmful to performance if used unwisely, however, and many people believe they should be avoided for the most part. Some methods here are apparently faster than the more idiomatic .NET equivalent, however. Readability should be considered: using VB functions probably makes the code easier for a VB-classic programmer to read, but harder for someone from a background in another .NET language to read.&lt;/li&gt;&lt;li&gt;Simpler (in expression - perhaps more complicated in understanding) event handling, where a method can declare that it handles an event, rather than the handler having to be set up in code.&lt;/li&gt;&lt;li&gt;The ability to implement interfaces with methods of different names. (Arguably this makes it harder to find the implementation of an interface, however.)&lt;/li&gt;&lt;li&gt;&lt;code&gt;Catch ... When ...&lt;/code&gt; clauses, which allow exceptions to be filtered based on runtime expressions rather than just by type.&lt;/li&gt;&lt;li&gt;The VB.NET part of Visual Studio .NET compiles your code in the background. While this is considered an advantage for small projects, people creating very large projects have found that the IDE slows down considerably as the project gets larger. (Note: This &lt;i&gt;may&lt;/i&gt; only affect VS.NET 2002. I haven't tested it yet with VS.NET 2003 or VS2005 beta 2.)&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-size:130%;"&gt;C# Advantages&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;XML documentation generated from source code comments. (Available in VB.NET with Visual Studio 2005.)&lt;/li&gt;&lt;li&gt;Operator overloading. (Available in VB.NET with Visual Studio 2005.)&lt;/li&gt;&lt;li&gt;Language support for unsigned types. You can use them from VB.NET, but they aren't in the language itself. (Available in VB.NET with Visual Studio 2005.)&lt;/li&gt;&lt;li&gt;The &lt;code&gt;using&lt;/code&gt; statement, which makes unmanaged resource disposal simple. (Available in VB.NET with Visual Studio 2005.)&lt;/li&gt;&lt;li&gt;Volatile variables.&lt;/li&gt;&lt;li&gt;Explicit interface implementation, where an interface which is already implemented in a base class can be reimplemented separately in a derived class. Arguably this makes the class harder to understand, in the same way that member hiding normally does.&lt;/li&gt;&lt;li&gt;Unsafe code. This allows pointer arithmetic etc, and can improve performance in some situations. However, it is not to be used lightly, as a lot of the normal safety of C# is lost (as the name implies). Note that unsafe code is still managed code, i.e. it is compiled to IL, JITted, and run within the CLR.&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://secure.bidvertiser.com/performance/bdv_rss_rd.dbm?pid=33354&amp;bid=263059&amp;PHS=33354263059&amp;click=1&amp;rsrc=3" target="_blank"&gt;&lt;img src="http://bdv.bidvertiser.com/BidVertiser.dbm?pid=33354&amp;bid=263059&amp;PHS=33354263059&amp;imagerss=1&amp;rsrc=3" border="0"/&gt;&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5773096095549745377-3862450412247325582?l=latestfeatures.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://latestfeatures.blogspot.com/feeds/3862450412247325582/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5773096095549745377&amp;postID=3862450412247325582' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5773096095549745377/posts/default/3862450412247325582?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5773096095549745377/posts/default/3862450412247325582?v=2'/><link rel='alternate' type='text/html' href='http://latestfeatures.blogspot.com/2008/05/vbnet-vs-cnet.html' title='VB.NET vs C#.NET'/><author><name>JKiran</name><uri>http://www.blogger.com/profile/14647583186013938517</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry gd:etag='W/&quot;CkUDRHw8fyp7ImA9WhJVFk0.&quot;'><id>tag:blogger.com,1999:blog-5773096095549745377.post-1790424647111463390</id><published>2008-03-10T22:18:00.003-07:00</published><updated>2012-09-02T08:37:55.277-07:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2012-09-02T08:37:55.277-07:00</app:edited><category scheme='http://www.blogger.com/atom/ns#' term='JavaScript'/><title>What ASP.NET Developers Should Know About JavaScript - Part 3</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;table border="1" bordercolor="#999999" cellpadding="2" cellspacing="2" style="width: 100%px;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td align="middle" height="25"&gt;&lt;a href="http://latestfeatures.blogspot.com/2008/03/what-aspnet-developers-should-know.html"&gt;&lt;strong&gt;Part - 1&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&lt;td align="middle"&gt;&lt;a href="http://latestfeatures.blogspot.com/2008/03/what-aspnet-developers-should-know_10.html"&gt;&lt;strong&gt;Part - 2&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&lt;td align="middle"&gt;&lt;strong&gt;&lt;a href="http://latestfeatures.blogspot.com/2008/03/what-aspnet-developers-should-know_1727.html"&gt;Part - 3&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;
&lt;strong&gt;&lt;span style="font-size: 130%;"&gt;Where Are We With Object Oriented JavaScript? &lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;
With our brief diversion into JSON complete, let's return to the topic of object oriented JavaScript. So far we've learned the following:&lt;br /&gt;
&lt;ol&gt;&lt;li&gt;Every JavaScript object is a dictionary. &lt;/li&gt;
&lt;/ol&gt;This is useful information for constructing objects, but it's only a starting point. To get to the next level of abstraction, we'll need to add a second piece of knowledge:&lt;br /&gt;
&lt;ol&gt;&lt;li&gt;Every JavaScript function is an object. &lt;/li&gt;
&lt;/ol&gt;#2 is what we will discuss in the next topic.&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-size: 130%;"&gt;&lt;strong&gt;JavaScript Functions &lt;/strong&gt;&lt;br /&gt;
&lt;/span&gt;A JavaScript function is a chunk of executable code, but it's also a first class object. This is fundamentally different from methods in C# and Visual Basic. We can invoke methods in C# and VB, but we can't treat those methods as datatypes (although delegates and lamda expressions in C# make this area a little bit fuzzy). In JavaScript, we can manipulate functions using other JavaScript code, assign functions to variables, store functions inside arrays, nest functions inside other functions, and pass functions as a parameter to other functions. This might sound strange, so let's walk through a simple example.&lt;br /&gt;
&lt;br /&gt;
&lt;pre style="border-bottom: #000000 1px solid; border-left: #000000 1px solid; border-right: #000000 1px solid; border-top: #000000 1px solid;"&gt;&lt;span style="font-size: 85%;"&gt;function add(point1, point2)
{
var result = {
x : point1.x + point2.x,
y : point1.y + point2.y
}
return result;
}&lt;/span&gt;&lt;/pre&gt;The above code defines a function named "add". The function expects two parameters, and expects that these two parameters will both have x and y properties that it can add together. It returns the result as a new object (created in object notation) with x and y properties. We could use invoke this function as in the following sample:&lt;br /&gt;
&lt;br /&gt;
&lt;pre style="border-bottom: #000000 1px solid; border-left: #000000 1px solid; border-right: #000000 1px solid; border-top: #000000 1px solid;"&gt;&lt;span style="font-size: 85%;"&gt;var p1 = { x: 1, y: 1 };
var p2 = { x: 1, y: 1 };

// use our add function
var p3 = add(p1, p2);

alert(p3.x + "," + p3.y);&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;
The resulting dialog box will display "2,2".&lt;br /&gt;
&lt;br /&gt;
Technically, what we've done with the add function is create a new function object, and assigned the function object to a variable named add. We could take the same function object and assign it to different variables and invoke the function through those variables.&lt;br /&gt;
&lt;br /&gt;
&lt;pre style="border-bottom: #000000 1px solid; border-left: #000000 1px solid; border-right: #000000 1px solid; border-top: #000000 1px solid;"&gt;&lt;span style="font-size: 85%;"&gt;function add(point1, point2)
{
var result = {
x : point1.x + point2.x,
y : point1.y + point2.y
}
return result;
}

var foo = add
var bar = add

var p1 = { x: 1, y:1 };
var p2 = { x: 1, y:1 };

// invoke add through foo variable
// p3 should be 2,2
var p3 = foo(p1, p2);

// invoke add again through bar variable
// 2,2 + 1,1 = 3,3
p3 = foo(p3, p1);

alert(p3.x + "," + p3.y); &lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;
The resulting dialog box should now display "3,3".&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;&lt;span style="font-size: 130%;"&gt;Functions as Methods&lt;/span&gt; &lt;/strong&gt;&lt;br /&gt;
We can also assign a function object to an object property. As we noted before, this promotes the function to the status of "method".&lt;br /&gt;
&lt;br /&gt;
&lt;pre style="border-bottom: #000000 1px solid; border-left: #000000 1px solid; border-right: #000000 1px solid; border-top: #000000 1px solid;"&gt;&lt;span style="font-size: 85%;"&gt;var point1 =
{
x: 3,
y: 5,
add: function(otherPoint)
{
this.x = this.x + otherPoint.x;
this.y = this.y + otherPoint.y;
}
};

var point2 =
{
x: 1,
y: 1
};

// add 3,5 to 1,1
point1.add(point2);
// shows 4,6
alert(point1.x + "," + point1.y); &lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;
The first part of the code uses object notation to create an object with x, y, and add properties. The add property is a function object, and inside we've introduced the "this" keyword. Just as every instance method in C# has an implicit "this" parameter (and every instance method in VB has "Me" parameter), every JavaScript method has an implicit "this" parameter that represents the object through which the method was invoked. "this.x" will reference the x property of point1, because we invoke the add method using point1.&lt;br /&gt;
&lt;br /&gt;
What is a problem is that we have two "point" objects, but one has an add method and one does not. Remember, we are not defining classes like we would in C# or VB, we are simply creating objects and adding properties and methods on the fly. If we wanted to same add method in both point1 and point2, we could write the following code.&lt;br /&gt;
&lt;br /&gt;
&lt;pre style="border-bottom: #000000 1px solid; border-left: #000000 1px solid; border-right: #000000 1px solid; border-top: #000000 1px solid;"&gt;&lt;span style="font-size: 85%;"&gt;function addPoints(otherPoint)
{
this.x = this.x + otherPoint.x;
this.y = this.y + otherPoint.y;
}

var point1 =
{
x: 3,
y: 5,
add: addPoints
};

var point2 =
{
x: 1,
y: 1,
add: addPoints
};

// add 3,5 to 1,1
point1.add(point2);

// shows 4,6
alert(point1.x + "," + point1.y); &lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;
Now we've defined a function object and assigned the object to a variable named addPoints. We use addPoints to create new add methods in both the point1 and point2 objects. Does the "this" reference still work in addPoints? Yes it does, because "this" will still reference the object through which the method was invoked. "this" is a bit ephemeral in JavaScript, as we see later on, but we can can now invoke the add method on either the point1 or point2 object.&lt;br /&gt;
&lt;br /&gt;
This syntax is feeling uncomfortable, however. It looks as if we are trying to create a Point class that will define the properties and methods for all Point objects. But JavaScript doesn't have classes, so that would be a dream, right? We'll forever need to include all this object literal code every time we need a point object, right? Let's hope we never move into 3 dimensions where the definition of our point objects will change.&lt;br /&gt;
&lt;br /&gt;
Fortunately, there is a better solution.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;&lt;span style="font-size: 130%;"&gt;Constructor Functions&lt;/span&gt; &lt;/strong&gt;&lt;br /&gt;
In JavaScript, a constructor function works in conjunction with the new operator to initialize objects. A constructor function can improve our previous code, because we can use the function to initialize every object we want to use as a Point.&lt;br /&gt;
&lt;br /&gt;
&lt;pre style="border-bottom: #000000 1px solid; border-left: #000000 1px solid; border-right: #000000 1px solid; border-top: #000000 1px solid;"&gt;&lt;span style="font-size: 85%;"&gt;function Point(x,y)
{
this.x = x;
this.y = y;
}

var p1 = new Point(3,5);
var p2 = new Point(4,6);

// shows 3,5
alert(p1.x, p1.y); &lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;
Constructor functions are just regular functions. It's just we've designed the function to be used with the new operator. By convention, we generally capitalize constructor functions to make other programmers aware of their significance.&lt;br /&gt;
&lt;br /&gt;
When we use the new operator with the Point function, the new operator will first create a new object. The new operator then invokes the Point function and passes a reference to the newly created object in the implicit "this" parameter. Inside the Point function we are creating new name/value pairs using the parameter values passed to the function.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;&lt;span style="font-size: 130%;"&gt;Constructor Functions and Object Methods&lt;/span&gt; &lt;/strong&gt;&lt;br /&gt;
We can also create methods on an object inside a constructor function.&lt;br /&gt;
&lt;br /&gt;
&lt;pre style="border-bottom: #000000 1px solid; border-left: #000000 1px solid; border-right: #000000 1px solid; border-top: #000000 1px solid;"&gt;&lt;span style="font-size: 85%;"&gt;function Point(x,y)
{
this.x = x;
this.y = y;
this.add = function(point2)
{
this.x += point2.x;
this.y += point2.y;
}
}

var p1 = new Point(3,5);
var p2 = new Point(4,6);

p1.add(p2);

// shows 7,11
alert(p1.x + ',' + p1.y); &lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;
This approach works well, but there is an alternate approach we can use which is more in favor today. To understand this approach, we'll need to introduce a new piece of knowledge. Let's review the first two:&lt;br /&gt;
&lt;ol&gt;&lt;li&gt;Every JavaScript object is a dictionary.&lt;/li&gt;
&lt;li&gt;Every JavaScript function is an object.&lt;/li&gt;
&lt;/ol&gt;Now for number 3:&lt;br /&gt;
&lt;ol&gt;&lt;li&gt;Every JavaScript object references a prototype object. &lt;/li&gt;
&lt;/ol&gt;Let's talk about prototypes.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;&lt;span style="font-size: 130%;"&gt;Object Prototypes&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;
Prototypes are a distinguishing feature of the JavaScript language. C#, Visual Basic, C++, and Java are all examples of class-based programming languages. To create objects, we must first write a class that defines fields, properties, methods, and events. When we create a new object, we are creating an instance of that class.&lt;br /&gt;
&lt;br /&gt;
In JavaScript, there are no classes. JavaScript is a prototype-based programming language. Every object has a prototype property that references its prototype object. Any properties and methods that are a part of an object's prototype will appear as properties and methods of the object itself.&lt;br /&gt;
&lt;br /&gt;
Remember that every function is an object, and every object references a prototype object. That means every constructor function references a prototype object. This is extremely useful when used in conjunction with the "new" operator, because of steps taken by the new operator: &lt;br /&gt;
&lt;ol&gt;&lt;li&gt;Create an empty object.&lt;/li&gt;
&lt;li&gt;Assign the value of the constructor function's prototype property to the new object's prototype property.&lt;/li&gt;
&lt;li&gt;Invoke the constructor function, passing the new object as the "this" reference.&lt;/li&gt;
&lt;/ol&gt;The above 3 steps mean that all objects created by a constructor function will have the same prototype – the prototype object for the constructor function. If we can modify the constructor function's prototype object, we will modify all objects the constructor function ever creates (or has already created). You can almost think of every object as inheriting from it's prototype, because it will include all the properties and methods defined by its prototype. I say "almost" because this thinking can be dangerous in some edge cases.&lt;br /&gt;
&lt;br /&gt;
Fortunately, there is an easy syntax we can use to add new properties and methods into a prototype object.&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-size: 130%;"&gt;&lt;strong&gt;Prototype Programming &lt;/strong&gt;&lt;br /&gt;
&lt;/span&gt;Remember, all objects in JavaScript are dictionaries, and a prototype object is no exception. We can modify an object' s prototype simply by referencing it's prototype property, and we can add properties and methods to that prototype object. Let's rewrite our Point "class" one more time.&lt;br /&gt;
&lt;br /&gt;
&lt;pre style="border-bottom: #000000 1px solid; border-left: #000000 1px solid; border-right: #000000 1px solid; border-top: #000000 1px solid;"&gt;&lt;span style="font-size: 85%;"&gt;function Point(x,y)
{
this.x = x;
this.y = y;
}

Point.prototype.add = function(point2)
{
this.x += point2.x;
this.y += point2.y;
}

var p1 = new Point(3,5);
var p2 = new Point(4,6);

p1.add(p2);

// shows 7,11
alert(p1.x + ',' + p1.y); &lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;
The methods and properties we add to Point.prototype will be shared by all objects that are constructed from the Point constructor function. When we add methods to an object using the constructor function – each object gets a new property referencing a function object, so the prototype approach is more efficient (shared function objects) as well as being a little easier to read. This prototype approach is used by many of today's JavaScript frameworks.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;&lt;span style="font-size: 130%;"&gt;Putting It All Together&lt;/span&gt; &lt;/strong&gt;&lt;br /&gt;
The topics we've discussed so far put us close to "simulating" classes in JavaScript. There are just a couple more topics we need to introduce before wrapping up.&lt;br /&gt;
&lt;br /&gt;
One topic is encapsulation. In JavaScript, every name/value pair we add to an object becomes a public property. There are no keywords in JavaScript to restrict accessibility (like the internal, protected, and private keywords in C#). Nevertheless, we can simulate private members.&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-size: 130%;"&gt;&lt;strong&gt;Private Members &lt;/strong&gt;&lt;br /&gt;
&lt;/span&gt;Douglas Crockford published an article "Private Members In JavaScript" that demonstrates how to add private members to a JavaScript object. Information hiding is an important technique in object oriented programming, and many JavaScript toolkits use Crockford's approach to private members.&lt;br /&gt;
&lt;br /&gt;
Private members have to be made in an object's constructor function. Both local vars and parameters are eligible to become private members using a closure. A closure in JavaScript is an inner function that references a local var or parameter in its outer function. Those local variables and parameters, which typically go out of scope when the outer function finishes execution are now "enclosed" by the inner function, which can continue to reference and use those variables.&lt;br /&gt;
&lt;br /&gt;
Let's re-write our sample once more, this time providing public "get" and "set" accesors for our points.&lt;br /&gt;
&lt;pre style="border-bottom: #000000 1px solid; border-left: #000000 1px solid; border-right: #000000 1px solid; border-top: #000000 1px solid;"&gt;&lt;span style="font-size: 85%;"&gt;
function Point(x, y)
{
this.get_x = function() { return x; }
this.set_x = function(value) { x = value; }
this.get_y = function() { return y; }
this.set_y = function(value) { y = value; }
}

Point.prototype.print = function()
{
return this.get_x() + ',' + this.get_y();
}

var p = new Point(2,2);
p.set_x(4);
alert(p.print()); &lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;
Client code can no longer access the x and y values of a point object directly. Instead, the code has to go through the set_ and get_ methods.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;&lt;span style="font-size: 130%;"&gt;Namespaces&lt;/span&gt; &lt;/strong&gt;&lt;br /&gt;
Namespaces are crucial for avoiding type name collisions, which can be a bad thing in JavaScript. Unlike a compiled language like C# or VB, where a type name collision will result in a compiler error and an un-shippable product, in JavaScript you can still ship the code and might not find out about the collision until it's too late. JavaScript will happily overwrite one value with another. Since we are now including JavaScript code from all over the place, the practice of using namespace is important.&lt;br /&gt;
&lt;br /&gt;
There is just one problem.&lt;br /&gt;
&lt;br /&gt;
JavaScript doesn't support namespaces.&lt;br /&gt;
&lt;br /&gt;
This is ok, because we can "simulate" namespace using objects. Let's put our "Point class" into a Geometry namespace.&lt;br /&gt;
&lt;pre style="border-bottom: #000000 1px solid; border-left: #000000 1px solid; border-right: #000000 1px solid; border-top: #000000 1px solid;"&gt;&lt;span style="font-size: 85%;"&gt;var Geometry = {}

Geometry.Point = function(x,y)
{
this.x = x;
this.y = y;
}

Geometry.Point.prototype =
{
print: function()
{
return this.x + ',' + this.y;
}
}

var p1 = new Geometry.Point(5,2);
alert(p1.print()); &lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;
Essentially, we are adding our constructor function to the Geometry object. By adding other constructor functions (Rectangle, Square, etc), we could keep all of our types inside Geometry and not pollute the global namespace. Most JavaScript frameworks use a similar technique.&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-size: 180%;"&gt;&lt;strong&gt;In Conclusion &lt;/strong&gt;&lt;br /&gt;
&lt;/span&gt;This article presented three key pieces of knowledge: &lt;br /&gt;
&lt;ol&gt;&lt;li&gt;Every JavaScript object is a dictionary. &lt;/li&gt;
&lt;li&gt;Every JavaScript function is an object.&lt;/li&gt;
&lt;li&gt;Every JavaScript object references a prototype object.&lt;/li&gt;
&lt;/ol&gt;Those are three fundamental facts about JavaScript that also make JavaScript different from mainstream CLR languages like C# and VB.NET. Embracing and internalizing these differences will put you ahead of the game in understanding modern JavaScript frameworks, toolkits, and libraries.&lt;br /&gt;
This article is by K. Scott Allen. Questions? Comments? &lt;a href="http://odetocode.com/Blogs/scott/archive/2007/05/08/10802.aspx"&gt;Bring them to my blog.&lt;/a&gt;&lt;br /&gt;
&lt;table border="1" bordercolor="#999999" cellpadding="2" cellspacing="2" style="width: 100%px;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td align="center" height="25"&gt;&lt;a href="http://latestfeatures.blogspot.com/2008/03/what-aspnet-developers-should-know.html"&gt;&lt;strong&gt;Part - 1&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&lt;td align="center"&gt;&lt;a href="http://latestfeatures.blogspot.com/2008/03/what-aspnet-developers-should-know_10.html"&gt;&lt;strong&gt;Part - 2&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&lt;td align="center"&gt;&lt;strong&gt;&lt;a href="http://latestfeatures.blogspot.com/2008/03/what-aspnet-developers-should-know_1727.html"&gt;Part - 3&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://secure.bidvertiser.com/performance/bdv_rss_rd.dbm?pid=33354&amp;bid=263059&amp;PHS=33354263059&amp;click=1&amp;rsrc=3" target="_blank"&gt;&lt;img src="http://bdv.bidvertiser.com/BidVertiser.dbm?pid=33354&amp;bid=263059&amp;PHS=33354263059&amp;imagerss=1&amp;rsrc=3" border="0"/&gt;&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5773096095549745377-1790424647111463390?l=latestfeatures.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://latestfeatures.blogspot.com/feeds/1790424647111463390/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5773096095549745377&amp;postID=1790424647111463390' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5773096095549745377/posts/default/1790424647111463390?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5773096095549745377/posts/default/1790424647111463390?v=2'/><link rel='alternate' type='text/html' href='http://latestfeatures.blogspot.com/2008/03/what-aspnet-developers-should-know_1727.html' title='What ASP.NET Developers Should Know About JavaScript - Part 3'/><author><name>JKiran</name><uri>http://www.blogger.com/profile/14647583186013938517</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry gd:etag='W/&quot;CkUDRno_fyp7ImA9WhJVFk0.&quot;'><id>tag:blogger.com,1999:blog-5773096095549745377.post-973472214330748718</id><published>2008-03-10T21:58:00.003-07:00</published><updated>2012-09-02T08:37:57.447-07:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2012-09-02T08:37:57.447-07:00</app:edited><category scheme='http://www.blogger.com/atom/ns#' term='JavaScript'/><title>What ASP.NET Developers Should Know About JavaScript - Part 2</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;table border="1" bordercolor="#999999" cellpadding="2" cellspacing="2" style="width: 100%px;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td align="center" height="25"&gt;&lt;a href="http://latestfeatures.blogspot.com/2008/03/what-aspnet-developers-should-know.html"&gt;&lt;strong&gt;Part - 1&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&lt;td align="center"&gt;&lt;a href="http://latestfeatures.blogspot.com/2008/03/what-aspnet-developers-should-know_10.html"&gt;&lt;strong&gt;Part - 2&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&lt;td align="center"&gt;&lt;strong&gt;&lt;a href="http://latestfeatures.blogspot.com/2008/03/what-aspnet-developers-should-know_1727.html"&gt;Part - 3&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;
&lt;strong&gt;&lt;span style="font-size: 130%;"&gt;Object Oriented JavaScript&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;
JavaScript does have an object data type – but these objects can behave differently from the objects we create in C# and VB code. In C# and VB we create new objects by telling the runtime which class we want to instantiate. A class is a template for object creation. A class defines the properties and methods an object will have, and these properties and methods are forever fixed. We can't manipulate an object by adding or removing properties and methods at runtime.&lt;br /&gt;
&lt;br /&gt;
In JavaScript there are no classes, so we have no template for object creation. Then how do properties and methods become part of an object? One approach is to dynamically create new properties and methods on an object after construction. To create a new property, all we need to do is assign a new value for a property. The following code creates a new object, then adds an x and y property to the object. Finally, the script writes the values of the two new properties into an area in the HTML document.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;pre style="border-bottom: #000000 1px solid; border-left: #000000 1px solid; border-right: #000000 1px solid; border-top: #000000 1px solid;"&gt;&lt;span style="font-size: 85%;"&gt;var p = new Object();
p.x = 3;
p.y = 5;
message.innerHTML = p.x + "," + p.y;&lt;/span&gt;&lt;/pre&gt;JavaScript objects are entirely different from C# and VB objects because they are ultimately a collection of name and value pairs. We can access an object's values using the dot operator "." followed by the name of the value. A value isn't constrained to holding simple integer types as we have shown in the first example, but could hold an array, function, or even other object.&lt;br /&gt;
&lt;br /&gt;
If you are thinking a JavaScript object sounds like a Dictionary from the .NET framework class library, then you are heading in the right conceptual direction.&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-size: 130%;"&gt;&lt;strong&gt;JavaScript Objects Are Dictionaries&lt;/strong&gt;&lt;br /&gt;
&lt;/span&gt;A JavaScript object is similar to a Dictionary&lt;string&gt; in the sense we can associate any arbitrary piece of data with any arbitrary string. In fact, there is an alternate syntax for accessing the values inside an object which makes the object look exactly like a dictionary. Instead of using the . operator to access a value, we can use the [] operator. The [] operator is a common sight when we work with collections like arrays, dictionaries, and hashtables.&lt;br /&gt;
&lt;br /&gt;
Let's rewrite our first example using the [] operator.&lt;br /&gt;
&lt;br /&gt;
&lt;/string&gt;&lt;br /&gt;
&lt;pre style="border-bottom: #000000 1px solid; border-left: #000000 1px solid; border-right: #000000 1px solid; border-top: #000000 1px solid;"&gt;&lt;span style="font-size: 85%;"&gt;p["x"] = 3;
p["y"] = 5;
message.innerHTML = p["x"] + "," + p.y; &lt;/span&gt;&lt;/pre&gt;The above piece of script produces the same result as our first script. It creates a new object, then adds x and y properties to the object, then writes out the values. Note that if we access a property that does not exist, we'll get back a value of "undefined". For instance, the line of code "alert(p.z);" would force a dialog box to appear with the string "undefined" inside&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-size: 130%;"&gt;&lt;strong&gt;Creating Object Methods &lt;/strong&gt;&lt;br /&gt;
&lt;/span&gt;We can also add functions into the collection of values inside an object. Functions associated with an object become methods of the object. The following code sample shows how to create and use a method with the name of "print".&lt;br /&gt;
&lt;br /&gt;
&lt;pre style="border-bottom: #000000 1px solid; border-left: #000000 1px solid; border-right: #000000 1px solid; border-top: #000000 1px solid;"&gt;&lt;span style="font-size: 85%;"&gt;var p = new Object();
p["x"] = 3;
p.y = 5;
p["print"] = function()
{
message.innerHTML = p.x + "," + p.y;
}
p.print();  &lt;/span&gt;&lt;/pre&gt;Notice we alternate use of the . operator and the [] operator. We can use these two operators interchangeably, for the most part, to create and access an object's properties and methods. Sometimes these operators lead to confusion, because it's not clear if a particular piece of code is trying to create new properties on an object, or if it's trying to set existing properties to new values. Fortunately, there is a third syntax available that makes our intent explicitly clear.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;&lt;span style="font-size: 130%;"&gt;Object Literals&lt;/span&gt; &lt;/strong&gt;&lt;br /&gt;
The object literal syntax of JavaScript allows us to create an object and specify its properties using shorthand. The syntax uses a comma-separated list of name and value pairs, where the name and the value themselves are separated by a colon. Let's rewrite our code and create our object using this object initialization syntax.&lt;br /&gt;
&lt;br /&gt;
&lt;pre style="border-bottom: #000000 1px solid; border-left: #000000 1px solid; border-right: #000000 1px solid; border-top: #000000 1px solid;"&gt;&lt;span style="font-size: 85%;"&gt;var p =
{
x : 5,
y : 3,
print : function() { message.innerHTML = p.x + ',' + p.y; }
}

p.print(); &lt;/span&gt;&lt;/pre&gt;In the above code it becomes clear where object initialization begins and ends. Also note that we can nest object literals, and that the property values inside the object literals do not need to be constants – we can use any legal JavaScript expression. The following code will contains a nested object (address), and assigns the current date to a new createdDate property.&lt;br /&gt;
&lt;br /&gt;
&lt;pre style="border-bottom: #000000 1px solid; border-left: #000000 1px solid; border-right: #000000 1px solid; border-top: #000000 1px solid;"&gt;&lt;span style="font-size: 85%;"&gt;var person =
{
name: "Scott Allen",     createdDate: new Date()
website: "OdeToCode.com",
address: { state: "MD", postalCode: "21044" },
};

alert(person.address.state);
alert(person.createdDate); &lt;/span&gt;&lt;/pre&gt;The object literal syntax is popular because of its explicit intent and compact size. If you look at the source code for many of today's popular JavaScript frameworks, you'll see they are using object literals inside. Frameworks, however, aren't the ones using object literals.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;&lt;span style="font-size: 130%;"&gt;Object Literals and JSON&lt;/span&gt; &lt;/strong&gt;&lt;br /&gt;
JavaScript Object Notation (JSON) is a lightweight data-interchange format based on a subset of the object literal syntax. Technically, JSON is a stricter version of the object literal syntax. For example, string literals must be enclosed in double quotes – no single quotes are allowed.&lt;br /&gt;
&lt;br /&gt;
JSON allows JavaScript to exchange data over the network (typically with the XmlHttpRequest object) and interoperate with other applications. Many web service providers offer JSON as a serialization format and as an alternative to XML. When our JavaScript contacts the web service, the web service will return its data in JSON. There is no need for our code to manipulate XML data with an XML API - instead our code can use JavaScript's eval statement to convert JSON into an object graph.&lt;br /&gt;
&lt;br /&gt;
&lt;pre style="border-bottom: #000000 1px solid; border-left: #000000 1px solid; border-right: #000000 1px solid; border-top: #000000 1px solid;"&gt;&lt;span style="font-size: 85%;"&gt;var jsonString = "({ x : 3, y: 5 })";

var p = eval(jsonString);
alert(p.x + ',' + p.y);
&lt;/span&gt;&lt;/pre&gt;JSON is becoming hugely popular on the web. JSON is human readable and easily consumable in JavaScript. Also, exchanging data with JSON typically results in smaller payloads than using XML. ASP.NET AJAX includes a JavaScriptSerializer class to use JSON on the server-side in managed code. &lt;br /&gt;
&lt;table border="1" bordercolor="#999999" cellpadding="2" cellspacing="2" style="width: 100%px;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td align="center" height="25"&gt;&lt;a href="http://latestfeatures.blogspot.com/2008/03/what-aspnet-developers-should-know.html"&gt;&lt;strong&gt;Part - 1&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&lt;td align="center"&gt;&lt;a href="http://latestfeatures.blogspot.com/2008/03/what-aspnet-developers-should-know_10.html"&gt;&lt;strong&gt;Part - 2&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&lt;td align="center"&gt;&lt;strong&gt;&lt;a href="http://latestfeatures.blogspot.com/2008/03/what-aspnet-developers-should-know_1727.html"&gt;Part - 3&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://secure.bidvertiser.com/performance/bdv_rss_rd.dbm?pid=33354&amp;bid=263059&amp;PHS=33354263059&amp;click=1&amp;rsrc=3" target="_blank"&gt;&lt;img src="http://bdv.bidvertiser.com/BidVertiser.dbm?pid=33354&amp;bid=263059&amp;PHS=33354263059&amp;imagerss=1&amp;rsrc=3" border="0"/&gt;&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5773096095549745377-973472214330748718?l=latestfeatures.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://latestfeatures.blogspot.com/feeds/973472214330748718/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5773096095549745377&amp;postID=973472214330748718' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5773096095549745377/posts/default/973472214330748718?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5773096095549745377/posts/default/973472214330748718?v=2'/><link rel='alternate' type='text/html' href='http://latestfeatures.blogspot.com/2008/03/what-aspnet-developers-should-know_10.html' title='What ASP.NET Developers Should Know About JavaScript - Part 2'/><author><name>JKiran</name><uri>http://www.blogger.com/profile/14647583186013938517</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry gd:etag='W/&quot;CkUDSH0zcSp7ImA9WhJVFk0.&quot;'><id>tag:blogger.com,1999:blog-5773096095549745377.post-2541806051716080216</id><published>2008-03-10T21:48:00.002-07:00</published><updated>2012-09-02T08:37:59.389-07:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2012-09-02T08:37:59.389-07:00</app:edited><category scheme='http://www.blogger.com/atom/ns#' term='JavaScript'/><title>What ASP.NET Developers Should Know About JavaScript - Part 1</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;table border="1" bordercolor="#999999" cellpadding="2" cellspacing="2" style="width: 100%px;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td align="center" height="25"&gt;&lt;a href="http://latestfeatures.blogspot.com/2008/03/what-aspnet-developers-should-know.html"&gt;&lt;strong&gt;Part - 1&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&lt;td align="center"&gt;&lt;a href="http://latestfeatures.blogspot.com/2008/03/what-aspnet-developers-should-know_10.html"&gt;&lt;strong&gt;Part - 2&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&lt;td align="center"&gt;&lt;strong&gt;&lt;a href="http://latestfeatures.blogspot.com/2008/03/what-aspnet-developers-should-know_1727.html"&gt;Part - 3&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;
JavaScript – It's beat up, put down, shrugged off and kicked around. Cursed by the web browser's inconsistency yet blessed by a pervasive ubiquity -it's a technology many try to disregard even when its potential is something few can ignore. If you want to write an interactive application for the web today, then you'll need some JavaScript code on your side.&lt;br /&gt;
&lt;br /&gt;
This article approaches JavaScript from the perspective of an ASP.NET developer who is comfortable with the paradigms and patterns of either C# or Visual Basic. The article doesn't look at how to use JavaScript from ASP.NET exactly, but it does look at why JavaScript is so different from the two languages we commonly use with the .NET CLR. The article assumes you already know that JavaScript is a loosely-typed language (because you don't have to declare the type of data you store in a variable), and that the syntax is similar to the C family of languages (with charming curly braces and stunningly beautiful semi-colons).&lt;br /&gt;
&lt;strong&gt;&lt;br /&gt;
&lt;span style="font-size: 130%;"&gt;What Is Wrong With JavaScript?&lt;/span&gt; &lt;/strong&gt;&lt;br /&gt;
The introduction didn't paint a flattering picture of the JavaScript language, but the truth is JavaScript is a good language. The biggest sources of pain when programming with JavaScript aren't because of the language. The biggest pains come from: &lt;br /&gt;
&lt;ul&gt;&lt;li&gt;The tools&lt;/li&gt;
&lt;li&gt;The implementations&lt;/li&gt;
&lt;li&gt;The bad practices&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;span style="font-size: 130%;"&gt;&lt;strong&gt;JavaScript Tools &lt;/strong&gt;&lt;br /&gt;
&lt;/span&gt;Most of the tools we use in a Visual Studio environment are geared to languages targeting the CLR. If you program in C# or Visual Basic, you'll be assisted by Intellisense, class browsers, class diagrams, code snippets, code analysis, and a world class debugger. The menus will list refactoring commands, and unit testing is only a few keystrokes away.&lt;br /&gt;
&lt;br /&gt;
Contrast the above with the experience of programming with JavaScript. There is no Intellisense (although the feature is coming in the next version of Visual Studio), the debugger is finicky, and most of the other tools listed above are missing entirely. Of course, the majority of the code we write in Visual Studio is not JavaScript, but as the demands of the web have required more scripting, we've started to need better tools. The lack of tools makes JavaScript more difficult to work with.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;&lt;span style="font-size: 130%;"&gt;Bad Implementations&lt;/span&gt; &lt;/strong&gt;&lt;br /&gt;
JavaScript is hosted by many different types of web browsers, and is generally our primary means to manipulate a browser's DOM. While ostensibly governed by W3C standards, we all know each browser contains variations and idiosyncrasies. Script code that works on one version of a browser might not work on a different version of the same browser. These scenarios cause a lot of pain in testing and re-writing of JavaScript code. This pain isn't the language's fault – we will never see the day when all browsers implement web standards with 100% accuracy.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;&lt;span style="font-size: 130%;"&gt;Bad Practices&lt;/span&gt; &lt;/strong&gt;&lt;br /&gt;
JavaScript is an accessible language. We don't need special tools or compilers. We can view the source code of any page on the Internet and copy the script code for our own purposes – and many people do. Of course, not everyone who uses JavaScript is a software developer with an eye for good code. All sorts of people use JavaScript, and all sorts of ugly JavaScript code perpetuates itself on the Internet.&lt;br /&gt;
&lt;br /&gt;
Even software developers (the author included) have taken a quick and dirty approach to writing JavaScript. It's only script code, after all, and just slapping the code into a text editor to get the desired result is all we need. It's not until we have to untangle a mess that we realize a more disciplined approach would have ultimately saved us time.&lt;br /&gt;
&lt;br /&gt;
With all of these problems in the JavaScript environment – why do we still want to torture ourselves by writing JavaScript code?&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;&lt;span style="font-size: 130%;"&gt;What is Right with JavaScript?&lt;/span&gt; &lt;/strong&gt;&lt;br /&gt;
Over the last few years, the amount of JavaScript code you'll find in the typical web application has surged. There are a couple good reasons for the surge: &lt;br /&gt;
&lt;ul&gt;&lt;li&gt;JavaScript is ubiquitous &lt;/li&gt;
&lt;li&gt;JavaScript is mature &lt;/li&gt;
&lt;/ul&gt;&lt;strong&gt;&lt;span style="font-size: 130%;"&gt;Ubiquity&lt;/span&gt; &lt;/strong&gt;&lt;br /&gt;
If you want to write an application that will reach as many users as possible, then you'll be writing a web application. You can reach users on Windows, Macintosh, Linux, and hundreds of other platforms on devices both large and small.&lt;br /&gt;
&lt;br /&gt;
How will you make a web application interactive? You'll use JavaScript. Your users won't have to install a runtime, or an ActiveX control, or download some interpreting engine. They'll install a web browser that includes JavaScript support, as so many do, and they'll happily use your application. JavaScript is the most ubiquitous programming language on the planet.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;&lt;span style="font-size: 130%;"&gt;Maturity &lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;
As the demand for JavaScript code has increased, the frameworks and libraries of well-tested and robust JavaScript code have begun to emerge. Many of these frameworks abstract away the browser idiosyncrasies we discussed earlier, and can greatly reduce the amount of time we invest in writing and debugging cross-platform JavaScript code. Here are some of the most popular frameworks: &lt;br /&gt;
&lt;ul&gt;&lt;li&gt;ASP.NET AJAX &lt;/li&gt;
&lt;li&gt;Prototype&lt;/li&gt;
&lt;li&gt;Script.aculo.us&lt;/li&gt;
&lt;li&gt;The Dojo Toolkit&lt;/li&gt;
&lt;li&gt;Yahoo! UI Library &lt;/li&gt;
&lt;/ul&gt;We've also begun to see the emergence of proven practices and design patterns. The practices put the object oriented features of JavaScript to good use. What's that? You didn't know JavaScript was object oriented? We might not have applied OOP practices to JavaScript code over the last few years, but the capability does exist.&lt;br /&gt;
&lt;table border="1" bordercolor="#999999" cellpadding="2" cellspacing="2" style="width: 100%px;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td align="center" height="25"&gt;&lt;a href="http://latestfeatures.blogspot.com/2008/03/what-aspnet-developers-should-know.html"&gt;&lt;strong&gt;Part - 1&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&lt;td align="center"&gt;&lt;a href="http://latestfeatures.blogspot.com/2008/03/what-aspnet-developers-should-know_10.html"&gt;&lt;strong&gt;Part - 2&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&lt;td align="center"&gt;&lt;strong&gt;&lt;a href="http://latestfeatures.blogspot.com/2008/03/what-aspnet-developers-should-know_1727.html"&gt;Part - 3&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://secure.bidvertiser.com/performance/bdv_rss_rd.dbm?pid=33354&amp;bid=263059&amp;PHS=33354263059&amp;click=1&amp;rsrc=3" target="_blank"&gt;&lt;img src="http://bdv.bidvertiser.com/BidVertiser.dbm?pid=33354&amp;bid=263059&amp;PHS=33354263059&amp;imagerss=1&amp;rsrc=3" border="0"/&gt;&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5773096095549745377-2541806051716080216?l=latestfeatures.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://latestfeatures.blogspot.com/feeds/2541806051716080216/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5773096095549745377&amp;postID=2541806051716080216' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5773096095549745377/posts/default/2541806051716080216?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5773096095549745377/posts/default/2541806051716080216?v=2'/><link rel='alternate' type='text/html' href='http://latestfeatures.blogspot.com/2008/03/what-aspnet-developers-should-know.html' title='What ASP.NET Developers Should Know About JavaScript - Part 1'/><author><name>JKiran</name><uri>http://www.blogger.com/profile/14647583186013938517</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry gd:etag='W/&quot;A08CQ386cSp7ImA9WhJVFUQ.&quot;'><id>tag:blogger.com,1999:blog-5773096095549745377.post-7530672311424032748</id><published>2008-03-04T04:07:00.001-08:00</published><updated>2012-09-02T08:31:02.119-07:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2012-09-02T08:31:02.119-07:00</app:edited><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio'/><title>New in Visual Studio 2008</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Visual Studio 2008 is the version of Visual Studio which comes with the .NET Framework 3.5. It was released to MSDN subscribers on 19 November 2007 alongside the .NET Framework 3.5.&lt;br /&gt;
Visual Studio 2008 can target development in .NET Framework versions 2.0, 3.0 and 3.5. Visual Studio 2008 comes with many new feature over Visual Studio 2005. Visual Studio 2008 features a XAML based designer (codenamed Cider), workflow designer, LINQ to SQL designer (for defining the type mappings and object encapsulation for SQL Server data), XSLT debugger, JavaScript Intellisense support, JavaScript Debugging support. Here is a list of some of the new features found in Visual Studio 2008.&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Multi-Targeting support&lt;/li&gt;
&lt;li&gt;Javascript Intellisense&lt;/li&gt;
&lt;li&gt;Javascript debugging&lt;/li&gt;
&lt;li&gt;Code editing improvements&lt;/li&gt;
&lt;li&gt;Nested Master Page support&lt;/li&gt;
&lt;li&gt;Web designer and CSS improvements&lt;/li&gt;
&lt;li&gt;New Split View including vertical split&lt;/li&gt;
&lt;li&gt;Enhanced support for the ASP.NET AJAX Extensions&lt;/li&gt;
&lt;li&gt;LINQ to SQL designer&lt;/li&gt;
&lt;li&gt;Enhanced XML support&lt;/li&gt;
&lt;li&gt;Support for Silverlight&lt;/li&gt;
&lt;li&gt;Support for WPF&lt;/li&gt;
&lt;li&gt;Support for debugging .NET Framework 3.5 class libraries &lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://secure.bidvertiser.com/performance/bdv_rss_rd.dbm?pid=33354&amp;bid=263059&amp;PHS=33354263059&amp;click=1&amp;rsrc=3" target="_blank"&gt;&lt;img src="http://bdv.bidvertiser.com/BidVertiser.dbm?pid=33354&amp;bid=263059&amp;PHS=33354263059&amp;imagerss=1&amp;rsrc=3" border="0"/&gt;&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5773096095549745377-7530672311424032748?l=latestfeatures.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://latestfeatures.blogspot.com/feeds/7530672311424032748/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5773096095549745377&amp;postID=7530672311424032748' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5773096095549745377/posts/default/7530672311424032748?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5773096095549745377/posts/default/7530672311424032748?v=2'/><link rel='alternate' type='text/html' href='http://latestfeatures.blogspot.com/2008/03/new-in-visual-studio-2008.html' title='New in Visual Studio 2008'/><author><name>JKiran</name><uri>http://www.blogger.com/profile/14647583186013938517</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry gd:etag='W/&quot;DkENQno-fyp7ImA9WhJVFUQ.&quot;'><id>tag:blogger.com,1999:blog-5773096095549745377.post-3261252345141419076</id><published>2008-02-01T00:13:00.002-08:00</published><updated>2012-09-02T07:04:53.457-07:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2012-09-02T07:04:53.457-07:00</app:edited><category scheme='http://www.blogger.com/atom/ns#' term='ASP .Net'/><title>Apress Beginning ASP NET 3.5 in CSharp</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;a href="http://www.ziddu.com/download.php?uid=aqqanJalZ6uenJSlsayZlJyiY6yWlJWt3"&gt;Apress Beginning ASP NET 3.5 in CSharp 2008 From Novice to Professional 2nd.Edition Nov 2007&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://www.ziddu.com/download.php?uid=aqqanJalZ6uenJSlsayZlJyiY6yWlJWt3"&gt;&lt;img align="left" alt="" border="0" id="BLOGGER_PHOTO_ID_5161922426284671858" src="http://4.bp.blogspot.com/_fHFBLJTM8Zc/R6LVGQDSA3I/AAAAAAAAAA8/4fyQKqmQg-M/s320/ASPNET35.gif" style="cursor: hand;" /&gt;&lt;/a&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;To download &lt;a href="http://www.ziddu.com/download.php?uid=aqqanJalZ6uenJSlsayZlJyiY6yWlJWt3"&gt;Click Here&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://secure.bidvertiser.com/performance/bdv_rss_rd.dbm?pid=33354&amp;bid=263059&amp;PHS=33354263059&amp;click=1&amp;rsrc=3" target="_blank"&gt;&lt;img src="http://bdv.bidvertiser.com/BidVertiser.dbm?pid=33354&amp;bid=263059&amp;PHS=33354263059&amp;imagerss=1&amp;rsrc=3" border="0"/&gt;&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5773096095549745377-3261252345141419076?l=latestfeatures.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://latestfeatures.blogspot.com/feeds/3261252345141419076/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5773096095549745377&amp;postID=3261252345141419076' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5773096095549745377/posts/default/3261252345141419076?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5773096095549745377/posts/default/3261252345141419076?v=2'/><link rel='alternate' type='text/html' href='http://latestfeatures.blogspot.com/2008/02/apress-beginning-asp-net-35-in-csharp.html' title='Apress Beginning ASP NET 3.5 in CSharp'/><author><name>JKiran</name><uri>http://www.blogger.com/profile/14647583186013938517</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_fHFBLJTM8Zc/R6LVGQDSA3I/AAAAAAAAAA8/4fyQKqmQg-M/s72-c/ASPNET35.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry gd:etag='W/&quot;A0EHQns7fip7ImA9WhJVFUQ.&quot;'><id>tag:blogger.com,1999:blog-5773096095549745377.post-5341162242823461075</id><published>2008-01-10T02:38:00.004-08:00</published><updated>2012-09-02T08:27:13.506-07:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2012-09-02T08:27:13.506-07:00</app:edited><category scheme='http://www.blogger.com/atom/ns#' term='Books'/><title>Good Books for ASP.Net</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;strong&gt;Asp.net Bible Vb.net &amp;amp; C#&lt;/strong&gt;&lt;br /&gt;
&lt;a href="http://www.esnips.com/doc/ada28457-29f5-43c2-8101-24aeed951d11/Asp.net-Bible-Vb.net--C" target="_blank"&gt;Download&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Programming in ASP.NET Bible&lt;/strong&gt;&lt;br /&gt;
&lt;a href="http://www.esnips.com/doc/52e4914a-73a8-47bf-9027-f07812a7365a/Programming_in_ASP.NET_Bible" target="_blank"&gt;Download&lt;/a&gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;ASP.NET Bible&lt;/strong&gt;&lt;br /&gt;
&lt;a href="http://www.esnips.com/doc/f143293f-e1bc-4e1b-a548-918b3f048b96/ASP.NET-Bible" target="_blank"&gt;Download&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Beginning ASP.NET Databases using VB.NET&lt;/strong&gt;&lt;br /&gt;
&lt;a href="http://www.esnips.com/doc/4241262c-e178-4ba0-b504-7a0f3642836d/Beginning-ASP.NET-Databases-using-VB.NET" target="_blank"&gt;Download &lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Asp.net 2.0 in C#&lt;/strong&gt;&lt;br /&gt;
&lt;a href="http://www.esnips.com/doc/48ad080e-fc4b-4050-ba6b-06dbb90e6149/asp.net-2.0-in-c" target="_blank"&gt;Download&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Pro ASP.NET in C# 2005&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://www.esnips.com/doc/4d206dcc-449a-4bd6-86e4-c1f536554efe/Pro-ASP.NET-in-C-2005" target="_blank"&gt;Download&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Pro ASP.NET 2.0 E-Commerce in C Sharp 2005&lt;/strong&gt;&lt;br /&gt;
&lt;a href="http://www.esnips.com/doc/0b4d806c-2654-44a7-bb0d-598102af3ca9/Pro-ASP.NET-2.0-E-Commerce-in-C-Sharp-2005" target="_blank"&gt;Download&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Essential ASP.NET With Examples in C Sharp&lt;/strong&gt;&lt;br /&gt;
&lt;a href="http://www.esnips.com/doc/c75ff46d-bdcd-4fbc-998b-2d5e3044eea9/Essential-ASP.NET-With-Examples-in-C-Sharp" target="_blank"&gt;Download&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;O'reilly - C Sharp in a Nutshell&lt;/strong&gt;&lt;br /&gt;
&lt;a href="http://www.esnips.com/doc/5201443b-477c-440e-86ed-5a400327db9c/oreilly_-_c_sharp_in_a_nutshell" target="_blank"&gt;Download&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://secure.bidvertiser.com/performance/bdv_rss_rd.dbm?pid=33354&amp;bid=263059&amp;PHS=33354263059&amp;click=1&amp;rsrc=3" target="_blank"&gt;&lt;img src="http://bdv.bidvertiser.com/BidVertiser.dbm?pid=33354&amp;bid=263059&amp;PHS=33354263059&amp;imagerss=1&amp;rsrc=3" border="0"/&gt;&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5773096095549745377-5341162242823461075?l=latestfeatures.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://latestfeatures.blogspot.com/feeds/5341162242823461075/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5773096095549745377&amp;postID=5341162242823461075' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5773096095549745377/posts/default/5341162242823461075?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5773096095549745377/posts/default/5341162242823461075?v=2'/><link rel='alternate' type='text/html' href='http://latestfeatures.blogspot.com/2008/01/good-books-for-aspnet.html' title='Good Books for ASP.Net'/><author><name>JKiran</name><uri>http://www.blogger.com/profile/14647583186013938517</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry gd:etag='W/&quot;CkQNRH0_eip7ImA9WhJVFk0.&quot;'><id>tag:blogger.com,1999:blog-5773096095549745377.post-1766533344610574752</id><published>2007-12-26T04:37:00.002-08:00</published><updated>2012-09-02T08:39:55.342-07:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2012-09-02T08:39:55.342-07:00</app:edited><category scheme='http://www.blogger.com/atom/ns#' term='Database'/><title>Tips &amp; Tricks - SQL Server 2008</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;strong&gt;&lt;span style="color: #330099;"&gt;Did you know... How to perform date/time conversions using SQL Server&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;
The first considerations is the actual date/time needed. The most common is the current date/time using getdate(). To change the format of the date, you convert the requested date to a string and specify the format number corresponding to the format needed using select convert(varchar, getdate(),)&lt;br /&gt;
&lt;hr /&gt;&lt;br /&gt;
&lt;strong&gt;&lt;span style="color: #330099;"&gt;Did you know.. How to get operating system content into SQL Server&lt;/span&gt;&lt;br /&gt;
&lt;/strong&gt;Use the xp_cmdshell extended stored procedure to access the file system and bring the contents into SQL Server. By using a combination of both OS level commands and SQL Server commands you can pull this data into SQL Server for processing.&lt;br /&gt;
&lt;hr /&gt;&lt;br /&gt;
&lt;strong&gt;&lt;span style="color: #330099;"&gt;Did you know... How to delete duplicate rows when there is no primary key&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;
An option that SQL Server gives you is the ability to set ROWCOUNT which limits the numbers of records affected by a command. The default value is 0 which means all records, but this value can be set prior to running a command.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://secure.bidvertiser.com/performance/bdv_rss_rd.dbm?pid=33354&amp;bid=263059&amp;PHS=33354263059&amp;click=1&amp;rsrc=3" target="_blank"&gt;&lt;img src="http://bdv.bidvertiser.com/BidVertiser.dbm?pid=33354&amp;bid=263059&amp;PHS=33354263059&amp;imagerss=1&amp;rsrc=3" border="0"/&gt;&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5773096095549745377-1766533344610574752?l=latestfeatures.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://latestfeatures.blogspot.com/feeds/1766533344610574752/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5773096095549745377&amp;postID=1766533344610574752' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5773096095549745377/posts/default/1766533344610574752?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5773096095549745377/posts/default/1766533344610574752?v=2'/><link rel='alternate' type='text/html' href='http://latestfeatures.blogspot.com/2007/12/tips-tricks-sql-server-2008.html' title='Tips &amp; Tricks - SQL Server 2008'/><author><name>JKiran</name><uri>http://www.blogger.com/profile/14647583186013938517</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry gd:etag='W/&quot;A0ABQ3Y7eyp7ImA9WhJVFUQ.&quot;'><id>tag:blogger.com,1999:blog-5773096095549745377.post-8210730780265206796</id><published>2007-12-26T04:29:00.001-08:00</published><updated>2012-09-02T08:29:12.803-07:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2012-09-02T08:29:12.803-07:00</app:edited><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio'/><title>Tips &amp; Tricks - Visual Studio 2008</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;strong&gt;&lt;span style="color: #330099;"&gt;Did you know... How to reach the Navigation bar via the keyboard?&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;
To jump to the navigation bar via the keyboard, press Ctrl+F2. This is bound to the command Window.MoveToNavigationBar, so your keyboard shortcut mileage may vary. To toggle between the Objects list and the Members list press Tab or Shift+Tab. Additionally, you can hide (or show) the navigation bar by going to Tools - Options -Text Editor - All Languages - General and setting the Navigation bar option to the desired setting. Note that since this is found in AllLanguages, you can customize this for any listed language under the Text Editor node.&lt;br /&gt;
&lt;hr /&gt;&lt;br /&gt;
&lt;strong&gt;&lt;span style="color: #330099;"&gt;Did you know... what's the difference between smart indenting and block indenting?&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;
Smart indenting is the option you want provided you want the cursor to be properly indented whenever you press enter or arrow up and down through the code. An example is when you create a new method called foo(), then hit enter. You'll notice the cursor will automatically indent itself. If you continue to hit enter, the cursor will remain indented. Not all languages support this smart indenting, but if it does, this should be the default setting for that language. Block indenting is similar to a document editor. The difference here is when you type in foo() and hit enter, only that first new line is automatically indented. The next newline places the cursor at column 0. None will not indent any new lines. You will have to indent everything manually.&lt;br /&gt;
&lt;hr /&gt;&lt;br /&gt;
&lt;strong&gt;&lt;span style="color: #330099;"&gt;Did you know... How to turn off Intellisense by default &lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;
Go to Tools - Options - Text Editor - All Languages - General and uncheck Auto List Members and Parameter Information. If you just want to disable intellisense by default for a particular language, go to the Text Editor - - General option page and set the behavior there.&lt;br /&gt;
&lt;hr /&gt;&lt;br /&gt;
&lt;strong&gt;&lt;span style="color: #000099;"&gt;Did you know... How to change the Brace Matching color?&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;
Go to Tools - Options - Fonts and Colors, select Brace Matching (Rectangle), and set to the desired color.&lt;br /&gt;
&lt;hr /&gt;&lt;br /&gt;
&lt;span style="color: #330099;"&gt;&lt;strong&gt;Did you know... How to keep tabs or to insert spaces?&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;
Go to Tools - Options - Text Editor - - Tabs to switch between using tabs or to insert spaces instead.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://secure.bidvertiser.com/performance/bdv_rss_rd.dbm?pid=33354&amp;bid=263059&amp;PHS=33354263059&amp;click=1&amp;rsrc=3" target="_blank"&gt;&lt;img src="http://bdv.bidvertiser.com/BidVertiser.dbm?pid=33354&amp;bid=263059&amp;PHS=33354263059&amp;imagerss=1&amp;rsrc=3" border="0"/&gt;&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5773096095549745377-8210730780265206796?l=latestfeatures.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://latestfeatures.blogspot.com/feeds/8210730780265206796/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5773096095549745377&amp;postID=8210730780265206796' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5773096095549745377/posts/default/8210730780265206796?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5773096095549745377/posts/default/8210730780265206796?v=2'/><link rel='alternate' type='text/html' href='http://latestfeatures.blogspot.com/2007/12/tips-tricks-visual-studio-2008.html' title='Tips &amp; Tricks - Visual Studio 2008'/><author><name>JKiran</name><uri>http://www.blogger.com/profile/14647583186013938517</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>