<feed 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="http://www.w3.org/2005/Atom" xml:lang="en-US">
    <title>Project Cool</title>
    <link rel="self" type="application/xml" href="http://geekswithblogs.net/ranganh/Atom.aspx" />
    <subtitle type="html">An ASP.NET Blog</subtitle>
    <id>http://geekswithblogs.net/ranganh/Default.aspx</id>
    <author>
        <name>Harish Ranganathan</name>
        <uri>http://geekswithblogs.net/ranganh/Default.aspx</uri>
    </author>
    <generator uri="http://subtextproject.com" version="Subtext Version 0.0.0.0">Subtext</generator>
    <updated>2009-11-17T05:56:39Z</updated>
    <entry>
        <title>SQL Azure Connection error &amp;ldquo;Cannot connect to &amp;lt;servername&amp;gt;&amp;quot; Client with IP Address is not allowed to access server: Error 40615</title>
        <link rel="self" type="text/html" href="http://geekswithblogs.net/ranganh/archive/2009/11/04/sql-azure-connection-error-ldquocannot-connect-to-ltservernamegtquot-client-with.aspx" />
        <id>http://geekswithblogs.net/ranganh/archive/2009/11/04/sql-azure-connection-error-ldquocannot-connect-to-ltservernamegtquot-client-with.aspx</id>
        <published>2009-11-04T03:49:26-12:00:00</published>
        <updated>2009-11-04T17:38:48Z</updated>
        <content type="html">&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;If you have been using the SQL Azure Portal for creating SQL Databases and connecting to them from your SQL Server Management Studio, you would have realized the ability to query the Azure Cloud Databases from within the management studio.  While this provides great opportunities in terms of relation capabilities and accessibility over the Cloud, there has been a recent upgrade to SQL Azure and in that process there has been a Firewall Support added to the SQL Azure Portal access.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;Specifically when you try to connect to SQL Azure, you would face the error &lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;&lt;em&gt;Cannot connect to &amp;lt;sql azure server name&amp;gt;&lt;/em&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;&lt;em&gt;Additional Information&lt;/em&gt;&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;&lt;em&gt;Cannot open server &amp;lt;servername&amp;gt; requested by the login.  Client with IP Address "&amp;lt;your IP Address&amp;gt;” is not allowed to access the host server.&lt;/em&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;&lt;em&gt;Login failed for user ‘&amp;lt;username&amp;gt;’. (Microsoft SQL Server, Error: 40615)&lt;/em&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;As the error message indicates, the SQL Azure Portal has declined access to the portal for your IP Address.  This specific filtering helps companies protect their data hosted in the cloud from access by just any host.  This allows companies to restrict the access to a specific set of hosts such that they do know that those are safe.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;As a result, your existing applications / querying from SQL Server Management Studio might just fail.   Note that by default no IP’s are allowed to access your server.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;Also, there has been a change in the way the server is accessed as well as the credentials specified.  Lets see them step by step.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;Steps to enable IP Access in the SQL Azure Portal&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;Visit the SQL Azure Portal at &lt;/font&gt;&lt;a href="https://sql.azure.com"&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;https://sql.azure.com&lt;/font&gt;&lt;/a&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt; and sign-in with the LiveID that you used to create the SQL Azure database(s)&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;Click on the Project name to open the Server Administration Page&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font size="2"&gt;&lt;font face="Tahoma"&gt;&lt;font color="#000080"&gt;You will find the Server Name, Administrator username and Server Location details specified.  You would require these when connecting to the SQL Azure database from your Management Studio.  Note that the server name is no longer &lt;strong&gt;&amp;lt;servername&amp;gt;.ctp.database.windows.net&lt;/strong&gt; and just simply &lt;strong&gt;&amp;lt;servername&amp;gt;.database.windows.net&lt;/strong&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;You would also find the databases listed under the Databases tab and additionally you would find the “Firewall Settings” tab.  Click on the “Firewall Settings” tab you will find a screen as below:-&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;a rel="lightbox" href="http://geekswithblogs.net/images/geekswithblogs_net/ranganh/WindowsLiveWriter/SQLAzureConnectionerrorCannotconnecttose_12BCC/image_4.png"&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;&lt;img style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title="image" border="0" alt="image" width="457" height="263" src="http://geekswithblogs.net/images/geekswithblogs_net/ranganh/WindowsLiveWriter/SQLAzureConnectionerrorCannotconnecttose_12BCC/image_thumb_1.png" /&gt;&lt;/font&gt;&lt;/a&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt; &lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;Check the “Allow Microsoft Services access to the server” check box.  The page posts and then adds a “MicrosoftServices” Record Name as below&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;a rel="lightbox" href="http://geekswithblogs.net/images/geekswithblogs_net/ranganh/WindowsLiveWriter/SQLAzureConnectionerrorCannotconnecttose_12BCC/image_6.png"&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;&lt;img style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title="image" border="0" alt="image" width="463" height="243" src="http://geekswithblogs.net/images/geekswithblogs_net/ranganh/WindowsLiveWriter/SQLAzureConnectionerrorCannotconnecttose_12BCC/image_thumb_2.png" /&gt;&lt;/font&gt;&lt;/a&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt; &lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;Click on the “Edit Record” to open up “Custom Firewall Settings” window that lists your IP address as well.  You can also specify a range in case you want to.  Once you have typed the IP Address, click “Submit”  (Note that if you dont have an IP Address range, you would have to type your actual IP Address in the bottom textbox after the “to” which means the top one is 0.0.0.0 to &amp;lt;IP Address you specified&amp;gt;.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;You can add more IP Addresses by clicking on “Add Record” button and repeating the above steps. Once you do this, you would be able to access the SQL Azure database from SQL Server Management Studio.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;Steps to access the SQL Azure Database using Management Studio&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;I had already written on this, &lt;/font&gt;&lt;a target="_blank" href="http://geekswithblogs.net/ranganh/archive/2009/09/29/taking-your-northwind-database-to-sql-azure-and-binding-it.aspx"&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;in my earlier post&lt;/font&gt;&lt;/a&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;  that you can check.  But, in the interest of folks who have patiently read this post from the beginning, I am repeating the steps below&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;Open SQL Server Management Studio&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;Dismiss the default login window that comes up (a temporary work around)&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;Click on “New Query” and type the credentials.  The servername is “&amp;lt;servername&amp;gt;.database.windows.net” and the Login is simply &amp;lt;username&amp;gt; and not &lt;/font&gt;&lt;a href="mailto:username@servername"&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;username@servername&lt;/font&gt;&lt;/a&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt; as in the past.  Click on “Options” to specify the Database that you created in SQL Azure.  Otherwise, the default would connect to Master.  Once you enter the password in the “Login” tab and click “Connect” you should be able to connect to the SQL Azure database.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;If you get any error, check if you had dismissed the initial login prompt and clicked on “New Query” in the Management Studio.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;Cheers !!!&lt;/font&gt;&lt;/p&gt;&lt;img src="http://geekswithblogs.net/ranganh/aggbug/135988.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://geekswithblogs.net/ranganh/comments/135988.aspx</wfw:comment>
        <slash:comments>1</slash:comments>
        <wfw:commentRss>http://geekswithblogs.net/ranganh/comments/commentRss/135988.aspx</wfw:commentRss>
        <trackback:ping>http://geekswithblogs.net/ranganh/services/trackbacks/135988.aspx</trackback:ping>
    </entry>
    <entry>
        <title>Visual Studio 2010 Beta 2 &amp;ndash; a first look at the UI and Web Development</title>
        <link rel="self" type="text/html" href="http://geekswithblogs.net/ranganh/archive/2009/10/21/visual-studio-2010-beta-2-ndash-a-first-look-at.aspx" />
        <id>http://geekswithblogs.net/ranganh/archive/2009/10/21/visual-studio-2010-beta-2-ndash-a-first-look-at.aspx</id>
        <published>2009-10-21T01:15:54-12:00:00</published>
        <updated>2009-10-21T03:17:25Z</updated>
        <content type="html">&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;Visual Studio 2010 Beta 2 is out and has a slick new UI.  Also, this Beta has most of the features that would ship with the final version compared to the earlier Beta.  &lt;font color="#ff0000"&gt;Note that while new features might be added, there are chances that some of the features demonstrated here may also not be a part of the final release&lt;/font&gt;.  But, for now, lets examine the current Beta 2.  The first thing you would notice and probably like, is the UI enhancements.  Herebelow, is the launch screen.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;a rel="lightbox" href="http://geekswithblogs.net/images/geekswithblogs_net/ranganh/WindowsLiveWriter/VisualStudio2010Beta2afirstlookattheUIan_107C2/image_2.png"&gt;&lt;img style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title="image" border="0" alt="image" width="391" height="278" src="http://geekswithblogs.net/images/geekswithblogs_net/ranganh/WindowsLiveWriter/VisualStudio2010Beta2afirstlookattheUIan_107C2/image_thumb.png" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;Also, the start page has been modified to accommodate more useful things.  The good thing is that you can completely customize the Start Page since it is a XAML based UI.  You can find the start page itself as a Project at &lt;strong&gt;&lt;em&gt;C:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE\StartPages&lt;/em&gt;&lt;/strong&gt; once you install the Beta.  You can change it to reflect your organization specific templates, document repositories etc.,  Optionally you can even turn it off permanently, or, upon opening a project, using the checkbox options in the bottom left.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;a rel="lightbox" href="http://geekswithblogs.net/images/geekswithblogs_net/ranganh/WindowsLiveWriter/VisualStudio2010Beta2afirstlookattheUIan_107C2/image_4.png"&gt;&lt;img style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title="image" border="0" alt="image" width="509" height="303" src="http://geekswithblogs.net/images/geekswithblogs_net/ranganh/WindowsLiveWriter/VisualStudio2010Beta2afirstlookattheUIan_107C2/image_thumb_1.png" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;Now, with respect to web development, there are tons of enhancements.  In fact many of the actual web enhancements are figuring in this Beta release and exploring them would require individual blog posts that I would be writing in future.  For a complete list of feature walkthroughs, please visit the MSDN website &lt;/font&gt;&lt;a title="http://msdn.microsoft.com/en-us/vstudio/dd441784.aspx" href="http://msdn.microsoft.com/en-us/vstudio/dd441784.aspx"&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;http://msdn.microsoft.com/en-us/vstudio/dd441784.aspx&lt;/font&gt;&lt;/a&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt; (and by the way you would realize that the MSDN Website has been re-launched as well with the new UI for easier navigation)&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;The first thing I did was to explore the “File – New – Project – ASP.NET Web Application” template and create a new web project.  This provides a web template with a default Home Page and About Us page that you can use as-is / customize and get started with a skeleton layout immediately.  The default UI without any work, when run, looks as below:-&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;a rel="lightbox" href="http://geekswithblogs.net/images/geekswithblogs_net/ranganh/WindowsLiveWriter/VisualStudio2010Beta2afirstlookattheUIan_107C2/image_6.png"&gt;&lt;img style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title="image" border="0" alt="image" width="511" height="285" src="http://geekswithblogs.net/images/geekswithblogs_net/ranganh/WindowsLiveWriter/VisualStudio2010Beta2afirstlookattheUIan_107C2/image_thumb_2.png" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;Other thing to notice is that, by default jQuery 1.3.2 library is included in the Scripts folder, not to mention, the intellisense support for jQuery that has been there right from VS 2008 SP1.  There you had to manually install the docs as well as the jQuery library.  Now, it all comes automatically. &lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;Web.Config file Simplified&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;Over the years, with ASP.NET AJAX, Data Source provider, IIS 7 configuration, the Web.Config grew extremely unmanageable and working with that would require real patience.  In this release, the Web.Config file has been minified or simplified that it just contains 4 – 5 lines of configuration.  Note that, this is when you select “Empty ASP.NET Web Application” template.  The default “ASP.NET Web Application” template still has entries corresponding to Membership, Roles, Authentication etc., since this is basically a fully functional website with users, roles as well as membership database with default entries (remember “Website Administration” screen in the ASP.NET 2.0 days)&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;There are much more web related features that I will be covering in the future posts, but for a high level overview, check &lt;/font&gt;&lt;a title="http://msdn.microsoft.com/en-us/library/ee532866(VS.100).aspx" href="http://msdn.microsoft.com/en-us/library/ee532866(VS.100).aspx"&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;http://msdn.microsoft.com/en-us/library/ee532866(VS.100).aspx&lt;/font&gt;&lt;/a&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt; and &lt;/font&gt;&lt;a title="http://www.asp.net/learn/whitepapers/aspnet40/" href="http://www.asp.net/learn/whitepapers/aspnet40/"&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;http://www.asp.net/learn/whitepapers/aspnet40/&lt;/font&gt;&lt;/a&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt; &lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;You can download Visual Studio 2010 Beta 2 from &lt;/font&gt;&lt;a title="http://www.microsoft.com/visualstudio/en-us/products/2010/default.mspx" href="http://www.microsoft.com/visualstudio/en-us/products/2010/default.mspx"&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;http://www.microsoft.com/visualstudio/en-us/products/2010/default.mspx&lt;/font&gt;&lt;/a&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt; or if you are an MSDN Subscriber from the MSDN Download Center.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;Cheers !!!&lt;/font&gt;&lt;/p&gt;&lt;img src="http://geekswithblogs.net/ranganh/aggbug/135629.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://geekswithblogs.net/ranganh/comments/135629.aspx</wfw:comment>
        <slash:comments>5</slash:comments>
        <wfw:commentRss>http://geekswithblogs.net/ranganh/comments/commentRss/135629.aspx</wfw:commentRss>
        <trackback:ping>http://geekswithblogs.net/ranganh/services/trackbacks/135629.aspx</trackback:ping>
    </entry>
    <entry>
        <title>FileUpload in UpdatePanel, ASP.NET, like Gmail</title>
        <link rel="self" type="text/html" href="http://geekswithblogs.net/ranganh/archive/2009/10/01/fileupload-in-updatepanel-asp.net-like-gmail.aspx" />
        <id>http://geekswithblogs.net/ranganh/archive/2009/10/01/fileupload-in-updatepanel-asp.net-like-gmail.aspx</id>
        <published>2009-10-01T05:31:15-12:00:00</published>
        <updated>2009-11-04T17:40:38Z</updated>
        <content type="html">&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;Earlier, I had written &lt;/font&gt;&lt;a target="_blank" href="http://geekswithblogs.net/ranganh/archive/2008/04/01/file-upload-in-updatepanel-asp.net-ajax.aspx"&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;this post&lt;/font&gt;&lt;/a&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt; on how you can accomplish using FileUpload control in UpdatePanel since by default it wasn’t supported.  The post seems to have helped many and keeps being the most visited one.  However, with the new release of Ajax Control Toolkit (v 3.0.30930) released specifically for .NET 3.5 SP1 (with Visual Studio 2008 SP1), there are couple of new controls.  One of them is the AsyncFileUpload control.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;Thanks to the codeplex community which keeps getting better and better with time, the Ajax Control Toolkit has grown into one of our largest community contributed controls for ASP.NET with about 43 controls that help in accomplishing rich user experiences in ASP.NET Websites.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;The AsyncFileUpload is one simple way of accomplishing what I had written earlier using PostbackTrigger, the regular FileUpload control etc.,  To be able to use the AsyncFileUpload Control, you must have the latest version of AjaxControlToolkit installed.  The other pre-requisites are obviously &lt;/font&gt;&lt;a title="Download" target="_blank" href="http://www.microsoft.com/downloads/details.aspx?FamilyID=ab99342f-5d1a-413d-8319-81da479ab0d7&amp;amp;DisplayLang=en"&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;NET 3.5 SP1&lt;/font&gt;&lt;/a&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt; and &lt;/font&gt;&lt;a title="Download" target="_blank" href="http://www.microsoft.com/downloads/details.aspx?FamilyId=FBEE1648-7106-44A7-9649-6D9F6D58056E"&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;Visual Studio 2008 SP1&lt;/font&gt;&lt;/a&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt; (or the free &lt;/font&gt;&lt;a target="_blank" href="http://www.microsoft.com/express/vwd/"&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;Visual Web Developer Express Edition&lt;/font&gt;&lt;/a&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;)&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;You can download the pre-requisites from the respective links above.  For downloading the AjaxControlToolkit, visit the &lt;/font&gt;&lt;a target="_blank" href="http://ajaxcontroltoolkit.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=33804"&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;CodePlex&lt;/font&gt;&lt;/a&gt; &lt;font face="Tahoma"&gt;&lt;font color="#000080"&gt;site&lt;/font&gt;&lt;font color="#000080" size="2"&gt;.  You can download just the binary files or the Source files as well, if you require to modify.  The Script Files is useful if you want to just work with the client side scripts and not use the server controls.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;Once you have downloaded, you would need to add them to Visual Studio or VWD.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;1. Open Visual Studio and create a new webapplication or website.  Click to open the ToolBox&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;2. Right Click and select “Add Tab”&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;3. Provide a name say “Ajax Control Toolkit”&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;4. Right Click the newly created tab and select “Choose Items”&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;5. Click on the “Browse” button in the file dialog that opens and browse to the place where you downloaded the AjaxControlToolkit binaries&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;6. Typically I would put them under C:\Program Files\Microsoft ASP.NET for consistency.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;7. Select the AjaxControlToolkit.dll and it would list all the new controls.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;8. Click “Ok” to add all the controls.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;9. You should now see under the newly created toolbox tab these controls.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;Once you are done with above, create a simple Default.aspx page in the application you created and drop the Script Manager control into your webform.  Next add an UpdatePanel with ContentTemplate.  Inside the ContentTemplate, add the AsyncFileUpload control into the webform as well as a button and 2 labels for the uploading and displaying messages respectively.  The markup looks something like below&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;&lt;em&gt;&lt;strong&gt;&amp;lt;form id="form1" runat="server"&amp;gt; &lt;br /&gt;
   &amp;lt;div&amp;gt; &lt;br /&gt;
       &amp;lt;asp:ScriptManager ID="ScriptManager1" runat="server"&amp;gt; &lt;br /&gt;
       &amp;lt;/asp:ScriptManager&amp;gt; &lt;br /&gt;
       &amp;lt;asp:Image ID="img1" runat="server" ImageUrl="~/Images/spin2.png" /&amp;gt; &lt;br /&gt;
    &amp;lt;asp:UpdatePanel ID="UpdatePanel1" runat="server"&amp;gt; &lt;br /&gt;
           &amp;lt;ContentTemplate&amp;gt; &lt;br /&gt;
               &amp;lt;cc1:AsyncFileUpload ID="AsyncFileUpload1" runat="server" UploaderStyle="Modern" ThrobberID="img1"  /&amp;gt; &lt;br /&gt;
       &amp;lt;br /&amp;gt; &lt;br /&gt;
       &amp;lt;asp:Button ID="btnUpload" runat="server" Text="Upload" &lt;br /&gt;
           onclick="btnUpload_Click"   /&amp;gt; &lt;br /&gt;
           &amp;lt;br /&amp;gt; &lt;br /&gt;
           &amp;lt;asp:Label ID="Label1" runat="server" /&amp;gt;  &lt;br /&gt;
           &amp;lt;br /&amp;gt; &lt;br /&gt;
           &amp;lt;br /&amp;gt; &lt;br /&gt;
         &amp;lt;/ContentTemplate&amp;gt; &lt;br /&gt;
       &amp;lt;/asp:UpdatePanel&amp;gt; &lt;br /&gt;
       &amp;lt;br /&amp;gt; &lt;br /&gt;
       &amp;lt;asp:Label ID="Label2" runat="server" /&amp;gt; &lt;br /&gt;
   &amp;lt;/div&amp;gt; &lt;br /&gt;
   &amp;lt;/form&amp;gt;&lt;/strong&gt;&lt;/em&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;Also, you can see that I have added an asp:Image pointing to a spin image that is specified as the ID for ThrobberID in the AsyncFileUpload definition.  This is optional but nice to have since this would display the throbber icon while uploading takes time.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;Once you are done, you would need to define the action in the codebehind or in the script&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;&lt;em&gt;&lt;strong&gt;protected void Page_Load(object sender, EventArgs e) &lt;br /&gt;
      { &lt;br /&gt;
          Label2.Text = DateTime.Now.ToString(); &lt;br /&gt;
      } &lt;/strong&gt;&lt;/em&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;&lt;em&gt;&lt;strong&gt;      protected void btnUpload_Click(object sender, EventArgs e) &lt;br /&gt;
      { &lt;br /&gt;
          AsyncFileUpload1.SaveAs(Server.MapPath((AsyncFileUpload1.FileName))); &lt;br /&gt;
          Label1.Text = "You uploaded " + AsyncFileUpload1.FileName; &lt;br /&gt;
      }&lt;/strong&gt;&lt;/em&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;Notice, the Label in the Page_Load event is just to indicate that indeed the operation happened asynchronously since the time that is displayed initially doesn’t change once you click on Upload button.  &lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;Try running this and you will find that the whole operation happens asynchronously without a full page reload.  Note that, you would need to still put the AsyncFileUpload control inside UpdatPanel for this behaviour.  Otherwise, it would behave like a regular postback control.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;You can download the sample code from &lt;iframe style="PADDING-BOTTOM: 0px; BACKGROUND-COLOR: #fcfcfc; PADDING-LEFT: 0px; WIDTH: 98px; PADDING-RIGHT: 0px; HEIGHT: 115px; PADDING-TOP: 0px" title="Preview" marginheight="0" src="http://cid-069f94a102eff49a.skydrive.live.com/embedicon.aspx/AjaxToolkitSample" frameborder="0" marginwidth="0" scrolling="no"&gt;&lt;/iframe&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;Cheers !!&lt;/font&gt;&lt;/p&gt;&lt;img src="http://geekswithblogs.net/ranganh/aggbug/135216.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://geekswithblogs.net/ranganh/comments/135216.aspx</wfw:comment>
        <slash:comments>14</slash:comments>
        <wfw:commentRss>http://geekswithblogs.net/ranganh/comments/commentRss/135216.aspx</wfw:commentRss>
        <trackback:ping>http://geekswithblogs.net/ranganh/services/trackbacks/135216.aspx</trackback:ping>
    </entry>
    <entry>
        <title>Taking your Northwind Database to SQL Azure and binding it to an ASP.NET Grid View &amp;ndash; Part II</title>
        <link rel="self" type="text/html" href="http://geekswithblogs.net/ranganh/archive/2009/09/29/taking-your-northwind-database-to-sql-azure-and-binding-it-again.aspx" />
        <id>http://geekswithblogs.net/ranganh/archive/2009/09/29/taking-your-northwind-database-to-sql-azure-and-binding-it-again.aspx</id>
        <published>2009-09-29T04:17:20-12:00:00</published>
        <updated>2009-11-04T17:39:58Z</updated>
        <content type="html">&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;In the &lt;/font&gt;&lt;a target="_blank" href="http://geekswithblogs.net/ranganh/archive/2009/09/29/taking-your-northwind-database-to-sql-azure-and-binding-it.aspx"&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;previous post&lt;/font&gt;&lt;/a&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt; we had examined on getting access to SQL Azure, creating your first database, accessing it with SQL Server Management Studio and then migrating the Northwind database schema to SQL Azure using the SQL Azure Migration Wizard Beta.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;As explained earlier, the SQL Azure Migration Wizard migrates the schema of your database after tuning it for working with SQL Azure.  However, we would still need to migrate the Data to our SQL Azure Server.  At the moment, the step I took was to open the instnwnd.sql script in SQL Server Management Studio (SSMO) and copy the Insert statements alone to execute.  Note that, you cannot run all the scripts directly onto the SQL Azure portal like I explained earlier due to the limitations / formats supported currently in SQL Azure.  &lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;To begin with, open “C:\SQL Server 2000 Sample Databases” folder (the default location where Northwind and pubs sample database gets installed) and double click on the instnwnd.sql script.  It opens up in SSMO.   Examine the scripts and navigate to the portion where the INSERT statements begin.  I took the portion and put it up as a single insert script.  You can download the script  from the link below:-&lt;/font&gt;&lt;/p&gt;
