<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:pingback="http://madskills.com/public/xml/rss/module/pingback/" 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:dc="http://purl.org/dc/elements/1.1/" version="2.0">
  <channel>
    <title>DotNetSurfers Blog</title>
    <link>http://www.dotnetsurfers.com/Blog/</link>
    <description>Thanks for stopping by. My name is Latish Sehgal and this is my blog on dot net and related technologies. </description>
    <language>en-us</language>
    <copyright>Latish Sehgal</copyright>
    <lastBuildDate>Thu, 20 Nov 2008 01:08:49 GMT</lastBuildDate>
    <generator>newtelligence dasBlog 2.0.7226.0</generator>
    <managingEditor>latish.sehgal@dotnetsurfers.com</managingEditor>
    <webMaster>latish.sehgal@dotnetsurfers.com</webMaster>
    <item>
      <trackback:ping>http://www.dotnetsurfers.com/Blog/Trackback.aspx?guid=ac2abf8b-aa67-4f0d-a223-17e9bdff3e73</trackback:ping>
      <pingback:server>http://www.dotnetsurfers.com/Blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.dotnetsurfers.com/Blog/PermaLink,guid,ac2abf8b-aa67-4f0d-a223-17e9bdff3e73.aspx</pingback:target>
      <dc:creator>Latish Sehgal</dc:creator>
      <wfw:comment>http://www.dotnetsurfers.com/Blog/CommentView,guid,ac2abf8b-aa67-4f0d-a223-17e9bdff3e73.aspx</wfw:comment>
      <wfw:commentRss>http://www.dotnetsurfers.com/Blog/SyndicationService.asmx/GetEntryCommentsRss?guid=ac2abf8b-aa67-4f0d-a223-17e9bdff3e73</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
I just came back after attending the developer track at Dallas TechDays. It was a
really good session. <a href="http://blogs.msdn.com/zainnab/" target="_blank">Zain
Naboulsi</a> was the main presenter, and man can this guy talk! He gave a 3 part presentation
by himself that spanned to almost 4 hours. Here's a picture I clicked with my cellphone
during one of the breaks when he was answering audience queries.
</p>
        <p>
          <img height="490" src="http://www.dotnetsurfers.com/blog/images/dallastechdays.jpg" width="653" />
        </p>
        <p>
Here's a brief break up of his talk today -
</p>
        <ul>
          <ul>
            <li>
Sql Server 2008 New Features 
<ul><li>
Spatial Data 
</li><li>
Table variables 
</li><li>
MERGE clause 
</li><li>
new DateTime Datatypes 
</li><li>
Entity Framework (not exactly part of Sql Server 2008, but he covered this anyways) 
</li></ul></li>
            <li>
VSTO 
<ul><li>
Improvements in VSTO for VS2008 
</li><li>
Sample Addins for Office 2007 using VSTO 
</li></ul></li>
            <li>
Silverlight 
<ul><li>
Improvements in Silverlight 2.0 
</li><li>
Simple Animations using VS2008 and Blend simultaneously 
</li></ul></li>
          </ul>
        </ul>
        <p>
It was a great interactive session, and everybody was impressed with Zain's breadth
of knowledge over the different technologies. Some people did want more coding in
the Silverlight session, and he promised to follow up on his blog with that. The <a href="http://dallasasp.net/" target="_blank">Dallas
asp.net user group</a> president Toi Wright also mentioned the <a href="http://www.wearemicrosoft.com/WAM/Home.aspx" target="_blank">Microsoft
Charity Challenge weekend</a> in January where you get to code for you favorite charity
over a weekend (Jan16-18, 2009). I have already registered for that and looking forward
to a fun filled weekend.
</p>
        <p>
Also, all attendees today walked off with a free Windows Vista Ultimate, so that's
always good :).
</p>
        <img width="0" height="0" src="http://www.dotnetsurfers.com/Blog/aggbug.ashx?id=ac2abf8b-aa67-4f0d-a223-17e9bdff3e73" />
      </body>
      <title>Dallas TechDays - Developer Track</title>
      <guid isPermaLink="false">http://www.dotnetsurfers.com/Blog/PermaLink,guid,ac2abf8b-aa67-4f0d-a223-17e9bdff3e73.aspx</guid>
      <link>http://www.DotNetSurfers.com/Blog/2008/11/20/DallasTechDaysDeveloperTrack.aspx</link>
      <pubDate>Thu, 20 Nov 2008 01:08:49 GMT</pubDate>
      <description>&lt;p&gt;
