<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:copyright="http://blogs.law.harvard.edu/tech/rss" xmlns:image="http://purl.org/rss/1.0/modules/image/">
    <channel>
        <title>.Net 3.0</title>
        <link>http://geekswithblogs.net/Gaurav/category/7932.aspx</link>
        <description>.Net 3.0</description>
        <language>en-US</language>
        <copyright>Gaurav Taneja</copyright>
        <managingEditor>taneja_gaurav@yahoo.com</managingEditor>
        <generator>Subtext Version 0.0.0.0</generator>
        <item>
            <title>New in Visual Studio 2008</title>
            <link>http://geekswithblogs.net/Gaurav/archive/2008/04/01/120952.aspx</link>
            <description>&lt;table width="100%" cellspacing="0" cellpadding="0" border="0"&gt;
    &lt;tbody&gt;
        &lt;tr style="font-weight: bold;"&gt;
            &lt;td valign="top" align="left" id="ctl00_ContentPlaceHolder1_tdBlogTitle" class="bluetxt"&gt;What is new in Visual Studio 2008&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td valign="top" id="ctl00_ContentPlaceHolder1_tdBlogText" class="normaltxt"&gt;
            &lt;p&gt;A quick list of some of the new features are: &lt;/p&gt;
            &lt;ul&gt;
                &lt;li&gt;Multi-Targeting support  &lt;/li&gt;
                &lt;li&gt;Web Designer and CSS support  &lt;/li&gt;
                &lt;li&gt;ASP.NET AJAX and JavaScript support  &lt;/li&gt;
                &lt;li&gt;Project Designer  &lt;/li&gt;
                &lt;li&gt;Data  &lt;/li&gt;
                &lt;li&gt;LINQ – Language Integrated Query &lt;/li&gt;
            &lt;/ul&gt;
            &lt;p&gt;The features listed and explained in this paper are not complete and this  document intends to give you a forehand to start off with VS 2008.&lt;/p&gt;
            &lt;h2 editor_id="mce_editor_0"&gt;&lt;a name="_Toc177808315"&gt;&lt;span class="bluetxt"&gt;&lt;span class="highlight"&gt;&lt;font size="3"&gt;1. Multi-Targeting  Support&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;
            &lt;p&gt;Earlier, each Visual Studio release only supported a specific version of the  .NET Framework. For example, VS 2003 only works with .NET 1.1, and VS 2005 only  works with .NET 2.0. &lt;/p&gt;
            &lt;p&gt;One of the major changes with the VS 2008 release is to support what  Microsoft calls "Multi-Targeting". This means that Visual Studio will now  support targeting multiple versions of the .NET Framework, and developers will  be able to take advantage of the new features that Visual Studio provides  without having to migrate their existing projects and deployed applications to  use a new version of the .NET Framework. &lt;/p&gt;
            &lt;p&gt;Now when we open an existing project or create a new one with VS 2008, we can  pick which version of the .NET Framework to work with. The IDE will update its  compilers and feature-set to match the chosen .NET Framework. &lt;/p&gt;
            &lt;p&gt;Features, controls, projects, item-templates, and references that do not work  with the selected version of the Framework will be made unavailable or will be  hidden. &lt;/p&gt;
            &lt;p&gt;Unfortunately, support has not been included to work with Framework versions  1.1 and earlier. The present release supports 2.0/3.0 and 3.5 .NET Frameworks.  &lt;/p&gt;
            &lt;p&gt;Microsoft plans to continue multi-targeting support in all future releases of  Visual Studio. &lt;/p&gt;
            &lt;h3 editor_id="mce_editor_0"&gt;&lt;span editor_id="mce_editor_0" class="bluetxt"&gt;Creating a New Project with Visual Studio 2008 that  Targets .NET 2.0 Framework Library&lt;/span&gt; &lt;/h3&gt;
            &lt;p&gt;The screenshots below depict the creation of a new web application targeting  .NET 2.0 Framework. Choose File-&amp;gt;New Project. As we see in the snapshot below  in the top-right of the new project dialog, there is now a dropdown that allows  us to choose which versions of the .NET Framework we want to target when we  create the new project. The templates available are filtered depending on the  version of the Framework chosen from the dropdown: &lt;/p&gt;
            &lt;img width="533" height="358" border="0" editor_id="mce_editor_0" src="http://www.codeproject.com/KB/dotnet/Visual_Studio_2008/clip_image002.jpg" alt="" /&gt;
            &lt;h3 editor_id="mce_editor_0"&gt;&lt;span class="bluetxt"&gt;Can I Upgrade an Existing  Project to .NET 3.5?&lt;/span&gt;&lt;/h3&gt;
            &lt;p&gt;When we open a solution created using an older version of Visual Studio and  Framework, VS 2008 would ask if migration is required. If we opt to migrate,  then a migration wizard would start. If we wish to upgrade our project to target  a newer version of the Framework at a later point of time, we can pull up the  project properties page and choose the Target Framework. The required assemblies  are automatically referenced. The snapshot below shows the properties page with  the option Target Framework marked. &lt;/p&gt;
            &lt;img width="597" height="378" border="0" src="http://www.codeproject.com/KB/dotnet/Visual_Studio_2008/clip_image003.gif" alt="" /&gt;
            &lt;h2 editor_id="mce_editor_0"&gt;&lt;span editor_id="mce_editor_0" class="bluetxt"&gt;&lt;span class="highlight"&gt;&lt;font size="3"&gt;2. &lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;a name="_Toc177808315"&gt;&lt;span class="bluetxt"&gt;&lt;span class="highlight"&gt;&lt;font size="3"&gt;Web Designer, Editing and CSS  Support&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;
            &lt;p editor_id="mce_editor_0"&gt;One feature that web developers will discover with  VS 2008 is its drastically improved HTML designer, and the extensive CSS support  made available. &lt;/p&gt;
            &lt;p&gt;The snapshots below depict some of the new web designer features in-built  into VS 2008. &lt;/p&gt;
            &lt;h3 editor_id="mce_editor_0"&gt;&lt;span class="bluetxt"&gt;Split View Editing&lt;/span&gt;&lt;/h3&gt;
            &lt;p&gt;In addition to the existing views, Design view and Code view, VS 2008 brings  along the Split view which allows us to view both the HTML source and the Design  View at the same-time, and easily make changes in any of the views. As shown in  the image below, as we select a tag in code view, the corresponding  elements/controls are selected in design view. &lt;/p&gt;
            &lt;img width="602" height="457" border="0" src="http://www.codeproject.com/KB/dotnet/Visual_Studio_2008/clip_image004.gif" alt="" /&gt;
            &lt;h3 editor_id="mce_editor_0"&gt;&lt;span class="bluetxt"&gt;CSS Style Manager&lt;/span&gt;&lt;/h3&gt;
            &lt;p&gt;VS 2008 introduces a new tool inside the IDE called "Manage Styles". This  shows all of the CSS style sheets for the page. &lt;/p&gt;
            &lt;p&gt;It can be used when we are in any of the views - design, code and split  views. Manage Styles tool can be activated by choosing Format -&amp;gt; CSS Styles  -&amp;gt; Manage Styles from the menu. A snapshot of the same would look like the  following: &lt;/p&gt;
            &lt;img width="602" height="338" border="0" src="http://www.codeproject.com/KB/dotnet/Visual_Studio_2008/clip_image005.gif" alt="" /&gt;
            &lt;p&gt;Create a new style using the new style dialog window as show in the snapshot  below.&lt;/p&gt;
            &lt;img width="340" height="325" border="0" src="http://www.codeproject.com/KB/dotnet/Visual_Studio_2008/clip_image006.jpg" alt="" /&gt;
            &lt;p&gt;Now, the style manager would show &lt;code&gt;.labelcaption&lt;/code&gt; style as well in  the CSS styles list. However, if we observe that the body element has a circle  around it but the &lt;code&gt;.labelcaption&lt;/code&gt; does not have one, this is because  the style is not in use yet. &lt;/p&gt;
            &lt;img width="544" height="359" border="0" src="http://www.codeproject.com/KB/dotnet/Visual_Studio_2008/clip_image007.jpg" alt="" /&gt;
            &lt;p&gt;We will not select all the labels below and apply our new style  &lt;code&gt;.labelcaption&lt;/code&gt;.&lt;/p&gt;
            &lt;img width="537" height="344" border="0" src="http://www.codeproject.com/KB/dotnet/Visual_Studio_2008/clip_image008.jpg" alt="" /&gt;
            &lt;p&gt;We can choose to modify the existing style through GUI using "Modify  style..." menu option in the dropdown menu as shown above or choose to hand edit  the code by choosing the option "Go To Code". &lt;/p&gt;
            &lt;h3 editor_id="mce_editor_0"&gt;&lt;span class="bluetxt"&gt;CSS Source View  Intellisense&lt;/span&gt;&lt;/h3&gt;
            &lt;p&gt;The designer is equipped with the ability to select an element or control in  design-view, and graphically select a rule from the CSS list to apply to it.  &lt;/p&gt;
            &lt;p&gt;We will also find when in source mode that we now have intellisense support  for specifying CSS class rules. The CSS Intellisense is supported in both  regular ASP.NET pages as well as when working with pages based on master pages.  &lt;/p&gt;
            &lt;img width="499" height="402" border="0" src="http://www.codeproject.com/KB/dotnet/Visual_Studio_2008/clip_image009.jpg" alt="" /&gt;
            &lt;h3 editor_id="mce_editor_0"&gt;&lt;span class="bluetxt"&gt;Code Editing  Enhancements&lt;/span&gt;&lt;/h3&gt;
            &lt;p&gt;Below is a non-exhaustive list of a few new code editing improvements. There  are many more about which I don't know yet. &lt;/p&gt;
            &lt;h4 editor_id="mce_editor_0"&gt;&lt;span class="bluetxt"&gt;Transparent Intellisense  Mode&lt;/span&gt; &lt;/h4&gt;
            &lt;p&gt;While using VS 2005/2003 we often find ourselves escaping out of intellisense  in order to better see the code around, and then go back and complete what we  were doing. &lt;/p&gt;
            &lt;p&gt;VS 2008 provides a new feature which allows us to quickly make the  intellisense drop-down list semi-transparent. Just hold down the "Ctrl" key  while the intellisense drop-down is visible and we will be able to switch it  into a transparent mode that enables us to look at the code beneath without  having to escape out of Intellisense. The screenshot below depicts the same.  &lt;/p&gt;
            &lt;img width="554" height="298" border="0" src="http://www.codeproject.com/KB/dotnet/Visual_Studio_2008/clip_image0010.gif" alt="" /&gt;
            &lt;h4 editor_id="mce_editor_0"&gt;&lt;span class="bluetxt"&gt;Organize C# Using  Statements&lt;/span&gt; &lt;/h4&gt;
            &lt;p&gt;One of the small, but a nice new feature in VS 2008 is support for better  organizing &lt;code&gt;&lt;span class="code-keyword"&gt;using&lt;/span&gt;&lt;/code&gt; statements in C#.  We can now select a list of &lt;code&gt;&lt;span class="code-keyword"&gt;using&lt;/span&gt;&lt;/code&gt;  statements, right-click, and then select the "Organize Usings" sub-menu. When we  use this command the IDE will analyze what types are used in the code file, and  will automatically remove those namespaces that are declared but not required. A  small and handy feature for code refactoring. &lt;/p&gt;
            &lt;img width="476" height="347" border="0" src="http://www.codeproject.com/KB/dotnet/Visual_Studio_2008/clip_image0011.jpg" alt="" /&gt;
            &lt;h2 editor_id="mce_editor_0"&gt;&lt;span class="highlight"&gt;&lt;font size="3" editor_id="mce_editor_0"&gt;3. &lt;/font&gt;&lt;/span&gt;&lt;a name="_Toc177808314"&gt;&lt;span class="highlight"&gt;&lt;font size="3"&gt;ASP.NET &lt;/font&gt;&lt;/span&gt;&lt;/a&gt;&lt;span class="highlight"&gt;&lt;font size="3"&gt;AJAX and JavaScript Support&lt;/font&gt;&lt;/span&gt;&lt;/h2&gt;
            &lt;h3 editor_id="mce_editor_0"&gt;&lt;span class="bluetxt"&gt;JavaScript  Intellisense&lt;/span&gt;&lt;/h3&gt;
            &lt;p&gt;One new feature that developers will find with VS 2008 is its built-in  support for JavaScript Intellisense. This makes using JavaScript and building  AJAX applications significantly easier. A double click on HTML control in design  mode would automatically create a click event to the button and would create the  basic skeleton of the JavaScript function. As we see in the depicted image  below, JavaScript Intellisense is inbuilt now. Other JavaScript Intellisense  features include Intellisense for external JavaScript libraries and adding  Intellisense hints to JavaScript functions. &lt;/p&gt;
            &lt;img width="441" height="297" border="0" src="http://www.codeproject.com/KB/dotnet/Visual_Studio_2008/clip_image0012.jpg" alt="" /&gt;
            &lt;h3 editor_id="mce_editor_0"&gt;&lt;span class="bluetxt"&gt;JavaScript  Debugging&lt;/span&gt;&lt;/h3&gt;
            &lt;p&gt;One new JavaScript feature in VS 2008 is the much-improved support for  JavaScript debugging. This makes debugging AJAX applications significantly  easier. JavaScript debugging was made available in VS 2005 itself. However, we  had to run the web application first to set the breakpoint or use the "debugger"  JavaScript statement. &lt;/p&gt;
            &lt;p&gt;VS 2008 makes this much better by adding new support that allows us to set  client-side JavaScript breakpoints directly within your server-side  &lt;em&gt;.aspx&lt;/em&gt; and &lt;em&gt;.master&lt;/em&gt; source files. &lt;/p&gt;
            &lt;p&gt;We can now set both client-side JavaScript breakpoints and VB/C# server-side  breakpoints at the same time on the same page and use a single debugger to step  through both the server-side and client-side code in a single debug session.  This feature is extremely useful for AJAX applications. The breakpoints are  fully supported in external JavaScript libraries as well. &lt;/p&gt;
            &lt;h2 editor_id="mce_editor_0"&gt;&lt;span class="highlight"&gt;&lt;font size="3"&gt;4.  &lt;/font&gt;&lt;/span&gt;&lt;a name="_Toc177808315"&gt;&lt;span class="highlight"&gt;&lt;font size="3"&gt;Few Other  Features and Enhancements&lt;/font&gt;&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;
            &lt;p&gt;Below is a list of few other enhancements and new features included in  Microsoft Visual Studio 2008. &lt;/p&gt;
            &lt;h3 editor_id="mce_editor_0"&gt;&lt;span class="bluetxt"&gt;Project Designer&lt;/span&gt;&lt;/h3&gt;
            &lt;p&gt;Windows Presentation Foundation (WPF) applications have been added to Visual  Studio 2008. There are four WPF project types: &lt;/p&gt;
            &lt;ul&gt;
                &lt;li&gt;WinFX Windows Application  &lt;/li&gt;
                &lt;li&gt;WinFX Web Browser Application  &lt;/li&gt;
                &lt;li&gt;WinFX Custom Control Library  &lt;/li&gt;
                &lt;li&gt;WinFX Service Library &lt;/li&gt;
            &lt;/ul&gt;
            &lt;p&gt;When a WPF project is loaded in the IDE, the user interface of the Project  Designer pages lets us specify properties specific to WPF applications. &lt;/p&gt;
            &lt;h3&gt;&lt;span class="bluetxt"&gt;Data&lt;/span&gt;&lt;/h3&gt;
            &lt;p&gt;&lt;a name="data"&gt;Microsoft Visual Studio 2008 Beta 2 includes the following new  features to incorporate data into applications: &lt;/a&gt;&lt;/p&gt;
            &lt;ul&gt;
                &lt;li&gt;The Object Relational Designer (O/R Designer) assists developers in creating  and editing the objects (LINQ to SQL entities) that map between an application  and a remote database  &lt;/li&gt;
                &lt;li&gt;Hierarchical update capabilities in Dataset Designer, providing generated  code that includes the save logic required to maintain referential integrity  between related tables  &lt;/li&gt;
                &lt;li&gt;Local database caching incorporates an SQL Server Compact 3.5 database into  an application and configures it to periodically synchronize the data with a  remote database on a server. Local database caching enables applications to  reduce the number of round trips between the application and a database server  &lt;/li&gt;
            &lt;/ul&gt;
            &lt;h3 editor_id="mce_editor_0"&gt;&lt;span class="highlight"&gt;&lt;span class="bluetxt"&gt;LINQ –  Language Integrated Query&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;
            &lt;p editor_id="mce_editor_0"&gt;LINQ is a new feature in VS 2008 that broadens great  querying capabilities into the language syntax. LINQ introduces patterns for  querying and updating data. A set of new assemblies are provided that enable the  use of LINQ with collections, SQL databases, and XML documents. &lt;/p&gt;
            &lt;h3 editor_id="mce_editor_0"&gt;&lt;span editor_id="mce_editor_0" class="highlight"&gt;&lt;span class="bluetxt"&gt;Visual Studio 2008  Debugger&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;
            &lt;p&gt;The Visual Studio 2008 debugger has been enhanced with the following  features: &lt;/p&gt;
            &lt;ul&gt;
                &lt;li&gt;Remote debugging support on Windows Vista  &lt;/li&gt;
                &lt;li&gt;Improved support for debugging multithreaded applications  &lt;/li&gt;
                &lt;li&gt;Debugging support for LINQ programming  &lt;/li&gt;
                &lt;li&gt;Debugging support for Windows Communications Foundation  &lt;/li&gt;
                &lt;li&gt;Support for script debugging, including client-side script files generated  from server-side script now appear in Solution Explorer &lt;/li&gt;
            &lt;/ul&gt;
            &lt;h3 editor_id="mce_editor_0"&gt;&lt;span editor_id="mce_editor_0" class="highlight"&gt;&lt;span class="bluetxt"&gt;Reporting&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;
            &lt;p&gt;Visual Studio 2008 provides several new reporting features and improvements  such as: &lt;/p&gt;
            &lt;ul&gt;
                &lt;li&gt;New Report Projects: Visual Studio 2008 includes two new project templates  for creating reporting applications. When we create a new Reports Application  project, Visual Studio provides a report (&lt;em&gt;.rdlc&lt;/em&gt;) and a form with a  ReportViewer control bound to the report.  &lt;/li&gt;
                &lt;li&gt;Report Wizard: Visual Studio 2008 introduces a Report Wizard, which guides  us through the steps to create a basic report. After we complete the wizard, we  can enhance the report by using Report Designer.  &lt;/li&gt;
                &lt;li&gt;Expression Editor Enhancement: The Expression Editor now provides  expressions that we can use directly or customize as required.  &lt;/li&gt;
                &lt;li&gt;PDF Compression: The ReportViewer controls can now compress reports that are  rendered or exported to the PDF format. &lt;/li&gt;
            &lt;/ul&gt;
            &lt;br /&gt;
            &lt;/td&gt;
        &lt;/tr&gt;
    &lt;/tbody&gt;