&lt;p&gt; &lt;iframe style="PADDING-BOTTOM: 0px; BACKGROUND-COLOR: #fcfcfc; PADDING-LEFT: 0px; WIDTH: 98px; PADDING-RIGHT: 0px; HEIGHT: 115px; PADDING-TOP: 0px" title="Preview" marginheight="0" src="http://cid-069f94a102eff49a.skydrive.live.com/embedicon.aspx/Scripts" frameborder="0" marginwidth="0" scrolling="no"&gt;&lt;/iframe&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;Running the scripts from SQL Server Management Studio&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;As explained in my previous post, open SSMO and cancel the initial login prompt.  Click on “New Query” and specify the server name as the fully qualified Azure Server name i.e. &amp;lt;YOURSERVERNAME&amp;gt;.ctp.database.windows.net, specify the user name, password.  Click on “Options” and specify “Northwind” at “Connect to database” option.  Click “Connect”.  It should be able to connect provided you have specified the path, username, password etc., correctly and created the “Northwind” database as per the previous post.  There will be a small error prompt that comes before opening the Query window, as below.  You can ignore that and click “ok”&lt;/font&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;a rel="lightbox" href="http://geekswithblogs.net/images/geekswithblogs_net/ranganh/WindowsLiveWriter/TakingyourNorthwindDat.NETGridViewPartII_13251/image_2.png"&gt;&lt;img style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title="image" border="0" alt="image" width="439" height="100" src="http://geekswithblogs.net/images/geekswithblogs_net/ranganh/WindowsLiveWriter/TakingyourNorthwindDat.NETGridViewPartII_13251/image_thumb.png" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;Once you are in the SqlQuery1.sql screen you can check if the database is created and the tables are there by running  a bunch of few queries as below:-&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;SELECT * FROM Products&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;SELECT * FROM Orders etc.,&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;You will get blank result sets since we haven't migrated the data yet.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;Double lick to open the insertnwnddata.sql script downloaded in the first step.  It would open in a new sql window.  Copy paste the script into the first window we got once we connected to the Azure Database.  If you get a connection error.  Try reconnecting using the “New Query” option as explained above.  If all is good, you should be able to execute the scripts.  Once the scripts are successful, you can test if the data is migrated, by again running the SELECT statements above.  They should now list data.   If there is an error, try running the individual INSERT statements for each table to verify which table has the issue.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;Once this is done, we are all set to bind this data to our ASP.NET Page.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;&lt;strong&gt;Binding the SQL Azure database to ASP.NET Page&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;Open Visual Studio 2008 and create a web application project.  In the Default.aspx page, drag and drop a GridView control and use the GridView’s wizard to connect to your local Northwind database.  Pick the Products table and chose the columns you want to display and complete the steps.  You may want to enable paging to avoid all data shown in the same page.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;The above steps should add a GridView, a SQL Data Source to the page.  Once you run the website, it should display the Products table record with the columns you chose to display.  So far, we have bound the local database.  We however, intended to bind it to SQL Azure database that we have created.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;Binding the GridView to the SQL Azure Database Table&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;If you thought this is another big process, you might be in for a surprise.  Visit the SQL Azure portal (&lt;/font&gt;&lt;a href="https://sql.azure.com"&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;https://sql.azure.com&lt;/font&gt;&lt;/a&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;) sign-in with your credentials that you used to create the token/database etc., Click on the “Manage” link that comes in the right of the Configuration Page that you get once you sign-in.  The next screen lists all the databases created.  Click on the “Northwind” database radio button to select it.   Click on “Connection Strings” in the bottom (the one in the top gives the connection string for master, so click on the “Connection Strings” button below the grid that displays the databases.   You should get a popup with 3 different connection strings targeting different data access methodologies.  Chose the first one (Click on “Copy to Clipboard”) corresponding to the entry for ADO.NET (the first one).  &lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;In Visual Studio, open the web.config file of the site that we created earlier and visit the connectionstrings setting.  If you had followed the wizard steps, it would have entered a connection string over here, that corresponds to your local database server.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;Replace the connection string with the one copied here.  Note, you need to update the password that you used instead of “mypassword”.  Also, remove the trailing semicolon at the end after password.  &lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;If you have done all the steps properly, you should be able to run the solution now and without any other change, the data that is bound to your grid view should display the same as it did when you initially bound it to the local database.  &lt;/font&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;You can try paging / sorting etc., to see if all works fine.  &lt;/font&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;So, practically, we just had to change the connection string to be able to access the database on the SQL Azure Server.  From a developer’s perspective, the data access technique, binding, control and configuration remains unchanged.&lt;/font&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;That’s it for this series.  There are quite a lot of steps that I had listed over the last 2 posts.  You may want to check every point if you are facing any issue at any stage.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;Cheers !!!&lt;/font&gt;&lt;/p&gt;&lt;img src="http://geekswithblogs.net/ranganh/aggbug/135161.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://geekswithblogs.net/ranganh/comments/135161.aspx</wfw:comment>
        <slash:comments>4</slash:comments>
        <wfw:commentRss>http://geekswithblogs.net/ranganh/comments/commentRss/135161.aspx</wfw:commentRss>
        <trackback:ping>http://geekswithblogs.net/ranganh/services/trackbacks/135161.aspx</trackback:ping>
    </entry>
    <entry>
        <title>Taking your Northwind Database to SQL Azure and binding it to an ASP.NET Grid View &amp;ndash; Part I</title>
        <link rel="self" type="text/html" href="http://geekswithblogs.net/ranganh/archive/2009/09/29/taking-your-northwind-database-to-sql-azure-and-binding-it.aspx" />
        <id>http://geekswithblogs.net/ranganh/archive/2009/09/29/taking-your-northwind-database-to-sql-azure-and-binding-it.aspx</id>
        <published>2009-09-29T02:58:01-12:00:00</published>
        <updated>2009-11-04T17:39:44Z</updated>
        <content type="html">&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;SQL Azure is the latest buzz around Cloud Computing and the ability to take relational database to the cloud as is, is something most would welcome compared to the earlier model of ACE (Authority, Container, Entity) that was there when SQL Azure was SSDS.   Well, like others, I also got interested and wanted to explore the SQL Azure.  SQL Azure is currently in CTP and offers token based access.  I would briefly outline the steps here on getting the SQL Azure Token, although &lt;/font&gt;&lt;a target="_blank" href="http://blogs.msdn.com/jimoneil/archive/2009/08/18/sql-azure-ctp-1.aspx"&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;Jim O’Neil has a nice post on this&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;Visit &lt;/font&gt;&lt;a title="SQL Azure Registration at Microsoft Connect" target="_blank" href="http://go.microsoft.com/fwlink/?LinkID=149681&amp;amp;clcid=0x09"&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;SQL Azure Registration at Microsoft Connect&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;Sign in with your Live ID (Passport, Hotmail, MSN, Live)&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;Fill in the details and submit the form&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;You should receive the invitation code in an email from an alias “SQL Azure Talk” or something similar (note this may take from a day to a week until the CTP is available)&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;Visit &lt;/font&gt;&lt;a title="SQL Azure Services Portal" target="_blank" href="https://sql.azure.com"&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;https://sql.azure.com&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;Fill in the Invitation Code received in the email&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;You will be directed a page similar to below&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;a rel="lightbox" href="http://geekswithblogs.net/images/geekswithblogs_net/ranganh/WindowsLiveWriter/TakingyourNorthwindDatabaset.NETGridView_11825/image_2.png"&gt;&lt;img style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title="image" border="0" alt="image" width="422" height="222" src="http://geekswithblogs.net/images/geekswithblogs_net/ranganh/WindowsLiveWriter/TakingyourNorthwindDatabaset.NETGridView_11825/image_thumb.png" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;Click on the “Manage” link in the right. It will take you to a page as below:-&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;This page is where you can create / delete databases as well as get the connection string etc.,&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;a rel="lightbox" href="http://geekswithblogs.net/images/geekswithblogs_net/ranganh/WindowsLiveWriter/TakingyourNorthwindDatabaset.NETGridView_11825/image_6.png"&gt;&lt;img style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title="image" border="0" alt="image" width="430" height="221" src="http://geekswithblogs.net/images/geekswithblogs_net/ranganh/WindowsLiveWriter/TakingyourNorthwindDatabaset.NETGridView_11825/image_thumb_2.png" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;In the top of this page you will also see “Connection Strings” , “Reset Password” icons and also the Server Name, User Name that you chose, and the location where the database is hosted.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;You can click on “Create Database” to specify a new Database table name (that’s all you can do, you cannot create tables from here, just the database)&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;As you can see, I have created a few databases except master which is the default database.  You can chose an individual database and then click on the “Connection Strings” icon in the bottom (currently disabled) to get the specific connection string for the database you created.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;Now, this is the first step towards getting access to SQL Azure Services.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;Next, the big question you might have is how do I create tables, procedures etc.,  The &lt;/font&gt;&lt;a title="MSDN Sample documentation" target="_blank" href="http://msdn.microsoft.com/en-us/library/ee336243.aspx"&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;MSDN Sample documentation&lt;/font&gt;&lt;/a&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt; provides you the instructions on creating a basic database with a single table.  However, you might want to create / import a relational database such as Northwind with more tables etc.,  The trick here is that not all data formats are supported, particularly the deprecated ones such as ntext, image etc., at least at the moment and you can’t just go ahead and run the DB Scripts against SQL Azure to create the database and tables.  Lets examine one by one on the steps to access SQL Azure Tables in SQL Server Management Studio, Getting a script that can be executed on SQL Azure, Uploading data to SQL Azure and finally binding it to GridView&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;Accessing SQL Azure Tables in SQL Server Management Studio&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;SQL Server Management Studio (SSMO) is probably the most favourite tool used for querying, running scripts etc.,  You can download SSMO for SQL Server 2008 or the free SQL Server Express edition from &lt;/font&gt;&lt;a target="_blank" href="http://www.microsoft.com/downloads/details.aspx?FamilyId=C243A5AE-4BD1-4E3D-94B8-5A0F62BF7796&amp;amp;displaylang=en"&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;here&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;Once you installed, it would prompt you with a login dialog with server details etc., (if you have used it already, you would be familiar with it).  Now, the trick is, to be able to use SSMO with SQL Azure, you need to dismiss the initial login screen and click on “New Query” icon in the top left and specify the server name which is typically like &amp;lt;YOURSERVERNAME&amp;gt;.ctp.database.windows.net (you can find the server name in the screens explained above).  Then specify the username, password and click on “Options” to specify the database that you created above.  Click “Connect” and you should be able to connect to the SQL Azure Server database.  A more detailed step by step instruction is available at &lt;/font&gt;&lt;a target="_blank" href="http://blogs.msdn.com/ramaprasanna/archive/2009/09/04/connecting-to-sql-azure-from-sql-management-studio-2008.aspx"&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;Ramaprasanna’s Blog&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;If you had created the sample database by following the &lt;/font&gt;&lt;a title="MSDN Sample documentation" target="_blank" href="http://msdn.microsoft.com/en-us/library/ee336243.aspx"&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;MSDN Sample documentation&lt;/font&gt;&lt;/a&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt; you can specify that database while connecting (explained in the step above) and then query the tables (select * from T1) to get the results.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;Migrating Northwind to the SQL Azure Server&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;Like mentioned earlier, currently, you cannot take the DB script of say Northwind and run it in the SSMO to be able to create the database in SQL Azure.  There are a few changes required and also few modifications in the script.  Now, doing it for a simple database is quite easy.  However, if you want to migrate a database such as Northwind or Adventure Works, its going to get very complicated and a probable nightmare for you.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;Thankfully, there is a SQL Azure Migration Wizard (beta) being developed in CodePlex which is free, open source and under development.  You can view and download it from &lt;/font&gt;&lt;a title="SQL Azure Migration Wizard" target="_blank" href="http://sqlazuremw.codeplex.com/"&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;CodePlex&lt;/font&gt;&lt;/a&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;  (Note that it is in Beta and has limited capability in terms of performance, features etc.,)&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;You can run the SQLAzureMW.exe that gets downloaded once you install the above.  It opens up a screen for connecting to your SQL Server Database &lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;a rel="lightbox" href="http://geekswithblogs.net/images/geekswithblogs_net/ranganh/WindowsLiveWriter/TakingyourNorthwindDatabaset.NETGridView_11825/image_8.png"&gt;&lt;img style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title="image" border="0" alt="image" width="354" height="392" src="http://geekswithblogs.net/images/geekswithblogs_net/ranganh/WindowsLiveWriter/TakingyourNorthwindDatabaset.NETGridView_11825/image_thumb_3.png" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;Click on “Connect to Server” and specify the servername, credentials etc., and it would list all the databases available in your SQL Server instance.  Click on “Northwind” (this post assumes you already installed the Northwind sample database for SQL Server. If not you can download it from &lt;/font&gt;&lt;a target="_blank" href="http://www.microsoft.com/downloads/details.aspx?FamilyID=06616212-0356-46A0-8DA2-EEBC53A68034&amp;amp;displaylang=en"&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;here&lt;/font&gt;&lt;/a&gt;&lt;font size="2"&gt;&lt;font color="#000080" face="Tahoma"&gt; ) and chose the “Next” step.  It shows the “Script Options” screen where you can change settings.  Clicking on “Next” brings up the screen to chose Object types (SPs, Views, Tables).  I chose, “Script all Object types” &lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;a rel="lightbox" href="http://geekswithblogs.net/images/geekswithblogs_net/ranganh/WindowsLiveWriter/TakingyourNorthwindDatabaset.NETGridView_11825/image_10.png"&gt;&lt;img style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title="image" border="0" alt="image" width="361" height="401" src="http://geekswithblogs.net/images/geekswithblogs_net/ranganh/WindowsLiveWriter/TakingyourNorthwindDatabaset.NETGridView_11825/image_thumb_4.png" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;The next screen provides you to Script it to Window / SQL Azure or to a File.   Chose the “Window / SQL Azure” (default) and click “Next”.  The next screen provides an option to review the configurations made so far.   Click on “Script” and it would parse the scripts and provide the Results Summary.  What this tool essentially does is to make your regular DB Script compatible with a format that is supported in SQL Azure.   Once again since this is in Beta, it may not be near to 100% perfection in this process.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;a rel="lightbox" href="http://geekswithblogs.net/images/geekswithblogs_net/ranganh/WindowsLiveWriter/TakingyourNorthwindDatabaset.NETGridView_11825/image_12.png"&gt;&lt;img style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title="image" border="0" alt="image" width="370" height="411" src="http://geekswithblogs.net/images/geekswithblogs_net/ranganh/WindowsLiveWriter/TakingyourNorthwindDatabaset.NETGridView_11825/image_thumb_5.png" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;The next screen is where you specify your SQL Azure Server Details. Note that the default Server URL that comes is little outdated.  You can get the correct URL from the SQL Azure Portal page (explained in screen shot 2 above) by clicking on the “Connection Strings” icon in the top of the page.  It provides the Server URL as mentioned earlier &amp;lt;YOURSERVERNAME&amp;gt;.ctp.database.windows.net.  You just need to add tcp.  So the fully qualified URL that you need here would look like tcp:&amp;lt;YOURSERVERNAME&amp;gt;.ctp.database.windows.net.  Also, specify the username and password (the one you chose when creating the SQL Azure Database in the first step) and then click on “Test Connection” to check the details.  If you receive an error it might just be wrongly specified server name or missing parts of the URL.   Once you succeed, you can see that it also lists the existing databases (if you haven’t created anything, only “master” would be listed here) and provides the option to create a new database.  You can chose the “Northwind” if you already created it in the SQL Azure portal or type “Northwind” to create it newly.  &lt;/font&gt;   &lt;/p&gt;