I just came back after attending the developer track at Dallas TechDays. It was a
really good session. &lt;a href="http://blogs.msdn.com/zainnab/" target="_blank"&gt;Zain
Naboulsi&lt;/a&gt; was the main presenter, and man can this guy talk! He gave a 3 part presentation
by himself that spanned to almost 4 hours. Here's a picture I clicked with my cellphone
during one of the breaks when he was answering audience queries.
&lt;/p&gt;
&lt;p&gt;
&lt;img height="490" src="http://www.dotnetsurfers.com/blog/images/dallastechdays.jpg" width="653" /&gt; 
&lt;/p&gt;
&lt;p&gt;
Here's a brief break up of his talk today -
&lt;/p&gt;
&lt;ul&gt;
&lt;ul&gt;
&lt;li&gt;
Sql Server 2008 New Features 
&lt;ul&gt;
&lt;li&gt;
Spatial Data 
&lt;/li&gt;
&lt;li&gt;
Table variables 
&lt;/li&gt;
&lt;li&gt;
MERGE clause 
&lt;/li&gt;
&lt;li&gt;
new DateTime Datatypes 
&lt;/li&gt;
&lt;li&gt;
Entity Framework (not exactly part of Sql Server 2008, but he covered this anyways) 
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
VSTO 
&lt;ul&gt;
&lt;li&gt;
Improvements in VSTO for VS2008 
&lt;/li&gt;
&lt;li&gt;
Sample Addins for Office 2007 using VSTO 
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
Silverlight 
&lt;ul&gt;
&lt;li&gt;
Improvements in Silverlight 2.0 
&lt;/li&gt;
&lt;li&gt;
Simple Animations using VS2008 and Blend simultaneously 
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;p&gt;
It was a great interactive session, and everybody was impressed with Zain's breadth
of knowledge over the different technologies. Some people did want more coding in
the Silverlight session, and he promised to follow up on his blog with that. The &lt;a href="http://dallasasp.net/" target="_blank"&gt;Dallas
asp.net user group&lt;/a&gt; president Toi Wright also mentioned the &lt;a href="http://www.wearemicrosoft.com/WAM/Home.aspx" target="_blank"&gt;Microsoft
Charity Challenge weekend&lt;/a&gt; in January where you get to code for you favorite charity
over a weekend (Jan16-18, 2009). I have already registered for that and looking forward
to a fun filled weekend.
&lt;/p&gt;
&lt;p&gt;
Also, all attendees today walked off with a free Windows Vista Ultimate, so that's
always good :).
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.dotnetsurfers.com/Blog/aggbug.ashx?id=ac2abf8b-aa67-4f0d-a223-17e9bdff3e73" /&gt;</description>
      <comments>http://www.dotnetsurfers.com/Blog/CommentView,guid,ac2abf8b-aa67-4f0d-a223-17e9bdff3e73.aspx</comments>
    </item>
    <item>
      <trackback:ping>http://www.dotnetsurfers.com/Blog/Trackback.aspx?guid=5eb69d72-b844-412a-9da2-ac8f21b5a714</trackback:ping>
      <pingback:server>http://www.dotnetsurfers.com/Blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.dotnetsurfers.com/Blog/PermaLink,guid,5eb69d72-b844-412a-9da2-ac8f21b5a714.aspx</pingback:target>
      <dc:creator>Latish Sehgal</dc:creator>
      <wfw:comment>http://www.dotnetsurfers.com/Blog/CommentView,guid,5eb69d72-b844-412a-9da2-ac8f21b5a714.aspx</wfw:comment>
      <wfw:commentRss>http://www.dotnetsurfers.com/Blog/SyndicationService.asmx/GetEntryCommentsRss?guid=5eb69d72-b844-412a-9da2-ac8f21b5a714</wfw:commentRss>
      <slash:comments>5</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Most of you might have seen that while working on a Website project, the CSS gets
harder to maintain as the site ages. This might be due to new developers coming in
to the project, removal of UI elements (but not the corresponding CSS), refactoring
and so on. I think it is a good idea to revisit and clean your css every few weeks
before it becomes totally unmanageable. In this post, i am going to outline 2 ways
to do so 
<br />
There is a great Firefox plugin called <a href="http://www.sitepoint.com/dustmeselectors/" target="_blank">Dust-Me
Selectors</a> which can test individual web pages or spider your Website to find unused
CSS selectors. As you navigate from page to page in your Website, it maintains a list
of unused CSS selectors that you can remove. 
<br />
If for some reason you cannot use the plugin, or would like to be more sure, I have
also created a small utility (for personal use) that can parse a CSS file to create
a list of defined classes and go through the code base to determine which of those
classes are actually being used. This utility usually gives me a list of unused CSS
classes with an accuracy of greater than 95%. It cannot give a 100% accurate output
in cases where the css classes are being assigned dynamically in JavaScript or server
side code (it catches some of them, but not all). But it gives you a great starting
point. I normally search my codebase for the CSS class name before commenting it out
from the CSS file to be sure its not being used in the code anywhere. I delete the
commented out CSS classes after a couple of releases if I do not see any issues. 
<br />
You can download the utility (named CssCleaner) from <a href="http://www.dotnetsurfers.com/utils/csscleaner.zip" target="_blank">here</a>.
Please remember that this does not come with any kind of warranty, I am just sharing
this so that it can be helpful to somebody in a situation similar to mine. 
<br />
CssCleaner is pretty simple to use. Download the app, unzip it to a folder on your
system. You should see 2 files - CssCleaner.exe and CssCleaner.exe.config. The config
file is needed by the application and is present to make a couple of things configurable.
I'll talk more about it in a second.
</p>
        <p>
          <img src="http://www.dotnetsurfers.com/blog/images/csshelper.gif" />
          <br />
After you run the application, click on "Choose Application Folder" and
choose the code base folder for your Website. Click on "Choose CSS File"
and select the CSS file that you want to analyze. Change the File Filter if you would
like to process files different from the default types. Leaving that textbox blank
processes all files. Click on "Process" to run the utility. The unused classes
get loaded on the right hand side. In my use, the tool has been pretty fast. 
<br />
If anybody is interested in the implementation, i use a parser/scanner to parse the
CSS file similar to <a href="http://www.codeproject.com/KB/recipes/CSSParser.aspx" target="_blank">this</a>.
Then I go through all the files in the code base, building a list of  used CSS
classes using a regular expression. The regular expression is picked up from the config
file, so you can tweak it as you find suitable. The other thing picked up from the
config file is the list of default file types to search for. It then compares the
used CSS class list against the available CSS classes and displays the unused classes
list. 
<br />
If you have any suggestions for the tool, or find any bugs, please leave a comment
or email me (latish.sehgal at gmail dot com) and I'll try my best to implement it.
I hope that you find this tool helpful.
</p>
        <img width="0" height="0" src="http://www.dotnetsurfers.com/Blog/aggbug.ashx?id=5eb69d72-b844-412a-9da2-ac8f21b5a714" />
      </body>
      <title>Removing unused CSS Classes from your web application</title>
      <guid isPermaLink="false">http://www.dotnetsurfers.com/Blog/PermaLink,guid,5eb69d72-b844-412a-9da2-ac8f21b5a714.aspx</guid>
      <link>http://www.DotNetSurfers.com/Blog/2008/10/02/RemovingUnusedCSSClassesFromYourWebApplication.aspx</link>
      <pubDate>Thu, 02 Oct 2008 02:46:35 GMT</pubDate>
      <description>&lt;p&gt;