&lt;/table&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=120952"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=120952" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/Gaurav/aggbug/120952.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Gaurav Taneja</dc:creator>
            <guid>http://geekswithblogs.net/Gaurav/archive/2008/04/01/120952.aspx</guid>
            <pubDate>Wed, 02 Apr 2008 04:27:16 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/Gaurav/comments/120952.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/Gaurav/archive/2008/04/01/120952.aspx#feedback</comments>
            <slash:comments>3</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/Gaurav/comments/commentRss/120952.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/Gaurav/services/trackbacks/120952.aspx</trackback:ping>
        </item>
        <item>
            <title>Features in .Net 3.0</title>
            <link>http://geekswithblogs.net/Gaurav/archive/2008/04/01/120951.aspx</link>
            <description>&lt;table width="100%" cellspacing="0" cellpadding="0" border="0"&gt;
    &lt;tbody&gt;
        &lt;tr style="font-weight: bold;"&gt;
            &lt;td valign="top" align="left" class="bluetxt" id="ctl00_ContentPlaceHolder1_tdBlogTitle"&gt;A Preview of What is New in C# 3.0&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td valign="top" class="normaltxt" id="ctl00_ContentPlaceHolder1_tdBlogText"&gt;
            &lt;p editor_id="mce_editor_0"&gt;On the heels of the Visual Studio 2005 and C# 2.0  releases, Microsoft has &lt;br /&gt;
            given a sneak preview of what to expect in the  version after the next: C# &lt;br /&gt;
            3.0. Even though C# 3.0 is not even standardized  yet, Microsoft provided &lt;br /&gt;
            a preview release at its Professional Developers  Conference (PDC) in &lt;br /&gt;
            September so eager developers could try out some of the  expected features.&lt;br /&gt;
            This article discusses the following major new  enhancements expected in C#&lt;br /&gt;
            3.0:&lt;br /&gt;
            &lt;/p&gt;
            &lt;ul&gt;
                &lt;li&gt;Implicitly typed local variables  &lt;/li&gt;
                &lt;li&gt;Anonymous types  &lt;/li&gt;
                &lt;li editor_id="mce_editor_0"&gt;Extension methods  &lt;/li&gt;
                &lt;li&gt;Object and collection initializers  &lt;/li&gt;
                &lt;li&gt;Lambda expressions  &lt;/li&gt;
                &lt;li&gt;Query expressions  &lt;/li&gt;
                &lt;li&gt;Expression Trees &lt;/li&gt;
            &lt;/ul&gt;
            &lt;h3 editor_id="mce_editor_0"&gt;&lt;span class="bluetxt" editor_id="mce_editor_0"&gt;&lt;u&gt;Implicitly Typed Local Variables&lt;/u&gt;&lt;/span&gt;&lt;/h3&gt;
            &lt;p editor_id="mce_editor_0"&gt;C# 3.0 introduces a new keyword called "var". Var  allows you to declare a &lt;br /&gt;
            new variable, whose type is implicitly inferred from  the expression used to &lt;br /&gt;
            initialize the variable. In other words, the  following is valid syntax in C# 3.0:&lt;/p&gt;
            &lt;pre&gt;var i = 1;&lt;/pre&gt;
            &lt;p editor_id="mce_editor_0"&gt;The preceding line initializes the variable i to  value 1 and gives it the type of &lt;br /&gt;
            integer. Note that "i" is strongly typed to  an integer—it is not an object or a VB6&lt;br /&gt;
            variant, nor does it carry the  overhead of an object or a variant.&lt;br /&gt;
            &lt;/p&gt;
            &lt;p editor_id="mce_editor_0"&gt;To ensure the strongly typed nature of the variable  that is declared with the var&lt;br /&gt;
            keyword, C# 3.0 requires that you put the  assignment (initializer) on the same &lt;br /&gt;
            line as the declaration (declarator).  Also, the initializer has to be an expression, &lt;br /&gt;
            not an object or collection  initializer, and it cannot be null. If multiple declarators&lt;br /&gt;
            exist on the same  variable, they must all evaluate to the same type at compile time.&lt;br /&gt;
            &lt;/p&gt;
            &lt;p editor_id="mce_editor_0"&gt;Implicitly typed arrays, on the other hand, are  possible using a slightly different &lt;br /&gt;
            syntax, as shown below:&lt;/p&gt;
            &lt;pre&gt;var intArr = new[] {1,2,3,4} ;&lt;/pre&gt;
            &lt;p&gt;The above line of code would end up declaring intArr as int[].&lt;/p&gt;
            &lt;p editor_id="mce_editor_0"&gt;The var keyword allows you to refer to instances of  anonymous types (described &lt;br /&gt;
            in the next section) and yet the instances are  statically typed. So, when you create&lt;br /&gt;
            instances of a class that contain an  arbitrary set of data, you don't need to predefine&lt;br /&gt;
            a class to both hold that  structure and be able to hold that data in a statically typed  &lt;br /&gt;
            variable.&lt;br /&gt;
            &lt;/p&gt;
            &lt;h3 editor_id="mce_editor_0"&gt;&lt;span class="bluetxt"&gt;&lt;u&gt;Anonymous  Types&lt;/u&gt;&lt;/span&gt;&lt;/h3&gt;
            &lt;p editor_id="mce_editor_0"&gt;C# 3.0 gives you the flexibility to create an  instance of a class without having to write&lt;br /&gt;
            code for the class beforehand.  So, you now can write code as shown below:&lt;/p&gt;
            &lt;pre&gt;new {hair="black", skin="green", teethCount=64}&lt;/pre&gt;
            &lt;p editor_id="mce_editor_0"&gt;The preceding line of code, with the help of the  "new" keyword, gives you a new type&lt;br /&gt;
            that has three properties: hair, skin,  and teethCount. Behind the scenes, the C#&lt;br /&gt;
            compiler would create a class that  looks as follows:&lt;/p&gt;
            &lt;pre&gt;class __Anonymous1&lt;br /&gt;{&lt;br /&gt;   private string _hair = "black";&lt;br /&gt;   private string _skin = "green";&lt;br /&gt;   private int _teeth   = 64;&lt;br /&gt;   public string hair {get { return _hair; } set { _hair = value; }}&lt;br /&gt;   public string skin {get { return _skin; } set { _skin = value; }}&lt;br /&gt;   public int teeth {get { return _teeth; } set { _teeth = value; }}&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;
            &lt;p editor_id="mce_editor_0"&gt;In fact, if another anonymous type that specified  the same sequence of names and &lt;br /&gt;
            types were created, the compiler would be  smart enough to create only a single &lt;br /&gt;
            anonymous type for both instances to  use. Also, because the instances are, as you&lt;br /&gt;
            may have guessed, simply  instances of the same class, they can be exchanged&lt;br /&gt;
            because the types are  really the same.&lt;br /&gt;
            &lt;/p&gt;
            &lt;p editor_id="mce_editor_0"&gt;Now you have a class, but you still need something  to hold an instance of the above&lt;br /&gt;
            class. This is where the "var" keyword comes  in handy; it lets you hold a statically &lt;br /&gt;
            typed instance of the above instance  of the anonymous type. Here is a rather simple&lt;br /&gt;
            and easy use of an anonymous  type:&lt;br /&gt;
            &lt;/p&gt;
            &lt;pre&gt;var frankenstein = new {hair="black", skin="green", teethCount=64}&lt;/pre&gt;
            &lt;h3 editor_id="mce_editor_0"&gt;&lt;span class="bluetxt" editor_id="mce_editor_0"&gt;&lt;u&gt;Extension Methods&lt;/u&gt;&lt;/span&gt;&lt;/h3&gt;
            &lt;p editor_id="mce_editor_0"&gt;Extension methods enable you to extend various types  with additional static methods.&lt;br /&gt;
            However, they are quite limited and should be  used as a last resort—only where&lt;br /&gt;
            instance methods are insufficient.&lt;br /&gt;
            &lt;/p&gt;
            &lt;p editor_id="mce_editor_0"&gt;Extension methods can be declared only in static  classes and are identified by the&lt;br /&gt;
            keyword "this" as a modifier on the first  parameter of the method. The following is&lt;br /&gt;
            an example of a valid extension  method:&lt;/p&gt;
            &lt;pre&gt;public static int ToInt32(this string s)&lt;br /&gt;{&lt;br /&gt;   return Convert.ToInt32(s) ;&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;
            &lt;p editor_id="mce_editor_0"&gt;If the static class that contains the above method  is imported using the "using" keyword&lt;br /&gt;
            , the ToInt32 method will appear in  existing types (albeit in lower precedence to existing&lt;br /&gt;
            instance methods), and  you will be able to compile and execute code that looks as follows:&lt;br /&gt;
            &lt;/p&gt;
            &lt;pre&gt;string s = "1";&lt;br /&gt;int i    = s.ToInt32();&lt;br /&gt;&lt;/pre&gt;
            &lt;p editor_id="mce_editor_0"&gt;This allows you to take advantage of the extensible  nature of various built-in or defined&lt;br /&gt;
            types and add newer methods to  them.&lt;/p&gt;
            &lt;h3 editor_id="mce_editor_0"&gt;&lt;span class="bluetxt" editor_id="mce_editor_0"&gt;&lt;u&gt;Object and Collection Initializers&lt;/u&gt;&lt;/span&gt;&lt;/h3&gt;
            &lt;p editor_id="mce_editor_0"&gt;C# 3.0 is expected to allow you to include an  initializer that specifies the initial values &lt;br /&gt;
            of the members of a newly  created object or collection. This enables you to combine &lt;br /&gt;
            declaration and  initialization in one step.&lt;/p&gt;
            &lt;p&gt;For instance, if you defined a CoOrdinate class as follows:&lt;br /&gt;
            &lt;/p&gt;
            &lt;pre&gt;public class CoOrdinate&lt;br /&gt;{&lt;br /&gt;   public int x ;&lt;br /&gt;   public int y;&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;
            &lt;p editor_id="mce_editor_0"&gt;You then could declare and initialize a CoOrdinate  object using an object initializer, &lt;br /&gt;
            like this:&lt;br /&gt;
            &lt;br /&gt;
            var myCoOrd = new  CoOrdinate{ x = 0, y= 0} ;&lt;/p&gt;
            &lt;p editor_id="mce_editor_0"&gt;The above code may have made you raise your eyebrows  and ask, "Why not just write&lt;br /&gt;
            the following:"&lt;/p&gt;
            &lt;pre&gt;var myCoOrd = new CoOrdinate(0, 0) ;&lt;/pre&gt;
            &lt;blockquote editor_id="mce_editor_0"&gt;&lt;strong&gt;Note:&lt;/strong&gt; I never declared a constructor  that accepted two parameters in my class.&lt;br /&gt;
            In fact, initializing the object  using an object initializer essentially is equivalent to &lt;br /&gt;
            calling a  parameterless (default) constructor of the CoOrdinate object and then assigning  the relevant values.&lt;/blockquote&gt;
            &lt;p editor_id="mce_editor_0"&gt;Similarly, you should easily be able to give values  to collections in a rather concise and &lt;br /&gt;
            compact manner in C# 3.0. For  instance, the following C# 2.0 code:&lt;/p&gt;
            &lt;pre&gt;List&amp;lt;string&amp;gt; animals = new List&amp;lt;string&amp;gt;();&lt;br /&gt;animals.Add("monkey");&lt;br /&gt;animals.Add("donkey");&lt;br /&gt;animals.Add("cow");&lt;br /&gt;animals.Add("dog");&lt;br /&gt;animals.Add("cat");&lt;br /&gt;&lt;/pre&gt;
            &lt;p&gt;Now can be shortened to simply:&lt;/p&gt;
            &lt;pre editor_id="mce_editor_0"&gt;List&amp;lt;string&amp;gt; animals = new List&amp;lt;string&amp;gt; {&lt;br /&gt;   "monkey", "donkey", "cow", "dog", "cat" } ;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;&lt;span class="bluetxt"&gt;&lt;u&gt;Lambda Expressions: The Espresso of Anonymous Methods&lt;br /&gt;&lt;/u&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p editor_id="mce_editor_0"&gt;C# 1.x allowed you to write code blocks in methods, which you could invoke&lt;br /&gt;easily using delegates. Delegates are definitely useful, and they are used&lt;br /&gt;throughout the framework, but in many instances you had to declare a method&lt;br /&gt;or a class just to use one. Thus, to give you an easier and more concise way&lt;br /&gt; of writing code, C# 2.0 allowed you to replace standard calls to delegates &lt;br /&gt;with anonymous methods. The following code may have been written in .NET 1.1&lt;br /&gt;or earlier:&lt;br /&gt; &lt;/p&gt;&lt;pre&gt;class Program&lt;br /&gt;{&lt;br /&gt;   delegate void DemoDelegate();&lt;br /&gt;   static void Main(string[] args)&lt;br /&gt;   {&lt;br /&gt;      DemoDelegate myDelegate = new DemoDelegate(SayHi);&lt;br /&gt;      myDelegate(); &lt;br /&gt;   }&lt;br /&gt;   void SayHi()&lt;br /&gt;   {&lt;br /&gt;      Console.Writeline("Hiya!!") ;&lt;br /&gt;   }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;
            &lt;br /&gt;
            &lt;p&gt;In C# 2.0, using anonymous methods, you could rewrite the code as follows:&lt;br /&gt;
            &lt;br /&gt;
            &lt;/p&gt;
            &lt;br /&gt;
            &lt;pre&gt;class Program&lt;br /&gt;{&lt;br /&gt;   delegate void DemoDelegate();&lt;br /&gt;   static void Main(string[] args)&lt;br /&gt;   {&lt;br /&gt;      DemoDelegate myDelegate = delegate()&lt;br /&gt;         {&lt;br /&gt;            Console.Writeline("Hiya!!");&lt;br /&gt;         };&lt;br /&gt;      myDelegate();&lt;br /&gt;   }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;
            &lt;br /&gt;
            &lt;p editor_id="mce_editor_0"&gt;Whereas anonymous methods are a step above method-based delegate invocation,&lt;br /&gt;
            &lt;br /&gt;
            lambda expressions allow you to write anonymous methods in a more concise, &lt;br /&gt;
            &lt;br /&gt;
            functional syntax.&lt;br /&gt;
            &lt;br /&gt;
            &lt;br /&gt;
            &lt;br /&gt;
            &lt;/p&gt;
            &lt;br /&gt;
            &lt;p editor_id="mce_editor_0"&gt; &lt;/p&gt;
            &lt;br /&gt;
            &lt;p editor_id="mce_editor_0"&gt; &lt;/p&gt;
            &lt;br /&gt;
            &lt;p editor_id="mce_editor_0"&gt;You can write a lambda expression as a parameter list, followed by the =&amp;gt;&lt;br /&gt;
            &lt;br /&gt;
            token,followed by an expression or statement block. The above code can&lt;br /&gt;
            &lt;br /&gt;
            now be replaced with the following code:&lt;/p&gt;
            &lt;br /&gt;
            &lt;pre&gt;class Program&lt;br /&gt;{&lt;br /&gt;   delegate void DemoDelegate();&lt;br /&gt;   static void Main(string[] args)&lt;br /&gt;   {&lt;br /&gt;      DemoDelegate myDelegate = () =&amp;gt; Console.WriteLine("Hiya!!") ;&lt;br /&gt;      myDelegate();&lt;br /&gt;   }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;
            &lt;br /&gt;
            &lt;p editor_id="mce_editor_0"&gt;Although Lambda expressions may appear to be simply a more concise way of&lt;br /&gt;
            &lt;br /&gt;
            writing anonymous methods, in reality they also are a functional superset&lt;br /&gt;
            &lt;br /&gt;
            of anonymous methods. Specifically, Lambda expressions offer the following &lt;br /&gt;
            &lt;br /&gt;
            additional functionality:&lt;/p&gt;
            &lt;br /&gt;
            &lt;ul&gt;&lt;br /&gt;
                &lt;li editor_id="mce_editor_0"&gt;They permit parameter types to be inferred. Anonymous methods will &lt;br /&gt;
                &lt;br /&gt;
                require you to explicitly state each and every type. &lt;/li&gt;
                &lt;br /&gt;
                &lt;li editor_id="mce_editor_0"&gt;They can hold either query expressions (described in the following &lt;br /&gt;
                &lt;br /&gt;
                section) or C# statements. &lt;/li&gt;
                &lt;br /&gt;
                &lt;li editor_id="mce_editor_0"&gt;They can be treated as data using expression trees (described later).&lt;br /&gt;
                &lt;br /&gt;
                This cannot be done using Anonymous methods. &lt;/li&gt;
                &lt;br /&gt;
            &lt;/ul&gt;
            &lt;br /&gt;
            &lt;p editor_id="mce_editor_0"&gt; &lt;/p&gt;
            &lt;br /&gt;
            &lt;h3 editor_id="mce_editor_0"&gt;&lt;span class="bluetxt"&gt;&lt;u&gt;Query Expressions&lt;/u&gt;&lt;/span&gt;&lt;/h3&gt;
            &lt;br /&gt;
            &lt;h3 editor_id="mce_editor_0"&gt;&lt;span class="bluetxt"&gt;&lt;/span&gt; &lt;/h3&gt;
            &lt;br /&gt;
            &lt;p editor_id="mce_editor_0"&gt;Even though further enhancements may be introduced in the coming months&lt;br /&gt;
            &lt;br /&gt;
            as C# 3.0 matures, the new features described in the preceding sections &lt;br /&gt;
            &lt;br /&gt;
            make it a lot easier to work with data inside C# in general. This feature,&lt;br /&gt;
            &lt;br /&gt;
            also known as LINQ (Language Integrated Query), allows you to write &lt;br /&gt;
            &lt;br /&gt;
            SQL-like syntax in C#.For instance, you may have a class that describes your&lt;br /&gt;
            &lt;br /&gt;
            data as follows:&lt;/p&gt;
            &lt;br /&gt;
            &lt;p editor_id="mce_editor_0"&gt; &lt;/p&gt;
            &lt;br /&gt;
            &lt;p editor_id="mce_editor_0"&gt;public class CoOrdinate&lt;/p&gt;
            &lt;br /&gt;
            &lt;br /&gt;
            &lt;br /&gt;
            {&lt;br /&gt;
            &lt;br /&gt;
            public int x ;&lt;br /&gt;
            &lt;br /&gt;
            public int y;&lt;br /&gt;
            &lt;br /&gt;
            }&lt;br /&gt;
            &lt;br /&gt;
            &lt;p editor_id="mce_editor_0"&gt;You now could easily declare the logical equivalent of a database table &lt;br /&gt;
            &lt;br /&gt;
            inside C# as follows:&lt;/p&gt;
            &lt;br /&gt;
            &lt;pre&gt;// Use Object and collection initializers&lt;br /&gt;List&amp;lt;CoOrdinate&amp;gt; coords = ... ;&lt;br /&gt;&lt;/pre&gt;
            &lt;br /&gt;
            &lt;p editor_id="mce_editor_0"&gt;And now that you have your data as a collection that implements &lt;br /&gt;
            &lt;br /&gt;
            IEnumerable&amp;lt;T&amp;gt;, you easily can query this data as follows:&lt;br /&gt;
            &lt;br /&gt;
            &lt;/p&gt;
            &lt;br /&gt;
            &lt;pre&gt;var filteredCoords =&lt;br /&gt;   from c in coords&lt;br /&gt;   where x == 1&lt;br /&gt;   select (c.x, c.y)&lt;br /&gt;&lt;/pre&gt;
            &lt;br /&gt;
            &lt;p editor_id="mce_editor_0"&gt;In the SQL-like syntax above, "from", "where", and "select" are query &lt;br /&gt;
            &lt;br /&gt;
            expressions that take advantage of C# 3.0 features such as anonymous &lt;br /&gt;
            &lt;br /&gt;
            types, extension methods, implicit typed local variables, and so forth.&lt;br /&gt;
            &lt;br /&gt;
            This way, you can leverage SQL-like syntax and work with disconnected &lt;br /&gt;
            &lt;br /&gt;
            data easily.Each query expression is actually translated into a C#-like&lt;br /&gt;
            &lt;br /&gt;
            invocation behind the scenes. For instance, the following:&lt;/p&gt;
            &lt;br /&gt;
            &lt;p editor_id="mce_editor_0"&gt;&lt;br /&gt;
            &lt;br /&gt;
             &lt;/p&gt;
            &lt;br /&gt;
            &lt;pre editor_id="mce_editor_0"&gt;where x == 1&lt;/pre&gt;
            &lt;br /&gt;
            &lt;p&gt;Translates to this:&lt;br /&gt;
            &lt;br /&gt;
            &lt;/p&gt;
            &lt;br /&gt;
            &lt;pre&gt;coords.where(c =&amp;gt; c.x == 1)&lt;/pre&gt;
            &lt;br /&gt;
            &lt;p editor_id="mce_editor_0"&gt;As you can see, the above looks an awful lot like a lambda expression &lt;br /&gt;
            &lt;br /&gt;
            and extension method. C# 3.0 has many other query expressions and rules &lt;br /&gt;
            &lt;br /&gt;
            that surround them.&lt;/p&gt;
            &lt;br /&gt;
            &lt;p editor_id="mce_editor_0"&gt;&lt;br /&gt;
            &lt;br /&gt;
             &lt;/p&gt;
            &lt;br /&gt;
            &lt;h3 editor_id="mce_editor_0"&gt; &lt;/h3&gt;
            &lt;br /&gt;
            &lt;h3 editor_id="mce_editor_0"&gt;&lt;span class="bluetxt"&gt;&lt;/span&gt; &lt;/h3&gt;
            &lt;br /&gt;
            &lt;h3 editor_id="mce_editor_0"&gt;&lt;span class="bluetxt"&gt;&lt;u&gt;Expression Trees&lt;/u&gt;&lt;/span&gt;&lt;/h3&gt;
            &lt;br /&gt;
            &lt;h3 editor_id="mce_editor_0"&gt;&lt;span class="bluetxt"&gt;&lt;/span&gt; &lt;/h3&gt;
            &lt;br /&gt;
            &lt;p editor_id="mce_editor_0"&gt;C# 3.0 includes a new type that allows expressions to be treated as data&lt;br /&gt;
            &lt;br /&gt;
            at runtime.This type, System.Expressions.Expression&amp;lt;T&amp;gt;, is simply an &lt;br /&gt;
            &lt;br /&gt;
            in-memory representation of a lambda expression. The end result is that &lt;br /&gt;
            &lt;br /&gt;
            your code can modify and inspect lambda expressions at runtime.&lt;/p&gt;
            &lt;br /&gt;
            &lt;p editor_id="mce_editor_0"&gt;&lt;br /&gt;
            &lt;br /&gt;
            &lt;br /&gt;
            &lt;br /&gt;
             &lt;/p&gt;
            &lt;br /&gt;
            &lt;p editor_id="mce_editor_0"&gt; &lt;/p&gt;
            &lt;br /&gt;
            &lt;p editor_id="mce_editor_0"&gt;&lt;br /&gt;
            &lt;br /&gt;
             &lt;/p&gt;
            &lt;br /&gt;
            &lt;p editor_id="mce_editor_0"&gt;The following is an example of an expression tree:&lt;/p&gt;
            &lt;br /&gt;
            &lt;pre&gt;Expression&amp;lt;DemoDelegate&amp;gt; filter = () =&amp;gt; Console.WriteLine("Hiya!!") ;&lt;/pre&gt;
            &lt;br /&gt;
            &lt;p editor_id="mce_editor_0"&gt;With the above expression tree setup, you easily can inspect the contents &lt;br /&gt;
            &lt;br /&gt;
            of the tree by using various properties on the filter variable.&lt;/p&gt;
            &lt;br /&gt;
            &lt;p editor_id="mce_editor_0"&gt; &lt;/p&gt;
            &lt;br /&gt;
            &lt;h3 editor_id="mce_editor_0"&gt;&lt;span class="bluetxt"&gt;&lt;u&gt;One to Grow On&lt;/u&gt;&lt;/span&gt;&lt;/h3&gt;
            &lt;br /&gt;
            &lt;h3 editor_id="mce_editor_0"&gt;&lt;span class="bluetxt"&gt;&lt;/span&gt; &lt;/h3&gt;
            &lt;br /&gt;
            &lt;p editor_id="mce_editor_0"&gt;C# 3.0 offers incredible new features that make your work as an application &lt;br /&gt;
            &lt;br /&gt;
            developer and architect a lot easier, and yet it remains a programming &lt;br /&gt;
            &lt;br /&gt;
            language that lends itself to stricter and cleaner architecture.&lt;/p&gt;
            &lt;br /&gt;
            &lt;p editor_id="mce_editor_0"&gt; &lt;/p&gt;
            &lt;br /&gt;
            &lt;p editor_id="mce_editor_0"&gt;C# 3.0 is in its infancy right now and it will mature in the coming months,&lt;br /&gt;
            &lt;br /&gt;
            but given the sizable impact its changes will have on the surrounding .NET &lt;br /&gt;
            &lt;br /&gt;
            Framework, its recommended architecture, and design patterns, definitely &lt;br /&gt;
            &lt;br /&gt;
            keep your eye on it.&lt;/p&gt;
            &lt;br /&gt;
            &lt;/pre&gt;
            &lt;/td&gt;
        &lt;/tr&gt;
    &lt;/tbody&gt;
&lt;/table&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=120951"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=120951" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/Gaurav/aggbug/120951.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Gaurav Taneja</dc:creator>
            <guid>http://geekswithblogs.net/Gaurav/archive/2008/04/01/120951.aspx</guid>
            <pubDate>Wed, 02 Apr 2008 04:24:33 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/Gaurav/comments/120951.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/Gaurav/archive/2008/04/01/120951.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/Gaurav/comments/commentRss/120951.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/Gaurav/services/trackbacks/120951.aspx</trackback:ping>
        </item>
    </channel>
</rss>