&lt;p&gt;&lt;a rel="lightbox" href="http://geekswithblogs.net/images/geekswithblogs_net/ranganh/WindowsLiveWriter/TakingyourNorthwindDatabaset.NETGridView_11825/image_14.png"&gt;&lt;img style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title="image" border="0" alt="image" width="378" height="419" src="http://geekswithblogs.net/images/geekswithblogs_net/ranganh/WindowsLiveWriter/TakingyourNorthwindDatabaset.NETGridView_11825/image_thumb_6.png" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;Next, you can click on “Script” and it does a migration of the scripts to SQL Azure Portal.  It lists down the results in the final screen.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;a rel="lightbox" href="http://geekswithblogs.net/images/geekswithblogs_net/ranganh/WindowsLiveWriter/TakingyourNorthwindDatabaset.NETGridView_11825/image_16.png"&gt;&lt;img style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title="image" border="0" alt="image" width="385" height="427" src="http://geekswithblogs.net/images/geekswithblogs_net/ranganh/WindowsLiveWriter/TakingyourNorthwindDatabaset.NETGridView_11825/image_thumb_7.png" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;Note that this has just migrated the Schema and not the actual Data.  But to take up an on-premise database, generate the scripts and deploy it on SQL Azure manually would be next to impossible, particularly if you have a large database with complex schema.  This tool would help to a great extent in automating the process.  &lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;Finally, we need to upload the Data.  Lets examine it in the next post.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;Cheers !!!&lt;/font&gt;&lt;/p&gt;&lt;img src="http://geekswithblogs.net/ranganh/aggbug/135156.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://geekswithblogs.net/ranganh/comments/135156.aspx</wfw:comment>
        <slash:comments>9</slash:comments>
        <wfw:commentRss>http://geekswithblogs.net/ranganh/comments/commentRss/135156.aspx</wfw:commentRss>
        <trackback:ping>http://geekswithblogs.net/ranganh/services/trackbacks/135156.aspx</trackback:ping>
    </entry>
    <entry>
        <title>.NET 3.5 SP1 now available as a Windows Feature in Windows 7 RTM</title>
        <link rel="self" type="text/html" href="http://geekswithblogs.net/ranganh/archive/2009/09/24/.net-3.5-sp1-now-available-as-a-windows-feature-in.aspx" />
        <id>http://geekswithblogs.net/ranganh/archive/2009/09/24/.net-3.5-sp1-now-available-as-a-windows-feature-in.aspx</id>
        <published>2009-09-24T23:48:02-12:00:00</published>
        <updated>2009-09-24T23:48:02Z</updated>
        <content type="html">&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;Recently I upgraded to Windows 7 RTM and started setting up my machine.   The usual set of tools I install are Visual Studio 2008, SQL Server 2008, Expression etc.,  Also, for .NET 3.5 and Visual Studio 2008 I would require to install the respective SP1 releases as well since they are mandatory and contain tons of new features as well.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;I had done this in the past in Windows Vista, Windows 7 RC etc., and while I was trying to install .NET 3.5 SP1 on the new Windows 7 RTM, it surprisingly, popped up a message as below:-&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/ranganh/WindowsLiveWriter/NE.5SP1nowavailableasaWindowsFeatureinW_F337/image_4.png" rel="lightbox"&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://geekswithblogs.net/images/geekswithblogs_net/ranganh/WindowsLiveWriter/NE.5SP1nowavailableasaWindowsFeatureinW_F337/image_thumb_1.png" width="366" height="128" /&gt;&lt;/font&gt;&lt;/a&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt; &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;I then realized that .NET 3.5 SP1 is now available in Windows Features under “Control Panel – Programs – Turn Windows Features on or off”.  All I had to do, was enable it.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;Cheers !!!&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt; &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;&lt;/font&gt;&lt;/p&gt;&lt;img src="http://geekswithblogs.net/ranganh/aggbug/135090.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://geekswithblogs.net/ranganh/comments/135090.aspx</wfw:comment>
        <slash:comments>5</slash:comments>
        <wfw:commentRss>http://geekswithblogs.net/ranganh/comments/commentRss/135090.aspx</wfw:commentRss>
        <trackback:ping>http://geekswithblogs.net/ranganh/services/trackbacks/135090.aspx</trackback:ping>
    </entry>
    <entry>
        <title>WebsiteSpark &amp;ndash; Helping your small web development companies</title>
        <link rel="self" type="text/html" href="http://geekswithblogs.net/ranganh/archive/2009/09/24/websitespark-ndash-helping-your-small-web-development-companies.aspx" />
        <id>http://geekswithblogs.net/ranganh/archive/2009/09/24/websitespark-ndash-helping-your-small-web-development-companies.aspx</id>
        <published>2009-09-24T03:16:07-12:00:00</published>
        <updated>2009-09-24T03:16:07Z</updated>
        <content type="html">&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;You must have heard the buzz around the WebsiteSpark program that we are launching today.  It is a great program that covers a lot of concerns start-ups have – where is the money for me to buy all the software.   Earlier, we had launched programs such as BizPark for the start up eco-system, DreamSpark for students which has helped millions of people world wide.  Today, we are launching WebsiteSpark program targeted specifically at small web companies who develop and design websites.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;You can read more about the terms, what you get for free etc., from &lt;/font&gt;&lt;a href="http://weblogs.asp.net/scottgu/archive/2009/09/24/announcing-the-websitespark-program.aspx" target="_blank"&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;this great post by Scott Guthrie&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;I think this is the best time to be an entrepreneur and if we could help you in a little way, we are happy to do that.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;Cheers !!! &lt;/font&gt;&lt;/p&gt;&lt;img src="http://geekswithblogs.net/ranganh/aggbug/135069.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://geekswithblogs.net/ranganh/comments/135069.aspx</wfw:comment>
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://geekswithblogs.net/ranganh/comments/commentRss/135069.aspx</wfw:commentRss>
        <trackback:ping>http://geekswithblogs.net/ranganh/services/trackbacks/135069.aspx</trackback:ping>
    </entry>
    <entry>
        <title>Download IE8 for Windows XP and get clarified on common myths</title>
        <link rel="self" type="text/html" href="http://geekswithblogs.net/ranganh/archive/2009/09/23/download-ie8-for-windows-xp-and-get-clarified-on-common.aspx" />
        <id>http://geekswithblogs.net/ranganh/archive/2009/09/23/download-ie8-for-windows-xp-and-get-clarified-on-common.aspx</id>
        <published>2009-09-23T20:04:41-12:00:00</published>
        <updated>2009-09-23T20:09:30Z</updated>
        <content type="html">&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;IE is by far the largest used browser.   However, one of the common myths around IE is the security, performance and that it doesn't support latest web standards.  Many of the other browsers have openly mentioned in the past that using IE6 is so 2006 days, download blah blah etc., advertising for their browser and thereby conveniently hiding the subsequent IE releases.   It strange how people still compare IE6 after which there are 2 releases with all the modern browsers of today.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;The reality of the fact is that after IE6 there have been 2 releases on IE.  The IE 7 and now the latest IE8.  IE 8 is by far the best browser in terms of standards and compliance.  Many web developers out there don't realize that IE provides great help for web development and enhances the web experience to a great extent.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;One of the common patterns, we see is that people use Windows XP and have IE6 that came along with it.  Post that the other browsers such as Firefox started picking up momentum and people started using that.  In that process, they didn’t actually realize that IE also released IE 7 for Windows XP (which shipped as the default IE version with Windows Vista) and now IE 8 that can be installed on XP, Vista and Windows 7.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;You can watch the IE 8 Video features at &lt;/font&gt;&lt;a title="http://www.microsoft.com/windows/internet-explorer/videos.aspx?mname=howto_compatibility" href="http://www.microsoft.com/windows/internet-explorer/videos.aspx?mname=howto_compatibility"&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;http://www.microsoft.com/windows/internet-explorer/videos.aspx?mname=howto_compatibility&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;Also, for developers and IT Professions, we did a few screen casts that can be viewed at &lt;/font&gt;&lt;a title="http://www.microsoft.com/india/webcasts/ondemand.aspx" href="http://www.microsoft.com/india/webcasts/ondemand.aspx"&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;http://www.microsoft.com/india/webcasts/ondemand.aspx&lt;/font&gt;&lt;/a&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt; &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;The best feature I like as a web developer in IE is the Developer Toolbar that helps me accomplish tons of testing.  F12 is your key if you are a web developer and it gives you various techniques for enhancing your web development experience.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;In the past, I have also written about how, the IE8’s tab control and process work and session sharing information at &lt;/font&gt;&lt;a title="http://geekswithblogs.net/ranganh/category/9470.aspx" href="http://geekswithblogs.net/ranganh/category/9470.aspx"&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;http://geekswithblogs.net/ranganh/category/9470.aspx&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;If you are running IE6 on Windows XP, I would recommend to upgrade to the latest version of IE8 and enjoy the benefits.  You can download it from &lt;/font&gt;&lt;a title="http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;amp;familyid=341c2ad5-8c3d-4347-8c03-08cdecd8852b" href="http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;amp;familyid=341c2ad5-8c3d-4347-8c03-08cdecd8852b"&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;amp;familyid=341c2ad5-8c3d-4347-8c03-08cdecd8852b&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;For Windows Vista, you can install it from &lt;/font&gt;&lt;a title="http://www.microsoft.com/windows/internet-explorer/default.aspx" href="http://www.microsoft.com/windows/internet-explorer/default.aspx"&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;http://www.microsoft.com/windows/internet-explorer/default.aspx&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;If you are running Windows 7 Beta, RC or the RTM version, then you don't have to do anything since IE8 ships as default with it.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;And for the statisticians, here is a report on IE’s protection against malware &lt;a title="http://nsslabs.com/test-reports/NSS%20Labs%20Browser%20Security%20-%20Socially%20Engineered%20Malware%20Q3%202009.pdf" href="http://nsslabs.com/test-reports/NSS%20Labs%20Browser%20Security%20-%20Socially%20Engineered%20Malware%20Q3%202009.pdf"&gt;http://nsslabs.com/test-reports/NSS%20Labs%20Browser%20Security%20-%20Socially%20Engineered%20Malware%20Q3%202009.pdf&lt;/a&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;The excerpt from the above report, is here below&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;Internet Explorer 8 caught 81% of the live threats, an exceptional score which surpassed the next best browser (Firefox 3) by a 54% margin. Windows Internet Explorer 8 improved 12% between Q1 and Q2 tests, evidence of concerted efforts Microsoft is making in the SmartScreen technology.&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;&lt;em&gt;Firefox 3 caught 27% of live threats, far fewer than Internet Explorer 8. It was, however, the best among products utilizing the Google SafeBrowsing API. (Note: Firefox 3.5 was not stable enough to be tested during the course of this test. A patch has subsequently become available to address the stability issue. We were able to manually verify that the protection was identical between versions 3.0.11 and 3.5).&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;&lt;em&gt;Safari 4 caught 21% of live threats. Overall protection varied greatly, with two short periods of severe dips.&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;&lt;em&gt;Chrome 2 caught just 7% of live threats an 8% drop from the previous test.&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;&lt;em&gt;Opera 10 Beta caught a mere 1% of live threats, providing virtually no protection against socially engineered malware. In our test bed validation, we verified there was effectively no difference between Opera 9 and Opera 10 Beta.&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;Happy Browsing !!!&lt;/font&gt;&lt;/p&gt;&lt;img src="http://geekswithblogs.net/ranganh/aggbug/135062.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://geekswithblogs.net/ranganh/comments/135062.aspx</wfw:comment>
        <slash:comments>8</slash:comments>
        <wfw:commentRss>http://geekswithblogs.net/ranganh/comments/commentRss/135062.aspx</wfw:commentRss>
        <trackback:ping>http://geekswithblogs.net/ranganh/services/trackbacks/135062.aspx</trackback:ping>
    </entry>
    <entry>
        <title>Install  Zune 4.0, its free, great for playing music, videos (best you dont need to own a Zune for this)</title>
        <link rel="self" type="text/html" href="http://geekswithblogs.net/ranganh/archive/2009/09/21/install--zune-4.0-its-free-great-for-playing-music.aspx" />
        <id>http://geekswithblogs.net/ranganh/archive/2009/09/21/install--zune-4.0-its-free-great-for-playing-music.aspx</id>
        <published>2009-09-21T02:43:40-12:00:00</published>
        <updated>2009-09-21T02:43:40Z</updated>
        <content type="html">&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;Yes, few know that Zune software is free for download, can play music/videos from your system with super clarity all with or without you owning a Zune !!!&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;Its just amazing experience for me, as to the clarity when I play the same song using Zune as against any other software (which includes windows media player, real player etc.,)  Clearly Zune is ahead of its times in terms of the clarity, mixing et all.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;While having a Zune can help you take this music with you wherever you go, its super cool even just to have this software installed on your system, just as a music player.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;As Microsoft employees, we don't get Zune for free as many would imagine.  I bought a Zune for my wife long back and she has been very happy with it so far.  Its tough to convince people over things that they make up their mind with.  But with Zune, it was simpler for me.  Also, I am waiting for Zune HD to come out.  It is something I would look forward to buy as soon as it is available.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;To download Zune software, visit &lt;/font&gt;&lt;a title="http://www.zune.net/en-us/products/software/download/default.htm" href="http://www.zune.net/en-us/products/software/download/default.htm"&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;http://www.zune.net/en-us/products/software/download/default.htm&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;Cheers !!!&lt;/font&gt;&lt;/p&gt;&lt;img src="http://geekswithblogs.net/ranganh/aggbug/134946.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://geekswithblogs.net/ranganh/comments/134946.aspx</wfw:comment>
        <slash:comments>1</slash:comments>
        <wfw:commentRss>http://geekswithblogs.net/ranganh/comments/commentRss/134946.aspx</wfw:commentRss>
        <trackback:ping>http://geekswithblogs.net/ranganh/services/trackbacks/134946.aspx</trackback:ping>
    </entry>
    <entry>
        <title>What&amp;rsquo;s new in ASP.NET 4.0 &amp;ndash; Part III &amp;ndash; Persisting Row Selection in GridView / ListView</title>
        <link rel="self" type="text/html" href="http://geekswithblogs.net/ranganh/archive/2009/09/08/whatrsquos-new-in-asp.net-4.0-ndash-part-iii-ndash-persisting.aspx" />
        <id>http://geekswithblogs.net/ranganh/archive/2009/09/08/whatrsquos-new-in-asp.net-4.0-ndash-part-iii-ndash-persisting.aspx</id>
        <published>2009-09-08T00:32:26-12:00:00</published>
        <updated>2009-09-08T00:37:17Z</updated>
        <content type="html">&lt;iframe height="395" src="http://silverlight.services.live.com/invoke/34222/xEncoderApp1/iframe.html" frameborder="0" width="525" scrolling="no"&gt;&lt;/iframe&gt;&lt;img src="http://geekswithblogs.net/ranganh/aggbug/134549.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://geekswithblogs.net/ranganh/comments/134549.aspx</wfw:comment>
        <slash:comments>7</slash:comments>
        <wfw:commentRss>http://geekswithblogs.net/ranganh/comments/commentRss/134549.aspx</wfw:commentRss>
        <trackback:ping>http://geekswithblogs.net/ranganh/services/trackbacks/134549.aspx</trackback:ping>
    </entry>
    <entry>
        <title>Windows Mobile Device Center &amp;ndash; Deleted Contacts</title>
        <link rel="self" type="text/html" href="http://geekswithblogs.net/ranganh/archive/2009/08/31/windows-mobile-device-center-ndash-deleted-contacts.aspx" />
        <id>http://geekswithblogs.net/ranganh/archive/2009/08/31/windows-mobile-device-center-ndash-deleted-contacts.aspx</id>
        <published>2009-08-31T06:44:47-12:00:00</published>
        <updated>2009-08-31T06:44:47Z</updated>
        <content type="html">&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;If you are using Windows Vista or above and also Windows Mobile Pocket PC or Smart Phone, you would have definitely stumbled upon Windows Mobile Device Center.  It is a one stop place for synchronizing your phone data with your PC i.e. Contacts, Tasks, Emails, Calendar etc.,&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;Today, while I was setting up my new phone, I accidentally deleted the SIM contacts and worst, synchronized it with my PC using the WMDC and gosh, all the contacts from my Outlook got removed as well.  It was frustrating and kept me nervous over the next few minutes.  Then, I did a bi tof research and finally looked into the “Deleted Items” folder in the Outlook.  There all my contacts were there.  I quickly moved them back to the Contacts folder and also saved my years of contacts.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;Well, this post is to help you find it like me, if you happen to end up in a situation like me, so if it helps, it solved the purpose.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;Cheers !!!&lt;/font&gt;&lt;/p&gt;&lt;img src="http://geekswithblogs.net/ranganh/aggbug/134399.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://geekswithblogs.net/ranganh/comments/134399.aspx</wfw:comment>
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://geekswithblogs.net/ranganh/comments/commentRss/134399.aspx</wfw:commentRss>
        <trackback:ping>http://geekswithblogs.net/ranganh/services/trackbacks/134399.aspx</trackback:ping>
    </entry>
    <entry>
        <title>What&amp;rsquo;s new in ASP.NET 4.0 &amp;ndash; Part II &amp;ndash; Routing in Webforms</title>
        <link rel="self" type="text/html" href="http://geekswithblogs.net/ranganh/archive/2009/08/20/whatrsquos-new-in-asp.net-4.0-ndash-part-ii-ndash-routing.aspx" />
        <id>http://geekswithblogs.net/ranganh/archive/2009/08/20/whatrsquos-new-in-asp.net-4.0-ndash-part-ii-ndash-routing.aspx</id>
        <published>2009-08-20T07:21:54-12:00:00</published>
        <updated>2009-08-20T07:32:07Z</updated>
        <content type="html">&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;When I wrote the &lt;/font&gt;&lt;a target="_blank" href="http://geekswithblogs.net/ranganh/archive/2009/08/14/whatrsquos-new-in-asp.net-4.0.aspx"&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;first post&lt;/font&gt;&lt;/a&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt; in this series, there was tremendous amount of interest generated and also a lot of feedback requesting to post some of the advanced features.  Like I said earlier, ASP.NET 4.0 has lots of new features some of them as simple as Page.Title whereas so as big as caching improvements.  This post covers one such feature which is Routing in Webforms.  Although Routing was available even in .NET 3.5 SP1, (check this &lt;/font&gt;&lt;a target="_blank" href="http://haacked.com/archive/2008/03/11/using-routing-with-webforms.aspx"&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;excellent post&lt;/font&gt;&lt;/a&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt; by Phil Haack on implementing Routing in ASP.NET 3.5 with .NET 3.5 SP1), it was kind of less known.  Also the plumbing work was too much for getting it implemented.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;However, this has been much simplified in ASP.NET 4.0.  To give a background, System.Web.Routing is the namespace that provides the all important RouteTable &amp;amp; PageRouteHandler class.  Initially System.Web.Routing was an integral part of ASP.NET MVC.  However, the team must have anticipated that Routing is more important even for Webforms and hence they moved this DLL outside the scope of just MVC and made it available to Webforms as well.  &lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;&lt;strong&gt;Importance of Routing&lt;/strong&gt;:  Getting friendlier URLs which help in better search engine optimization and indexing.  Cleaner URLs that can be bookmarked than the unfriendly querystring based approach.  As more and more URLs are available, the chances of improvement in search engine ranking becomes higher.  These are some of the general advantages of Routing and friendly URLs.  &lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;Ok, now that the context is established, lets start with our sample.  To begin with, I am using Visual Studio 2010 Beta 1 (&lt;/font&gt;&lt;a target="_blank" href="http://www.microsoft.com/downloads/details.aspx?FamilyID=75cbcbcd-b0e8-40ea-adae-85714e8984e3"&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;download link&lt;/font&gt;&lt;/a&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;) and Northwind Sample Database (&lt;/font&gt;&lt;a target="_blank" href="http://www.microsoft.com/Downloads/details.aspx?FamilyID=06616212-0356-46a0-8da2-eebc53a68034"&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;download link&lt;/font&gt;&lt;/a&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;)&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;I created a “File – New Project – ASP.NET Web Application” leaving the default .NET 4.0 as the framework option. Then, I created a bunch of pages i.e Products.aspx, Categories.aspx and also the Global.asax (Add – New Item – Global Application Class)&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;On the Default.aspx page, I added a GridView and configured it to use the Northwind Database Connection String and the Categories Table therein.  I modified the auto-generated bound columns with a Template Column to accomodate our link to Categories Page.  The modified GridView code looks as below:-&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;&lt;em&gt;&amp;lt;asp:GridView ID="GridView1" runat="server" AllowPaging="True" &lt;br /&gt;
            AllowSorting="True" AutoGenerateColumns="False" CellPadding="4" &lt;br /&gt;
            DataKeyNames="CategoryID" DataSourceID="SqlDataSource1" ForeColor="#333333" &lt;br /&gt;
            GridLines="None"&amp;gt; &lt;br /&gt;
            &amp;lt;AlternatingRowStyle BackColor="White" /&amp;gt; &lt;br /&gt;
            &amp;lt;Columns&amp;gt; &lt;br /&gt;
               &amp;lt;asp:TemplateField HeaderText="CategoryName" SortExpression="CategoryName"&amp;gt; &lt;br /&gt;
                    &amp;lt;ItemTemplate&amp;gt; &lt;br /&gt;
                    &lt;/em&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="Tahoma"&gt;&lt;font color="#000080"&gt;&lt;em&gt;&lt;strong&gt;    &amp;lt;a href="Categories/&amp;lt;%# Eval("CategoryName") %&amp;gt;"&amp;gt;&amp;lt;asp:Label ID="Label1" runat="server" Text='&amp;lt;%# Bind("CategoryName") %&amp;gt;'&amp;gt;&amp;lt;/asp:Label&amp;gt;&amp;lt;/a&amp;gt; &lt;br /&gt;