Most of you might have seen that while working on a Website project, the CSS gets
harder to maintain as the site ages. This might be due to new developers coming in
to the project, removal of UI elements (but not the corresponding CSS), refactoring
and so on. I think it is a good idea to revisit and clean your css every few weeks
before it becomes totally unmanageable. In this post, i am going to outline 2 ways
to do so 
&lt;br /&gt;
There is a great Firefox plugin called &lt;a href="http://www.sitepoint.com/dustmeselectors/" target="_blank"&gt;Dust-Me
Selectors&lt;/a&gt; which can test individual web pages or spider your Website to find unused
CSS selectors. As you navigate from page to page in your Website, it maintains a list
of unused CSS selectors that you can remove. 
&lt;br /&gt;
If for some reason you cannot use the plugin, or would like to be more sure, I have
also created a small utility (for personal use) that can parse a CSS file to create
a list of defined classes and go through the code base to determine which of those
classes are actually being used. This utility usually gives me a list of unused CSS
classes with an accuracy of greater than 95%. It cannot give a 100% accurate output
in cases where the css classes are being assigned dynamically in JavaScript or server
side code (it catches some of them, but not all). But it gives you a great starting
point. I normally search my codebase for the CSS class name before commenting it out
from the CSS file to be sure its not being used in the code anywhere. I delete the
commented out CSS classes after a couple of releases if I do not see any issues. 
&lt;br /&gt;
You can download the utility (named CssCleaner) from &lt;a href="http://www.dotnetsurfers.com/utils/csscleaner.zip" target="_blank"&gt;here&lt;/a&gt;.
Please remember that this does not come with any kind of warranty, I am just sharing
this so that it can be helpful to somebody in a situation similar to mine. 
&lt;br /&gt;
CssCleaner is pretty simple to use. Download the app, unzip it to a folder on your
system. You should see 2 files - CssCleaner.exe and CssCleaner.exe.config. The config
file is needed by the application and is present to make a couple of things configurable.
I'll talk more about it in a second.
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://www.dotnetsurfers.com/blog/images/csshelper.gif" /&gt; 
&lt;br /&gt;
After you run the application, click on &amp;quot;Choose Application Folder&amp;quot; and
choose the code base folder for your Website. Click on &amp;quot;Choose CSS File&amp;quot;
and select the CSS file that you want to analyze. Change the File Filter if you would
like to process files different from the default types. Leaving that textbox blank
processes all files. Click on &amp;quot;Process&amp;quot; to run the utility. The unused classes
get loaded on the right hand side. In my use, the tool has been pretty fast. 
&lt;br /&gt;
If anybody is interested in the implementation, i use a parser/scanner to parse the
CSS file similar to &lt;a href="http://www.codeproject.com/KB/recipes/CSSParser.aspx" target="_blank"&gt;this&lt;/a&gt;.
Then I go through all the files in the code base, building a list of&amp;#160; used CSS
classes using a regular expression. The regular expression is picked up from the config
file, so you can tweak it as you find suitable. The other thing picked up from the
config file is the list of default file types to search for. It then compares the
used CSS class list against the available CSS classes and displays the unused classes
list. 
&lt;br /&gt;
If you have any suggestions for the tool, or find any bugs, please leave a comment
or email me (latish.sehgal at gmail dot com) and I'll try my best to implement it.
I hope that you find this tool helpful.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.dotnetsurfers.com/Blog/aggbug.ashx?id=5eb69d72-b844-412a-9da2-ac8f21b5a714" /&gt;</description>
      <comments>http://www.dotnetsurfers.com/Blog/CommentView,guid,5eb69d72-b844-412a-9da2-ac8f21b5a714.aspx</comments>
      <category>asp.net</category>
      <category>css</category>
      <category>utilities</category>
    </item>
    <item>
      <trackback:ping>http://www.dotnetsurfers.com/Blog/Trackback.aspx?guid=54a47cea-b252-470f-bedb-c45dad192a31</trackback:ping>
      <pingback:server>http://www.dotnetsurfers.com/Blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.dotnetsurfers.com/Blog/PermaLink,guid,54a47cea-b252-470f-bedb-c45dad192a31.aspx</pingback:target>
      <dc:creator>Latish Sehgal</dc:creator>
      <wfw:comment>http://www.dotnetsurfers.com/Blog/CommentView,guid,54a47cea-b252-470f-bedb-c45dad192a31.aspx</wfw:comment>
      <wfw:commentRss>http://www.dotnetsurfers.com/Blog/SyndicationService.asmx/GetEntryCommentsRss?guid=54a47cea-b252-470f-bedb-c45dad192a31</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
As web application developers, we depend on the Session to store data pertaining to
the user. It's a common scenario that the user might take a half an hour break to
take a phone call or a meal while using the application and come back to find out
the site behaving in an unexpected manner because his session would have expired (default
value for session timeout is 20 minutes). As a developer, it's a good practice to
check a session variable for null value before using it, but you can create a much
more user friendly environment by redirecting the user to a web page indicating that
his session has timed out. The best way to do this is by creating a user control that
you can just drop on your master or content page as desired. 
<br />
I looked around for such solutions, and I have described below 2 such good implementations
that should cover most scenarios. 
<br /><strong><u>Implementation</u></strong> 1 
<br />
You can create a web control similar to what Peter Bromberg has outlined <a href="http://www.eggheadcafe.com/articles/20051228.asp" target="_blank">here</a>. 
<br />
This control checks for the HttpSessionState's IsNewSession property and the presence
of the ASP.NET_SessionId cookie to determine if the user session has expired. It redirects
the user to a timeout page if the session has expired. All you need to do is drop
the control on your page and assign the RedirectURL property to your timeout page.
The control works for both synchronous and aynchronous postbacks (for those of you
using Asp.Net Ajax), and the only downfall for this method is that there's no way
to warn the user that his page is about to timeout. 
<br /><strong><u>Implementation</u></strong> 2 
<br />
If you would like to warn the user before his session actually times out, you can
create an Asp.net AJAX friendly control similar to what Travis Collin's <a href="http://weblogs.asp.net/traviscollins/archive/2008/02/22/ajax-timeout-server-control.aspx" target="_blank">solution</a>. 
<br />
This control pops up a warning to the user some time before his session times out
and gives him a chance to save his session. You can configure the UI of the warning
and the time for warning and timeout while using the control. The only thing to watch
out for here is that the developer has to make sure the session (and form) timeout
value are in sync with the one configured on the control. I faced a small issue in
this implementation because it was not recognizing asynchronous postbacks as user
activity. To fix this, all i had to do was add a client side handler for page load
and reset the timeout there as well. 
<br />
    initialize : function()  
<br />
    {   
<br />
        .... 
<br />
        Sys.Application.add_load(Function.createDelegate(this,
this._handlePageLoaded)); 
<br />
        ..... 
<br />
    }, 
<br />
        _handlePageLoaded: function(sender, e) 
<br />
    { 
<br />
        this._resetTimeout(); 
<br />
    },
</p>
        <img width="0" height="0" src="http://www.dotnetsurfers.com/Blog/aggbug.ashx?id=54a47cea-b252-470f-bedb-c45dad192a31" />
      </body>
      <title>Asp.Net Session Timeout control</title>
      <guid isPermaLink="false">http://www.dotnetsurfers.com/Blog/PermaLink,guid,54a47cea-b252-470f-bedb-c45dad192a31.aspx</guid>
      <link>http://www.DotNetSurfers.com/Blog/2008/08/29/AspNetSessionTimeoutControl.aspx</link>
      <pubDate>Fri, 29 Aug 2008 22:32:43 GMT</pubDate>
      <description>&lt;p&gt;
As web application developers, we depend on the Session to store data pertaining to
the user. It's a common scenario that the user might take a half an hour break to
take a phone call or a meal while using the application and come back to find out
the site behaving in an unexpected manner because his session would have expired (default
value for session timeout is 20 minutes). As a developer, it's a good practice to
check a session variable for null value before using it, but you can create a much
more user friendly environment by redirecting the user to a web page indicating that
his session has timed out. The best way to do this is by creating a user control that
you can just drop on your master or content page as desired. 
&lt;br /&gt;
I looked around for such solutions, and I have described below 2 such good implementations
that should cover most scenarios. 
&lt;br /&gt;
&lt;strong&gt;&lt;u&gt;Implementation&lt;/u&gt;&lt;/strong&gt; 1 
&lt;br /&gt;
You can create a web control similar to what Peter Bromberg has outlined &lt;a href="http://www.eggheadcafe.com/articles/20051228.asp" target="_blank"&gt;here&lt;/a&gt;. 
&lt;br /&gt;
This control checks for the HttpSessionState's IsNewSession property and the presence
of the ASP.NET_SessionId cookie to determine if the user session has expired. It redirects
the user to a timeout page if the session has expired. All you need to do is drop
the control on your page and assign the RedirectURL property to your timeout page.
The control works for both synchronous and aynchronous postbacks (for those of you
using Asp.Net Ajax), and the only downfall for this method is that there's no way
to warn the user that his page is about to timeout. 
&lt;br /&gt;
&lt;strong&gt;&lt;u&gt;Implementation&lt;/u&gt;&lt;/strong&gt; 2 
&lt;br /&gt;
If you would like to warn the user before his session actually times out, you can
create an Asp.net AJAX friendly control similar to what Travis Collin's &lt;a href="http://weblogs.asp.net/traviscollins/archive/2008/02/22/ajax-timeout-server-control.aspx" target="_blank"&gt;solution&lt;/a&gt;. 
&lt;br /&gt;
This control pops up a warning to the user some time before his session times out
and gives him a chance to save his session. You can configure the UI of the warning
and the time for warning and timeout while using the control. The only thing to watch
out for here is that the developer has to make sure the session (and form) timeout
value are in sync with the one configured on the control. I faced a small issue in
this implementation because it was not recognizing asynchronous postbacks as user
activity. To fix this, all i had to do was add a client side handler for page load
and reset the timeout there as well. 
&lt;br /&gt;
&amp;#160;&amp;#160;&amp;#160; initialize : function()&amp;#160; 
&lt;br /&gt;
&amp;#160;&amp;#160;&amp;#160; {&amp;#160;&amp;#160; 
&lt;br /&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; .... 
&lt;br /&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Sys.Application.add_load(Function.createDelegate(this,
this._handlePageLoaded)); 
&lt;br /&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ..... 
&lt;br /&gt;
&amp;#160;&amp;#160;&amp;#160; }, 
&lt;br /&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; _handlePageLoaded: function(sender, e) 
&lt;br /&gt;
&amp;#160;&amp;#160;&amp;#160; { 
&lt;br /&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; this._resetTimeout(); 
&lt;br /&gt;
&amp;#160;&amp;#160;&amp;#160; },
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.dotnetsurfers.com/Blog/aggbug.ashx?id=54a47cea-b252-470f-bedb-c45dad192a31" /&gt;</description>
      <comments>http://www.dotnetsurfers.com/Blog/CommentView,guid,54a47cea-b252-470f-bedb-c45dad192a31.aspx</comments>
    </item>
    <item>
      <trackback:ping>http://www.dotnetsurfers.com/Blog/Trackback.aspx?guid=242da52b-aeb1-4552-b76d-192fa108851f</trackback:ping>
      <pingback:server>http://www.dotnetsurfers.com/Blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.dotnetsurfers.com/Blog/PermaLink,guid,242da52b-aeb1-4552-b76d-192fa108851f.aspx</pingback:target>
      <dc:creator>Latish Sehgal</dc:creator>
      <wfw:comment>http://www.dotnetsurfers.com/Blog/CommentView,guid,242da52b-aeb1-4552-b76d-192fa108851f.aspx</wfw:comment>
      <wfw:commentRss>http://www.dotnetsurfers.com/Blog/SyndicationService.asmx/GetEntryCommentsRss?guid=242da52b-aeb1-4552-b76d-192fa108851f</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
We noticed gaps in the borders for some of our controls while using the <a href="http://www.asp.net/AJAX/AjaxControlToolkit/Samples/RoundedCorners/RoundedCorners.aspx" target="_blank">RoundedCorners
Extender</a>. This was a big headache since it seemed to work fine on some pages.
I have included a sample image below.
</p>
        <img src="http://www.dotnetsurfers.com/blog/images/RoundedCorners.jpg" />
        <p>
We finally figured out that on the pages where it was not working, we were injecting
some diagnostic information into our html as comments. Since this was being inserted
before the doctype, it was sending IE into <a href="http://en.wikipedia.org/wiki/Quirks_mode" target="_blank">quirks
mode</a> and that was causing the trouble. Updating the code to insert comments after
Doctype declaration fixed the issue.
</p>
        <p>
Hope this helps somebody out there:).
</p>
        <p>
-Latish Sehgal
</p>
        <img width="0" height="0" src="http://www.dotnetsurfers.com/Blog/aggbug.ashx?id=242da52b-aeb1-4552-b76d-192fa108851f" />
      </body>
      <title>Fixing Gaps in Corners while using Ajax control toolkit RoundedCorners Extender</title>
      <guid isPermaLink="false">http://www.dotnetsurfers.com/Blog/PermaLink,guid,242da52b-aeb1-4552-b76d-192fa108851f.aspx</guid>
      <link>http://www.DotNetSurfers.com/Blog/2008/08/20/FixingGapsInCornersWhileUsingAjaxControlToolkitRoundedCornersExtender.aspx</link>
      <pubDate>Wed, 20 Aug 2008 23:59:17 GMT</pubDate>
      <description>&lt;p&gt;