&lt;/strong&gt;                    &amp;lt;/ItemTemplate&amp;gt; &lt;br /&gt;
                &amp;lt;/asp:TemplateField&amp;gt; &lt;br /&gt;
                &amp;lt;asp:BoundField DataField="Description" HeaderText="Description" &lt;br /&gt;
                    SortExpression="Description" /&amp;gt; &lt;br /&gt;
            &amp;lt;/Columns&amp;gt; &lt;br /&gt;
            &amp;lt;FooterStyle BackColor="#990000" Font-Bold="True" ForeColor="White" /&amp;gt; &lt;br /&gt;
            &amp;lt;HeaderStyle BackColor="#990000" Font-Bold="True" ForeColor="White" /&amp;gt; &lt;br /&gt;
            &amp;lt;PagerStyle BackColor="#FFCC66" ForeColor="#333333" HorizontalAlign="Center" /&amp;gt; &lt;br /&gt;
            &amp;lt;RowStyle BackColor="#FFFBD6" ForeColor="#333333" /&amp;gt; &lt;br /&gt;
            &amp;lt;SelectedRowStyle BackColor="#FFCC66" Font-Bold="True" ForeColor="Navy" /&amp;gt; &lt;br /&gt;
        &amp;lt;/asp:GridView&amp;gt;&lt;/em&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font size="2"&gt;&lt;font face="Tahoma"&gt;&lt;font color="#000080"&gt;As you can see, the Item Template for Category Name is modified to sport a hyperlink to “Categories” page followed by the CategoryName itself.  This would mean that the URL for a category, say Beverages would point to &lt;strong&gt;Categories/Beverages&lt;/strong&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;Similarly, on the Categories page, I added a GridView and configured it to use the “Allphabetical List of Products” Table.  I also modified the Bound field for ProductName to a template column to have a link to another Products Page.  The modified GridView code looks as below:-&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;&lt;em&gt;&amp;lt;asp:GridView ID="GridView1" runat="server" AllowPaging="True" &lt;br /&gt;
           AllowSorting="True" AutoGenerateColumns="False" CellPadding="4" &lt;br /&gt;
           DataSourceID="SqlDataSource1" ForeColor="#333333" GridLines="None"&amp;gt; &lt;br /&gt;
           &amp;lt;AlternatingRowStyle BackColor="White" /&amp;gt; &lt;br /&gt;
           &amp;lt;Columns&amp;gt; &lt;br /&gt;
               &amp;lt;asp:TemplateField HeaderText="CategoryName" SortExpression="CategoryName"&amp;gt; &lt;br /&gt;
                   &amp;lt;ItemTemplate&amp;gt; &lt;br /&gt;
                      &lt;/em&gt;&lt;em&gt;&lt;strong&gt;&amp;lt;a href="Products/&amp;lt;%# Eval("ProductName") %&amp;gt;"&amp;gt;&amp;lt;asp:Label ID="Label1" runat="server" Text='&amp;lt;%# Bind("ProductName") %&amp;gt;'&amp;gt;&amp;lt;/asp:Label&amp;gt;&amp;lt;/a&amp;gt; &lt;br /&gt;