We noticed gaps in the borders for some of our controls while using the &lt;a href="http://www.asp.net/AJAX/AjaxControlToolkit/Samples/RoundedCorners/RoundedCorners.aspx" target="_blank"&gt;RoundedCorners
Extender&lt;/a&gt;. This was a big headache since it seemed to work fine on some pages.
I have included a sample image below.
&lt;/p&gt;
&lt;img src="http://www.dotnetsurfers.com/blog/images/RoundedCorners.jpg" /&gt; 
&lt;p&gt;
We finally figured out that on the pages where it was not working, we were injecting
some diagnostic information into our html as comments. Since this was being inserted
before the doctype, it was sending IE into &lt;a href="http://en.wikipedia.org/wiki/Quirks_mode" target="_blank"&gt;quirks
mode&lt;/a&gt; and that was causing the trouble. Updating the code to insert comments after
Doctype declaration fixed the issue.
&lt;/p&gt;
&lt;p&gt;
Hope this helps somebody out there:).
&lt;/p&gt;
&lt;p&gt;
-Latish Sehgal
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.dotnetsurfers.com/Blog/aggbug.ashx?id=242da52b-aeb1-4552-b76d-192fa108851f" /&gt;</description>
      <comments>http://www.dotnetsurfers.com/Blog/CommentView,guid,242da52b-aeb1-4552-b76d-192fa108851f.aspx</comments>
      <category>ajax</category>
      <category>asp.net</category>
      <category>extenders</category>
      <category>Rounded Corners</category>
    </item>
    <item>
      <trackback:ping>http://www.dotnetsurfers.com/Blog/Trackback.aspx?guid=d5f8f11c-5ab0-4263-8130-07f11e67d24b</trackback:ping>
      <pingback:server>http://www.dotnetsurfers.com/Blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.dotnetsurfers.com/Blog/PermaLink,guid,d5f8f11c-5ab0-4263-8130-07f11e67d24b.aspx</pingback:target>
      <dc:creator>Latish Sehgal</dc:creator>
      <wfw:comment>http://www.dotnetsurfers.com/Blog/CommentView,guid,d5f8f11c-5ab0-4263-8130-07f11e67d24b.aspx</wfw:comment>
      <wfw:commentRss>http://www.dotnetsurfers.com/Blog/SyndicationService.asmx/GetEntryCommentsRss?guid=d5f8f11c-5ab0-4263-8130-07f11e67d24b</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
You can follow me <a href="http://twitter.com/latish" target="_blank">here</a>.
</p>
        <img width="0" height="0" src="http://www.dotnetsurfers.com/Blog/aggbug.ashx?id=d5f8f11c-5ab0-4263-8130-07f11e67d24b" />
      </body>
      <title>I am on Twitter</title>
      <guid isPermaLink="false">http://www.dotnetsurfers.com/Blog/PermaLink,guid,d5f8f11c-5ab0-4263-8130-07f11e67d24b.aspx</guid>
      <link>http://www.DotNetSurfers.com/Blog/2008/05/14/IAmOnTwitter.aspx</link>
      <pubDate>Wed, 14 May 2008 03:02:30 GMT</pubDate>
      <description>&lt;p&gt;
You can follow me &lt;a href="http://twitter.com/latish" target="_blank"&gt;here&lt;/a&gt;.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.dotnetsurfers.com/Blog/aggbug.ashx?id=d5f8f11c-5ab0-4263-8130-07f11e67d24b" /&gt;</description>
      <comments>http://www.dotnetsurfers.com/Blog/CommentView,guid,d5f8f11c-5ab0-4263-8130-07f11e67d24b.aspx</comments>
    </item>
    <item>
      <trackback:ping>http://www.dotnetsurfers.com/Blog/Trackback.aspx?guid=6440a3ac-a3a5-4bd5-ab3a-528b21533866</trackback:ping>
      <pingback:server>http://www.dotnetsurfers.com/Blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.dotnetsurfers.com/Blog/PermaLink,guid,6440a3ac-a3a5-4bd5-ab3a-528b21533866.aspx</pingback:target>
      <dc:creator>Latish Sehgal</dc:creator>
      <wfw:comment>http://www.dotnetsurfers.com/Blog/CommentView,guid,6440a3ac-a3a5-4bd5-ab3a-528b21533866.aspx</wfw:comment>
      <wfw:commentRss>http://www.dotnetsurfers.com/Blog/SyndicationService.asmx/GetEntryCommentsRss?guid=6440a3ac-a3a5-4bd5-ab3a-528b21533866</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Check out the <a href="http://www.wintellect.com/silverlife/" target="_blank">Silverlight
implementation of John Conway's game of Life</a>.
</p>
        <p>
Keep an eye on your browser CPU Usage :).
</p>
        <img width="0" height="0" src="http://www.dotnetsurfers.com/Blog/aggbug.ashx?id=6440a3ac-a3a5-4bd5-ab3a-528b21533866" />
      </body>
      <title>Cool Silverlight app</title>
      <guid isPermaLink="false">http://www.dotnetsurfers.com/Blog/PermaLink,guid,6440a3ac-a3a5-4bd5-ab3a-528b21533866.aspx</guid>
      <link>http://www.DotNetSurfers.com/Blog/2008/03/07/CoolSilverlightApp.aspx</link>
      <pubDate>Fri, 07 Mar 2008 22:37:43 GMT</pubDate>
      <description>&lt;p&gt;