&lt;/strong&gt;                   &amp;lt;/ItemTemplate&amp;gt; &lt;br /&gt;
               &amp;lt;/asp:TemplateField&amp;gt; &lt;br /&gt;
               &amp;lt;asp:BoundField DataField="QuantityPerUnit" HeaderText="QuantityPerUnit" &lt;br /&gt;
                   SortExpression="QuantityPerUnit" /&amp;gt; &lt;br /&gt;
               &amp;lt;asp:BoundField DataField="UnitPrice" HeaderText="UnitPrice" &lt;br /&gt;
                   SortExpression="UnitPrice" /&amp;gt; &lt;br /&gt;
               &amp;lt;asp:BoundField DataField="UnitsInStock" HeaderText="UnitsInStock" &lt;br /&gt;
                   SortExpression="UnitsInStock" /&amp;gt; &lt;br /&gt;
               &amp;lt;asp:BoundField DataField="UnitsOnOrder" HeaderText="UnitsOnOrder" &lt;br /&gt;
                   SortExpression="UnitsOnOrder" /&amp;gt; &lt;br /&gt;
               &amp;lt;asp:BoundField DataField="ReorderLevel" HeaderText="ReorderLevel" &lt;br /&gt;
                   SortExpression="ReorderLevel" /&amp;gt; &lt;br /&gt;
               &amp;lt;asp:CheckBoxField DataField="Discontinued" HeaderText="Discontinued" &lt;br /&gt;
                   SortExpression="Discontinued" /&amp;gt; &lt;br /&gt;
           &amp;lt;/Columns&amp;gt; &lt;br /&gt;
           &amp;lt;EditRowStyle BackColor="#2461BF" /&amp;gt; &lt;br /&gt;
           &amp;lt;FooterStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" /&amp;gt; &lt;br /&gt;
           &amp;lt;HeaderStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" /&amp;gt; &lt;br /&gt;
           &amp;lt;PagerStyle BackColor="#2461BF" ForeColor="White" HorizontalAlign="Center" /&amp;gt; &lt;br /&gt;
           &amp;lt;RowStyle BackColor="#EFF3FB" /&amp;gt; &lt;br /&gt;
           &amp;lt;SelectedRowStyle BackColor="#D1DDF1" Font-Bold="True" ForeColor="#333333" /&amp;gt; &lt;br /&gt;
       &amp;lt;/asp:GridView&amp;gt;&lt;/em&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;Note, while configuring above GridView, in the screen where we configure DataSource, I also added a where condition to accomodate the Route Request.  The screen looks as below:-&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;a rel="lightbox" href="http://geekswithblogs.net/images/geekswithblogs_net/ranganh/WindowsLiveWriter/WhatsnewinASP.N.0PartIIRoutinginWebforms_FB27/confscreen1_4.jpg"&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;&lt;img style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title="confscreen1" border="0" alt="confscreen1" width="244" height="197" src="http://geekswithblogs.net/images/geekswithblogs_net/ranganh/WindowsLiveWriter/WhatsnewinASP.N.0PartIIRoutinginWebforms_FB27/confscreen1_thumb_1.jpg" /&gt;&lt;/font&gt;&lt;/a&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt; &lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;a rel="lightbox" href="http://geekswithblogs.net/images/geekswithblogs_net/ranganh/WindowsLiveWriter/WhatsnewinASP.N.0PartIIRoutinginWebforms_FB27/confscreen2_2.jpg"&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;&lt;img style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title="confscreen2" border="0" alt="confscreen2" width="244" height="175" src="http://geekswithblogs.net/images/geekswithblogs_net/ranganh/WindowsLiveWriter/WhatsnewinASP.N.0PartIIRoutinginWebforms_FB27/confscreen2_thumb.jpg" /&gt;&lt;/font&gt;&lt;/a&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt; &lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;Note that I had selected the Where condition from the first screen and specified “CategoryName” under Column,“=” under Operator and “Route” under Source.  Also specified are the RouteKey “catname” and DefaultValue “Beverages”.  Post this, I just had to click on “Add” and then “Ok” to get a conditional select statement in the SQL DataSource (note: for the purpose of this demo, I have used SQL DataSource.  But this would work even if you used any other datasource type / written ADO.NET Code).  The “Route” type is new feature added under Source in Visual Studio 2010.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;Once the above configuration is done, the SQL DataSource code looks as below:-&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;&lt;em&gt;&amp;lt;asp:SqlDataSource ID="SqlDataSource1" runat="server" &lt;br /&gt;
           ConnectionString="&amp;lt;%$ ConnectionStrings:NorthwindConnectionString %&amp;gt;" &lt;br /&gt;
           SelectCommand="SELECT [ProductName], [QuantityPerUnit], [UnitPrice], [UnitsInStock], [UnitsOnOrder], [ReorderLevel], [Discontinued] FROM [Alphabetical list of products] WHERE ([CategoryName] LIKE '%' + @CategoryName + '%')"&amp;gt; &lt;br /&gt;
           &lt;/em&gt;&lt;em&gt;&lt;strong&gt;&amp;lt;SelectParameters&amp;gt; &lt;br /&gt;
               &amp;lt;asp:RouteParameter DefaultValue="Beverages" Name="CategoryName" &lt;br /&gt;
                   RouteKey="catname" Type="String" /&amp;gt; &lt;br /&gt;
           &amp;lt;/SelectParameters&amp;gt; &lt;br /&gt;