Check out the &lt;a href="http://www.wintellect.com/silverlife/" target="_blank"&gt;Silverlight
implementation of John Conway's game of Life&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
Keep an eye on your browser CPU Usage :).
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.dotnetsurfers.com/Blog/aggbug.ashx?id=6440a3ac-a3a5-4bd5-ab3a-528b21533866" /&gt;</description>
      <comments>http://www.dotnetsurfers.com/Blog/CommentView,guid,6440a3ac-a3a5-4bd5-ab3a-528b21533866.aspx</comments>
      <category>Silverlight</category>
    </item>
    <item>
      <trackback:ping>http://www.dotnetsurfers.com/Blog/Trackback.aspx?guid=b97939c4-f21f-46f6-8518-03a1890ca0ec</trackback:ping>
      <pingback:server>http://www.dotnetsurfers.com/Blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.dotnetsurfers.com/Blog/PermaLink,guid,b97939c4-f21f-46f6-8518-03a1890ca0ec.aspx</pingback:target>
      <dc:creator>Latish Sehgal</dc:creator>
      <wfw:comment>http://www.dotnetsurfers.com/Blog/CommentView,guid,b97939c4-f21f-46f6-8518-03a1890ca0ec.aspx</wfw:comment>
      <wfw:commentRss>http://www.dotnetsurfers.com/Blog/SyndicationService.asmx/GetEntryCommentsRss?guid=b97939c4-f21f-46f6-8518-03a1890ca0ec</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Get it <a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=8bdaa836-0bba-4393-94db-6c3c4a0c98a1&amp;DisplayLang=en" target="_blank">here</a>. 
</p>
        <p>
This kit includes presentations, labs and demos. 
</p>
        <p>
Now only if I could find time to go through this :(.
</p>
        <img width="0" height="0" src="http://www.dotnetsurfers.com/Blog/aggbug.ashx?id=b97939c4-f21f-46f6-8518-03a1890ca0ec" />
      </body>
      <title>Get free Visual Studio 2008 and .NET Framework Training kit</title>
      <guid isPermaLink="false">http://www.dotnetsurfers.com/Blog/PermaLink,guid,b97939c4-f21f-46f6-8518-03a1890ca0ec.aspx</guid>
      <link>http://www.DotNetSurfers.com/Blog/2008/02/27/GetFreeVisualStudio2008AndNETFrameworkTrainingKit.aspx</link>
      <pubDate>Wed, 27 Feb 2008 16:59:51 GMT</pubDate>
      <description>&lt;p&gt;
Get it &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=8bdaa836-0bba-4393-94db-6c3c4a0c98a1&amp;amp;DisplayLang=en" target="_blank"&gt;here&lt;/a&gt;. 
&lt;/p&gt;
&lt;p&gt;
This kit includes presentations, labs and demos. 
&lt;/p&gt;
&lt;p&gt;
Now only if I could find time to go through this :(.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.dotnetsurfers.com/Blog/aggbug.ashx?id=b97939c4-f21f-46f6-8518-03a1890ca0ec" /&gt;</description>
      <comments>http://www.dotnetsurfers.com/Blog/CommentView,guid,b97939c4-f21f-46f6-8518-03a1890ca0ec.aspx</comments>
      <category>.NET 3.5</category>
      <category>VS2008</category>
    </item>
    <item>
      <trackback:ping>http://www.dotnetsurfers.com/Blog/Trackback.aspx?guid=0f3ce578-abbe-48c2-9e53-7aaa8edb6c56</trackback:ping>
      <pingback:server>http://www.dotnetsurfers.com/Blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.dotnetsurfers.com/Blog/PermaLink,guid,0f3ce578-abbe-48c2-9e53-7aaa8edb6c56.aspx</pingback:target>
      <dc:creator>Latish Sehgal</dc:creator>
      <wfw:comment>http://www.dotnetsurfers.com/Blog/CommentView,guid,0f3ce578-abbe-48c2-9e53-7aaa8edb6c56.aspx</wfw:comment>
      <wfw:commentRss>http://www.dotnetsurfers.com/Blog/SyndicationService.asmx/GetEntryCommentsRss?guid=0f3ce578-abbe-48c2-9e53-7aaa8edb6c56</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">Registration for the "Heroes Happen Here"
MSEvent has now begun.<br />
You can find out more <a href="http://www.microsoft.com/heroeshappenhere/register/default.mspx">here</a>. 
<br /><br /><img src="http://dotnetsurfers.com/blog/images/heroes.jpg" /><br /><br />
Not only do you get to test drive the new products and meet the experts, but you also
get free promotional versions of all 3 products. Its happening in Denver on March
20 at the Colorado Convention Center. 
<br /><br />
This is really cool, looking forward to this one!!! See you there.<br /><br />
-Latish Sehgal<br /><p></p><img width="0" height="0" src="http://www.dotnetsurfers.com/Blog/aggbug.ashx?id=0f3ce578-abbe-48c2-9e53-7aaa8edb6c56" /></body>
      <title>Registration for VS2008, Sql Server 2008 and Windows Server 2008 launch event now open</title>
      <guid isPermaLink="false">http://www.dotnetsurfers.com/Blog/PermaLink,guid,0f3ce578-abbe-48c2-9e53-7aaa8edb6c56.aspx</guid>
      <link>http://www.DotNetSurfers.com/Blog/2008/01/21/RegistrationForVS2008SqlServer2008AndWindowsServer2008LaunchEventNowOpen.aspx</link>
      <pubDate>Mon, 21 Jan 2008 19:08:49 GMT</pubDate>
      <description>Registration for the "Heroes Happen Here" MSEvent has now begun.&lt;br&gt;
You can find out more &lt;a href="http://www.microsoft.com/heroeshappenhere/register/default.mspx"&gt;here&lt;/a&gt;. 
&lt;br&gt;
&lt;br&gt;
&lt;img src="http://dotnetsurfers.com/blog/images/heroes.jpg"&gt;
&lt;br&gt;
&lt;br&gt;
Not only do you get to test drive the new products and meet the experts, but you also
get free promotional versions of all 3 products. Its happening in Denver on March
20 at the Colorado Convention Center. 
&lt;br&gt;
&lt;br&gt;
This is really cool, looking forward to this one!!! See you there.&lt;br&gt;
&lt;br&gt;
-Latish Sehgal&lt;br&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.dotnetsurfers.com/Blog/aggbug.ashx?id=0f3ce578-abbe-48c2-9e53-7aaa8edb6c56" /&gt;</description>
      <comments>http://www.dotnetsurfers.com/Blog/CommentView,guid,0f3ce578-abbe-48c2-9e53-7aaa8edb6c56.aspx</comments>
      <category>MSEvent</category>
      <category>VS2008</category>
    </item>
    <item>
      <trackback:ping>http://www.dotnetsurfers.com/Blog/Trackback.aspx?guid=b2e51a02-bd15-4178-8735-96252fe34ec5</trackback:ping>
      <pingback:server>http://www.dotnetsurfers.com/Blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.dotnetsurfers.com/Blog/PermaLink,guid,b2e51a02-bd15-4178-8735-96252fe34ec5.aspx</pingback:target>
      <dc:creator>Latish Sehgal</dc:creator>
      <wfw:comment>http://www.dotnetsurfers.com/Blog/CommentView,guid,b2e51a02-bd15-4178-8735-96252fe34ec5.aspx</wfw:comment>
      <wfw:commentRss>http://www.dotnetsurfers.com/Blog/SyndicationService.asmx/GetEntryCommentsRss?guid=b2e51a02-bd15-4178-8735-96252fe34ec5</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">Its here!! You can now debug the dot net
source code in VS 2008. Read more about this in Shawn's <a href="http://blogs.msdn.com/sburke/archive/2008/01/16/configuring-visual-studio-to-debug-net-framework-source-code.aspx">post</a>. 
<br />
I am still not sure how beneficial this will be in day to day programming, but i guess
it will be helpful in troubleshooting sometimes. Especially when it looks like we
have found a bug in the framework :) (For the record, i never found a bug in the framework).<br />
-Latish Sehgal 
<br /><p></p><img width="0" height="0" src="http://www.dotnetsurfers.com/Blog/aggbug.ashx?id=b2e51a02-bd15-4178-8735-96252fe34ec5" /></body>
      <title>Debugging Dot Net Source Code in VS2008</title>
      <guid isPermaLink="false">http://www.dotnetsurfers.com/Blog/PermaLink,guid,b2e51a02-bd15-4178-8735-96252fe34ec5.aspx</guid>
      <link>http://www.DotNetSurfers.com/Blog/2008/01/16/DebuggingDotNetSourceCodeInVS2008.aspx</link>
      <pubDate>Wed, 16 Jan 2008 23:51:53 GMT</pubDate>
      <description>Its here!! You can now debug the dot net source code in VS 2008. Read more about this in Shawn's &lt;a href="http://blogs.msdn.com/sburke/archive/2008/01/16/configuring-visual-studio-to-debug-net-framework-source-code.aspx"&gt;post&lt;/a&gt;. 
&lt;br&gt;
I am still not sure how beneficial this will be in day to day programming, but i guess
it will be helpful in troubleshooting sometimes. Especially when it looks like we
have found a bug in the framework :) (For the record, i never found a bug in the framework).&lt;br&gt;
-Latish Sehgal 
&lt;br&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.dotnetsurfers.com/Blog/aggbug.ashx?id=b2e51a02-bd15-4178-8735-96252fe34ec5" /&gt;</description>
      <comments>http://www.dotnetsurfers.com/Blog/CommentView,guid,b2e51a02-bd15-4178-8735-96252fe34ec5.aspx</comments>
    </item>
    <item>
      <trackback:ping>http://www.dotnetsurfers.com/Blog/Trackback.aspx?guid=ef0f0dc6-1b3b-47b8-a02f-f11c836477be</trackback:ping>
      <pingback:server>http://www.dotnetsurfers.com/Blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.dotnetsurfers.com/Blog/PermaLink,guid,ef0f0dc6-1b3b-47b8-a02f-f11c836477be.aspx</pingback:target>
      <dc:creator>Latish Sehgal</dc:creator>
      <wfw:comment>http://www.dotnetsurfers.com/Blog/CommentView,guid,ef0f0dc6-1b3b-47b8-a02f-f11c836477be.aspx</wfw:comment>
      <wfw:commentRss>http://www.dotnetsurfers.com/Blog/SyndicationService.asmx/GetEntryCommentsRss?guid=ef0f0dc6-1b3b-47b8-a02f-f11c836477be</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">Today i came across a new scenario in one
of my applications (that talks to an oracle database) where we had to concatenate
a field from multiple rows in a table into a single string. While some suggested that 
string manipulation could be done inside the web application code after retrieving
all the data, my alert (<b>read over-caffeinated</b>) brain was sure that there must
be a way to tackle this at the database level by manipulating the sql query. 30 minutes
with the Google gods proved me correct. I have created a brief test case with the
solution below, if you run into a similar situation.<br />
 To create the test table, run <a href="http://www.dotnetsurfers.com/Blog/content/binary/CreateTable.sql">CreateTable.sql
(.91 KB)</a> after saving it to your system.<br />
 Our table looks like this, and our goal is to create a concatenated string of
all the names.<br /><br /><img src="http://www.dotnetsurfers.com/blog/images/concat1.jpg" /><br />
 <br />
The sql uses <a href="http://download-west.oracle.com/docs/cd/B19306_01/server.102/b14200/functions164.htm">SYS_CONNECT_BY_PATH()</a> (used
for hierarchial queries), and the final sql is<br /><br />
SELECT LTRIM(SYS_CONNECT_BY_PATH(Employee_Name, ','),',') Concatenated_Names<br />
FROM (<br />
      SELECT Employee_Name, ROW_NUMBER() OVER (order by Employee_Name)
rownumber, COUNT(*) OVER () cnt<br />
      FROM (SELECT Employee_Name FROM Employee)<br />
) data<br />
WHERE rownumber = cnt<br />
START WITH rownumber = 1<br />
CONNECT BY PRIOR rownumber = rownumber-1;<br /><br />
Below is the result of the query.<br /><br /><img src="http://www.dotnetsurfers.com/blog/images/concat2.jpg" /><br /><p></p>
-Latish Sehgal<br /><a href="http://www.dotnetsurfers.com/Blog/content/binary/CreateTable.sql"></a><img width="0" height="0" src="http://www.dotnetsurfers.com/Blog/aggbug.ashx?id=ef0f0dc6-1b3b-47b8-a02f-f11c836477be" /></body>
      <title>Concatenating rows in a table into a single string using sql</title>
      <guid isPermaLink="false">http://www.dotnetsurfers.com/Blog/PermaLink,guid,ef0f0dc6-1b3b-47b8-a02f-f11c836477be.aspx</guid>
      <link>http://www.DotNetSurfers.com/Blog/2008/01/16/ConcatenatingRowsInATableIntoASingleStringUsingSql.aspx</link>
      <pubDate>Wed, 16 Jan 2008 23:22:21 GMT</pubDate>
      <description>Today i came across a new scenario in one of my applications (that talks to an oracle database) where we had to concatenate a field from multiple rows in a table into a single string. While some suggested that&amp;nbsp; string manipulation could be done inside the web application code after retrieving all the data, my alert (&lt;b&gt;read
over-caffeinated&lt;/b&gt;) brain was sure that there must be a way to tackle this at the
database level by manipulating the sql query. 30 minutes with the Google gods proved
me correct. I have created a brief test case with the solution below, if you run into
a similar situation.&lt;br&gt;
&amp;nbsp;To create the test table, run &lt;a href="http://www.dotnetsurfers.com/Blog/content/binary/CreateTable.sql"&gt;CreateTable.sql
(.91 KB)&lt;/a&gt; after saving it to your system.&lt;br&gt;
&amp;nbsp;Our table looks like this, and our goal is to create a concatenated string of
all the names.&lt;br&gt;
&lt;br&gt;
&lt;img src="http://www.dotnetsurfers.com/blog/images/concat1.jpg"&gt;
&lt;br&gt;
&amp;nbsp;&lt;br&gt;
The sql uses &lt;a href="http://download-west.oracle.com/docs/cd/B19306_01/server.102/b14200/functions164.htm"&gt;SYS_CONNECT_BY_PATH()&lt;/a&gt; (used
for hierarchial queries), and the final sql is&lt;br&gt;
&lt;br&gt;
SELECT LTRIM(SYS_CONNECT_BY_PATH(Employee_Name, ','),',') Concatenated_Names&lt;br&gt;
FROM (&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SELECT Employee_Name, ROW_NUMBER() OVER (order by Employee_Name)
rownumber, COUNT(*) OVER () cnt&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FROM (SELECT Employee_Name FROM Employee)&lt;br&gt;
) data&lt;br&gt;
WHERE rownumber = cnt&lt;br&gt;
START WITH rownumber = 1&lt;br&gt;
CONNECT BY PRIOR rownumber = rownumber-1;&lt;br&gt;
&lt;br&gt;
Below is the result of the query.&lt;br&gt;
&lt;br&gt;
&lt;img src="http://www.dotnetsurfers.com/blog/images/concat2.jpg"&gt;
&lt;br&gt;
&lt;p&gt;
&lt;/p&gt;
-Latish Sehgal&lt;br&gt;
&lt;a href="http://www.dotnetsurfers.com/Blog/content/binary/CreateTable.sql"&gt; &lt;/a&gt;&lt;img width="0" height="0" src="http://www.dotnetsurfers.com/Blog/aggbug.ashx?id=ef0f0dc6-1b3b-47b8-a02f-f11c836477be" /&gt;</description>
      <comments>http://www.dotnetsurfers.com/Blog/CommentView,guid,ef0f0dc6-1b3b-47b8-a02f-f11c836477be.aspx</comments>
      <category>oracle</category>
      <category>sql</category>
    </item>
    <item>
      <trackback:ping>http://www.dotnetsurfers.com/Blog/Trackback.aspx?guid=a7d4e35e-1180-45f4-b5e4-b9acc7994114</trackback:ping>
      <pingback:server>http://www.dotnetsurfers.com/Blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.dotnetsurfers.com/Blog/PermaLink,guid,a7d4e35e-1180-45f4-b5e4-b9acc7994114.aspx</pingback:target>
      <dc:creator>Latish Sehgal</dc:creator>
      <wfw:comment>http://www.dotnetsurfers.com/Blog/CommentView,guid,a7d4e35e-1180-45f4-b5e4-b9acc7994114.aspx</wfw:comment>
      <wfw:commentRss>http://www.dotnetsurfers.com/Blog/SyndicationService.asmx/GetEntryCommentsRss?guid=a7d4e35e-1180-45f4-b5e4-b9acc7994114</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">MSPress has been offering free e-books