&lt;/strong&gt;       &amp;lt;/asp:SqlDataSource&amp;gt;&lt;/em&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;I have also added a label to the page just to show the term used to filter and the value for that can be picked up from the Page.RouteData values in the codebehind as follows:-&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;&lt;em&gt;protected void Page_Load(object sender, EventArgs e) &lt;br /&gt;
       { &lt;br /&gt;
           if (Page.RouteData.Values["catname"] != null) &lt;br /&gt;
           { &lt;br /&gt;
               lblDisplay.Text += "&amp;lt;b&amp;gt;" + Page.RouteData.Values["catname"].ToString() + "&amp;lt;/b&amp;gt;"; &lt;br /&gt;
           } &lt;br /&gt;
           else &lt;br /&gt;
           { &lt;br /&gt;
               lblDisplay.Visible = false; &lt;br /&gt;
           } &lt;br /&gt;
       }&lt;/em&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;Before getting into Route Configuration, I also added a DetailsView control in the Products.aspx page to show the complete details of a product.   And when configuring the DataSource for the DetailsView, I again specified the WHERE condition to the picked up from the RouteData that would come from the above GridView in Catagories Page.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;Once this is done, all that is pending is to configure the Route Values.  In .NET 3.5 SP1 if you want to establish routing, you would have to manually create the WebFormRouteHandler Class and make sure all the pages inherit from this class.  However, in .NET 4.0, it has been much simplied.  All I had to do was open the Global.asax and add the following&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;&lt;em&gt;protected void Application_Start(object sender, EventArgs e) &lt;br /&gt;
        { &lt;br /&gt;
             RouteTable.Routes.Add("ProductRoute", new Route("Categories/Products/{productname}", &lt;br /&gt;
       new PageRouteHandler("~/Products.aspx"))); &lt;/em&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;&lt;em&gt;            RouteTable.Routes.Add("CategoryRoute", new Route("Categories/{catname}", &lt;br /&gt;
       new PageRouteHandler("~/Categories.aspx"))); &lt;br /&gt;
        }&lt;/em&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;(note you would need to add System.Web.Routing namespace to be able to use PageRouteHandler, RouteTable classes etc.,)&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;So, in the Default.aspx page, all the Catagories would have a link that points to /Categories/&amp;lt;CategoryName&amp;gt; and in the Categories.aspx page, all the ProductNames would have a link that points to /Categories/Products/&amp;lt;ProductName&amp;gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;A typical URL is &lt;/font&gt;&lt;a title="http://localhost:2490/Categories/Condiments" href="http://localhost/Categories/Condiments"&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;http://localhost/Categories/Condiments&lt;/font&gt;&lt;/a&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt; and &lt;/font&gt;&lt;a title="http://localhost:2490/Categories/Products/Aniseed%20Syrup" href="http://localhost/Categories/Products/Aniseed%20Syrup"&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;http://localhost/Categories/Products/Aniseed%20Syrup&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;Note that similarly, we have close to 10 URLs for Beverages and around 80 URLs (a URL for each product as above) for Products in this particular application.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;You can download the sample from &lt;/font&gt;&lt;iframe style="BORDER-BOTTOM: #dde5e9 1px solid; BORDER-LEFT: #dde5e9 1px solid; PADDING-BOTTOM: 0px; BACKGROUND-COLOR: #ffffff; MARGIN: 3px; PADDING-LEFT: 0px; WIDTH: 240px; PADDING-RIGHT: 0px; HEIGHT: 26px; BORDER-TOP: #dde5e9 1px solid; BORDER-RIGHT: #dde5e9 1px solid; PADDING-TOP: 0px" marginheight="0" src="http://cid-069f94a102eff49a.skydrive.live.com/embedrow.aspx/WebformRoutingSample" frameborder="0" marginwidth="0" scrolling="no"&gt;&lt;/iframe&gt; &lt;font color="#ff0000" size="2" face="Tahoma"&gt;(Add your connectionstring to Northwind Database in the web.config file)&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;Cheers !!!&lt;/font&gt;&lt;/p&gt;&lt;img src="http://geekswithblogs.net/ranganh/aggbug/134210.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://geekswithblogs.net/ranganh/comments/134210.aspx</wfw:comment>
        <slash:comments>14</slash:comments>
        <wfw:commentRss>http://geekswithblogs.net/ranganh/comments/commentRss/134210.aspx</wfw:commentRss>
        <trackback:ping>http://geekswithblogs.net/ranganh/services/trackbacks/134210.aspx</trackback:ping>
    </entry>
    <entry>
        <title>What&amp;rsquo;s new in ASP.NET 4.0 - Part I - View State &amp; SEO Improvements</title>
        <link rel="self" type="text/html" href="http://geekswithblogs.net/ranganh/archive/2009/08/14/whatrsquos-new-in-asp.net-4.0.aspx" />
        <id>http://geekswithblogs.net/ranganh/archive/2009/08/14/whatrsquos-new-in-asp.net-4.0.aspx</id>
        <published>2009-08-14T06:15:08-12:00:00</published>
        <updated>2009-09-08T00:44:24Z</updated>
        <content type="html">&lt;p&gt;&lt;font color="#ff0000" size="2" face="Tahoma"&gt;UPDATE dated August 17, 2009&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#ff0000" size="2" face="Tahoma"&gt;Once I posted this entry, there is a lot of interest that has been shown and few queries as well.  So I thought I need to update this post.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#ff0000"&gt;This is only the first post in the series on ASP.NET 4.0 fetaures.  There are lot of ground breaking things and other enhancements that are pretty exciting.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#ff0000"&gt;To the folks who asked for "why MS changing dev platform once in 18 months"&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#ff0000"&gt;There is no change.  there are a few enhancements.  Post .NET 2.0 there have been a lot of additional APIs such as LINQ, Entity Framework etc., which are different ways of data handling.  While core ADO.NET is still valid, these are additional enhancements that can be used at the Developer's / Architect's discretion.  &lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#ff0000"&gt;For the folks you asked about URL Rewriting&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#ff0000"&gt;There is URL Routing which is much better than URL Rewriting.  We have talked about it, enough in the past .  You can read more about it at &lt;font face="Arial"&gt;&lt;a href="http://www.mostlylucid.net/archive/2009/01/25/asp.net-4.0-webform-routing-quick-rsquon-dirty-version.aspx"&gt;http://www.mostlylucid.net/archive/2009/01/25/asp.net-4.0-webform-routing-quick-rsquon-dirty-version.aspx&lt;/a&gt; &lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#ff0000"&gt;I will be covering more features in the following post.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#ff0000"&gt;Thanks for the inerest&lt;/font&gt; &lt;img alt="" src="/Providers/BlogEntryEditor/FCKeditor/editor/images/smiley/msn/regular_smile.gif" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;With Visual Studio 2010 Beta 1 and .NET Framework Beta 1 out for some time, this post is due from me for a long time.   ASP.NET 4.0 has many improvements for different set of scenarios such as Webforms, Dynamic Data &amp;amp; AJAX based web development.  There are also a lot of enhancements to the core runtime that powers ASP.NET such as Caching, Session &amp;amp; Request/Response objects.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;For this post, we will examine some of the web form enhancements.  There are sure a lot of them and we will examine some of them in the future posts.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;&lt;strong&gt;Controlling View State using the ViewStateMode Property – Performance Enhancement&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;One of the most complained thing in ASP.NET Webform is the growing viewstate which becomes a concern for performance.  While earlier you can set the EnableViewState property to true or false, post that, all the controls, by default inherit and even if you set it to enabled at control level, the behaviour was inconsistent.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;With ASP.NET 4.0, the ViewStateMode property helps to determine for every control, whether the ViewState should be enabled, disabled or inherited accordingly.  Ex.- &lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;&lt;em&gt;&amp;lt;asp:Panel ID="pnlViewState" runat="server" &lt;strong&gt;ViewStateMode="Disabled"&lt;/strong&gt;&amp;gt; &lt;br /&gt;
      Disabled: &amp;lt;asp:Label ID="label1" runat="server"  Text="Value set in markup" &lt;strong&gt;ViewStateMode="Inherit"&lt;/strong&gt;  /&amp;gt;&amp;lt;br /&amp;gt; &lt;br /&gt;
           Enabled: &amp;lt;asp:Label ID="label2"  runat="server" Text="Value set in markup" &lt;strong&gt;ViewStateMode="Enabled" &lt;/strong&gt;/&amp;gt; &lt;br /&gt;
  &amp;lt;hr /&amp;gt; &lt;br /&gt;
  &amp;lt;asp:button ID="Button1" runat="server"  Text="Postback" /&amp;gt; &lt;br /&gt;
    &amp;lt;/asp:Panel&amp;gt;&lt;/em&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;In the code-behind&lt;/font&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;&lt;em&gt;protected void Page_Load(object sender, EventArgs e) &lt;br /&gt;
    { &lt;br /&gt;
        if (!IsPostBack) &lt;br /&gt;
        { &lt;br /&gt;
            label1.Text = "Value set in code behind"; &lt;br /&gt;
            label2.Text = "Value set in code behind"; &lt;br /&gt;
        } &lt;br /&gt;
    }&lt;/em&gt;&lt;/font&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;When you run the above page, you can find that the intial value for both the labels is set to “Value set in code behind” whereas after clicking on the button (postback), the value of label1 changes to “Value set in markup” whereas the value of label2 remains unchanged.  As you can see, the Panel which holds both these lables has ViewStateMode set to Disabled and label1 is inherting the mode (this is the default if not specified) and label2 has it enabled.  That is the reason label2 maintains viewstate while label1 loses it.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;While it is arguably possible using the simple EnableViewState property earlier, it was never consistent.  Considering the fact that in most of our performance sessions, we talk about disabling viewstate and then enabling it at control level while it doesnt work, this ViewStateMode is a welcome architectural change to improve performance.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;Page Meta Keyword &amp;amp; Description – Search Engine Optimization feature&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;Upto Visual Studio 2008, one can set the Title of the page declaratively or through program using Page.Title.  However, as more and more web traffic is happening through search engines, Page’s Title, Keyword and description become more important.  Although the Keyword feature was exploited and hence many search engines today ignore it, Page Description is something still major search engines such as Google, Bing use for identifying and indexing pages based on content.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;The new feature in ASP.NET 4.0 allows users to programmatically set the Page Description and Keywords as follows:-&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;&lt;em&gt;protected void Page_Load(object sender, EventArgs e) &lt;br /&gt;
    { &lt;br /&gt;
        this.Page.Title = "My ASP.NET Blog"; &lt;br /&gt;
        this.Page.MetaKeywords = "ASP.NET, Web Development, Blog, ASP.NET Blog"; &lt;br /&gt;
        this.Page.MetaDescription = "This Blog contains posts related to ASP.NET and Web Development"; &lt;br /&gt;
    }&lt;/em&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;The above code appends the following markup&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;&amp;lt;meta name="keywords" content="ASP.NET, Web Development, Blog, ASP.NET Blog" /&amp;gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;&amp;lt;meta name="description" content="This Blog contains posts related to ASP.NET and Web Development" /&amp;gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;And the way it works is that, if the meta tags are already present in the HTML markup, whatever is set in the code behind  will fill up the “content” part alone if the “name” tag is matching.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;Although this looks simple, it is very useful in cases where you want to set these dynamically based on a condition / criteria.  So far, these were set statically in the HTML.  Now with Page Class level access, these can be set dynamically.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;There are many more enhancements to Webforms such as Routing improvements, setting ClientID etc., which we will examine in the future posts.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;Cheers !!!&lt;/font&gt;&lt;/p&gt;&lt;img src="http://geekswithblogs.net/ranganh/aggbug/134091.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://geekswithblogs.net/ranganh/comments/134091.aspx</wfw:comment>
        <slash:comments>27</slash:comments>
        <wfw:commentRss>http://geekswithblogs.net/ranganh/comments/commentRss/134091.aspx</wfw:commentRss>
        <trackback:ping>http://geekswithblogs.net/ranganh/services/trackbacks/134091.aspx</trackback:ping>
    </entry>
    <entry>
        <title>ASP.NET 4.0 QueryExtender, AutoCompleteExtender and UpdatePanel &amp;ndash; mashing it up all</title>
        <link rel="self" type="text/html" href="http://geekswithblogs.net/ranganh/archive/2009/08/13/asp.net-4.0-queryextender-autocompleteextender-and-updatepanel-ndash-mashing-it-up-again.aspx" />
        <id>http://geekswithblogs.net/ranganh/archive/2009/08/13/asp.net-4.0-queryextender-autocompleteextender-and-updatepanel-ndash-mashing-it-up-again.aspx</id>
        <published>2009-08-13T02:56:06-12:00:00</published>
        <updated>2009-08-14T07:16:20Z</updated>
        <content type="html">&lt;p&gt;&lt;font color="#ff0000" size="2" face="Tahoma"&gt;(this is a repost since the initial post had a few issues that couldn’t be corrected)&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;I am playing with the ASP.NET 4.0 QueryExtender released as a part of the Visual Studio 2010 Beta 1.   It provides endless opportunities for working with data without writing much code and when you combine it with a few Ajax features, gives a truly great user experience with very less effort.  &lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;To begin with you need the Visual Studio 2010 Beta 1 and .NET Framework 4.0 Beta 1.  You can install both from &lt;/font&gt;&lt;a href="http://msdn.microsoft.com/hi-in/netframework/dd819232(en-us).aspx"&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;http://msdn.microsoft.com/hi-in/netframework/dd819232(en-us).aspx&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;Also, I am using the Northwind sample database and this can be downloaded from &lt;/font&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=06616212-0356-46A0-8DA2-EEBC53A68034&amp;amp;displaylang=en"&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;http://www.microsoft.com/downloads/details.aspx?FamilyID=06616212-0356-46A0-8DA2-EEBC53A68034&amp;amp;displaylang=en&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;To make things more fun, I am also using AJAX Control Toolkit.  You can download the same from &lt;/font&gt;&lt;a href="http://ajaxcontroltoolkit.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=27326"&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;http://ajaxcontroltoolkit.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=27326&lt;/font&gt;&lt;/a&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt; You can download just the DLL from the &lt;strong&gt;AJAXControlToolkit-Framework3.5SP1-DllOnly.zip&lt;/strong&gt; link in this page since in this sample, we are just going to use the control.  However, if you already have the AjaxControlToolkit installed, you can simply reference the AjaxControlToolkit.dll file in the Website.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;Note that, due to a security implementation in VS 2010, the AjaxControlToolkit DLL cannot be used as is in the projects in VS 2010.  Check this post on using AjaxControlToolkit with VS 2010 Beta 1 &lt;/font&gt;&lt;a href="http://blogs.msdn.com/webdevtools/archive/2009/05/26/using-microsoft-ajax-control-toolkit-with-visual-studio-10-beta-1.aspx"&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;http://blogs.msdn.com/webdevtools/archive/2009/05/26/using-microsoft-ajax-control-toolkit-with-visual-studio-10-beta-1.aspx&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;Once you are done with the installation and other steps, create a new ASP.NET Website.  Note that, for the QueryExtender to work well, you need to make a small web.config update.  You can find the details about this, in my &lt;/font&gt;&lt;a href="http://geekswithblogs.net/ranganh/archive/2009/06/04/unknown-server-tag-lsquoaspsearchexpressionrsquo-error-with-queryextender-control-in-visual.aspx"&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;previous post  here&lt;/font&gt;&lt;/a&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;  This is just a Beta behaviour.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;In the ASP.NET Website, first we will create a LINQ to SQL Class (Right Click Website – Add new item – LINQ TO SQL Class.  Provide this the name “Northwind”.  It would create a Northwind.dbml file, a class file as well as layout file.   Using the server explorer link, connect to the Northwind Database.  For this sample, I am using the Products table.   So, select the table from Northwind database folder under “Tables” and drag and drop it into the LINQ to SQL designer view.  Build the solution.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;Once this is done, open the Default.aspx page and add the following code after the form tag.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;em&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;&amp;lt;asp:ScriptManager ID="ScriptManager1" runat="server" EnablePageMethods="true"&amp;gt; &lt;br /&gt;
        &amp;lt;/asp:ScriptManager&amp;gt; &lt;/font&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;We are adding the above since we are going to use Ajax Futures.  Normally this is not required to use the QueryExtender&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;Then, add a LINQ Data Source and configure it to use the Products table in the Northwind DataContext created.  The code should look something like below:-&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;em&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;&amp;lt;asp:LinqDataSource ID="LinqDataSource1" runat="server" ContextTypeName="NorthwindDataContext" &lt;br /&gt;
            TableName="Products"&amp;gt; &lt;br /&gt;
        &amp;lt;/asp:LinqDataSource&amp;gt;&lt;/font&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;Post this, I am adding a TextBox, Button and QueryExtender as follows:-&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;em&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;&amp;lt;asp:TextBox ID="TextBox1" runat="server"&amp;gt;&amp;lt;/asp:TextBox&amp;gt;&lt;/font&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;em&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;&amp;lt;asp:Button ID="Button1" Text="Submit" runat="server" /&amp;gt;&lt;/font&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;em&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;&amp;lt;asp:QueryExtender ID="QueryExtender1" runat="server" TargetControlID="LinqDataSource1"&amp;gt; &lt;br /&gt;
          &amp;lt;asp:SearchExpression DataFields="ProductName" SearchType="StartsWith"&amp;gt; &lt;br /&gt;
            &amp;lt;asp:ControlParameter ControlID="TextBox1" /&amp;gt; &lt;br /&gt;
          &amp;lt;/asp:SearchExpression&amp;gt; &lt;br /&gt;
        &amp;lt;/asp:QueryExtender&amp;gt;&lt;/font&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;Note that the ControlID for QueryExtender’s ControlParameter is TextBox1 and the TargetControlID is LinqDataSource1.  Update these if you gave different ID Names.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;Post this, add a GridView to the page and configure it to use the LINQ DataSource created above.  I am not posting the code below since it would make this post too big.  &lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;If everything works fine, you should be able to see a GridView populated with the Products Data and a TextBox and Button when you run the page.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;When you type a particular Product Name, say “Anideed Syrup” and click on “Submit” Button, it would filter and show only that particular record in the GridView.  Note that, you haven’t written any code for this filtering so far.  All happens by virtue of the QueryExtender control.  We have used SearchExpression in this case and it has stuff like StartsWith, EndsWith, contains for SearchType that can be used exhaustively for different requirements.  Also, there is RangeExpression, PropertyExpression etc.,  &lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;The input for the QueryExtender can also come from various sources.  In this case, it is TextBox and hence ControlParameter.  You can also use QueryString, Cookie, Form, Profile, Session etc., &lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;For a more exhaustive sample on QueryExtender, check &lt;/font&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/dd537669(VS.100).aspx"&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;http://msdn.microsoft.com/en-us/library/dd537669(VS.100).aspx&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;Now that we have a search behaviour, we would like to go little further and make this whole stuff asynchronous so that the operation is smooth.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;Add an UpdatePanel and place all the above inside the ContentTemplate of the UpdatePanel.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;When you run the page now and type a search item and click on the “Submit” button, the results bind asynchronously without a postback, making it look better.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;One final touch is to provide search suggestions.  For this, I would be using the AutoCompleteExtender feature.  If you already have the AjaxControlToolkit installed, you may want to remove it from ToolBox and do the step in paragraph 5 (security implementation in VS 2010)  above and then add it to the Toolbox again.  &lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;Drag and drop the AutoCompleteExtender into the page and set its TargetControlID to TextBox1.  &lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;Now, the AutoCompleteExtender requires a Web Method to retrieve the values asynchronously.   We will use PageMethods for this so that we avoid creating a separate webservice.   For this purpose, we will use the same DataContext created by the LINQ DataSource Control above.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;Swtich to the code behind of the Default.aspx page i.e. Default.aspx.cs file and add the following using statements&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;em&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;using System.Web.Services; &lt;br /&gt;