for some time on VS2008 technologies. To get yours, go <a href="http://csna01.libredigital.com/">here</a> and
grab your copies. The LINQ book has all the chapters but the appendix on Ado.Net Entity
framework, whereas the Ajax and Silverlight book have 2 sample chapters each.<br /><br /><img src="http://www.dotnetsurfers.com/blog/images/msebooks.jpg" /><br /><br />
I have been wanting to try out LINQ for some time. This is the perfect opportunity,
i'll review the book as well as pick up something new. I'll post my review in a later
post.<br />
-Latish Sehgal<br /><img width="0" height="0" src="http://www.dotnetsurfers.com/Blog/aggbug.ashx?id=a7d4e35e-1180-45f4-b5e4-b9acc7994114" /></body>
      <title>Free e-books from Microsoft Press on VS2008 technologies</title>
      <guid isPermaLink="false">http://www.dotnetsurfers.com/Blog/PermaLink,guid,a7d4e35e-1180-45f4-b5e4-b9acc7994114.aspx</guid>
      <link>http://www.DotNetSurfers.com/Blog/2008/01/11/FreeEbooksFromMicrosoftPressOnVS2008Technologies.aspx</link>
      <pubDate>Fri, 11 Jan 2008 19:25:03 GMT</pubDate>
      <description>MSPress has been offering free e-books for some time on VS2008
technologies. To get yours, go &lt;a href="http://csna01.libredigital.com/"&gt;here&lt;/a&gt; and
grab your copies. The LINQ book has all the chapters but the appendix on Ado.Net Entity
framework, whereas the Ajax and Silverlight book have 2 sample chapters each.&lt;br&gt;
&lt;br&gt;
&lt;img src="http://www.dotnetsurfers.com/blog/images/msebooks.jpg"&gt;
&lt;br&gt;
&lt;br&gt;
I have been wanting to try out LINQ for some time. This is the perfect opportunity,
i'll review the book as well as pick up something new. I'll post my review in a later
post.&lt;br&gt;
-Latish Sehgal&lt;br&gt;
&lt;img width="0" height="0" src="http://www.dotnetsurfers.com/Blog/aggbug.ashx?id=a7d4e35e-1180-45f4-b5e4-b9acc7994114" /&gt;</description>
      <comments>http://www.dotnetsurfers.com/Blog/CommentView,guid,a7d4e35e-1180-45f4-b5e4-b9acc7994114.aspx</comments>
      <category>VS2008</category>
      <category>book review</category>
      <category>linq</category>
    </item>
  </channel>
</rss>