using System.Configuration;&lt;/font&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;Post that, the method for retrieving product name is as below:-&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;em&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;[WebMethod] &lt;br /&gt;
    public static IQueryable GetProductNames(string prefixText) &lt;br /&gt;
    { &lt;br /&gt;
        NorthwindDataContext nwdc = new NorthwindDataContext(); &lt;/font&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;em&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;        var productList = from Product in nwdc.Products &lt;br /&gt;
                          where Product.ProductName.StartsWith(prefixText) &lt;br /&gt;
                          select Product.ProductName; &lt;/font&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;em&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;        return productList; &lt;br /&gt;
     }&lt;/font&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;With this, we are getting a list of Products whose names start with the prefixText.  The prefixText is the one used in the AutoCompleteExtender and length can be set using MinimumPrefixLength from 1 to 2,3 etc.,  This is basically the number of characters you need to type before the suggestions need to show up.  Then configure the ServiceMethod for the AutoCompleteExtender to GetProductNames (the method above).  The updated AutoCompleteExtender code should look like&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;em&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;&amp;lt;cc1:AutoCompleteExtender ID="AutoCompleteExtender1" runat="server" &lt;br /&gt;
                    MinimumPrefixLength="1" TargetControlID="TextBox1" ServiceMethod="GetProductNames"&amp;gt; &lt;br /&gt;
                &amp;lt;/cc1:AutoCompleteExtender&amp;gt;&lt;/font&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;Once you have all of these, run the page and when you start typing the ProductName in the TextBox, it should start showing suggestions.  Select one of them and click on the “Submit” Button and you should get the result bound to GridView, all happening without a postback.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;You can improve the layout with better CSS for the AutoCompleteExtender, better layout for GridView, Button etc., to further improve the experience.  I have posted a few sample screen shots below and also attached the source code for the above sample with this.  Note that there are far too many steps involved in setting up the website rather than the actual code work, so if something doesn’t work, make sure you have checked all the initial steps mentioned by me in the beginning.  Hope you find this sample useful.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;Download the sample from&lt;/font&gt; &lt;a href="http://cid-069f94a102eff49a.skydrive.live.com/browse.aspx/QueryExtenderSample"&gt;http://cid-069f94a102eff49a.skydrive.live.com/browse.aspx/QueryExtenderSample&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/ranganh/WindowsLiveWriter/ASP.0QueryExtenderAutoCompleteExtenderan_E7D1/screenshot1_2.jpg"&gt;&lt;img title="screenshot1" border="0" alt="screenshot1" width="722" height="276" src="http://geekswithblogs.net/images/geekswithblogs_net/ranganh/WindowsLiveWriter/ASP.0QueryExtenderAutoCompleteExtenderan_E7D1/screenshot1_thumb.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/ranganh/WindowsLiveWriter/ASP.0QueryExtenderAutoCompleteExtenderan_E7D1/screenshot_2.jpg"&gt;&lt;img title="screenshot" border="0" alt="screenshot" width="729" height="237" src="http://geekswithblogs.net/images/geekswithblogs_net/ranganh/WindowsLiveWriter/ASP.0QueryExtenderAutoCompleteExtenderan_E7D1/screenshot_thumb.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#000080" size="2" face="Tahoma"&gt;Cheers !!!&lt;/font&gt;&lt;/p&gt;&lt;img src="http://geekswithblogs.net/ranganh/aggbug/134069.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://geekswithblogs.net/ranganh/comments/134069.aspx</wfw:comment>
        <slash:comments>3</slash:comments>
        <wfw:commentRss>http://geekswithblogs.net/ranganh/comments/commentRss/134069.aspx</wfw:commentRss>
        <trackback:ping>http://geekswithblogs.net/ranganh/services/trackbacks/134069.aspx</trackback:ping>
    </entry>
    <entry>
        <title>Virtual TechDays &amp;ndash; the team</title>
        <link rel="self" type="text/html" href="http://geekswithblogs.net/ranganh/archive/2009/08/04/virtual-techdays-ndash-the-team.aspx" />
        <id>http://geekswithblogs.net/ranganh/archive/2009/08/04/virtual-techdays-ndash-the-team.aspx</id>
        <published>2009-08-04T06:59:56-12:00:00</published>
        <updated>2009-08-04T06:59:56Z</updated>
        <content type="html">&lt;iframe style="width: 500px; height: 375px" src="http://silverlight.services.live.com/invoke/34222/Virtual%20TechDays%20-%20the%20Team/iframe.html" frameborder="0" scrolling="no"&gt;&lt;/iframe&gt;&lt;img src="http://geekswithblogs.net/ranganh/aggbug/133898.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://geekswithblogs.net/ranganh/comments/133898.aspx</wfw:comment>
        <slash:comments>4</slash:comments>
        <wfw:commentRss>http://geekswithblogs.net/ranganh/comments/commentRss/133898.aspx</wfw:commentRss>
        <trackback:ping>http://geekswithblogs.net/ranganh/services/trackbacks/133898.aspx</trackback:ping>
    </entry>
</feed>