<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-7402073700401533358</id><updated>2011-11-27T15:58:24.228-08:00</updated><category term='LINQ'/><category term='Office 2003'/><category term='2007 Office System'/><category term='WCF'/><category term='.NET Framework Client Profile'/><category term='ASP.NET 3.5'/><category term='VS2008'/><category term='Soap Toolkit'/><category term='C# 3.0'/><title type='text'>Microsoft .NET Framework 3.5</title><subtitle type='html'>Information about .NET Framework version 3.5</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://dotnetframework3.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://dotnetframework3.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default?start-index=101&amp;max-results=100'/><author><name>sudhir</name><uri>http://www.blogger.com/profile/14935355985671801644</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>115</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-7402073700401533358.post-5091161400582967705</id><published>2010-02-04T02:01:00.002-08:00</published><updated>2010-02-04T02:02:19.179-08:00</updated><title type='text'>ASP.NET raises all of the following events (in this order):</title><content type='html'>Page.Init&lt;br /&gt;• Page.Load&lt;br /&gt;• TextBox.TextChanged&lt;br /&gt;• Button.Click&lt;br /&gt;• Page.PreRender&lt;br /&gt;• Page.Unload&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7402073700401533358-5091161400582967705?l=dotnetframework3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetframework3.blogspot.com/feeds/5091161400582967705/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7402073700401533358&amp;postID=5091161400582967705' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/5091161400582967705'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/5091161400582967705'/><link rel='alternate' type='text/html' href='http://dotnetframework3.blogspot.com/2010/02/aspnet-raises-all-of-following-events.html' title='ASP.NET raises all of the following events (in this order):'/><author><name>sudhir</name><uri>http://www.blogger.com/profile/14935355985671801644</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7402073700401533358.post-7249103067884826894</id><published>2010-02-04T02:01:00.001-08:00</published><updated>2010-02-04T02:01:18.790-08:00</updated><title type='text'>The following list shows the major stages in the process flow of an ASP.NET page:</title><content type='html'>• Page framework initialization&lt;br /&gt;• User code initialization&lt;br /&gt;• Validation&lt;br /&gt;• Event handling&lt;br /&gt;• Automatic data binding&lt;br /&gt;• Cleanup&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7402073700401533358-7249103067884826894?l=dotnetframework3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetframework3.blogspot.com/feeds/7249103067884826894/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7402073700401533358&amp;postID=7249103067884826894' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/7249103067884826894'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/7249103067884826894'/><link rel='alternate' type='text/html' href='http://dotnetframework3.blogspot.com/2010/02/following-list-shows-major-stages-in.html' title='The following list shows the major stages in the process flow of an ASP.NET page:'/><author><name>sudhir</name><uri>http://www.blogger.com/profile/14935355985671801644</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7402073700401533358.post-3978276970573998613</id><published>2010-02-04T01:58:00.000-08:00</published><updated>2010-02-04T02:00:14.433-08:00</updated><title type='text'>View State Chunking</title><content type='html'>&lt;div style="text-align: justify;"&gt;The size of the hidden view state field has no limit. However, some proxy servers and firewalls refuse to let pages through if they have hidden fields greater than a certain size. To circumvent this problem, you can use view state chunking, which automatically divides view state into multiple fields to  ensure that no hidden field exceeds a size threshold you set.&lt;br /&gt;To use view state, you simply need to set the maxPageStateFieldLength attribute of the &lt;pages&gt;&lt;br /&gt;element in the web.config file. This specifies the maximum view state size, in bytes. Here’s an example&lt;br /&gt;that caps view state at 1 KB:&lt;br /&gt;&lt;configuration&gt;&lt;br /&gt;&lt;system.web&gt;&lt;br /&gt;&lt;pages maxpagestatefieldlength = "1024"&gt;&lt;br /&gt;&lt;/system.web&gt;&lt;br /&gt;&lt;/configuration&gt;&lt;br /&gt;&lt;br /&gt;When you request a page that generates a view state larger than this, several hidden input fields will be created:&lt;br /&gt;&lt;input type="hidden" name="__VIEWSTATEFIELDCOUNT" value="3"&gt;&lt;br /&gt;&lt;input type="hidden" name="__VIEWSTATE" value="..."&gt;&lt;br /&gt;&lt;input type="hidden" name="__VIEWSTATE1" value="..."&gt;&lt;br /&gt;&lt;input type="hidden" name="__VIEWSTATE2" value="..."&gt;&lt;br /&gt;&lt;br /&gt;Remember, view state chunking is simply a mechanism for avoiding problems with certain&lt;br /&gt;proxies (which is a relatively rare occurrence). View state chunking does not improve performance (and adds a small amount of extra serialization overhead). As a matter of good design, you should strive to include as little information in view state as possible, which ensures the best performance.&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7402073700401533358-3978276970573998613?l=dotnetframework3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetframework3.blogspot.com/feeds/3978276970573998613/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7402073700401533358&amp;postID=3978276970573998613' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/3978276970573998613'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/3978276970573998613'/><link rel='alternate' type='text/html' href='http://dotnetframework3.blogspot.com/2010/02/view-state-chunking.html' title='View State Chunking'/><author><name>sudhir</name><uri>http://www.blogger.com/profile/14935355985671801644</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7402073700401533358.post-984398610059893054</id><published>2010-02-04T01:56:00.000-08:00</published><updated>2010-02-04T01:58:43.015-08:00</updated><title type='text'>ASP..NET Page Processing</title><content type='html'>&lt;div style="text-align: justify;"&gt;One of the key goals of ASP.NET is to create a model that lets web developers rapidly develop web forms in the same way that Windows developers can build made-to-measure windows in a desktop application. Of course, web applications are very different from traditional rich client applications.&lt;br /&gt;&lt;br /&gt;There are two key stumbling blocks:&lt;br /&gt;&lt;br /&gt;Web applications execute on the server: For example, suppose you create a form that allows the user to select a product record and update its information. The user performs these tasks in the browser, but in order for you to perform the required operations (such as updating the database), your code needs to run on the web server. ASP.NET handles this divide with a technique called postback, which sends the page (and all user-supplied information) to the server when certain actions are performed. Once ASP.NET receives the page, it can then fire the corresponding server-side events to notify your code.&lt;br /&gt;&lt;br /&gt;Web applications are stateless: In other words, before the rendered HTML page is sent to the&lt;br /&gt;user, your web-page objects are destroyed and all client-specific information is discarded. This model lends itself well to highly scalable, heavily trafficked applications, but it makes it difficult to create a seamless user experience. ASP.NET includes several tools to help you bridge this gap; most notable is a persistence mechanism called view state, which automatically embeds information about the page in a hidden field in the rendered HTML.&lt;br /&gt;In the following sections, you’ll learn about both the postback and the view state features.&lt;br /&gt;&lt;br /&gt;Together, these mechanisms help abstract the underlying HTML and HTTP details, allowing developers to work in terms of objects and events.&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7402073700401533358-984398610059893054?l=dotnetframework3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetframework3.blogspot.com/feeds/984398610059893054/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7402073700401533358&amp;postID=984398610059893054' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/984398610059893054'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/984398610059893054'/><link rel='alternate' type='text/html' href='http://dotnetframework3.blogspot.com/2010/02/aspnet-page-processing.html' title='ASP..NET Page Processing'/><author><name>sudhir</name><uri>http://www.blogger.com/profile/14935355985671801644</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7402073700401533358.post-7376352705276773066</id><published>2010-02-04T01:51:00.000-08:00</published><updated>2010-02-04T01:54:47.551-08:00</updated><title type='text'>Core Assemblies for ASP.NET Pages Description</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;span style="font-weight: bold;"&gt;mscorlib.dll and System.dll&lt;/span&gt; Includes the core set of .NET data types, common exception&lt;br /&gt;types, and numerous other fundamental building blocks.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;System.Configuration.dll&lt;/span&gt; Includes classes for reading and writing configuration informationin the web.config file, including your custom settings.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;System.Data.dll&lt;/span&gt; Includes the data container classes for ADO.NET, along with the SQL Server data provider.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;System.Drawing.dll &lt;/span&gt;Includes classes representing colors, fonts, and shapes. Also includes the GDI+ drawing logic you need to build graphics on the fly.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;System.Web.dll&lt;/span&gt; Includes the core ASP.NET classes, including classes for building web forms, managing state, handling security, and much more.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;System.Web.Services.dll&lt;/span&gt; Includes classes for building web services—units of code that can be remotely invoked over HTTP.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;System.Xml.dll &lt;/span&gt;Includes .NET classes for reading, writing, searching, transforming, and validating XML.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;System.EnterpriseServices.dll&lt;/span&gt; Includes .NET classes for COM+ services such as transactions.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;System.Web.Mobile.dll&lt;/span&gt; Includes .NET classes for the mobile web controls, which are&lt;br /&gt;targeted for small devices such as web-enabled cell phones.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7402073700401533358-7376352705276773066?l=dotnetframework3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetframework3.blogspot.com/feeds/7376352705276773066/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7402073700401533358&amp;postID=7376352705276773066' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/7376352705276773066'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/7376352705276773066'/><link rel='alternate' type='text/html' href='http://dotnetframework3.blogspot.com/2010/02/core-assemblies-for-aspnet-pages.html' title='Core Assemblies for ASP.NET Pages Description'/><author><name>sudhir</name><uri>http://www.blogger.com/profile/14935355985671801644</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7402073700401533358.post-1704641791864502544</id><published>2010-02-04T01:49:00.000-08:00</published><updated>2010-02-04T01:51:30.715-08:00</updated><title type='text'>ASP.NET File Types Description</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;span style="font-weight: bold;"&gt;Ends with .aspx&lt;/span&gt; These are ASP.NET web pages (the .NET equivalent of the .asp file in&lt;br /&gt;an ASP application). They contain the user interface and, optionally, the underlying application code. Users request or navigate directly to one of these pages to start your web application.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Ends with .ascx&lt;/span&gt; These are ASP.NET user controls. User controls are similar to web pages, except that they can’t be accessed directly. Instead, they must be hosted inside an ASP.NET web page. User controls allow you to develop an important piece of the user interface and reuse it in as many web forms as you want without repetitive code.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Ends with .asmx or .svc&lt;/span&gt; These are ASP.NET web services. Web services work differently than web pages, but they still share the same application resources, configuration settings, and memory. However, ASP.NET web services are gradually being phased out in favor of WCF (Windows Communication Foundation) services, which were introduced with .NET 3.0 and have the extension .svc. You’ll use web services with ASP.NET AJAX&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;web.config&lt;/span&gt; This is the XML-based configuration file for your ASP.NET application. It includes settings for customizing security, state management, memory management, and much more.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;global.asax&lt;/span&gt; This is the global application file. You can use this file to define global variables and react to global events, such as when a web application first starts (see Chapter 5 for a detailed discussion). Visual Studio doesn’t create a global.asax file by default—you need to add it if it’s appropriate.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Ends with .cs&lt;/span&gt; These are code-behind files that contain C# code. They allow you to separate the application from the user interface of a web page.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7402073700401533358-1704641791864502544?l=dotnetframework3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetframework3.blogspot.com/feeds/1704641791864502544/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7402073700401533358&amp;postID=1704641791864502544' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/1704641791864502544'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/1704641791864502544'/><link rel='alternate' type='text/html' href='http://dotnetframework3.blogspot.com/2010/02/aspnet-file-types-description.html' title='ASP.NET File Types Description'/><author><name>sudhir</name><uri>http://www.blogger.com/profile/14935355985671801644</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7402073700401533358.post-6400411101538430368</id><published>2010-02-04T01:47:00.000-08:00</published><updated>2010-02-04T01:48:30.241-08:00</updated><title type='text'>NEW FEATURES IN VISUAL STUDIO 2008</title><content type='html'>The latest version of Visual Studio has some long-awaited improvements. They include the following:&lt;br /&gt;• Web projects: Visual Studio 2005 replaced the traditional project-based web application model with a lighterweight&lt;br /&gt;system of projectless development. However, this change didn’t please everyone, and so Microsoft released an add-on that brought the web project option back. In Visual Studio 2008, developers get the best of both worlds, and can choose to create projectless or project-based web applications depending on their needs.&lt;br /&gt;&lt;br /&gt;• Multitargeting: Web servers won’t shift overnight from .NET 2.0 to .NET 3.5. With this in mind, Visual Studio now gives you the flexibility to develop applications that target any version of the .NET Framework, from version 2.0 on.&lt;br /&gt;&lt;br /&gt;• CSS: In order to apply consistent formatting over an entire website, developers often  use the Cascading Style Sheets (CSS) standard. Now Visual Studio makes it even easier to link web pages to style sheets, and pick and choose the styles you want to apply to various elements in your page without editing the markup by hand.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7402073700401533358-6400411101538430368?l=dotnetframework3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetframework3.blogspot.com/feeds/6400411101538430368/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7402073700401533358&amp;postID=6400411101538430368' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/6400411101538430368'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/6400411101538430368'/><link rel='alternate' type='text/html' href='http://dotnetframework3.blogspot.com/2010/02/new-features-in-visual-studio-2008.html' title='NEW FEATURES IN VISUAL STUDIO 2008'/><author><name>sudhir</name><uri>http://www.blogger.com/profile/14935355985671801644</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7402073700401533358.post-7132444966049066901</id><published>2010-02-04T01:43:00.000-08:00</published><updated>2010-02-04T01:47:00.445-08:00</updated><title type='text'>HTML CONTROLS VS. WEB CONTROLS</title><content type='html'>When ASP.NET was first created, two schools of thought existed. Some ASP.NET developers were most interested in server-side controls that matched the existing set of HTML  Controls exactly. This approach allows you to create ASP.NET web-page interfaces in  edicated HTML editors, and it provides a quick migration path for existing ASP pages. However, another set of ASP.NET developers saw the promise of something more—rich  server-side controls that didn’t just emulate individual HTML tags. These controls might render their interface from dozens of distinct HTML elements while still providing a simple object-based interface to the programmer. Using this model, developers could work with programmable menus, calendars, data lists, validators, and so on.&lt;br /&gt;&lt;br /&gt;After some deliberation, Microsoft decided to provide both models. You’ve already seen an example of HTML server controls, which map directly to the basic set of HTML tags. Along with these are ASP.NET web controls, which provide a higher level of abstraction and more functionality. In most cases, you’ll use HTML server-side controls for backward compatibility and quick migration, and use web controls for new projects.&lt;br /&gt;ASP.NET web control tags always start with the prefix asp: followed by the class name. For example, the following&lt;br /&gt;snippet creates a text box and a check box:&lt;br /&gt;&lt;asp:TextBox id="myASPText" Text="Hello ASP.NET TextBox" runat="server" /&gt;&lt;br /&gt;&lt;asp:CheckBox id="myASPCheck" Text="My CheckBox" runat="server" /&gt;&lt;br /&gt;Again, you can interact with these controls in your code, as follows:&lt;br /&gt;myASPText.Text = "New text";&lt;br /&gt;myASPCheck.Text = "Check me!";&lt;br /&gt;Notice that the Value property you saw with the HTML control has been replaced with a Text property. The Html InputText.Value property was named to match the underlying value attribute in the HTML &lt;input&gt; tag. However, web controls don’t place the same emphasis on correlating with HTML syntax, so the more descriptive property&lt;br /&gt;name Text is used instead.&lt;br /&gt;&lt;br /&gt;The ASP.NET family of web controls includes complex rendered controls (such as the Calendar and TreeView), along with more streamlined controls (such as TextBox, Label, and Button), which map closely to existing HTML tags.&lt;br /&gt;&lt;br /&gt;In the latter case, the HTML server-side control and the ASP.NET web control variants provide similar functionality, although the web controls tend to expose a more standardized, streamlined interface. This makes the web controls easy to learn, and it also means they’re a natural fit for Windows developers moving to the world of the Web, because many of the property names are similar to the corresponding Windows controls.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7402073700401533358-7132444966049066901?l=dotnetframework3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetframework3.blogspot.com/feeds/7132444966049066901/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7402073700401533358&amp;postID=7132444966049066901' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/7132444966049066901'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/7132444966049066901'/><link rel='alternate' type='text/html' href='http://dotnetframework3.blogspot.com/2010/02/html-controls-vs-web-controls.html' title='HTML CONTROLS VS. WEB CONTROLS'/><author><name>sudhir</name><uri>http://www.blogger.com/profile/14935355985671801644</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7402073700401533358.post-1724679212919542769</id><published>2010-02-04T01:34:00.000-08:00</published><updated>2010-02-04T01:38:11.568-08:00</updated><title type='text'>C# Contextual Keywords Descriptions</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;span style="font-weight: bold;"&gt;from &lt;/span&gt;Used in a LINQ query. A query expression must begin with a from clause. &lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;get&lt;/span&gt; Defines an accessor method in a property or indexer. It retrieves the value of the property or indexer element.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;group&lt;/span&gt; Used in a LINQ query and returns a sequence of IGrouping &lt; (Of &lt; (TKey,TElement &gt; ) &gt; ) objects that contain zero or more items that match the key value for the group.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;into&lt;/span&gt; Used in a LINQ query and can be used to create a temporary identifier to store the results of a group , join , or select clause into a new identifier.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;join &lt;/span&gt;Used in a LINQ query for associating elements from different sources.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;let&lt;/span&gt; Used in a LINQ query to store the result of a subexpression to be used in a subsequent clause.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;orderby&lt;/span&gt; Used in a LINQ query to sort the result of a query in either ascending or descending order.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7402073700401533358-1724679212919542769?l=dotnetframework3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetframework3.blogspot.com/feeds/1724679212919542769/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7402073700401533358&amp;postID=1724679212919542769' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/1724679212919542769'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/1724679212919542769'/><link rel='alternate' type='text/html' href='http://dotnetframework3.blogspot.com/2010/02/c-contextual-keywords-descriptions.html' title='C# Contextual Keywords Descriptions'/><author><name>sudhir</name><uri>http://www.blogger.com/profile/14935355985671801644</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7402073700401533358.post-8085772100180893118</id><published>2010-02-04T01:18:00.000-08:00</published><updated>2010-02-04T01:34:15.425-08:00</updated><title type='text'>C# Keyword Description</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;span style="font-weight: bold;"&gt;abstract&lt;/span&gt; A modifier that can be used with classes, methods, properties, indexers, andevents. Use it to indicate that a class is intended to be used as a base class of other classes, and abstract methods must be implemented by classes that derive from the abstract class.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;as&lt;/span&gt; An operator that performs conversion between compatible reference types.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;base&lt;/span&gt; Used to access members of a base class from a derived class.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;bool&lt;/span&gt; A C# alias of the System.Boolean .NET Framework type. Its value can either true, false, or null.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;break &lt;/span&gt;Used to transfer control out of a loop or switch statement.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;byte &lt;/span&gt;Specifies a data type that can stores unsigned 8 - bit integer values from 0 to 255.&lt;br /&gt;case Used together with the switch statement. It specifies the value to be matched so that control can be transferred to the case statement. catch Used with a try block to handle one or more exceptions.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;char &lt;/span&gt;Specifies a data type that can store a 16 - bit Unicode character from U+0000 to U+ffff.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;checked &lt;/span&gt;Used to explicitly enable overflow - checking integer operations.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;class &lt;/span&gt;Used to declare classes.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;const &lt;/span&gt;Used to specify a field or variable whose value cannot be modified.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;continue &lt;/span&gt;Used within a loop such that control is transferred to the next iteration.&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-weight: bold;"&gt;decimal &lt;/span&gt;Specifies a data type representing a 128 - bit data. It can approximately&lt;br /&gt;represent a number from ± 1.0  – 28 to ± 7.9 1028.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;default &lt;/span&gt;Used within a switch statement to indicate the default match if none of the other case statements is matched. Can also be used in generics to specify the default value of the type parameter.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;delegate &lt;/span&gt;Used to declare a reference type variable that references a method name/&lt;br /&gt;anonymous method.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;do &lt;/span&gt;Executes a block of code repeatedly until a specified expression returns false.Used together with the while keyword to form a do - while statement.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;double &lt;/span&gt;Specifies a data type that represents a 64 - bit floating point number. It can approximately represent a number from ± 5.0 10 – 324 to ± 1.7 10308.else Used with the if keyword to form an if - else statement. else defines theblock that will be executed if the expression specified in the if statement is evaluated to false.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;enum &lt;/span&gt;Used to define an enumeration.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;event &lt;/span&gt;Used to define an event within a class.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;explicit &lt;/span&gt;Defines a cast operation that requires the programmer to explicitly select the&lt;br /&gt;cast to be performed.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;extern &lt;/span&gt;Declares a method that is implemented externally.false Used as either an operator or as a literal. One of the possible values in a boolvariable.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;finally &lt;/span&gt;Used in a try - catch block to contain code that cleans up the code even if an exception occurs. Statements contained within a finally block are always executed.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;fixed &lt;/span&gt;Prevents the garbage collector from relocating a movable variable.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;float &lt;/span&gt;Specifies a data type that represents a 32 - bit floating point number. It can approximately represent a number from ± 1.5  10 – 45 to ± 3.4  1038. for Encloses a block of statements that will be executed repeatedly until a specified expression returns false.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;foreach &lt;/span&gt;Used to iterate through a collection of items.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;goto &lt;/span&gt;Used to transfer control of a program to a labeled statement. if Determines if a statement (or block of statements) is to be executed based on the result of a Boolean expression.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;implicit &lt;/span&gt;Used to declare an implicit cast operation.&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-weight: bold;"&gt;in &lt;/span&gt;Used in a foreach statement to specify the collection you want to iterate through.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;int &lt;/span&gt;Specifies a data type that represents a signed 32 - bit integer number. It canrepresent a number from – 2,147,483,648 to 2,147,483,647.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;interface &lt;/span&gt;Used to define an interface, which is a definition that contains the signatures of methods, delegates, and events. An interface does not contain any implementation.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;internal &lt;/span&gt;An access modifier to indicate a member that can only be accessed within files in the same assembly.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;is &lt;/span&gt;Used to check if an object is compatible with a given type.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;lock &lt;/span&gt;Marks a statement block as a critical section so that other threads cannot execute the block while the statements within the block are being executed. long Specifies a data type that represents a signed 64 - bit integer number. It can represent a number from – 9,223,372,036,854,775,808 to 9,223,372,036,854,775,807.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;namespace &lt;/span&gt;Used to organize your code so that it belongs to a globally unique type. new Used to create objects and invoke a class ’ s constructor. Also can be used to explicitly hide a base class ’ s member in a derived class. When used in a generic declaration, it restricts types that might be used as arguments for a type declaration.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;null &lt;/span&gt;Represents a null reference that does not refer to any object.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;object &lt;/span&gt;A C# alias of the System.Object .NET Framework type.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;operator &lt;/span&gt;Used to overload a built - in operator or provide a conversion operator.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;out &lt;/span&gt;Indicates arguments that are to be passed by reference. It is similar to ref ,except that ref requires the variable to be initialized before it is passed.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;override &lt;/span&gt;Extends or modifies the abstract or virtual implementation of an inherited&lt;br /&gt;method, property, indexer, or event.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;params &lt;/span&gt;Specifies a parameter array where the number of arguments is variable.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;private &lt;/span&gt;An access modifier used to indicate a member that can only be accessed within the body of the class or struct in which it ’ s declared.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;protected &lt;/span&gt;An access modifier used to indicate a member that can only be accessed within its class and derived classes.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;public &lt;/span&gt;An access modifier used to indicate a member that can be accessed by all code.&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-weight: bold;"&gt;readonly &lt;/span&gt;A modifier that indicates fields that can only be initialized at declaration or in a constructor.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;ref &lt;/span&gt;Indicates arguments that are to be passed by reference.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;return &lt;/span&gt;Terminates execution of a method and returns control to the calling method.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;sbyte &lt;/span&gt;Specifies a data type that represents a signed 8 - bit integer number. It can represent a number from – 128 to 127.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;sealed &lt;/span&gt;Specifies a class that does not allow other classes to derive from it.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;short &lt;/span&gt;Specifies a data type that represents a signed 16 - bit integer number. It can represent a number from – 32,768 to 32767.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;sizeof &lt;/span&gt;Used to obtain the size in bytes for a value type.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;stackalloc &lt;/span&gt;Used in an unsafe code context to allocate a block of memory on the stack.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;static &lt;/span&gt;A modifier to indicate that a member belongs to the type itself, and not to a specific object.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;string &lt;/span&gt;Specifies a data type that represents a sequence of zero or more Unicode characters. Also an alias for the System.String .NET Framework type.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;struct &lt;/span&gt;Denotes a value type that encapsulates a group of related variables.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;switch &lt;/span&gt;A control statement that handles multiple selections by matching the value of the switch with a series of case statements.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;this &lt;/span&gt;Refers to the current instance of the class. Also used as a modifier of the firstparameter of an extension method.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;throw&lt;/span&gt; Used to invoke an exception during runtime.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;true&lt;/span&gt; Used either as an operator or as a literal. One of the possible values in a bool variable.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;try&lt;/span&gt; Indicates a block of code that may cause exceptions. Used with one or more catch blocks to handle the exceptions raised.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;typeof&lt;/span&gt; Used to obtain the System.Type object for a type.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;uint&lt;/span&gt; Specifies a data type that represents an unsigned 32 - bit integer number. It can represent a number from 0 to 4,294,967,295.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;ulong&lt;/span&gt; Specifies a data type that represents an unsigned 64 - bit integer number. It can represent a number from 0 to 18,446,744,073,709,551,615.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;unchecked &lt;/span&gt;Used to suppress overflow - checking for integral - type arithmetic operations and conversions.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;unsafe &lt;/span&gt;Denotes an unsafe context, which is required for any operation involving pointers.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;ushort&lt;/span&gt; Specifies a data type that represents an unsigned 16 - bit integer number. I  can represent a number from 0 to 65,535.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;using&lt;/span&gt; A directive for creating a namespace alias or importing namespace references.It is also used for defining a scope at the end of which an object will be disposed.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;virtua&lt;/span&gt;l An access modifier to indicate a method, property, indexer, or event declaration and allow for it to be overridden in a derived class.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;volatile&lt;/span&gt; Indicates that a field might be modified by multiple threads that are executing at the same time.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;void&lt;/span&gt; Specifies that a method does not return any value.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;while&lt;/span&gt; Executes a statement or a block of statements until a specified expression evaluates to false.&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7402073700401533358-8085772100180893118?l=dotnetframework3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetframework3.blogspot.com/feeds/8085772100180893118/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7402073700401533358&amp;postID=8085772100180893118' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/8085772100180893118'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/8085772100180893118'/><link rel='alternate' type='text/html' href='http://dotnetframework3.blogspot.com/2010/02/c-keyword-description.html' title='C# Keyword Description'/><author><name>sudhir</name><uri>http://www.blogger.com/profile/14935355985671801644</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7402073700401533358.post-5657928710661477081</id><published>2010-02-04T01:13:00.000-08:00</published><updated>2010-02-04T01:18:05.006-08:00</updated><title type='text'>Keywords C#</title><content type='html'>&lt;div style="text-align: justify;"&gt;Keywords In any programming language, there is always a list of identifiers that have special meanings to the compiler. These identifiers are known as keywords, and you should not use them as identifiers in your program.&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt; &lt;span style="font-size:100%;"&gt;&lt;span style="font-style: italic;"&gt;abstract event new struct as explicit null switch  base extern object this bool false operator throw break finally out true byte fixed override try case float params typeof catch for private uint char foreach protected ulong checked goto public unchecked class if readonly unsafe const implicit ref ushort continue in return using decimal int sbyte virtual default interface sealed volatile delegate internal short void do is sizeof while double lock stackalloc else long staticenum namespace string&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7402073700401533358-5657928710661477081?l=dotnetframework3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetframework3.blogspot.com/feeds/5657928710661477081/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7402073700401533358&amp;postID=5657928710661477081' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/5657928710661477081'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/5657928710661477081'/><link rel='alternate' type='text/html' href='http://dotnetframework3.blogspot.com/2010/02/keywords-c.html' title='Keywords C#'/><author><name>sudhir</name><uri>http://www.blogger.com/profile/14935355985671801644</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7402073700401533358.post-2390060690521291049</id><published>2010-02-04T01:10:00.000-08:00</published><updated>2010-02-04T01:13:12.382-08:00</updated><title type='text'>Using the C# Compiler (csc.exe)</title><content type='html'>Besides using Visual Studio 2008 to compile and run the application, you can build the application using Visual Studio 2008 and use the C# compiler ( csc.exe ) to manually compile and then run the application. This option is useful for large projects where you have a group of programmers working on different sections of the application.&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Alternatively, if you prefer to code a C# program using a text editor, you can use the Notepad  (Programs Accessories Notepad) application included in every Windows computer. (Be aware, however, that using Notepad does not give you access to the IntelliSense feature, which is available only in Visual Studio 2008.)&lt;br /&gt;&lt;br /&gt;1. Using Notepad, create a text file, name it HelloWorld.cs , and save it into a folder on your hard disk, say in C:\C#.&lt;br /&gt;&lt;br /&gt;2. Populate HelloWorld.cs with the following:&lt;br /&gt;using System;&lt;br /&gt;using System.Collections.Generic;&lt;br /&gt;using System.Linq;&lt;br /&gt;using System.Text;&lt;br /&gt;namespace HelloWorld&lt;br /&gt;{&lt;br /&gt;class Program&lt;br /&gt;{&lt;br /&gt;static void Main(string[] args)&lt;br /&gt;{&lt;br /&gt;Console.WriteLine(“Hello, world! This is my first C# program!”);&lt;br /&gt;Console.ReadLine();&lt;br /&gt;return;&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Use the command - line C# compiler ( csc.exe ) that ships with Visual Studio 2008 to compile the program. The easiest way to invoke csc.exe is to use the Visual Studio 2008 command prompt, which has all the path references added for you.&lt;br /&gt;&lt;br /&gt;To launch the Visual Studio 2008 command prompt, select Start Programs Microsoft Visual&lt;br /&gt;Studio 2008 Visual Studio Tools Visual Studio 2008 Command Prompt.&lt;br /&gt;&lt;br /&gt;In the command prompt, change to the directory containing the C# program (C:\C# for this&lt;br /&gt;example), and type the following command&lt;br /&gt;C:\C# &gt; csc HelloWorld.cs&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Once the program is compiled, you will find the HelloWorld.exe executable in the same directory (C:\C#). Type the following to execute the application.&lt;br /&gt;C:\C# &gt; HelloWorld&lt;br /&gt;&lt;br /&gt;To return to the command prompt, press Enter.&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7402073700401533358-2390060690521291049?l=dotnetframework3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetframework3.blogspot.com/feeds/2390060690521291049/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7402073700401533358&amp;postID=2390060690521291049' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/2390060690521291049'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/2390060690521291049'/><link rel='alternate' type='text/html' href='http://dotnetframework3.blogspot.com/2010/02/using-c-compiler-cscexe.html' title='Using the C# Compiler (csc.exe)'/><author><name>sudhir</name><uri>http://www.blogger.com/profile/14935355985671801644</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7402073700401533358.post-7207486293167664344</id><published>2010-02-04T01:09:00.000-08:00</published><updated>2010-02-04T01:10:05.642-08:00</updated><title type='text'>.NET Framework 3.5 builds upon version 2.0 and 3.0</title><content type='html'>The .NET Framework 3.5 builds upon version 2.0 and 3.0 of the .NET Framework, so it essentially contains the following components:&lt;br /&gt;&lt;br /&gt;.NET Framework 2.0 and .NET Framework 2.0 Service Pack 1&lt;br /&gt;.NET Framework 3.0 and .NET Framework 3.0 Service Pack 1&lt;br /&gt;New features in .NET 3.5&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7402073700401533358-7207486293167664344?l=dotnetframework3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetframework3.blogspot.com/feeds/7207486293167664344/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7402073700401533358&amp;postID=7207486293167664344' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/7207486293167664344'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/7207486293167664344'/><link rel='alternate' type='text/html' href='http://dotnetframework3.blogspot.com/2010/02/net-framework-35-builds-upon-version-20.html' title='.NET Framework 3.5 builds upon version 2.0 and 3.0'/><author><name>sudhir</name><uri>http://www.blogger.com/profile/14935355985671801644</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7402073700401533358.post-5305352127549797419</id><published>2010-02-04T01:07:00.000-08:00</published><updated>2010-02-04T01:09:18.679-08:00</updated><title type='text'>Versions of the . NET Framework and Visual Studio</title><content type='html'>&lt;div style="text-align: justify;"&gt;Microsoft officially released the .NET Framework in January 2002. Since then, the .NET Framework has gone through a few iterations, and at the time of writing it stands at version 3.5. While technically you can write .NET applications using a text editor and a compiler, it is always easier to write .NET applications using Visual Studio, the integrated development environment from Microsoft. With Visual Studio, you can use its built - in debugger and support for IntelliSense to effectively and efficiently build .NET applications. The latest version of Visual Studio is Visual Studio 2008.&lt;br /&gt;The following table shows the various versions of the .NET Framework, their release dates, and theversions of Visual Studio that contain them.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Version Number -Release Date-Versions of Visual Studio&lt;/span&gt;&lt;br /&gt;1.0 1.0.3705.0 2002 - 01 - 05 Visual Studio .NET 2002&lt;br /&gt;1.1 1.1.4322.573 2003 - 04 - 01 Visual Studio .NET 2003&lt;br /&gt;2.0 2.0.50727.42 2005 - 11 - 07 Visual Studio 2005&lt;br /&gt;3.0 3.0.4506.30 2006 - 11 - 06 Shipped with Windows Vista&lt;br /&gt;3.5 3.5.21022.8 2007 - 11 - 19 Visual Studio 2008&lt;br /&gt;&lt;br /&gt;Starting with Visual Studio 2005, Microsoft dropped the .Net name from the Visual Studio.&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7402073700401533358-5305352127549797419?l=dotnetframework3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetframework3.blogspot.com/feeds/5305352127549797419/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7402073700401533358&amp;postID=5305352127549797419' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/5305352127549797419'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/5305352127549797419'/><link rel='alternate' type='text/html' href='http://dotnetframework3.blogspot.com/2010/02/versions-of-net-framework-and-visual.html' title='Versions of the . NET Framework and Visual Studio'/><author><name>sudhir</name><uri>http://www.blogger.com/profile/14935355985671801644</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7402073700401533358.post-8583948594437057709</id><published>2010-02-04T01:05:00.000-08:00</published><updated>2010-02-04T01:07:05.864-08:00</updated><title type='text'>Assemblies and the Microsoft Intermediate Language ( MSIL )</title><content type='html'>&lt;div style="text-align: justify;"&gt;In .NET, an application compiled into MSIL bytecode is stored in an assembly. The assembly is contained in one or more PE (portable executable) files and may end with an EXE or DLL extension.&lt;br /&gt;&lt;br /&gt;Some of the information contained in an assembly includes:&lt;br /&gt;Manifest — Information about the assembly, such as identification, name, version, and so on.&lt;br /&gt;Versioning — The version number of an assembly.&lt;br /&gt;Metadata — Information that describes the types and methods of the assembly .&lt;br /&gt;&lt;br /&gt;To get a better idea of a MSIL file and its content, take a look at the following example, which has two console applications — one written in C# and the other written in VB.NET.&lt;br /&gt;The following C# code displays the “ Hello, World ” string in the console window:&lt;br /&gt;&lt;br /&gt;using System;&lt;br /&gt;using System.Collections.Generic;&lt;br /&gt;using System.Linq;&lt;br /&gt;using System.Text;&lt;br /&gt;namespace HelloWorldCS&lt;br /&gt;{&lt;br /&gt;class Program&lt;br /&gt;{&lt;br /&gt;static void Main(string[] args)&lt;br /&gt;{&lt;br /&gt;Console.WriteLine(“Hello, World!”);&lt;br /&gt;Console.ReadLine();&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;Likewise, the following VB.NET code displays the “ Hello, World ” string in the console window:&lt;br /&gt;&lt;br /&gt;Module Module1&lt;br /&gt;Sub Main()&lt;br /&gt;Console.WriteLine(“Hello, World!”)&lt;br /&gt;Console.ReadLine()&lt;br /&gt;End Sub&lt;br /&gt;End Module&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;When both programs are compiled, the assembly for each program has an .exe extension. To view the content of each assembly, you can use the ildasm (MSIL Disassembler) tool.&lt;br /&gt;Launch the ildasm tool from the Visual Studio 2008 Command Prompt window (Start Programs Microsoft Visual Studio 2008 Visual Studio Tools Visual Studio 2008 Command Prompt).&lt;br /&gt;&lt;br /&gt;The following command uses the ildasm tool to view the assemblies for the C# and VB.NET programs:&lt;br /&gt;&lt;br /&gt;C:\MSIL &gt; ildasm HelloWorldCS.exe&lt;br /&gt;C:\MSIL &gt; ildasm HelloWorldVB.exe&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7402073700401533358-8583948594437057709?l=dotnetframework3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetframework3.blogspot.com/feeds/8583948594437057709/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7402073700401533358&amp;postID=8583948594437057709' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/8583948594437057709'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/8583948594437057709'/><link rel='alternate' type='text/html' href='http://dotnetframework3.blogspot.com/2010/02/assemblies-and-microsoft-intermediate.html' title='Assemblies and the Microsoft Intermediate Language ( MSIL )'/><author><name>sudhir</name><uri>http://www.blogger.com/profile/14935355985671801644</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7402073700401533358.post-5127667018247026601</id><published>2010-02-04T01:04:00.000-08:00</published><updated>2010-02-04T01:05:05.154-08:00</updated><title type='text'>. NET Framework Class Library</title><content type='html'>The .NET Framework class library contains classes that allow you to develop the following types of applications:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Console applications&lt;/li&gt;&lt;li&gt;Windows applications&lt;/li&gt;&lt;li&gt;Windows services&lt;/li&gt;&lt;li&gt;ASP.NET Web applications&lt;/li&gt;&lt;li&gt;Web Services&lt;/li&gt;&lt;li&gt;Windows Communication Foundation (WCF) applications&lt;/li&gt;&lt;li&gt;Windows Presentation Foundation (WPF) applications&lt;/li&gt;&lt;li&gt;Windows Workflow Foundation (WF) applications&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7402073700401533358-5127667018247026601?l=dotnetframework3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetframework3.blogspot.com/feeds/5127667018247026601/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7402073700401533358&amp;postID=5127667018247026601' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/5127667018247026601'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/5127667018247026601'/><link rel='alternate' type='text/html' href='http://dotnetframework3.blogspot.com/2010/02/net-framework-class-library.html' title='. NET Framework Class Library'/><author><name>sudhir</name><uri>http://www.blogger.com/profile/14935355985671801644</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7402073700401533358.post-7709507437762289499</id><published>2010-02-04T01:02:00.000-08:00</published><updated>2010-02-04T01:03:46.201-08:00</updated><title type='text'>Common Language Runtime</title><content type='html'>The Common Language Runtime (CLR) is the virtual machine in the .NET Framework. It sits on top of the Windows operating system (Windows XP, Windows Vista, Windows Server 2008, and so on). A .NET application is compiled into a bytecode format known as MSIL&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;(Microsoft Intermediate Language). During execution, the CLR JIT ( just - in - time)&lt;br /&gt;&lt;br /&gt;compiles the bytecode into the processor ’ s native code and executes the application. Alternatively, MSIL code can be precompiled into native code so that JIT compiling is no longer needed; that speeds up the execution time of your application.&lt;br /&gt;&lt;br /&gt;The CLR also provides the following services:&lt;br /&gt;Memory management/garbage collection&lt;br /&gt;Thread management&lt;br /&gt;Exception handling&lt;br /&gt;Security&lt;br /&gt;&lt;br /&gt;.NET developers write applications using a .NET language such as C#, VB.NET, or C++. The MSIL bytecode allows .NET applications to be portable (at least theoretically) to other platforms because the application is compiled to native code only during runtime.&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7402073700401533358-7709507437762289499?l=dotnetframework3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetframework3.blogspot.com/feeds/7709507437762289499/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7402073700401533358&amp;postID=7709507437762289499' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/7709507437762289499'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/7709507437762289499'/><link rel='alternate' type='text/html' href='http://dotnetframework3.blogspot.com/2010/02/common-language-runtime.html' title='Common Language Runtime'/><author><name>sudhir</name><uri>http://www.blogger.com/profile/14935355985671801644</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7402073700401533358.post-7682132054179915855</id><published>2010-02-04T00:57:00.000-08:00</published><updated>2010-02-04T01:00:13.636-08:00</updated><title type='text'>What’s the . NET Framework?</title><content type='html'>The .NET Framework has two components:&lt;ol&gt;&lt;li&gt;Common Language Runtime&lt;/li&gt;&lt;li&gt;.NET Framework class library&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;The Common Language Runtime (CLR) is the agent that manages your .NET applications at execution time. It provides core services such as memory, thread, and resource management.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Applications that run on top of the CLR are known as managed code ; all others are known as unmanaged code.&lt;br /&gt;&lt;br /&gt;The .NET Framework class library is a comprehensive set of reusable classes that provides all the functionalities your application needs. This library enables you to develop applications ranging from desktop Windows applications to ASP.NET web applications, and Windows Mobile applications that run on Pocket PCs.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7402073700401533358-7682132054179915855?l=dotnetframework3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetframework3.blogspot.com/feeds/7682132054179915855/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7402073700401533358&amp;postID=7682132054179915855' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/7682132054179915855'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/7682132054179915855'/><link rel='alternate' type='text/html' href='http://dotnetframework3.blogspot.com/2010/02/whats-net-framework.html' title='What’s the . NET Framework?'/><author><name>sudhir</name><uri>http://www.blogger.com/profile/14935355985671801644</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7402073700401533358.post-3226698177002689888</id><published>2009-09-24T22:22:00.001-07:00</published><updated>2009-09-24T22:22:44.683-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Soap Toolkit'/><title type='text'>Are arrays supported in the Soap Toolkit?</title><content type='html'>One-dimensional arrays of simple types, arrays of complex types and multi-dimensional arrays are supported in the Soap Toolkit. Several improvements and fixes to array handling are included in the next service pack.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7402073700401533358-3226698177002689888?l=dotnetframework3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetframework3.blogspot.com/feeds/3226698177002689888/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7402073700401533358&amp;postID=3226698177002689888' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/3226698177002689888'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/3226698177002689888'/><link rel='alternate' type='text/html' href='http://dotnetframework3.blogspot.com/2009/09/are-arrays-supported-in-soap-toolkit.html' title='Are arrays supported in the Soap Toolkit?'/><author><name>sudhir</name><uri>http://www.blogger.com/profile/14935355985671801644</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7402073700401533358.post-8550046295330615715</id><published>2009-09-24T22:21:00.000-07:00</published><updated>2009-09-24T22:22:00.486-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Soap Toolkit'/><title type='text'>Describe WSML</title><content type='html'>WSML is best described as the Soap Toolkit configuration file. It contains the information required to map the Soap message described by a WSDL file to a COM interface. This includes the standard COM'isms like ProgID's and DispID's. WSML will never be a standard because it makes sense only to the Soap Toolkit.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7402073700401533358-8550046295330615715?l=dotnetframework3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetframework3.blogspot.com/feeds/8550046295330615715/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7402073700401533358&amp;postID=8550046295330615715' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/8550046295330615715'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/8550046295330615715'/><link rel='alternate' type='text/html' href='http://dotnetframework3.blogspot.com/2009/09/describe-wsml.html' title='Describe WSML'/><author><name>sudhir</name><uri>http://www.blogger.com/profile/14935355985671801644</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7402073700401533358.post-1118847607647237121</id><published>2009-09-24T22:19:00.000-07:00</published><updated>2009-09-24T22:20:38.620-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Soap Toolkit'/><title type='text'>How do I run the Soap trace utility using MSSOAPT?</title><content type='html'>* To trace on the server using MSSOAPT:&lt;br /&gt;&lt;br /&gt;         1. Modify the location attribute of the soap:address element in the WSDL to direct clients to port 8080. For example, if the WSDL contains &lt;http://MyServer/VDir/Service.wsdl&gt;, change it to &lt;http://MyServer:8080/VDir/Service.wsdl&gt;.&lt;br /&gt;&lt;br /&gt;         2. Run MSSOAPT on the server.&lt;br /&gt;&lt;br /&gt;         3. Choose File, New, Formatted Trace (if you don't need to see HTTP headers) or File, New Unformatted Trace (if do want to see HTTP headers like ContentType and SoapAction).&lt;br /&gt;&lt;br /&gt;         4. Click OK on the Trace Setup dialog to accept the default values.&lt;br /&gt;&lt;br /&gt;Note:- Now all requests/responses to/from the address specified in the WSDL willshow up in the trace.&lt;br /&gt;&lt;br /&gt;    * To trace on the client using MSSOAPT:&lt;br /&gt;&lt;br /&gt;         1. Make a local copy of the service's WSDL document.&lt;br /&gt;&lt;br /&gt;         2. Modify the location attribute of the soap:address element in the WSDL to direct the client to localhost:8080 and make a note of the current host and port. For example, if the WSDL contains &lt;http://MyServer/VDir/Service.wsdl&gt;, change it to &lt;http://localhost:8080/VDir/Service.wsdl&gt; and make note of "MyServer".&lt;br /&gt;&lt;br /&gt;         3. Run MSSOAPT on the client.&lt;br /&gt;&lt;br /&gt;         4. Choose File, New, Formatted Trace (if you don't need to see HTTP headers) or File, New Unformatted Trace (if do want to see HTTP headers).&lt;br /&gt;&lt;br /&gt;         5. In the Trace Setup dialog, enter the host and port noted in step 2 as the destination host and destination port values, then click OK.&lt;br /&gt;&lt;br /&gt;      Now, any request/response sent from/to the client will show up in the trace.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7402073700401533358-1118847607647237121?l=dotnetframework3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetframework3.blogspot.com/feeds/1118847607647237121/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7402073700401533358&amp;postID=1118847607647237121' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/1118847607647237121'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/1118847607647237121'/><link rel='alternate' type='text/html' href='http://dotnetframework3.blogspot.com/2009/09/how-do-i-run-soap-trace-utility-using.html' title='How do I run the Soap trace utility using MSSOAPT?'/><author><name>sudhir</name><uri>http://www.blogger.com/profile/14935355985671801644</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7402073700401533358.post-6885891563862825653</id><published>2009-09-24T22:18:00.000-07:00</published><updated>2009-09-24T22:19:04.752-07:00</updated><title type='text'>latest Soap Toolkit Version</title><content type='html'>Version 2.0 SP2, released June 21, 2001&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7402073700401533358-6885891563862825653?l=dotnetframework3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetframework3.blogspot.com/feeds/6885891563862825653/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7402073700401533358&amp;postID=6885891563862825653' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/6885891563862825653'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/6885891563862825653'/><link rel='alternate' type='text/html' href='http://dotnetframework3.blogspot.com/2009/09/latest-soap-toolkit-version.html' title='latest Soap Toolkit Version'/><author><name>sudhir</name><uri>http://www.blogger.com/profile/14935355985671801644</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7402073700401533358.post-5259241491076792715</id><published>2009-09-24T22:14:00.000-07:00</published><updated>2009-09-24T22:15:40.815-07:00</updated><title type='text'>What is Sensor Devices?</title><content type='html'>Sensors come in many configurations and, from a certain perspective, almost anything that provides data about physical phenomena can be called a sensor. Although we typically think of sensors as hardware devices, logical sensors can also provide information through emulation of sensor functionality in software or firmware. Also, a single hardware device can contain multiple sensors.&lt;br /&gt;&lt;br /&gt;The sensor and location platform organizes sensors into categories, which represent broad classes of sensor devices, and types, which represent specific kinds of sensors. For example, a sensor in a video game controller that detects the position and movement of a player's hand (perhaps for a video bowling game) would be categorized as an Orientation sensor, but its type would be 3-D Accelerometer. In code, Windows represents categories and types by using globally unique identifiers (GUIDs), many of which are predefined. Device manufacturers can create new categories and types by defining and publishing new GUIDs when required.&lt;br /&gt;&lt;br /&gt;Location devices make up one especially interesting category. By now, most people are familiar with global positioning systems (GPS). In Windows, a GPS is a sensor in the Location category. The Location category also includes other sensor types. Some of these sensor types are software based, such as an IP resolver that provides location information based on an Internet address, a mobile phone tower triangulator that determines location based on nearby towers, or static providers, such as a Wi-Fi network location provider that reads location information from the connected wireless network hub.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7402073700401533358-5259241491076792715?l=dotnetframework3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetframework3.blogspot.com/feeds/5259241491076792715/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7402073700401533358&amp;postID=5259241491076792715' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/5259241491076792715'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/5259241491076792715'/><link rel='alternate' type='text/html' href='http://dotnetframework3.blogspot.com/2009/09/what-is-sensor-devices.html' title='What is Sensor Devices?'/><author><name>sudhir</name><uri>http://www.blogger.com/profile/14935355985671801644</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7402073700401533358.post-2864991176696167046</id><published>2009-09-24T22:12:00.000-07:00</published><updated>2009-09-24T22:14:03.982-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Office 2003'/><title type='text'>What's New in Office 2003 for Developers?</title><content type='html'>Just because the Office 2003 Visual Basic Editor and the VBA language remain, for the most part, unchanged from their Office XP counterparts, this doesn't mean that there will be no Office 2003 developer innovation. Far from it! Office 2003 provides lots of improvements over Office XP solution development, including:&lt;br /&gt;&lt;br /&gt;    *Expanded XML support in Word 2003 and Excel 2003, including object model programmability and the use of customer-defined XML schemas.&lt;br /&gt;    *A new Office 2003 solutions model called smart documents.&lt;br /&gt;    *"Visual Studio Tools for Office."&lt;br /&gt;    *Significant smart tag enhancements.&lt;br /&gt;    *List technology.&lt;br /&gt;    *Office 2003 object model additions.&lt;br /&gt;    *A new business-form oriented product code-named Microsoft "XDocs," which includes a programmable object model.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7402073700401533358-2864991176696167046?l=dotnetframework3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetframework3.blogspot.com/feeds/2864991176696167046/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7402073700401533358&amp;postID=2864991176696167046' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/2864991176696167046'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/2864991176696167046'/><link rel='alternate' type='text/html' href='http://dotnetframework3.blogspot.com/2009/09/whats-new-in-office-2003-for-developers.html' title='What&apos;s New in Office 2003 for Developers?'/><author><name>sudhir</name><uri>http://www.blogger.com/profile/14935355985671801644</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7402073700401533358.post-6763751229288142083</id><published>2009-09-24T22:09:00.000-07:00</published><updated>2009-09-24T22:11:20.492-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='2007 Office System'/><title type='text'>Working with Tables and Lists in Excel</title><content type='html'>&lt;p&gt;Tables and lists are excellent for organizing related data neatly into rows and columns. This makes the data easy to read, concise, and easy to filter. There are a number of benefits to putting your data into tables:&lt;/p&gt;               &lt;ul&gt;&lt;li&gt;                   &lt;p&gt;You can filter the data even if there are empty rows or columns.&lt;/p&gt;                 &lt;/li&gt;&lt;li&gt;                   &lt;p&gt;Clicking into the table displays the filter arrows in the header row which give you options to sort and filter the data.&lt;/p&gt;                 &lt;/li&gt;&lt;li&gt;                   &lt;p&gt;When you scroll past the column headers, the headers at the top of screen automatically switch to display the header names.&lt;/p&gt;                 &lt;/li&gt;&lt;li&gt;                   &lt;p&gt;If you add a row after the last row or a column to the left of the last column in the table, the table expands to encapsulate the new row or column.&lt;/p&gt;                 &lt;/li&gt;&lt;li&gt;                   &lt;p&gt;Charts or PivotTable dynamic views based on a table automatic update if the table size changes.&lt;/p&gt;                 &lt;/li&gt;&lt;li&gt;                   &lt;p&gt;If you enter a formula in the first cell of the table row, the formula automatically fills down the entire column.&lt;/p&gt;                 &lt;/li&gt;&lt;li&gt;                   &lt;p&gt;If you edit a formula in one field, all formulas in that row/column update automatically.&lt;/p&gt;                 &lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7402073700401533358-6763751229288142083?l=dotnetframework3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetframework3.blogspot.com/feeds/6763751229288142083/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7402073700401533358&amp;postID=6763751229288142083' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/6763751229288142083'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/6763751229288142083'/><link rel='alternate' type='text/html' href='http://dotnetframework3.blogspot.com/2009/09/working-with-tables-and-lists-in-excel.html' title='Working with Tables and Lists in Excel'/><author><name>sudhir</name><uri>http://www.blogger.com/profile/14935355985671801644</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7402073700401533358.post-2014795652277504407</id><published>2009-09-24T22:08:00.000-07:00</published><updated>2009-09-24T22:09:40.899-07:00</updated><title type='text'>Microsoft code name "Oslo" Modeling Technologies</title><content type='html'>"Oslo" is the code name for a set of future Microsoft modeling technologies that provide significant productivity gains across the lifecycle of .NET applications by enabling developers, architects, and IT professionals to work together more effectively.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/hi-in/library/cc709420%28en-us%29.aspx"&gt;More Details&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7402073700401533358-2014795652277504407?l=dotnetframework3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetframework3.blogspot.com/feeds/2014795652277504407/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7402073700401533358&amp;postID=2014795652277504407' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/2014795652277504407'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/2014795652277504407'/><link rel='alternate' type='text/html' href='http://dotnetframework3.blogspot.com/2009/09/microsoft-code-name-oslo-modeling.html' title='Microsoft code name &quot;Oslo&quot; Modeling Technologies'/><author><name>sudhir</name><uri>http://www.blogger.com/profile/14935355985671801644</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7402073700401533358.post-4889571463474812545</id><published>2009-09-24T22:03:00.000-07:00</published><updated>2009-09-24T22:07:05.478-07:00</updated><title type='text'>Feature Highlights - .NET diffrent version (2.0/2.0SP1/2.0SP2/3.0/3.0SP1/3/5/3.5SP1)</title><content type='html'>&lt;table class="MsoTableGrid"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td valign="top"&gt;&lt;p class="MsoNormal"&gt;&lt;strong&gt;NET   Framework Version               &lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td valign="top"&gt;&lt;p class="MsoNormal"&gt;&lt;strong&gt;                 Reports               &lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td valign="top"&gt;&lt;p class="MsoNormal"&gt;&lt;strong&gt;                 Feature   Highlights               &lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p class="MsoNormal"&gt;               3.5 SP1             &lt;/p&gt;&lt;p class="MsoNormal"&gt;               3.0 SP2             &lt;/p&gt;&lt;p class="MsoNormal"&gt;               2.0 SP2             &lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p class="MsoNormal"&gt;&lt;a id="ctl00_MTCS_main_ctl04" href="http://msdn.microsoft.com/library/dd310284.aspx" onclick="javascript:Track('ctl00_MTCS_main_ctl00|ctl00_MTCS_main_ctl04',this);"&gt;Changes   in 3.5 SP1&lt;/a&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;               API Differences - 3.5 to 3.5 SP1:&lt;br /&gt;  - &lt;a id="ctl00_MTCS_main_ctl05" href="http://msdn.microsoft.com/library/cc836417.aspx" onclick="javascript:Track('ctl00_MTCS_main_ctl00|ctl00_MTCS_main_ctl05',this);"&gt;Summary&lt;/a&gt;&lt;br /&gt;  - &lt;a id="ctl00_MTCS_main_ctl06" href="http://msdn.microsoft.com/library/cc836419.aspx" onclick="javascript:Track('ctl00_MTCS_main_ctl00|ctl00_MTCS_main_ctl06',this);"&gt;by Namespace&lt;/a&gt;&lt;br /&gt;  - &lt;a id="ctl00_MTCS_main_ctl07" href="http://msdn.microsoft.com/library/cc836421.aspx" onclick="javascript:Track('ctl00_MTCS_main_ctl00|ctl00_MTCS_main_ctl07',this);"&gt;by Assembly&lt;/a&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;               Note that the .NET Framework 2.0 SP2 and 3.0 SP2 service   packs are installed by installing the .NET Framework 3.5 SP1. They provide   functionality for future infrastructure.              &lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p class="MsoNormal"&gt;               Documentation: &lt;a id="ctl00_MTCS_main_ctl09" href="http://msdn.microsoft.com/library/ms229335.aspx" onclick="javascript:Track('ctl00_MTCS_main_ctl00|ctl00_MTCS_main_ctl09',this);"&gt;.NET Framework Class   Library Version 3.5&lt;/a&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;               Provides performance improvements for the common language   runtime (CLR), Windows Presentation Foundation (WPF), and Windows   Communication Foundation (WCF). This version also provides the following new   features:             &lt;/p&gt;&lt;ul&gt;&lt;li&gt;                 The .NET Framework Client   Profile, which is a subset of the full .NET Framework that targets client   applications.               &lt;/li&gt;&lt;li&gt;                 Garbage collection notifications.               &lt;/li&gt;&lt;li&gt;                 Customized branding for   ClickOnce applications.               &lt;/li&gt;&lt;li&gt;                 An expanded ADO.NET data platform.               &lt;/li&gt;&lt;/ul&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p class="MsoNormal"&gt;               3.5             &lt;/p&gt;&lt;p class="MsoNormal"&gt;               3.0 SP1             &lt;/p&gt;&lt;p class="MsoNormal"&gt;               2.0 SP1             &lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p class="MsoNormal"&gt;&lt;a id="ctl00_MTCS_main_ctl10" href="http://msdn.microsoft.com/library/cc835481.aspx" onclick="javascript:Track('ctl00_MTCS_main_ctl00|ctl00_MTCS_main_ctl10',this);"&gt;Obsolete   in 3.5&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td valign="top"&gt;&lt;p class="MsoNormal"&gt;               Documentation: &lt;a id="ctl00_MTCS_main_ctl11" href="http://msdn.microsoft.com/library/ms229335.aspx" onclick="javascript:Track('ctl00_MTCS_main_ctl00|ctl00_MTCS_main_ctl11',this);"&gt;.NET Framework Class   Library Version 3.5&lt;/a&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;               Provides several CLR performance improvements and   introduces the following technologies:             &lt;/p&gt;&lt;ul&gt;&lt;li&gt;                 Language Integrated Query   (LINQ).               &lt;/li&gt;&lt;li&gt;                 Add-ins and extensibility.               &lt;/li&gt;&lt;li&gt;                 Garbage collection latency   modes.               &lt;/li&gt;&lt;li&gt;                 Interprocess communication   with pipes.               &lt;/li&gt;&lt;li&gt;                 Reflection emit in partial   trust.               &lt;/li&gt;&lt;li&gt;                 Cryptography Suite B support.               &lt;/li&gt;&lt;li&gt;                 New compilers for C#, Visual   Basic, and C++.               &lt;/li&gt;&lt;li&gt;                 Improved support for the   development of AJAX-enabled Web sites.                &lt;/li&gt;&lt;/ul&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p class="MsoNormal"&gt;               3.0             &lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;br /&gt;&lt;/td&gt;&lt;td valign="top"&gt;&lt;p class="MsoNormal"&gt;               Documentation: &lt;a id="ctl00_MTCS_main_ctl12" href="http://msdn.microsoft.com/library/ms229335%28VS.85%29.aspx" onclick="javascript:Track('ctl00_MTCS_main_ctl00|ctl00_MTCS_main_ctl12',this);"&gt;.NET   Framework Class Library Version 3.0&lt;/a&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;               Adds the following technologies to the .NET   Framework:             &lt;/p&gt;&lt;ul&gt;&lt;li&gt;                 Windows Presentation   Foundation (WPF).               &lt;/li&gt;&lt;li&gt;                 Windows Communication   Foundation (WCF).               &lt;/li&gt;&lt;li&gt;                 Window Workflow Foundation   (WF).               &lt;/li&gt;&lt;/ul&gt;&lt;p class="MsoNormal"&gt;               No new features were added to the common language   runtime and base class libraries in the .NET Framework 3.0.             &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p class="MsoNormal"&gt;               2.0             &lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p class="MsoNormal"&gt;&lt;a id="ctl00_MTCS_main_ctl13" href="http://go.microsoft.com/fwlink/?LinkId=125264" onclick="javascript:Track('ctl00_MTCS_main_ctl00|ctl00_MTCS_main_ctl13',this);"&gt;Obsolete in 2.0&lt;/a&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;a id="ctl00_MTCS_main_ctl14" href="http://go.microsoft.com/fwlink/?LinkId=125263" onclick="javascript:Track('ctl00_MTCS_main_ctl00|ctl00_MTCS_main_ctl14',this);"&gt;Breaking Changes in 2.0&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td valign="top"&gt;&lt;p class="MsoNormal"&gt;               Documentation: &lt;a id="ctl00_MTCS_main_ctl15" href="http://msdn.microsoft.com/library/ms229335%28VS.80%29.aspx" onclick="javascript:Track('ctl00_MTCS_main_ctl00|ctl00_MTCS_main_ctl15',this);"&gt;.NET   Framework Class Library Version 2.0&lt;/a&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;               Provides the core architecture for versions 2.0, 3.0,   and 3.5.             &lt;/p&gt;&lt;p class="MsoNormal"&gt;               Extends the version 1.0 and 1.1 functionality of the   CLR and base class libraries in the following areas:             &lt;/p&gt;&lt;ul&gt;&lt;li&gt;                 Support for generic types and   methods.               &lt;/li&gt;&lt;li&gt;                 New compilers for C#, Visual   Basic, C++, and J#.               &lt;/li&gt;&lt;li&gt;                 ADO.NET.               &lt;/li&gt;&lt;li&gt;                 ASP.NET.               &lt;/li&gt;&lt;li&gt;                 Windows Forms.               &lt;/li&gt;&lt;li&gt;                 Web services.               &lt;/li&gt;&lt;/ul&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7402073700401533358-4889571463474812545?l=dotnetframework3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetframework3.blogspot.com/feeds/4889571463474812545/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7402073700401533358&amp;postID=4889571463474812545' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/4889571463474812545'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/4889571463474812545'/><link rel='alternate' type='text/html' href='http://dotnetframework3.blogspot.com/2009/09/feature-highlights-net-diffrent-version.html' title='Feature Highlights - .NET diffrent version (2.0/2.0SP1/2.0SP2/3.0/3.0SP1/3/5/3.5SP1)'/><author><name>sudhir</name><uri>http://www.blogger.com/profile/14935355985671801644</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7402073700401533358.post-4134122834471132006</id><published>2009-09-23T02:21:00.000-07:00</published><updated>2009-09-23T02:22:24.364-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='LINQ'/><title type='text'>LINQ Query : How to Join in LINQ (with example)</title><content type='html'>Join operations create associations between sequences that are not explicitly modeled in the data sources. For example you can perform a join to find all the customers in London who order products from suppliers who are in Paris. In LINQ the join clause always works against object collections instead of database tables directly. In LINQ you do not have to use join as often as you do in SQL because foreign keys in LINQ are represented in the object model as properties that hold a collection of items. For example, a Customer object contains a collection of Order objects. Rather than performing a join, you access the orders by using dot notation:&lt;br /&gt;&lt;br /&gt;from order in Customer.Orders...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7402073700401533358-4134122834471132006?l=dotnetframework3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetframework3.blogspot.com/feeds/4134122834471132006/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7402073700401533358&amp;postID=4134122834471132006' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/4134122834471132006'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/4134122834471132006'/><link rel='alternate' type='text/html' href='http://dotnetframework3.blogspot.com/2009/09/linq-query-how-to-join-in-linq-with.html' title='LINQ Query : How to Join in LINQ (with example)'/><author><name>sudhir</name><uri>http://www.blogger.com/profile/14935355985671801644</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7402073700401533358.post-7498542276601409363</id><published>2009-09-23T02:19:00.000-07:00</published><updated>2009-09-23T02:21:47.171-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='LINQ'/><title type='text'>LINQ Query : How to group in LINQ Query (with example)</title><content type='html'>The group clause enables you to group your results based on a key that you specify. For example you could specify that the results should be grouped by the City so that all customers from London or Paris are in individual groups. In this case, cust.City is the key. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;// queryCustomersByCity is an IEnumerableIGrouping&lt;string, Customer&gt;&gt;&lt;br /&gt;  var queryCustomersByCity =&lt;br /&gt;      from cust in customers&lt;br /&gt;      group cust by cust.City;&lt;br /&gt;&lt;br /&gt;  // customerGroup is an IGrouping&lt;string, Customer&gt;&lt;br /&gt;  foreach (var customerGroup in queryCustomersByCity)&lt;br /&gt;  {&lt;br /&gt;      Console.WriteLine(customerGroup.Key);&lt;br /&gt;      foreach (Customer customer in customerGroup)&lt;br /&gt;      {&lt;br /&gt;          Console.WriteLine("    {0}", customer.Name);&lt;br /&gt;      }&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;When you end a query with a group clause, your results take the form of a list of lists. Each element in the list is an object that has a Key member and a list of elements that are grouped under that key. When you iterate over a query that produces a sequence of groups, you must use a nested foreach loop. The outer loop iterates over each group, and the inner loop iterates over each group's members.&lt;br /&gt;&lt;br /&gt;If you must refer to the results of a group operation, you can use the into keyword to create an identifier that can be queried further. The following query returns only those groups that contain more than two customers:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;// custQuery is an IEnumerableIGrouping&lt;string, Customer&gt;&gt;&lt;br /&gt;var custQuery =&lt;br /&gt;    from cust in customers&lt;br /&gt;    group cust by cust.City into custGroup&lt;br /&gt;    where custGroup.Count() &gt; 2&lt;br /&gt;    orderby custGroup.Key&lt;br /&gt;    select custGroup;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7402073700401533358-7498542276601409363?l=dotnetframework3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetframework3.blogspot.com/feeds/7498542276601409363/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7402073700401533358&amp;postID=7498542276601409363' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/7498542276601409363'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/7498542276601409363'/><link rel='alternate' type='text/html' href='http://dotnetframework3.blogspot.com/2009/09/linq-query-how-to-group-in-linq-query.html' title='LINQ Query : How to group in LINQ Query (with example)'/><author><name>sudhir</name><uri>http://www.blogger.com/profile/14935355985671801644</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7402073700401533358.post-5619071022806787323</id><published>2009-09-23T02:18:00.000-07:00</published><updated>2009-09-23T02:19:29.243-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='LINQ'/><title type='text'>LINQ Query : How to order/sort in LINQ (with example)</title><content type='html'>Often it is convenient to sort the returned data. The orderby clause will cause the elements in the returned sequence to be sorted according to the default comparer for the type being sorted. For example, the following query can be extended to sort the results based on the Name property. Because Name is a string, the default comparer performs an alphabetical sort from A to Z.&lt;br /&gt;&lt;br /&gt;var queryLondonCustomers3 = &lt;br /&gt;    from cust in customers&lt;br /&gt;    where cust.City == "London"&lt;br /&gt;    orderby cust.Name ascending&lt;br /&gt;    select cust;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7402073700401533358-5619071022806787323?l=dotnetframework3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetframework3.blogspot.com/feeds/5619071022806787323/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7402073700401533358&amp;postID=5619071022806787323' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/5619071022806787323'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/5619071022806787323'/><link rel='alternate' type='text/html' href='http://dotnetframework3.blogspot.com/2009/09/linq-query-how-to-ordersort-in-linq.html' title='LINQ Query : How to order/sort in LINQ (with example)'/><author><name>sudhir</name><uri>http://www.blogger.com/profile/14935355985671801644</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7402073700401533358.post-795649020957420470</id><published>2009-09-23T02:17:00.000-07:00</published><updated>2009-09-23T02:18:26.131-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='LINQ'/><title type='text'>LINQ Query : Filtering / Where</title><content type='html'>Probably the most common query operation is to apply a filter in the form of a Boolean expression. The filter causes the query to return only those elements for which the expression is true. The result is produced by using the where clause. The filter in effect specifies which elements to exclude from the source sequence. In the following example, only those customers who have an address in London are returned.&lt;br /&gt;&lt;br /&gt;var queryLondonCustomers = from cust in customers&lt;br /&gt;                           where cust.City == "London"&lt;br /&gt;                           select cust;&lt;br /&gt;&lt;br /&gt;You can use the familiar C# logical AND and OR operators to apply as many filter expressions as necessary in the where clause. For example, to return only customers from "London" AND whose name is "Devon" you would write the following code:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;where cust.City=="London" &amp;&amp; cust.Name == "Devon"&lt;br /&gt;&lt;br /&gt;To return customers from London or Paris, you would write the following code:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;where cust.City == "London" || cust.City == "Paris"&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7402073700401533358-795649020957420470?l=dotnetframework3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetframework3.blogspot.com/feeds/795649020957420470/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7402073700401533358&amp;postID=795649020957420470' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/795649020957420470'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/795649020957420470'/><link rel='alternate' type='text/html' href='http://dotnetframework3.blogspot.com/2009/09/linq-query-filtering-where.html' title='LINQ Query : Filtering / Where'/><author><name>sudhir</name><uri>http://www.blogger.com/profile/14935355985671801644</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7402073700401533358.post-853316177399946264</id><published>2009-09-23T02:16:00.000-07:00</published><updated>2009-09-23T02:17:24.510-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='LINQ'/><title type='text'>LINQ query :Obtaining a Data Source</title><content type='html'>In a LINQ query, the first step is to specify the data source. In C# as in most programming languages a variable must be declared before it can be used. In a LINQ query, the from clause comes first in order to introduce the data source (customers) and the range variable (cust).&lt;br /&gt;&lt;br /&gt;//queryAllCustomers is an IEnumerable&lt;Customer&gt;&lt;br /&gt;var queryAllCustomers = from cust in customers&lt;br /&gt;                        select cust&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7402073700401533358-853316177399946264?l=dotnetframework3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetframework3.blogspot.com/feeds/853316177399946264/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7402073700401533358&amp;postID=853316177399946264' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/853316177399946264'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/853316177399946264'/><link rel='alternate' type='text/html' href='http://dotnetframework3.blogspot.com/2009/09/linq-query-obtaining-data-source.html' title='LINQ query :Obtaining a Data Source'/><author><name>sudhir</name><uri>http://www.blogger.com/profile/14935355985671801644</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7402073700401533358.post-136727300254805772</id><published>2009-09-23T02:15:00.002-07:00</published><updated>2009-09-23T02:16:24.142-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='LINQ'/><title type='text'>LINQ :Performing Operations on Source Elements</title><content type='html'>An output sequence might not contain any elements or element properties from the source sequence. The output might instead be a sequence of values that is computed by using the source elements as input arguments. The following simple query, when it is executed, outputs a sequence of strings whose values represent a calculation based on the source sequence of elements of type double.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7402073700401533358-136727300254805772?l=dotnetframework3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetframework3.blogspot.com/feeds/136727300254805772/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7402073700401533358&amp;postID=136727300254805772' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/136727300254805772'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/136727300254805772'/><link rel='alternate' type='text/html' href='http://dotnetframework3.blogspot.com/2009/09/linq-performing-operations-on-source.html' title='LINQ :Performing Operations on Source Elements'/><author><name>sudhir</name><uri>http://www.blogger.com/profile/14935355985671801644</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7402073700401533358.post-143211284241148632</id><published>2009-09-23T02:15:00.001-07:00</published><updated>2009-09-23T02:15:44.583-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C# 3.0'/><category scheme='http://www.blogger.com/atom/ns#' term='LINQ'/><title type='text'>LINQ Queries : Transforming in-Memory Objects into XML</title><content type='html'>LINQ queries make it easy to transform data between in-memory data structures, SQL databases, ADO.NET Datasets and XML streams or documents. The following example transforms objects in an in-memory data structure into XML elements.&lt;br /&gt;&lt;br /&gt;class XMLTransform&lt;br /&gt;{&lt;br /&gt;    static void Main()&lt;br /&gt;    {            &lt;br /&gt;        // Create the data source by using a collection initializer.&lt;br /&gt;        List&lt;Student&gt; students = new List&lt;Student&gt;()&lt;br /&gt;        {&lt;br /&gt;            new Student {First="Svetlana", Last="Omelchenko", ID=111, Scores = new List&lt;int&gt;{97, 92, 81, 60}},&lt;br /&gt;            new Student {First="Claire", Last="O’Donnell", ID=112, Scores = new List&lt;int&gt;{75, 84, 91, 39}},&lt;br /&gt;            new Student {First="Sven", Last="Mortensen", ID=113, Scores = new List&lt;int&gt;{88, 94, 65, 91}},&lt;br /&gt;        };&lt;br /&gt;&lt;br /&gt;        // Create the query.&lt;br /&gt;        var studentsToXML = new XElement("Root",&lt;br /&gt;            from student in students&lt;br /&gt;            let x = String.Format("{0},{1},{2},{3}", student.Scores[0],&lt;br /&gt;                    student.Scores[1], student.Scores[2], student.Scores[3])&lt;br /&gt;            select new XElement("student",&lt;br /&gt;                       new XElement("First", student.First),&lt;br /&gt;                       new XElement("Last", student.Last),&lt;br /&gt;                       new XElement("Scores", x)&lt;br /&gt;                    ) // end "student"&lt;br /&gt;                ); // end "Root"&lt;br /&gt;&lt;br /&gt;        // Execute the query.&lt;br /&gt;        Console.WriteLine(studentsToXML);&lt;br /&gt;&lt;br /&gt;        // Keep the console open in debug mode.&lt;br /&gt;        Console.WriteLine("Press any key to exit.");&lt;br /&gt;        Console.ReadKey();&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;The code produces the following XML output:&lt;br /&gt;&lt;br /&gt;&lt; Root&gt;&lt;br /&gt;  &lt;student&gt;&lt;br /&gt;    &lt;First&gt;Svetlana&lt;/First&gt;&lt;br /&gt;    &lt;Last&gt;Omelchenko&lt;/Last&gt;&lt;br /&gt;    &lt;Scores&gt;97,92,81,60&lt;/Scores&gt;&lt;br /&gt;  &lt;/student&gt;&lt;br /&gt;  &lt;student&gt;&lt;br /&gt;    &lt;First&gt;Claire&lt;/First&gt;&lt;br /&gt;    &lt;Last&gt;O'Donnell&lt;/Last&gt;&lt;br /&gt;    &lt;Scores&gt;75,84,91,39&lt;/Scores&gt;&lt;br /&gt;  &lt;/student&gt;&lt;br /&gt;  &lt;student&gt;&lt;br /&gt;    &lt;First&gt;Sven&lt;/First&gt;&lt;br /&gt;    &lt;Last&gt;Mortensen&lt;/Last&gt;&lt;br /&gt;    &lt;Scores&gt;88,94,65,91&lt;/Scores&gt;&lt;br /&gt;  &lt;/student&gt;&lt;br /&gt;&lt;/Root&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7402073700401533358-143211284241148632?l=dotnetframework3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetframework3.blogspot.com/feeds/143211284241148632/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7402073700401533358&amp;postID=143211284241148632' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/143211284241148632'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/143211284241148632'/><link rel='alternate' type='text/html' href='http://dotnetframework3.blogspot.com/2009/09/linq-queries-transforming-in-memory.html' title='LINQ Queries : Transforming in-Memory Objects into XML'/><author><name>sudhir</name><uri>http://www.blogger.com/profile/14935355985671801644</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7402073700401533358.post-2893059343149575276</id><published>2009-09-23T02:13:00.000-07:00</published><updated>2009-09-23T02:14:47.384-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C# 3.0'/><category scheme='http://www.blogger.com/atom/ns#' term='LINQ'/><title type='text'>LINQ Query with Example :Selecting a Subset of Each Source Element</title><content type='html'>There are two primary ways to select a subset of each element in the source sequence:&lt;br /&gt;&lt;br /&gt;   1.To select just one member of the source element, use the dot operation. In the following example, assume that a Customer object contains several public properties including a string named City. When executed, this query will produce an output sequence of strings.&lt;br /&gt;&lt;br /&gt;      var query = from cust in Customers&lt;br /&gt;                  select cust.City;&lt;br /&gt;&lt;br /&gt;   2. To create elements that contain more than one property from the source element, you can use an object initializer with either a named object or an anonymous type. The following example shows the use of an anonymous type to encapsulate two properties from each Customer element:&lt;br /&gt;&lt;br /&gt;      var query = from cust in Customer&lt;br /&gt;                  select new {Name = cust.Name, City = cust.City};&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7402073700401533358-2893059343149575276?l=dotnetframework3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetframework3.blogspot.com/feeds/2893059343149575276/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7402073700401533358&amp;postID=2893059343149575276' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/2893059343149575276'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/2893059343149575276'/><link rel='alternate' type='text/html' href='http://dotnetframework3.blogspot.com/2009/09/linq-query-with-example-selecting.html' title='LINQ Query with Example :Selecting a Subset of Each Source Element'/><author><name>sudhir</name><uri>http://www.blogger.com/profile/14935355985671801644</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7402073700401533358.post-1537311965423722028</id><published>2009-09-23T02:12:00.000-07:00</published><updated>2009-09-23T02:13:34.945-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C# 3.0'/><category scheme='http://www.blogger.com/atom/ns#' term='LINQ'/><title type='text'>LINQ:Joining Multiple Inputs into One Output Sequence</title><content type='html'>You can use a LINQ query to create an output sequence that contains elements from more than one input sequence. The following example shows how to combine two in-memory data structures, but the same principles can be applied to combine data from XML or SQL or DataSet sources. Assume the following two class types:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;class Student&lt;br /&gt;{&lt;br /&gt;    public string First { get; set; }&lt;br /&gt;    public string Last {get; set;}&lt;br /&gt;    public int ID { get; set; }&lt;br /&gt;    public string Street { get; set; }&lt;br /&gt;    public string City { get; set; }&lt;br /&gt;    public List&lt;int&gt; Scores;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;class Teacher&lt;br /&gt;{&lt;br /&gt;    public string First { get; set; }&lt;br /&gt;    public string Last { get; set; }&lt;br /&gt;    public int ID { get; set; } &lt;br /&gt;    public string City { get; set; }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;The following example shows the query:&lt;br /&gt;&lt;br /&gt;class DataTransformations&lt;br /&gt;{&lt;br /&gt;    static void Main()&lt;br /&gt;    {&lt;br /&gt;        // Create the first data source.&lt;br /&gt;        List&lt;Student&gt; students = new List&lt;Student&gt;()&lt;br /&gt;        {&lt;br /&gt;            new Student {First="Svetlana",&lt;br /&gt;                Last="Omelchenko", &lt;br /&gt;                ID=111, &lt;br /&gt;                Street="123 Main Street",&lt;br /&gt;                City="Seattle",&lt;br /&gt;                Scores= new List&lt;int&gt; {97, 92, 81, 60}},&lt;br /&gt;            new Student {First="Claire",&lt;br /&gt;                Last="O’Donnell", &lt;br /&gt;                ID=112,&lt;br /&gt;                Street="124 Main Street",&lt;br /&gt;                City="Redmond",&lt;br /&gt;                Scores= new List&lt;int&gt; {75, 84, 91, 39}},&lt;br /&gt;            new Student {First="Sven",&lt;br /&gt;                Last="Mortensen",&lt;br /&gt;                ID=113,&lt;br /&gt;                Street="125 Main Street",&lt;br /&gt;                City="Lake City",&lt;br /&gt;                Scores= new List&lt;int&gt; {88, 94, 65, 91}},&lt;br /&gt;        };&lt;br /&gt;&lt;br /&gt;        // Create the second data source.&lt;br /&gt;        List&lt;Teacher&gt; teachers = new List&lt;Teacher&gt;()&lt;br /&gt;        {                &lt;br /&gt;            new Teacher {First="Ann", Last="Beebe", ID=945, City = "Seattle"},&lt;br /&gt;            new Teacher {First="Alex", Last="Robinson", ID=956, City = "Redmond"},&lt;br /&gt;            new Teacher {First="Michiyo", Last="Sato", ID=972, City = "Tacoma"}&lt;br /&gt;        };&lt;br /&gt;&lt;br /&gt;        // Create the query.&lt;br /&gt;        var peopleInSeattle = (from student in students&lt;br /&gt;                    where student.City == "Seattle"&lt;br /&gt;                    select student.Last)&lt;br /&gt;                    .Concat(from teacher in teachers&lt;br /&gt;                            where teacher.City == "Seattle"&lt;br /&gt;                            select teacher.Last);&lt;br /&gt;&lt;br /&gt;        Console.WriteLine("The following students and teachers live in Seattle:");&lt;br /&gt;        // Execute the query.&lt;br /&gt;        foreach (var person in peopleInSeattle)&lt;br /&gt;        {&lt;br /&gt;            Console.WriteLine(person);&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        Console.WriteLine("Press any key to exit.");&lt;br /&gt;        Console.ReadKey();&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;/* Output:&lt;br /&gt;    The following students and teachers live in Seattle:&lt;br /&gt;    Omelchenko&lt;br /&gt;    Beebe&lt;br /&gt; */&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7402073700401533358-1537311965423722028?l=dotnetframework3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetframework3.blogspot.com/feeds/1537311965423722028/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7402073700401533358&amp;postID=1537311965423722028' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/1537311965423722028'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/1537311965423722028'/><link rel='alternate' type='text/html' href='http://dotnetframework3.blogspot.com/2009/09/linqjoining-multiple-inputs-into-one.html' title='LINQ:Joining Multiple Inputs into One Output Sequence'/><author><name>sudhir</name><uri>http://www.blogger.com/profile/14935355985671801644</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7402073700401533358.post-3692235187926474894</id><published>2009-09-23T02:11:00.000-07:00</published><updated>2009-09-23T02:12:37.054-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C# 3.0'/><category scheme='http://www.blogger.com/atom/ns#' term='LINQ'/><title type='text'>Data Transformations with LINQ (C#)</title><content type='html'>Language-Integrated Query (LINQ) is not only about retrieving data. It is also a powerful tool for transforming data. By using a LINQ query, you can use a source sequence as input and modify it in many ways to create a new output sequence. You can modify the sequence itself without modifying the elements themselves by sorting and grouping. But perhaps the most powerful feature of LINQ queries is the ability to create new types. This is accomplished in the select clause. For example, you can perform the following tasks:&lt;br /&gt;&lt;br /&gt;    *  Merge multiple input sequences into a single output sequence that has a new type.&lt;br /&gt;    *  Create output sequences whose elements consist of only one or several properties of each element in the source sequence.&lt;br /&gt;    *  Create output sequences whose elements consist of the results of operations performed on the source data.&lt;br /&gt;    *  Create output sequences in a different format. For example, you can transform data from SQL rows or text files into XML.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7402073700401533358-3692235187926474894?l=dotnetframework3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetframework3.blogspot.com/feeds/3692235187926474894/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7402073700401533358&amp;postID=3692235187926474894' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/3692235187926474894'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/3692235187926474894'/><link rel='alternate' type='text/html' href='http://dotnetframework3.blogspot.com/2009/09/data-transformations-with-linq-c.html' title='Data Transformations with LINQ (C#)'/><author><name>sudhir</name><uri>http://www.blogger.com/profile/14935355985671801644</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7402073700401533358.post-972365407047140540</id><published>2009-09-23T02:09:00.000-07:00</published><updated>2009-09-23T02:10:28.818-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C# 3.0'/><category scheme='http://www.blogger.com/atom/ns#' term='LINQ'/><title type='text'>Type Relationships in LINQ Query Operations (C#)</title><content type='html'>To write queries effectively, you should understand how types of the variables in a complete query operation all relate to each other. If you understand these relationships you will more easily comprehend the LINQ samples and code examples in the documentation. Furthermore, you will understand what occurs behind the scenes when variables are implicitly typed by using var.&lt;br /&gt;&lt;br /&gt;LINQ query operations are strongly typed in the data source, in the query itself, and in the query execution. The type of the variables in the query must be compatible with the type of the elements in the data source and with the type of the iteration variable in the foreach statement. This strong typing guarantees that type errors are caught at compile time when they can be corrected before users encounter them.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7402073700401533358-972365407047140540?l=dotnetframework3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetframework3.blogspot.com/feeds/972365407047140540/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7402073700401533358&amp;postID=972365407047140540' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/972365407047140540'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/972365407047140540'/><link rel='alternate' type='text/html' href='http://dotnetframework3.blogspot.com/2009/09/type-relationships-in-linq-query.html' title='Type Relationships in LINQ Query Operations (C#)'/><author><name>sudhir</name><uri>http://www.blogger.com/profile/14935355985671801644</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7402073700401533358.post-6856364811312455241</id><published>2009-09-23T02:05:00.000-07:00</published><updated>2009-09-23T02:07:15.106-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='LINQ'/><title type='text'>IEnumerable variables in LINQ Queries</title><content type='html'>LINQ query variables are typed as IEnumerable&lt;(Of &lt;(T&gt;)&gt;) or a derived type such as IQueryable&lt;(Of &lt;(T&gt;)&gt;). When you see a query variable that is typed as IEnumerable, it just means that the query, when it is executed, will produce a sequence of zero or more Customer objects.&lt;br /&gt;&lt;br /&gt;IEnumerable customerQuery =&lt;br /&gt;  from cust in customers&lt;br /&gt;  where cust.City == "London"&lt;br /&gt;  select cust;&lt;br /&gt;&lt;br /&gt;foreach (Customer customer in customerQuery)&lt;br /&gt;{&lt;br /&gt;  Console.WriteLine(customer.LastName + ", " + customer.FirstName);&lt;br /&gt;}&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7402073700401533358-6856364811312455241?l=dotnetframework3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetframework3.blogspot.com/feeds/6856364811312455241/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7402073700401533358&amp;postID=6856364811312455241' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/6856364811312455241'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/6856364811312455241'/><link rel='alternate' type='text/html' href='http://dotnetframework3.blogspot.com/2009/09/ienumerable-variables-in-linq-queries.html' title='IEnumerable variables in LINQ Queries'/><author><name>sudhir</name><uri>http://www.blogger.com/profile/14935355985671801644</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7402073700401533358.post-6313778738500358959</id><published>2009-09-23T02:02:00.000-07:00</published><updated>2009-09-23T02:03:08.642-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VS2008'/><category scheme='http://www.blogger.com/atom/ns#' term='LINQ'/><title type='text'>Language-Integrated Query (LINQ)</title><content type='html'>&lt;!--Content type: Devdiv1. Transform: orcas2mtps.xslt.--&gt;                                  &lt;p&gt;&lt;!----&gt;&lt;/p&gt; &lt;div class="introduction"&gt;&lt;p&gt;Language-Integrated Query (LINQ) is a set of features in Visual Studio 2008 that extends powerful query capabilities to the language syntax of C# and Visual Basic. LINQ introduces standard, easily-learned patterns for querying and updating data, and the technology can be extended to support potentially any kind of data store. Visual Studio 2008 includes LINQ provider assemblies that enable the use of LINQ with .NET Framework collections, SQL Server databases, ADO.NET Datasets, and XML documents.&lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7402073700401533358-6313778738500358959?l=dotnetframework3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetframework3.blogspot.com/feeds/6313778738500358959/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7402073700401533358&amp;postID=6313778738500358959' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/6313778738500358959'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/6313778738500358959'/><link rel='alternate' type='text/html' href='http://dotnetframework3.blogspot.com/2009/09/language-integrated-query-linq.html' title='Language-Integrated Query (LINQ)'/><author><name>sudhir</name><uri>http://www.blogger.com/profile/14935355985671801644</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7402073700401533358.post-2270112965629917320</id><published>2009-09-23T01:59:00.000-07:00</published><updated>2009-09-23T02:00:09.498-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WCF'/><title type='text'>Why Use Windows Communication Foundation/Feature of  WCF?</title><content type='html'>&lt;p class="MsoNormal"&gt;A distributed application built with Web services is a service-oriented application. ASP.NET Web Services (ASMX) has been available for building Web services since .NET was first released.  Why then do you need Windows Communication Foundation? WCF provides a number of benefits over ASP.NET Web Services, including:&lt;/p&gt;&lt;ul&gt;&lt;li class="MsoNormal"&gt;Support for sending      messages using not only HTTP, but also TCP  other network protocols. &lt;/li&gt;&lt;li class="MsoNormal"&gt;The ability to switch      message protocols with minimal effort. &lt;/li&gt;&lt;li class="MsoNormal"&gt;Support for hosting      services on hosts other than a Web server. &lt;/li&gt;&lt;li class="MsoNormal"&gt;Built-in support for the      latest Web services standards (SOAP 1.2 and WS-*) and the ability to      easily support new ones. &lt;/li&gt;&lt;li class="MsoNormal"&gt;Support for security,      transactions and reliability.&lt;/li&gt;&lt;li class="MsoNormal"&gt;Support for sending      messages using formats other than SOAP, such as Representational State      Transfer (REST). &lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7402073700401533358-2270112965629917320?l=dotnetframework3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetframework3.blogspot.com/feeds/2270112965629917320/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7402073700401533358&amp;postID=2270112965629917320' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/2270112965629917320'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/2270112965629917320'/><link rel='alternate' type='text/html' href='http://dotnetframework3.blogspot.com/2009/09/why-use-windows-communication.html' title='Why Use Windows Communication Foundation/Feature of  WCF?'/><author><name>sudhir</name><uri>http://www.blogger.com/profile/14935355985671801644</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7402073700401533358.post-6875930521468035942</id><published>2009-09-23T01:54:00.000-07:00</published><updated>2009-09-23T02:08:41.954-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WCF'/><title type='text'>WCF:Configuring Service Endpoints</title><content type='html'>&lt;div class="ArticleNormalPara"&gt;Hardcoding endpoint information into the host application is not ideal since endpoint details may change over time. It's not hard to imagine how you could store the endpoint information in a configuration file or database and read it while initializing ServiceHost. Since this is a common need, WCF automatically provides this functionality through the predefined &lt;system.servicemodel&gt; configuration section.&lt;/system.servicemodel&gt;&lt;/div&gt;                                         The following configuration file defines the same two endpoints that were specified by calling AddServiceEndpoint:&lt;br /&gt;&lt;br /&gt;&lt;span id="ctl00_mainContentContainer_ctl25" msxsl="urn:schemas-microsoft-com:xslt"&gt;&lt;pre class="libCScode" style="white-space: pre-wrap;" id="ctl00_mainContentContainer_ctl25" space="preserve"&gt;&lt;configuration&gt;&lt;br /&gt;&lt;system.servicemodel&gt;&lt;br /&gt;  &lt;services&gt;&lt;br /&gt;    &lt;service type="ServiceLibrary.EchoService"&gt;&lt;br /&gt;      &lt;endpoint address="svc" binding="basicHttpBinding" contract="ServiceLibrary.IEchoService"&gt;&lt;br /&gt;      &lt;endpoint address="net.tcp://localhost:8081/echo/svc" binding="netTcpBinding" contract="ServiceLibrary.IEchoService"&gt;&lt;br /&gt;    &lt;/endpoint&gt;&lt;br /&gt;  &lt;/endpoint&gt;&lt;br /&gt;&lt;/service&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/services&gt;&lt;/system.servicemodel&gt;&lt;/configuration&gt;&lt;/pre&gt;&lt;/span&gt;&lt;span&gt;Configuring Transport Security&lt;br /&gt;&lt;/span&gt;&lt;span&gt;&lt;span id="ctl00_mainContentContainer_ctl62_ctl00_ctl00" msxsl="urn:schemas-microsoft-com:xslt"&gt;&lt;pre class="libCScode" style="white-space: pre-wrap;" id="ctl00_mainContentContainer_ctl62_ctl00_ctl00" space="preserve"&gt;&lt;configuration&gt;&lt;br /&gt;&lt;system.servicemodel&gt;&lt;br /&gt;  &lt;services&gt;&lt;br /&gt;    &lt;service type="ServiceLibrary.EchoService"&gt;&lt;br /&gt;      &lt;endpoint address="https://localhost:8082/echo/svc" binding="basicHttpBinding" bindingconfiguration="MyBindingConfiguration" contract="ServiceLibrary.IEchoService"&gt;&lt;br /&gt;      ...&lt;br /&gt;    &lt;/endpoint&gt;&lt;br /&gt;  &lt;/service&gt;&lt;br /&gt;  &lt;bindings&gt;&lt;br /&gt;    &lt;basichttpbinding&gt;&lt;br /&gt;      &lt;binding name="MyBindingConfiguration"&gt;&lt;br /&gt;        &lt;security mode="Transport"&gt;&lt;br /&gt;          &lt;transport clientcredentialtype="Basic"&gt;&lt;br /&gt;        &lt;/transport&gt;&lt;br /&gt;      &lt;/security&gt;&lt;br /&gt;    &lt;/binding&gt;&lt;br /&gt;  &lt;/basichttpbinding&gt;&lt;br /&gt;&lt;/bindings&gt;&lt;br /&gt;&lt;/services&gt;&lt;br /&gt;&lt;/system.servicemodel&gt;&lt;/configuration&gt;&lt;/pre&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7402073700401533358-6875930521468035942?l=dotnetframework3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetframework3.blogspot.com/feeds/6875930521468035942/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7402073700401533358&amp;postID=6875930521468035942' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/6875930521468035942'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/6875930521468035942'/><link rel='alternate' type='text/html' href='http://dotnetframework3.blogspot.com/2009/09/wcfconfiguring-service-endpoints.html' title='WCF:Configuring Service Endpoints'/><author><name>sudhir</name><uri>http://www.blogger.com/profile/14935355985671801644</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7402073700401533358.post-6180710208003617569</id><published>2009-09-23T01:52:00.001-07:00</published><updated>2009-09-23T01:52:50.690-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='.NET Framework Client Profile'/><category scheme='http://www.blogger.com/atom/ns#' term='VS2008'/><title type='text'>How do developers target the Client Profile Preview?</title><content type='html'>&lt;p&gt;                 Visual Studio 2008 SP1 has the option to target the "Client-only Framework                  Subset". Visual Studio developers can view their project properties and                  view the Advanced Compiler Options. The options will allow users to target                  the framework their application will require (.NET Framework 2.0, 3.0 or 3.5).                  There will also be a check-box to target the "Client-only Framework Subset".                  This option will change the project in two subtle ways.&lt;/p&gt;             &lt;ul class="list big_list"&gt;&lt;li&gt;First, at compile time, the reference list of DLLs will be matched up                  against the known "Client List" of DLLs that are included in the Client                  Profile. If the project has a reference to an assembly that is not included,                  in the "Client List", the developer will see compile-time warnings/errors.&lt;/li&gt;&lt;li&gt;Second, the project will add a configuration file that will specifically                  declare the application as a "client" application. The configuration                  file will allow their application to run on a computer with just the Client                  Profile installed. Without the configuration file, the end-user  will be                  prompted to install .NET Framework 3.5 SP1 or greater &lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7402073700401533358-6180710208003617569?l=dotnetframework3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetframework3.blogspot.com/feeds/6180710208003617569/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7402073700401533358&amp;postID=6180710208003617569' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/6180710208003617569'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/6180710208003617569'/><link rel='alternate' type='text/html' href='http://dotnetframework3.blogspot.com/2009/09/how-do-developers-target-client-profile.html' title='How do developers target the Client Profile Preview?'/><author><name>sudhir</name><uri>http://www.blogger.com/profile/14935355985671801644</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7402073700401533358.post-7062763852017182255</id><published>2009-09-23T00:56:00.000-07:00</published><updated>2009-09-23T00:57:08.885-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='.NET Framework Client Profile'/><title type='text'>How does the .NET Framework Client Profile Preview correlate to the full .NET Framework?</title><content type='html'>&lt;p&gt;                 The .NET Framework Client Profile Preview is a subset of the full .NET Framework 3.5 SP1.                  The Client Profile Preview subset does not contain any assemblies that are not found in the                  full framework. In addition, the deployment of the .NET Framework Client Profile Preview                  will also allow users to update their computers to the full .NET Framework 3.5 SP1.                   The .NET Framework 3.5 SP1 will be a critical update to .NET Framework 3.5, pushed                  out to users via Windows Update.  On Windows Vista and later versions of Windows,                  the Client Profile Preview setup bootstrapper will install updates to the full framework                  as needed since those versions of Windows already have the full profile of the                  .NET Framework.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7402073700401533358-7062763852017182255?l=dotnetframework3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetframework3.blogspot.com/feeds/7062763852017182255/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7402073700401533358&amp;postID=7062763852017182255' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/7062763852017182255'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/7062763852017182255'/><link rel='alternate' type='text/html' href='http://dotnetframework3.blogspot.com/2009/09/how-does-net-framework-client-profile.html' title='How does the .NET Framework Client Profile Preview correlate to the full .NET Framework?'/><author><name>sudhir</name><uri>http://www.blogger.com/profile/14935355985671801644</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7402073700401533358.post-4595352024711284274</id><published>2009-09-23T00:55:00.001-07:00</published><updated>2009-09-23T00:55:52.682-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='.NET Framework Client Profile'/><title type='text'>What is the .NET Framework Client Profile Preview?</title><content type='html'>&lt;p&gt;                 The .NET Framework Client Profile Preview is a new setup option for the .NET Framework                  available for the first time in 3.5 SP1.  This new setup installer enables a                  faster, simpler installation experience for .NET Framework-based client applications                  on Windows XP and Windows Vista.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7402073700401533358-4595352024711284274?l=dotnetframework3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetframework3.blogspot.com/feeds/4595352024711284274/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7402073700401533358&amp;postID=4595352024711284274' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/4595352024711284274'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/4595352024711284274'/><link rel='alternate' type='text/html' href='http://dotnetframework3.blogspot.com/2009/09/what-is-net-framework-client-profile.html' title='What is the .NET Framework Client Profile Preview?'/><author><name>sudhir</name><uri>http://www.blogger.com/profile/14935355985671801644</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7402073700401533358.post-3945607042045369991</id><published>2009-09-23T00:51:00.000-07:00</published><updated>2009-09-23T00:52:18.830-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C# 3.0'/><title type='text'>C# 3.0 Top New Features</title><content type='html'>&lt;p&gt;&lt;strong&gt;&lt;u&gt;Implicitly Typed Local Variables&lt;/u&gt;&lt;/strong&gt;  &lt;/p&gt;&lt;ul&gt;&lt;li&gt;Local variables can be declared as type ‘var’ which means compiler to determine the actual type based on the data by which its is initialized. &lt;/li&gt;&lt;li&gt;var i = 10; // i is created of type int  &lt;/li&gt;&lt;li&gt;var name = “MyName” ; // name is created of type string  &lt;/li&gt;&lt;li&gt;can only be used when declared and initialized in same statement.  &lt;/li&gt;&lt;li&gt;Cannot be initialized to null.  &lt;/li&gt;&lt;li&gt;Cannot be used as class members.  &lt;/li&gt;&lt;li&gt;Mostly used to store anonymous types as in LINQ based programming.&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&lt;strong&gt;&lt;u&gt;Object &amp;amp; Collection Initializers&lt;/u&gt;&lt;/strong&gt;  &lt;/p&gt;&lt;ul&gt;&lt;li&gt;Allow assigning values to any accessible members or properties of a type at the time of initiation without invoking the constructor with parameters. &lt;/li&gt;&lt;li&gt;The default constructor gets executed before assigning the values.  &lt;/li&gt;&lt;li&gt;E.g. Coordinate c1 = new Coordinate {x=1 , y=2};  &lt;/li&gt;&lt;li&gt;Used in LINQ query expressions along with anonymous types.  &lt;/li&gt;&lt;li&gt;Collection Initializers use Object Initializers to specify multiple elements of collection without calling Add method multiple times.&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&lt;strong&gt;&lt;u&gt;Extension Methods&lt;/u&gt;&lt;/strong&gt;  &lt;/p&gt;&lt;ul&gt;&lt;li&gt;Allows adding new methods to existing types without modifying the existing type.  &lt;/li&gt;&lt;li&gt;Are special kind of static methods but are called as if they are instance methods.  &lt;/li&gt;&lt;li&gt;The first parameter passed to Extension methods specifies to which type they operate on preceded by ‘this’ keyword.  &lt;/li&gt;&lt;li&gt;They cannot access the private variables of type which they are extending.  &lt;/li&gt;&lt;li&gt;Extension Methods need to defined in a non-nested and non-generic static class.  &lt;/li&gt;&lt;li&gt;Instance methods take priority over extension methods in case they have same signature.&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&lt;strong&gt;&lt;u&gt;Anonymous Types&lt;/u&gt;&lt;/strong&gt;  &lt;/p&gt;&lt;ul&gt;&lt;li&gt;Are of class types which can have only public read-only properties as their members. No other class members like methods are allowed. &lt;/li&gt;&lt;li&gt;They are of reference types and are derived from ‘Object’ class.  &lt;/li&gt;&lt;li&gt;Internally compiler gives them the name but its not accessible by application code.  &lt;/li&gt;&lt;li&gt;They have a method scope.  &lt;/li&gt;&lt;li&gt;Can be initiated directly e.g. new { property1=1, property2=”Hello World”};&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&lt;strong&gt;&lt;u&gt;Lambda Expressions&lt;/u&gt;&lt;/strong&gt;  &lt;/p&gt;&lt;ul&gt;&lt;li&gt;Very similar to anonymous methods introduced in C# 2.0.  &lt;/li&gt;&lt;li&gt;Its an inline expression or statement block which can be used to pass arguments to method call or assign value to delegate.  &lt;/li&gt;&lt;li&gt;All lambda expression use lambda operator =&gt; where the left side denotes result and right contains statement block or expression.&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&lt;strong&gt;&lt;u&gt;Auto-Implemented Properties&lt;/u&gt;&lt;/strong&gt;  &lt;/p&gt;&lt;ul&gt;&lt;li&gt;Helps in simplifying property declaration in cases where there is no custom logic required in accessors methods.  &lt;/li&gt;&lt;li&gt;E.g. public int Price {get; set;};  &lt;/li&gt;&lt;li&gt;Internally compiler creates an anonymous field for assigning values.&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7402073700401533358-3945607042045369991?l=dotnetframework3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetframework3.blogspot.com/feeds/3945607042045369991/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7402073700401533358&amp;postID=3945607042045369991' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/3945607042045369991'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/3945607042045369991'/><link rel='alternate' type='text/html' href='http://dotnetframework3.blogspot.com/2009/09/c-30-top-new-features.html' title='C# 3.0 Top New Features'/><author><name>sudhir</name><uri>http://www.blogger.com/profile/14935355985671801644</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7402073700401533358.post-7670249047672663380</id><published>2009-09-23T00:49:00.000-07:00</published><updated>2009-09-23T00:50:57.414-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET 3.5'/><title type='text'>.NET Framework 3.5 : What's new in ASP.NET</title><content type='html'>&lt;ul&gt;&lt;li&gt;Support for enabling existing ASP.NET 2.0 pages for AJAX &lt;/li&gt;&lt;li&gt;Creation of ASMX &amp;amp; WCF based web services and consuming them from AJAX Library &lt;/li&gt;&lt;li&gt;ASP.NET server side application services like authentication, roles management exposed as web services &lt;/li&gt;&lt;li&gt;ASP.NET Merge Tool - a new tool for merging pre-compiled assemblies &lt;/li&gt;&lt;li&gt;New ListView control which supports edit, insert, delete, sorting &amp;amp; paging &lt;/li&gt;&lt;li&gt;ASP.NET integrated with core IIS 7.0 which makes ASP.NET services like authentication &amp;amp; caching available for other content types also. &lt;/li&gt;&lt;li&gt;Microsoft AJAX Library to support AJAX based web development&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7402073700401533358-7670249047672663380?l=dotnetframework3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetframework3.blogspot.com/feeds/7670249047672663380/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7402073700401533358&amp;postID=7670249047672663380' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/7670249047672663380'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/7670249047672663380'/><link rel='alternate' type='text/html' href='http://dotnetframework3.blogspot.com/2009/09/net-framework-35-whats-new-in-aspnet.html' title='.NET Framework 3.5 : What&apos;s new in ASP.NET'/><author><name>sudhir</name><uri>http://www.blogger.com/profile/14935355985671801644</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7402073700401533358.post-2942116210477279105</id><published>2009-05-05T22:27:00.001-07:00</published><updated>2009-05-05T22:27:53.647-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET 3.5'/><title type='text'>ASP.NET 3.5 as an Alternative to CGI</title><content type='html'>Microsoft’s alternative to a Common Gateway Interface (CGI) is ASP.NET, now in version 3.5. As a unified web platform, ASP.NET provides what you need to develop applications that hold state and use the information that you put into the HTML form. Instead of sending form information into a vacuum when you click a submit button, your data goes where it can be stored temporarily or permanently. Usually, when we think of saving state, we imagine writing the data to a storage device like a hard drive. Using a word processor, every time you save your file, you save its state. Using ASP.NET, you can do the same thing with information from anyone who uses your web application. This allows you to build applications where the information entered can be stored for use with either the next HTTP request or with a whole set of data entered by users all over the world—that’s quite a feat compared with saving state in your word processor file.&lt;br /&gt;ASP.NET’s state-management facilities provide you with the tools that you need to control state. You do not necessarily want to save all states of a web page, but you certainly want to save the state of data entered by users and perhaps the URL of a page. Having state&lt;br /&gt;management allows you to do this.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7402073700401533358-2942116210477279105?l=dotnetframework3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetframework3.blogspot.com/feeds/2942116210477279105/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7402073700401533358&amp;postID=2942116210477279105' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/2942116210477279105'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/2942116210477279105'/><link rel='alternate' type='text/html' href='http://dotnetframework3.blogspot.com/2009/05/aspnet-35-as-alternative-to-cgi.html' title='ASP.NET 3.5 as an Alternative to CGI'/><author><name>sudhir</name><uri>http://www.blogger.com/profile/14935355985671801644</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7402073700401533358.post-1664418436104662448</id><published>2009-05-05T22:24:00.000-07:00</published><updated>2009-05-05T22:25:25.129-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET 3.5'/><title type='text'>It seems that the term state is used in different ways in programming. I’ve heard of everything from “State Machines” to “State Design Patterns.” What</title><content type='html'>&lt;div style="text-align: justify;"&gt;Answer: An object’s state refers to a condition of the object. For example, a Boolean can have two states–true or false. When you enter information into an input form, the information you enter reflects the current state of that form. To save that state, you have to put it somewhere that will hold that state until you need it. One place you can put state data is in a variable, and it can hold it for you temporarily. For permanent storage of a state, you can use a database or some other file you can store on a hard drive.&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7402073700401533358-1664418436104662448?l=dotnetframework3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetframework3.blogspot.com/feeds/1664418436104662448/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7402073700401533358&amp;postID=1664418436104662448' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/1664418436104662448'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/1664418436104662448'/><link rel='alternate' type='text/html' href='http://dotnetframework3.blogspot.com/2009/05/it-seems-that-term-state-is-used-in.html' title='It seems that the term state is used in different ways in programming. I’ve heard of everything from “State Machines” to “State Design Patterns.” What'/><author><name>sudhir</name><uri>http://www.blogger.com/profile/14935355985671801644</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7402073700401533358.post-5051305139411746641</id><published>2009-05-05T22:22:00.000-07:00</published><updated>2009-05-05T22:23:28.995-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET 3.5'/><title type='text'>ASP.NET 3.5:  Key Skills &amp; Concepts</title><content type='html'>&lt;ul&gt;&lt;li&gt; Moving from client-side to server-side computing&lt;/li&gt;&lt;li&gt; Understanding thin client&lt;/li&gt;&lt;li&gt; Understanding stateless HTTP&lt;/li&gt;&lt;li&gt; How ASP.NET 3.5 is an alternative to HTTP and CGI&lt;/li&gt;&lt;li&gt; How server-side applications work with your browser&lt;/li&gt;&lt;li&gt; Understanding the organization of the Microsoft .NET framework&lt;/li&gt;&lt;li&gt; How to set up your computer or LAN to run ASP.NET applications&lt;/li&gt;&lt;li&gt; The advantages of an ASP.NET hosting service&lt;/li&gt;&lt;li&gt; What languages can be run with ASP.NET&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7402073700401533358-5051305139411746641?l=dotnetframework3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetframework3.blogspot.com/feeds/5051305139411746641/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7402073700401533358&amp;postID=5051305139411746641' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/5051305139411746641'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/5051305139411746641'/><link rel='alternate' type='text/html' href='http://dotnetframework3.blogspot.com/2009/05/aspnet-35-key-skills-concepts.html' title='ASP.NET 3.5:  Key Skills &amp; Concepts'/><author><name>sudhir</name><uri>http://www.blogger.com/profile/14935355985671801644</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7402073700401533358.post-4865543319577080949</id><published>2008-06-19T00:21:00.003-07:00</published><updated>2008-06-19T00:21:58.866-07:00</updated><title type='text'>DNS</title><content type='html'>The DNS is capable of translating a server name like &lt;a href="http://www.google.com"&gt;www.google.com&lt;/a&gt; into a real IP address, and it can be used with the .NET Micro Framework, like in the full .NET Framework, with the static System.Net.Dns class.&lt;br&gt; &lt;br&gt;Dynamic DNS, which is enabled by default, attempts to automatically discover the DNS servers. You can verify if dynamic DNS is enabled by checking the read-only IsDynamicDnsEnabled property. You can also explicitly specify a list of DNS server IP addresses on your network using the EnableStaticDns method.&lt;br&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7402073700401533358-4865543319577080949?l=dotnetframework3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetframework3.blogspot.com/feeds/4865543319577080949/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7402073700401533358&amp;postID=4865543319577080949' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/4865543319577080949'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/4865543319577080949'/><link rel='alternate' type='text/html' href='http://dotnetframework3.blogspot.com/2008/06/dns.html' title='DNS'/><author><name>sudhir</name><uri>http://www.blogger.com/profile/14935355985671801644</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7402073700401533358.post-7263035576119184738</id><published>2008-06-19T00:21:00.001-07:00</published><updated>2008-06-19T00:21:06.497-07:00</updated><title type='text'>DHCP Service</title><content type='html'>You need not set the IP address, gateway address, and subnet mask explicitly. If your local network provides a reachable DHCP service, you can let the DHCP service automatically configure these parameters. The EnableDhcp method enables the DHCP service, which is the default setting. &lt;br&gt; Alternatively, calling EnableStaticIP will deactivate the usage of DHCP. &lt;br&gt;Dynamic IP addresses are assigned temporarily. You can release a dynamic IP address with ReleaseDhcpLease or renew it with RenewDhcpLease. The IsDhcpEnabled property indicates if DHCP is currently enabled.&lt;br&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7402073700401533358-7263035576119184738?l=dotnetframework3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetframework3.blogspot.com/feeds/7263035576119184738/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7402073700401533358&amp;postID=7263035576119184738' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/7263035576119184738'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/7263035576119184738'/><link rel='alternate' type='text/html' href='http://dotnetframework3.blogspot.com/2008/06/dhcp-service.html' title='DHCP Service'/><author><name>sudhir</name><uri>http://www.blogger.com/profile/14935355985671801644</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7402073700401533358.post-1938745940772739326</id><published>2008-06-19T00:20:00.001-07:00</published><updated>2008-06-19T00:20:19.829-07:00</updated><title type='text'>What is Gateway Address?</title><content type='html'>When you send an IP packet to an endpoint outside of your local subnet, it must pass a gateway (typically a router). You can set the gateway address explicitly as part of an EnableStaticIP call or let the DHCP (Dynamic Host Configuration Protocol) service automatically configure it, as described in the next section.&lt;br&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7402073700401533358-1938745940772739326?l=dotnetframework3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetframework3.blogspot.com/feeds/1938745940772739326/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7402073700401533358&amp;postID=1938745940772739326' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/1938745940772739326'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/1938745940772739326'/><link rel='alternate' type='text/html' href='http://dotnetframework3.blogspot.com/2008/06/what-is-gateway-address.html' title='What is Gateway Address?'/><author><name>sudhir</name><uri>http://www.blogger.com/profile/14935355985671801644</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7402073700401533358.post-5856630080575258105</id><published>2008-06-19T00:19:00.003-07:00</published><updated>2008-06-19T00:19:47.979-07:00</updated><title type='text'>What is Subnet Mask?</title><content type='html'>A subnet is a part of the overall address space. A subnet mask indicates to which subnet a device belongs. A common subnet mask is &lt;a href="http://255.255.255.0"&gt;255.255.255.0&lt;/a&gt;, which indicates that the last byte of an IP address contains host information. You can obtain the actual subnet mask as a string with the read-only SubnetMask property. You can set the subnet mask explicitly with the EnableStaticIP method.&lt;br&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7402073700401533358-5856630080575258105?l=dotnetframework3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetframework3.blogspot.com/feeds/5856630080575258105/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7402073700401533358&amp;postID=5856630080575258105' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/5856630080575258105'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/5856630080575258105'/><link rel='alternate' type='text/html' href='http://dotnetframework3.blogspot.com/2008/06/what-is-subnet-mask.html' title='What is Subnet Mask?'/><author><name>sudhir</name><uri>http://www.blogger.com/profile/14935355985671801644</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7402073700401533358.post-1751525688551968182</id><published>2008-06-19T00:19:00.001-07:00</published><updated>2008-06-19T00:19:09.782-07:00</updated><title type='text'>What is MAC Address?</title><content type='html'>The Media Access Control (MAC) address is a globally unique identifier for your network adapter on its network. You can obtain it with the PhysicalAddress property of the NetworkInterface instance. Although changing the physical address is possible, you should use the unique&lt;br&gt; identifier provided by default, and you should ensure that all devices on your network have a unique identifier.&lt;br&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7402073700401533358-1751525688551968182?l=dotnetframework3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetframework3.blogspot.com/feeds/1751525688551968182/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7402073700401533358&amp;postID=1751525688551968182' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/1751525688551968182'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/1751525688551968182'/><link rel='alternate' type='text/html' href='http://dotnetframework3.blogspot.com/2008/06/what-is-mac-address.html' title='What is MAC Address?'/><author><name>sudhir</name><uri>http://www.blogger.com/profile/14935355985671801644</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7402073700401533358.post-3370251945325178408</id><published>2008-06-19T00:18:00.001-07:00</published><updated>2008-06-19T00:18:16.192-07:00</updated><title type='text'>UDP protocol</title><content type='html'>UDP is a connectionless protocol that is lightweight and faster than TCP, but it's error prone because data can be lost in transmission or arrive more than once. UDP is used for streaming services such as Voice over IP, where real time matters but dropping packets just affects the sound quality.&lt;br&gt; &lt;br&gt;One of the additional advantages of using UDP is the ability to broadcast or multicast data across a network. The DNS service to resolve Internet addresses and the discovery service of the Device Profile for Web Services use the broadcast feature of UDP.&lt;br&gt; &lt;br&gt;With UDP, a client does not need to connect to a server. Connectionless transmission takes place with the SendTo and ReceiveFrom methods. ReceiveFrom returns an endpoint object that is populated with the actual sender information. Listing 6-4 shows a UDP client and Listing 6-5 a UDP server. They demonstrate the usage of a connectionless end-to-end transmission but are not using the broadcast feature.&lt;br&gt; &lt;br&gt;If you want to send a broadcast message that theoretically all network nodes will get, you can use the IP address &lt;a href="http://255.255.255.255"&gt;255.255.255.255&lt;/a&gt;. There is no predefined broadcast address like Any or Loopback as there is with the full .NET Framework. You can also create a broadcast IP address object using new IPAddress(0xFFFFFFFF);.&lt;br&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7402073700401533358-3370251945325178408?l=dotnetframework3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetframework3.blogspot.com/feeds/3370251945325178408/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7402073700401533358&amp;postID=3370251945325178408' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/3370251945325178408'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/3370251945325178408'/><link rel='alternate' type='text/html' href='http://dotnetframework3.blogspot.com/2008/06/udp-protocol.html' title='UDP protocol'/><author><name>sudhir</name><uri>http://www.blogger.com/profile/14935355985671801644</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7402073700401533358.post-6461179920611339986</id><published>2008-06-19T00:16:00.001-07:00</published><updated>2008-06-19T00:16:59.909-07:00</updated><title type='text'>Transmitting Data with a Socket</title><content type='html'>Once you have a connection, you can send data synchronously with the socket's Send method:&lt;br&gt;clientSocket.Send(Encoding.UTF8.GetBytes(&amp;quot;Hello World!&amp;quot;));&lt;br&gt;&lt;br&gt;And you can receive data with the Receive method. The maximum number of bytes the Receive method reads is limited by the amount the specified buffer can hold. The method returns the actual number of bytes that were read:&lt;br&gt; &lt;br&gt;byte[] inBuffer = new byte[100];&lt;br&gt;int count = clientSocket.Receive(inBuffer);&lt;br&gt;char[] chars = Encoding.UTF8.GetChars(inBuffer);&lt;br&gt;string str = new string(chars, 0, count);&lt;br&gt;Debug.Print(str);&lt;br&gt;&lt;br&gt;You can poll the socket to test if data has been received. The first polling parameter specifies the amount of time, in microseconds, you want your application to wait for a response. Set it to –1 or System.Threading.Timeout.Infinite to let your application to wait an infinite amount of time:&lt;br&gt; if (communicationSocket.Poll(-1, //timeout in microseconds (-1 = infinite)&lt;br&gt;SelectMode.SelectRead))&lt;br&gt;{&lt;br&gt;...//read data here&lt;br&gt;}&lt;br&gt;Using the Available property of the Socket class, you can determine the number of bytes that are available to read before receiving them, which allows you to allocate a buffer that can hold all available bytes before reading the data.&lt;br&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7402073700401533358-6461179920611339986?l=dotnetframework3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetframework3.blogspot.com/feeds/6461179920611339986/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7402073700401533358&amp;postID=6461179920611339986' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/6461179920611339986'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/6461179920611339986'/><link rel='alternate' type='text/html' href='http://dotnetframework3.blogspot.com/2008/06/transmitting-data-with-socket.html' title='Transmitting Data with a Socket'/><author><name>sudhir</name><uri>http://www.blogger.com/profile/14935355985671801644</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7402073700401533358.post-8946187812930004386</id><published>2008-06-19T00:15:00.001-07:00</published><updated>2008-06-19T00:15:48.887-07:00</updated><title type='text'>Addressing NET Micro Framework</title><content type='html'>An IP version 4 address is coded as 4-byte integer value but usually indicated in the more legible dotted decimal notation, for example, &lt;a href="http://192.168.101.100"&gt;192.168.101.100&lt;/a&gt;. When creating an instance of the IPEndPoint and IPAddress classes, you need to specify the address coded as a long value.&lt;br&gt; You cannot directly parse an IP address from a string with the Parse method of IPAddress as you can with the full .NET Framework; the .NET Micro Framework does not provide a Parse method for IPAddress. You can indirectly parse using the System.Net.Dns class, but first, take a look at the following code snippet, which demonstrates how you can convert a dotted decimal IP address to an IP address of the long value type.&lt;br&gt; &lt;br&gt;public static long DottedDecimalToIp(byte a1, byte a2, byte a3, byte a4)&lt;br&gt;{&lt;br&gt;return (long)((ulong)a4 &amp;lt;&amp;lt; 24 | (ulong)a3 &amp;lt;&amp;lt; 16 | (ulong)a2 &amp;lt;&amp;lt; 8 | (ulong)a1);&lt;br&gt;}&lt;br&gt;&lt;br&gt;Using the preceding snippet, you can easily create an endpoint with legible decimal notation:&lt;br&gt; IPEndPoint ep = new IPEndPoint(DottedDecimalToIp(192, 168, 101, 100), 80);&lt;br&gt;&lt;br&gt;As I said, there is a way to convert the IP address using the System.Net.Dns class, which allows you to use the Internet Domain Name System (DNS). The Dns class is responsible for resolving server names. Server addresses can be specified either in decimal notation or as a server name like &lt;a href="http://www.microsoft.com"&gt;www.microsoft.com&lt;/a&gt;. The GetHostEntry method returns a collection of the entries found in the DNS database. If you pass a particular address in decimal notation, you will always get one entry in the form of an IPAddress object:&lt;br&gt; IPHostEntry entry = Dns.GetHostEntry(&amp;quot;&lt;a href="http://192.168.101.100"&gt;192.168.101.100&lt;/a&gt;&amp;quot;);&lt;br&gt;IPAddress ipAddr = entry.AddressList[0];&lt;br&gt;IPEndPoint ep = new IPEndPoint(ipAddr, 80);&lt;br&gt;&lt;br&gt;Passing an empty string (&amp;quot;&amp;quot;) to the GetHostEntry method will deliver the local IP address of the device.&lt;br&gt; The IPAddress class possesses two predefined static addresses properties: IPAddress.Loopback and IPAddress.Any IPAddress.Loopback describes the address &lt;a href="http://127.0.0.1"&gt;127.0.0.1&lt;/a&gt;, which is used if the client and server are on the same PC or device. IPAddress.Any is &lt;a href="http://0.0.0.0"&gt;0.0.0.0&lt;/a&gt; and does not have a meaning for client applications; we will discuss that parameter in detail later, with server&lt;br&gt; applications.&lt;br&gt;For example, to connect with a server at the address &lt;a href="http://192.168.101.100"&gt;192.168.101.100&lt;/a&gt; on the port 80, you need the following code:&lt;br&gt;Socket clientSocket = new Socket(Addressfamily.InterNetwork,&lt;br&gt; SocketType.Stream,&lt;br&gt;ProtocolType.Tcp);&lt;br&gt;IPEndPoint serverEndPoint = new IPEndPoint(DottedDecimalToIp(192, 168, 101, 100),&lt;br&gt;80); // port no&lt;br&gt;clientSocket.Connect(serverEndPoint);&lt;br&gt;You can obtain the two endpoints of the socket when a connection is available with the RemoteEndPoint and LocalEndPoint properties. Casting these into an IPEndPoint object will make the IP address available over the Address property. &lt;br&gt; &lt;br&gt;You can determine the individual bytes of an IP address with the GetAddressBytes method, which supplies a byte array. With IP version 4, GetAddressBytes returns a byte array of 4 bytes.&lt;br&gt;&lt;br&gt;In addition, the ToString method provides a string displaying the IP address in dotted decimal notation.&lt;br&gt; IPEndPoint remoteIPEndPoint = (IPEndPoint)communicationSocket.RemoteEndPoint;&lt;br&gt;byte[] addressBytes = remoteIPEndPoint.Address.GetAddressBytes();&lt;br&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7402073700401533358-8946187812930004386?l=dotnetframework3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetframework3.blogspot.com/feeds/8946187812930004386/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7402073700401533358&amp;postID=8946187812930004386' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/8946187812930004386'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/8946187812930004386'/><link rel='alternate' type='text/html' href='http://dotnetframework3.blogspot.com/2008/06/addressing-net-micro-framework.html' title='Addressing NET Micro Framework'/><author><name>sudhir</name><uri>http://www.blogger.com/profile/14935355985671801644</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7402073700401533358.post-3727825748590559045</id><published>2008-06-19T00:13:00.001-07:00</published><updated>2008-06-19T00:13:04.995-07:00</updated><title type='text'>TCP Programming</title><content type='html'>&lt;br&gt;A TCP/IP connection is the right choice when you need a reliable two-way, connection-based communication that ensures that data packets will be received in the correct order and that no data&amp;nbsp; will be lost or transferred multiple times. You can create a TCP/IP socket with the following code:&lt;br&gt; &lt;br&gt;Socket socket = new Socket(Addressfamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);&lt;br&gt;&lt;br&gt;Connecting to a Server as a Client&lt;br&gt;&lt;br&gt;After you have created a socket object, you are able to initiate a connection to a (remote) server with the Connect method of your socket. Your .NET Micro Framework application is thereby&amp;nbsp; the client application. The connection establishment takes place synchronously, so your client application will be blocked until a connection is available.&lt;br&gt; &lt;br&gt;public void Connect(EndPoint remoteEP);&lt;br&gt;&lt;br&gt;Take note of the remoteEP parameter of the abstract type System.Net.EndPoint in the signature of the Connect method. For IP connections, you need to pass an instance of the System.Net.IPEndPoint class to the Connect method. IPEndPoint contains the IP address and the communication port, and it is derived from EndPoint.&lt;br&gt; &lt;br&gt;You can create an IPEndPoint object with one of the following two constructors:&lt;br&gt;public IPEndPoint(long address, int port)&lt;br&gt;public IPEndPoint(IPAddress address, int port)&lt;br&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7402073700401533358-3727825748590559045?l=dotnetframework3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetframework3.blogspot.com/feeds/3727825748590559045/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7402073700401533358&amp;postID=3727825748590559045' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/3727825748590559045'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/3727825748590559045'/><link rel='alternate' type='text/html' href='http://dotnetframework3.blogspot.com/2008/06/tcp-programming.html' title='TCP Programming'/><author><name>sudhir</name><uri>http://www.blogger.com/profile/14935355985671801644</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7402073700401533358.post-613083752622415236</id><published>2008-06-19T00:10:00.001-07:00</published><updated>2008-06-19T00:10:28.971-07:00</updated><title type='text'>Sockets Programming</title><content type='html'>Programming applications that access a network was originally a complicated affair, but with the .NET Framework, this is no longer the case. The .NET Framework provides classes that substantially simplify complex network programming. These classes are in the System.Net and System.Net.Sockets namespaces in the System.dll assembly.&lt;br&gt; &lt;br&gt;The most important class for network programming is System.Net.Sockets.Socket. The Socket class abstracts and implements the Socket API and/or Berkeley socket interface standard.&lt;br&gt;&lt;br&gt;The Socket API was developed at the beginning of the 1980s at the University of California,Berkeley for Berkeley Software Distribution (BSD) UNIX.&lt;br&gt; &lt;br&gt;A socket is an endpoint of a connection. With sockets, you can read and send data to and from a network on both the client and server sides. To send or receive data from a socket, you need to know the IP address of the other communication partner (endpoint) and one agreedupon port number, which can vary depending on application purposes. A client application, thus, must know the IP address of the server and connect with that server on a particular port.&lt;br&gt; &lt;br&gt;The server listens on the agreed port or ports and accepts incoming connections from one or more clients.&lt;br&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7402073700401533358-613083752622415236?l=dotnetframework3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetframework3.blogspot.com/feeds/613083752622415236/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7402073700401533358&amp;postID=613083752622415236' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/613083752622415236'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/613083752622415236'/><link rel='alternate' type='text/html' href='http://dotnetframework3.blogspot.com/2008/06/sockets-programming.html' title='Sockets Programming'/><author><name>sudhir</name><uri>http://www.blogger.com/profile/14935355985671801644</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7402073700401533358.post-8876405720369447447</id><published>2008-06-19T00:08:00.001-07:00</published><updated>2008-06-19T00:08:41.086-07:00</updated><title type='text'>Accessing SPI Devices with the .NET Micro Framework</title><content type='html'>The .NET Micro Framework. SPI devices are represented by the Microsoft.SPOT.Hardware.&lt;br&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7402073700401533358-8876405720369447447?l=dotnetframework3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetframework3.blogspot.com/feeds/8876405720369447447/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7402073700401533358&amp;postID=8876405720369447447' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/8876405720369447447'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/8876405720369447447'/><link rel='alternate' type='text/html' href='http://dotnetframework3.blogspot.com/2008/06/accessing-spi-devices-with-net-micro.html' title='Accessing SPI Devices with the .NET Micro Framework'/><author><name>sudhir</name><uri>http://www.blogger.com/profile/14935355985671801644</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7402073700401533358.post-7855314475082041927</id><published>2008-06-19T00:07:00.001-07:00</published><updated>2008-06-19T00:07:29.463-07:00</updated><title type='text'>Why Reserve Pins?</title><content type='html'>By reserving CPU pins, you can explicitly control the usage of the pins. By registering a hardware provider, you are able to reserve the required pins for the serial interface and the I²C and SPI busses to detect multiple usage of a pin and to avoid the resulting conflicts. The use of hardware providers is optional, but they provide simple and central management of shared pins.&lt;br&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7402073700401533358-7855314475082041927?l=dotnetframework3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetframework3.blogspot.com/feeds/7855314475082041927/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7402073700401533358&amp;postID=7855314475082041927' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/7855314475082041927'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/7855314475082041927'/><link rel='alternate' type='text/html' href='http://dotnetframework3.blogspot.com/2008/06/why-reserve-pins.html' title='Why Reserve Pins?'/><author><name>sudhir</name><uri>http://www.blogger.com/profile/14935355985671801644</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7402073700401533358.post-6266259445258944125</id><published>2008-06-19T00:06:00.001-07:00</published><updated>2008-06-19T00:06:49.331-07:00</updated><title type='text'>The RS232 Serial Port</title><content type='html'>Even though the concept of the serial interface has been around for years and USB is becoming more and more established, there are still many devices that need to be interfaced with a serial port, for example, measuring instruments and GPS receivers. In addition, the Bluetooth standard defines several protocols (profiles) to access different devices like head sets and printers, and it also has a communication profile via Bluetooth named Serial-Port. Some serial-to-Bluetooth adapters exist already. If such an adapter is connected to the serial interface of the microcontroller, a .NET Micro Framework application can communicate wirelessly with a PC, PDA,smartphone, or other microcontroller (see Chapter 7).&lt;br&gt; &lt;br&gt;Together with the serial interface, you quite often hear the terms "UART," "USART," and "RS232." UART and USART are names for the serial hardware component, the Universal (Synchronous) Asynchronous Receiver Transmitter. The RS232 standard describes how data will be physically transferred over the cable. Further standards are RS422 and RS485.&lt;br&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7402073700401533358-6266259445258944125?l=dotnetframework3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetframework3.blogspot.com/feeds/6266259445258944125/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7402073700401533358&amp;postID=6266259445258944125' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/6266259445258944125'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/6266259445258944125'/><link rel='alternate' type='text/html' href='http://dotnetframework3.blogspot.com/2008/06/rs232-serial-port.html' title='The RS232 Serial Port'/><author><name>sudhir</name><uri>http://www.blogger.com/profile/14935355985671801644</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7402073700401533358.post-8016301599293265565</id><published>2008-06-19T00:05:00.001-07:00</published><updated>2008-06-19T00:05:41.897-07:00</updated><title type='text'>What Are GPIO Ports?</title><content type='html'>General purpose input/output (GPIO) ports are probably the most frequently used way for a microcontroller to contact its environment. A GPIO port can be initialized and used either as an input or output line. A typical example of an output line is one to control a light-emitting&lt;br&gt; diode (LED). Monitoring a push button or a switch is the function of an input line.&lt;br&gt;&lt;br&gt;A GPIO port can have either a low (0 volts) or high (a positive voltage, usually 3.3 volts) status. In the .NET Micro Framework, the status of a GPIO port is represented as a Boolean value. The value false corresponds to low status and true to high.&lt;br&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7402073700401533358-8016301599293265565?l=dotnetframework3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetframework3.blogspot.com/feeds/8016301599293265565/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7402073700401533358&amp;postID=8016301599293265565' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/8016301599293265565'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/8016301599293265565'/><link rel='alternate' type='text/html' href='http://dotnetframework3.blogspot.com/2008/06/what-are-gpio-ports.html' title='What Are GPIO Ports?'/><author><name>sudhir</name><uri>http://www.blogger.com/profile/14935355985671801644</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7402073700401533358.post-4738996465072248171</id><published>2008-06-19T00:04:00.001-07:00</published><updated>2008-06-19T00:04:43.477-07:00</updated><title type='text'>TFConvert Tool</title><content type='html'>The .NET Micro Framework uses the .tinyfnt file format to work with fonts. This special format uses fixed size bitmaps for a simpler way to render fonts. Two sample .tinyfnt fonts are included in the Fonts subdirectory of your .NET Micro Framework installation. To create other fonts in the size, style, and language tailored to your application, you can use the TFConvert tool to create a .tinyfnt font from TrueType or OpenType font files. That enables you to select character sets and even create fonts for displaying Cyrillic and Chinese characters.&lt;br&gt; In the Tools\Fonts subdirectory, you can find some sample TrueType fonts from Ascender Corporation, which you can convert to meet your needs. These free sample fonts provide a reduced character set; the full versions can be purchased from the company.&lt;br&gt; &lt;br&gt;The TFConvert command line tool is located in the Tools subdirectory of your .NET Micro Framework installation. TFConvert accepts a path to a font definition file that describes the font's size, style, and characters to convert.&lt;br&gt; &lt;br&gt;The system tool character map (charmap.exe) provided with your Windows installation can help you determine which characters or character ranges to convert.&lt;br&gt;&lt;br&gt;To get more information about creating .tinyfnt fonts with the TFConvert tool, please see the .NET Micro Framework SDK documentation, where this is described in detail.&lt;br&gt; &lt;br&gt;In addition, on the SJJ Embedded Micro Solutions web site, you can find a great article that describes how to convert fonts with TFConvert (&lt;a href="http://www.sjjmicro.com/SJJ_Articles.html"&gt;www.sjjmicro.com/SJJ_Articles.html&lt;/a&gt;).&lt;br&gt; &lt;br&gt;On the web site of a Czech .NET Micro Framework enthusiast, Jan Kucera, at www.microframework.eu, you can find the Tiny Font Tool GUI. This tool provides a graphical user interface that assists you in creating the font definition files.&lt;br&gt; &lt;br&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7402073700401533358-4738996465072248171?l=dotnetframework3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetframework3.blogspot.com/feeds/4738996465072248171/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7402073700401533358&amp;postID=4738996465072248171' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/4738996465072248171'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/4738996465072248171'/><link rel='alternate' type='text/html' href='http://dotnetframework3.blogspot.com/2008/06/tfconvert-tool.html' title='TFConvert Tool'/><author><name>sudhir</name><uri>http://www.blogger.com/profile/14935355985671801644</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7402073700401533358.post-2852000055237151382</id><published>2008-06-19T00:03:00.001-07:00</published><updated>2008-06-19T00:03:10.672-07:00</updated><title type='text'>MFDeploy [.NET Micro Framework Deployment Tool ]</title><content type='html'>The .NET Micro Framework provides the .NET Micro Framework Deployment Tool (MFDeploy), which you can find in the Tools subfolder of the SDK. The primary purpose of MFDeploy is to copy your application to devices. MFDeploy provides a GUI (see Figure 3-5), can be invoked from the command line, and provides a .NET API, and thus allows you to use MFDeploy in your production environment to replicate a standard deployment on your devices without Visual Studio.&lt;br&gt; &lt;br&gt;The features of MFDeploy include the following:&lt;br&gt;&lt;br&gt;• Discovering and pinging devices to test if they are responsive&lt;br&gt;• Creating a standard deployment from a master device&lt;br&gt;Copying your application to the device&lt;br&gt; • Upgrading firmware&lt;br&gt;• Creating and updating device keys&lt;br&gt;• Signing code&lt;br&gt;• Setting network parameters and USB names&lt;br&gt;• Use via a UI or automatically via the command line or programmatically&lt;br&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7402073700401533358-2852000055237151382?l=dotnetframework3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetframework3.blogspot.com/feeds/2852000055237151382/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7402073700401533358&amp;postID=2852000055237151382' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/2852000055237151382'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/2852000055237151382'/><link rel='alternate' type='text/html' href='http://dotnetframework3.blogspot.com/2008/06/mfdeploy-net-micro-framework-deployment.html' title='MFDeploy [.NET Micro Framework Deployment Tool ]'/><author><name>sudhir</name><uri>http://www.blogger.com/profile/14935355985671801644</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7402073700401533358.post-2012309179447115369</id><published>2008-06-19T00:00:00.001-07:00</published><updated>2008-06-19T00:00:24.736-07:00</updated><title type='text'>.NET Micro Framework Base Class Library</title><content type='html'>The Base Class Library Runtime Assemblies&lt;br&gt;The runtime libraries that you can find in the Assemblies subdirectory of your .NET Micro Framework installation include the following:&lt;br&gt;• Mscorlib.dll: A subset of the core .NET classes.&lt;br&gt; • System.dll: Only the System.Net namespace.&lt;br&gt;• System.Xml.dll: A subset of the core .NET XML classes necessary to read XML files.&lt;br&gt;• Microsoft.SPOT.Native.dll: Core .NET Micro Framework classes.&lt;br&gt;• Microsoft.SPOT.Hardware.dll: Managed hardware drivers.&lt;br&gt; • Microsoft.SPOT.Graphics.dll: Low-level graphics classes.&lt;br&gt;• Microsoft.SPOT.TinyCore.dll: User interface elements for complex WPF GUIs.&lt;br&gt;• Microsoft.SPOT.Net.dll: Internal socket drivers. &lt;br&gt;&lt;br&gt;When using network sockets, you need to include System.dll and Microsoft.SPOT.Net.dll.&lt;br&gt; Further assemblies for the Device Profile for Web Services (DPWS) stack are also included.&lt;br&gt;&lt;br&gt;Although provided with the .NET Micro Framework 2.5 SDK release, the implementation of the DPWS stack is still in beta, and therefore, the DPWS libraries are not installed by default with the .NET Micro Framework SDK. When installing the SDK you need to choose either the Install All option or the Custom Installation option with DPWS selected.&lt;br&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7402073700401533358-2012309179447115369?l=dotnetframework3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetframework3.blogspot.com/feeds/2012309179447115369/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7402073700401533358&amp;postID=2012309179447115369' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/2012309179447115369'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/2012309179447115369'/><link rel='alternate' type='text/html' href='http://dotnetframework3.blogspot.com/2008/06/net-micro-framework-base-class-library.html' title='.NET Micro Framework Base Class Library'/><author><name>sudhir</name><uri>http://www.blogger.com/profile/14935355985671801644</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7402073700401533358.post-517164944386411705</id><published>2008-06-18T23:57:00.001-07:00</published><updated>2008-06-18T23:57:04.912-07:00</updated><title type='text'>.NET Micro Framework System Requirements</title><content type='html'>&lt;i&gt;&lt;b&gt;System Requirements&lt;br&gt;&lt;br&gt;&lt;/b&gt;&lt;/i&gt;Developing for the .NET Micro Framework requires the following:&lt;br&gt;• Microsoft Windows XP or Vista&lt;br&gt;• Microsoft Visual Studio 2005 Standard Edition or better, with Service Pack 1&lt;br&gt; • .NET Micro Framework SDK version 2 with Service Pack 1 or version 2.5&lt;br&gt;&lt;br&gt;The free Express editions of Visual Studio cannot be used with the .NET Micro Framework,because they do not allow installing extensions at all. Do not forget to install Visual Studio 2005 Service Pack 1.&lt;br&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7402073700401533358-517164944386411705?l=dotnetframework3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetframework3.blogspot.com/feeds/517164944386411705/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7402073700401533358&amp;postID=517164944386411705' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/517164944386411705'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/517164944386411705'/><link rel='alternate' type='text/html' href='http://dotnetframework3.blogspot.com/2008/06/net-micro-framework-system-requirements.html' title='.NET Micro Framework System Requirements'/><author><name>sudhir</name><uri>http://www.blogger.com/profile/14935355985671801644</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7402073700401533358.post-6113700275308687543</id><published>2008-06-18T23:52:00.001-07:00</published><updated>2008-06-18T23:52:41.606-07:00</updated><title type='text'>What Is the .NET Micro Framework?</title><content type='html'>The Microsoft .NET Micro Framework is a small and efficient .NET runtime environment used to run managed code on devices that are too small and resource constrained for Windows CE and the .NET Compact Framework.&lt;br&gt;&lt;br&gt;The .NET Micro Framework enables you to write embedded applications for small, connected, embedded devices with Visual Studio and C#. That means you can now use the same development tools and language that you use to build desktop and smart device (PDA and smartphone) applications to develop applications for microcontrollers. The .NET Micro Framework also provides an extensible hardware emulator for rapid prototyping and debugging.&lt;br&gt; &lt;br&gt;The .NET Micro Framework requires no underlying operating system. A scaled-down version of the Common Language Runtime (TinyCLR) sits directly on the hardware, so the framework is often called a bootable runtime. The runtime has a small footprint; it uses only a few hundred kilobytes of RAM and does not require the processor to have a memory management unit (MMU).&lt;br&gt; &lt;br&gt;Therefore, the .NET Micro Framework can run on small and inexpensive 32-bit processors without consuming a lot of power. &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7402073700401533358-6113700275308687543?l=dotnetframework3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetframework3.blogspot.com/feeds/6113700275308687543/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7402073700401533358&amp;postID=6113700275308687543' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/6113700275308687543'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/6113700275308687543'/><link rel='alternate' type='text/html' href='http://dotnetframework3.blogspot.com/2008/06/what-is-net-micro-framework.html' title='What Is the .NET Micro Framework?'/><author><name>sudhir</name><uri>http://www.blogger.com/profile/14935355985671801644</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7402073700401533358.post-1690979287881293820</id><published>2008-06-17T08:52:00.001-07:00</published><updated>2008-06-17T08:52:13.295-07:00</updated><title type='text'>How to: Improve the Startup Time of WCF Client Applications using the XmlSerializer</title><content type='html'>Services and client applications that use data types that are&lt;br&gt;serializable using the XmlSerializer generate and compile&lt;br&gt;serialization code for those data types at runtime, which can result&lt;br&gt;in slow start-up performance.&lt;p&gt;Note:&lt;br&gt;Pre-generated serialization code can only be used in client&lt;br&gt;applications and not in services.&lt;p&gt;&lt;br&gt;The ServiceModel Metadata Utility Tool (Svcutil.exe) can improve&lt;br&gt;start-up performance for these applications by generating the&lt;br&gt;necessary serialization code from the compiled assemblies for the&lt;br&gt;application. Svcutil.exe generates serialization code for all data&lt;br&gt;types used in service contracts in the compiled application assembly&lt;br&gt;that can be serialized using the XmlSerializer. Service and operation&lt;br&gt;contracts that use the XmlSerializer are marked with the&lt;br&gt;XmlSerializerFormatAttribute.&lt;p&gt;To generate XmlSerializer serialization code&lt;br&gt;Compile your service or client code into one or more assemblies.&lt;p&gt;Open an SDK command prompt.&lt;p&gt;At the command prompt, launch the Svcutil.exe tool using the following format.&lt;p&gt;svcutil.exe /t:xmlSerializer  &amp;lt;assemblyPath&amp;gt;*&lt;p&gt;&lt;br&gt;The assemblyPath argument specifies the path to an assembly that&lt;br&gt;contains service contract types. Svcutil.exe generates serialization&lt;br&gt;code for all data types used in service contracts in the compiled&lt;br&gt;application assembly that can be serialized using the XmlSerializer.&lt;p&gt;Svcutil.exe can only generate C# serialization code. One source code&lt;br&gt;file is generated for each input assembly. You cannot use the&lt;br&gt;/language switch to change the language of the generated code.&lt;p&gt;To specify the path to dependent assemblies, use the /reference option.&lt;p&gt;Make the generated serialization code available to your application by&lt;br&gt;using one of the following options:&lt;p&gt;Compile the generated serialization code into a separate assembly with&lt;br&gt;the name [original assembly].XmlSerializers.dll (for example,&lt;br&gt;MyApp.XmlSerializers.dll). Your application must be able to load the&lt;br&gt;assembly, which must be signed with the same key as the original&lt;br&gt;assembly. If you recompile the original assembly, you must regenerate&lt;br&gt;the serialization assembly.&lt;p&gt;Compile the generated serialization code into a separate assembly and&lt;br&gt;use the XmlSerializerAssemblyAttribute on the service contract that&lt;br&gt;uses the XmlSerializerFormatAttribute. Set the AssemblyName or&lt;br&gt;CodeBase properties to point to the compiled serialization assembly.&lt;p&gt;Compile the generated serialization code into your application&lt;br&gt;assembly and add the XmlSerializerAssemblyAttribute to the service&lt;br&gt;contract that uses the XmlSerializerFormatAttribute. Do not set the&lt;br&gt;AssemblyName or CodeBase properties. The default serialization&lt;br&gt;assembly is assumed to be the current assembly.&lt;p&gt;Example&lt;br&gt;The following command generates serialization types for XmlSerializer&lt;br&gt;types that any service contracts in the assembly use.&lt;p&gt;svcutil /t:xmlserializer myContractLibrary.exe&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7402073700401533358-1690979287881293820?l=dotnetframework3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetframework3.blogspot.com/feeds/1690979287881293820/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7402073700401533358&amp;postID=1690979287881293820' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/1690979287881293820'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/1690979287881293820'/><link rel='alternate' type='text/html' href='http://dotnetframework3.blogspot.com/2008/06/how-to-improve-startup-time-of-wcf.html' title='How to: Improve the Startup Time of WCF Client Applications using the XmlSerializer'/><author><name>sudhir</name><uri>http://www.blogger.com/profile/14935355985671801644</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7402073700401533358.post-2462289099792444190</id><published>2008-06-17T08:50:00.003-07:00</published><updated>2008-06-17T08:50:57.967-07:00</updated><title type='text'>How to: Use Svcutil.exe to Download Metadata Documents</title><content type='html'>You can use Svcutil.exe to download metadata from running services and&lt;br&gt;to save the metadata to local files. For HTTP and HTTPS URL schemes,&lt;br&gt;Svcutil.exe attempts to retrieve metadata using WS-MetadataExchange&lt;br&gt;and XML Web Service Discovery. For all other URL schemes, Svcutil.exe&lt;br&gt;uses only WS-MetadataExchange.&lt;p&gt;By default, Svcutil.exe uses the bindings defined in the&lt;br&gt;MetadataExchangeBindings class. To configure the binding used for&lt;br&gt;WS-MetadataExchange, you must define a client endpoint in the&lt;br&gt;configuration file for Svcutil.exe (svcutil.exe.config) that uses the&lt;br&gt;IMetadataExchange contract and that has the same name as the Uniform&lt;br&gt;Resource Identifier (URI) scheme of the metadata endpoint address.&lt;p&gt;To download metadata using Svcutil.exe&lt;br&gt;Locate the Svcutil.exe tool at the following location:&lt;p&gt;C:\Program Files\Microsoft SDKs\Windows\v1.0.\bin&lt;p&gt;At the command prompt, launch the tool using the following format.&lt;p&gt;svcutil.exe /t:metadata  &amp;lt;url&amp;gt;* | &amp;lt;epr&amp;gt;&lt;p&gt;&lt;br&gt;You must specify the /t:metadata option to download metadata.&lt;br&gt;Otherwise, client code and configuration are generated.&lt;p&gt;The &amp;lt;url&amp;gt; argument specifies the URL to a service endpoint that&lt;br&gt;provides metadata or to a metadata document hosted online. The &amp;lt;epr&amp;gt;&lt;br&gt;argument specifies the path to an XML file that contains a&lt;br&gt;WS-Addressing EndpointAddress for a service endpoint that supports&lt;br&gt;WS-MetadataExchange.&lt;p&gt;For more options about using this tool for metadata download, see&lt;br&gt;ServiceModel Metadata Utility Tool (Svcutil.exe).&lt;p&gt;Example&lt;br&gt;The following command downloads metadata documents from a running service.&lt;p&gt;svcutil /t:metadata &lt;a href="http://service/metadataEndpoint"&gt;http://service/metadataEndpoint&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7402073700401533358-2462289099792444190?l=dotnetframework3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetframework3.blogspot.com/feeds/2462289099792444190/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7402073700401533358&amp;postID=2462289099792444190' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/2462289099792444190'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/2462289099792444190'/><link rel='alternate' type='text/html' href='http://dotnetframework3.blogspot.com/2008/06/how-to-use-svcutilexe-to-download.html' title='How to: Use Svcutil.exe to Download Metadata Documents'/><author><name>sudhir</name><uri>http://www.blogger.com/profile/14935355985671801644</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7402073700401533358.post-6325830067089483079</id><published>2008-06-17T08:50:00.001-07:00</published><updated>2008-06-17T08:50:05.893-07:00</updated><title type='text'>How to: Use Svcutil.exe to Validate Compiled Service Code</title><content type='html'>You can use the ServiceModel Metadata Utility Tool (Svcutil.exe) to&lt;br&gt;detect errors in service implementations and configurations without&lt;br&gt;hosting the service.&lt;p&gt;To validate a service&lt;br&gt;Compile your service into an executable file and one or more dependent&lt;br&gt;assemblies.&lt;p&gt;Open an SDK command prompt&lt;p&gt;At the command prompt, launch the Svcutil.exe tool using the following format.&lt;p&gt;svcutil.exe /validate /serviceName:&amp;lt;serviceConfigName&amp;gt;  &amp;lt;assemblyPath&amp;gt;*&lt;p&gt;&lt;br&gt;You must use the /serviceName option to indicate the configuration&lt;br&gt;name of the service you want to validate.&lt;p&gt;The assemblyPath argument specifies the path to the executable file&lt;br&gt;for the service and one or more assemblies that contain the service&lt;br&gt;types to be validated. The executable assembly must have an associated&lt;br&gt;configuration file to provide the service configuration. You can use&lt;br&gt;standard command-line wildcards to provide multiple assemblies.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7402073700401533358-6325830067089483079?l=dotnetframework3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetframework3.blogspot.com/feeds/6325830067089483079/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7402073700401533358&amp;postID=6325830067089483079' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/6325830067089483079'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/6325830067089483079'/><link rel='alternate' type='text/html' href='http://dotnetframework3.blogspot.com/2008/06/how-to-use-svcutilexe-to-validate.html' title='How to: Use Svcutil.exe to Validate Compiled Service Code'/><author><name>sudhir</name><uri>http://www.blogger.com/profile/14935355985671801644</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7402073700401533358.post-3353284265907162495</id><published>2008-06-17T08:49:00.001-07:00</published><updated>2008-06-17T08:49:15.947-07:00</updated><title type='text'>How to: Use Svcutil.exe to Export Metadata from Compiled Service Code</title><content type='html'>Svcutil.exe can export metadata for services, contracts, and data&lt;br&gt;types in compiled assemblies, as follows:&lt;p&gt;To export metadata for all compiled service contracts for a set of&lt;br&gt;assemblies using Svcutil.exe, specify the assemblies as input&lt;br&gt;parameters. This is the default behavior.&lt;p&gt;To export metadata for a compiled service using Svcutil.exe, specify&lt;br&gt;the service assembly or assemblies as input parameters. You must use&lt;br&gt;the /serviceName option to indicate the configuration name of the&lt;br&gt;service you want to export. Svcutil.exe automatically loads the&lt;br&gt;configuration file for the specified executable assembly.&lt;p&gt;To export all data contract types within a set of assemblies, use the&lt;br&gt;/dataContractOnly option.&lt;p&gt;Note:&lt;p&gt;Use the /reference option to specify the file paths to any dependent assemblies.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7402073700401533358-3353284265907162495?l=dotnetframework3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetframework3.blogspot.com/feeds/3353284265907162495/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7402073700401533358&amp;postID=3353284265907162495' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/3353284265907162495'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/3353284265907162495'/><link rel='alternate' type='text/html' href='http://dotnetframework3.blogspot.com/2008/06/how-to-use-svcutilexe-to-export.html' title='How to: Use Svcutil.exe to Export Metadata from Compiled Service Code'/><author><name>sudhir</name><uri>http://www.blogger.com/profile/14935355985671801644</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7402073700401533358.post-1982484901904752602</id><published>2008-06-17T08:48:00.001-07:00</published><updated>2008-06-17T08:48:31.091-07:00</updated><title type='text'>How to generating a WCF Client from Service Metadata</title><content type='html'>Metadata documents can be on a durable storage or be retrieved online.&lt;br&gt;Online retrieval follows either the WS-MetadataExchange protocol or&lt;br&gt;the Microsoft Discovery (DISCO) protocol. Svcutil.exe issues the&lt;br&gt;following metadata requests simultaneously to retrieve metadata:&lt;p&gt;WS-MetadataExchange (MEX) request to the supplied address.&lt;p&gt;MEX request to the supplied address with /mex appended.&lt;p&gt;DISCO request (using the DiscoveryClientProtocol from ASP.NET Web&lt;br&gt;services) to the supplied address.&lt;p&gt;Svcutil.exe generates the client based on the Web Services Description&lt;br&gt;Language (WSDL) or policy file received from the service. The user&lt;br&gt;principal name (UPN) is generated by concatenating the user name with&lt;br&gt;&amp;quot;@&amp;quot; and then adding a fully-qualified domain name (FQDN). However, for&lt;br&gt;users who registered on Active Directory, this format is not valid and&lt;br&gt;the UPN that the tool generates causes a failure in the Kerberos&lt;br&gt;authentication with the following error message: The logon attempt&lt;br&gt;failed. To resolve this problem, manually fix the client file that the&lt;br&gt;tool generated.&lt;p&gt;svcutil.exe [/t:code]  &amp;lt;metadataDocumentPath&amp;gt;* | &amp;lt;url&amp;gt;* | &amp;lt;epr&amp;gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7402073700401533358-1982484901904752602?l=dotnetframework3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetframework3.blogspot.com/feeds/1982484901904752602/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7402073700401533358&amp;postID=1982484901904752602' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/1982484901904752602'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/1982484901904752602'/><link rel='alternate' type='text/html' href='http://dotnetframework3.blogspot.com/2008/06/how-to-generating-wcf-client-from.html' title='How to generating a WCF Client from Service Metadata'/><author><name>sudhir</name><uri>http://www.blogger.com/profile/14935355985671801644</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7402073700401533358.post-1090392032331811529</id><published>2008-06-17T08:47:00.001-07:00</published><updated>2008-06-17T08:47:25.060-07:00</updated><title type='text'>ServiceModel Metadata Utility Tool (Svcutil.exe)</title><content type='html'>The ServiceModel Metadata Utility tool is used to generate service&lt;br&gt;model code from metadata documents and metadata documents from service&lt;br&gt;model code.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7402073700401533358-1090392032331811529?l=dotnetframework3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetframework3.blogspot.com/feeds/1090392032331811529/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7402073700401533358&amp;postID=1090392032331811529' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/1090392032331811529'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/1090392032331811529'/><link rel='alternate' type='text/html' href='http://dotnetframework3.blogspot.com/2008/06/servicemodel-metadata-utility-tool.html' title='ServiceModel Metadata Utility Tool (Svcutil.exe)'/><author><name>sudhir</name><uri>http://www.blogger.com/profile/14935355985671801644</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7402073700401533358.post-2953023686727106176</id><published>2008-05-21T23:40:00.001-07:00</published><updated>2008-05-21T23:40:29.989-07:00</updated><title type='text'>Installing ASP.NET AJAX</title><content type='html'>Introduction&lt;p&gt;This topic describes how to install Microsoft ASP.NET AJAX. It also&lt;br&gt;describes how to install the optional ASP.NET 2.0 AJAX Futures CTP and&lt;br&gt;optional ASP.NET AJAX Control Toolkit.&lt;p&gt;ASP.NET AJAX&lt;p&gt;ASP.NET AJAX enables you to create dynamic Web pages that support&lt;br&gt;partial-page updates. It includes Microsoft ASP.NET 2.0 AJAX&lt;br&gt;Extensions, which is a server framework, and the Microsoft AJAX&lt;br&gt;Library, which consists of client script that runs on the browser.&lt;p&gt;note&lt;p&gt;The installation process installs the ASP.NET AJAX assembly&lt;br&gt;(System.Web.Extensions.dll) in the global assembly cache (GAC). Do not&lt;br&gt;include the assembly in the Bin folder of your AJAX-enabled Web site.&lt;p&gt;You can install and use ASP.NET AJAX with Microsoft Visual Studio 2005&lt;br&gt;or Microsoft Visual Web Developer Express Edition. However, you do not&lt;br&gt;require Visual Studio 2005 to use ASP.NET AJAX to create ASP.NET Web&lt;br&gt;applications.&lt;p&gt;You can install and use the Microsoft AJAX Library without the .NET&lt;br&gt;Framework. You can also install it on non-Windows environments to&lt;br&gt;create client-based Web applications for any browser that supports&lt;br&gt;ECMAScript (JavaScript).&lt;p&gt;ASP.NET 2.0 AJAX Futures CTP&lt;p&gt;The CTP release is community supported. The features in the CTP&lt;br&gt;release might be added to the supported features in future versions of&lt;br&gt;ASP.NET AJAX. The CTP release is compatible with ASP.NET AJAX.&lt;p&gt;ASP.NET AJAX Control Toolkit&lt;p&gt;The ASP.NET Control Toolkit provides features that extend&lt;br&gt;functionality of ASP.NET AJAX version 1.0. These features enhance the&lt;br&gt;depth and breadth of the platform and include new ideas and concepts.&lt;br&gt;The ASP.NET Control Toolkit is community supported and community&lt;br&gt;driven.&lt;p&gt;System Requirements for Installation&lt;p&gt;Microsoft ASP.NET AJAX requires the following software.&lt;p&gt;Supported Operating Systems&lt;p&gt;Windows Server 2003&lt;p&gt;Windows XP Home Edition&lt;p&gt;Windows XP Professional&lt;p&gt;Windows Vista&lt;p&gt;Any Windows operating system version (including Windows 2000) that&lt;br&gt;supports the Microsoft .NET Framework version 2.0. Note that support&lt;br&gt;will be limited to the terms of support for that platform.&lt;p&gt;Required Software&lt;p&gt;The .NET Framework 2.0 or version 3.0.&lt;p&gt;Internet Explorer 5.01 or later.&lt;p&gt;Optional Software&lt;p&gt;Microsoft Visual Studio 2005 or Visual Web Developer Express Edition&lt;p&gt;Installing Microsoft ASP.NET AJAX&lt;p&gt;Follow these steps to install ASP.NET AJAX.&lt;p&gt;To install Microsoft ASP.NET AJAX&lt;p&gt;Make sure that you are logged in with an account that has Administrator rights.&lt;p&gt;If your account does not have Administrator rights, the installation&lt;br&gt;process displays the error &amp;quot;The system administrator has set policies&lt;br&gt;to prevent this installation.&amp;quot;&lt;p&gt;Uninstall any earlier versions of ASP.NET AJAX. If the installation&lt;br&gt;process finds an earlier version on your computer, it will stop.&lt;p&gt;You can remove earlier versions with the Add or Remove Programs&lt;br&gt;application in Control Panel.&lt;p&gt;Download the ASPAJAXExtSetup.msi installation package from the ASP.NET&lt;br&gt;AJAX Downloads Web site.&lt;p&gt;To install ASP.NET AJAX from the Windows interface, double-click&lt;br&gt;ASPAJAXExtSetup.msi in Windows Explorer.&lt;p&gt;By default, the .msi file is installed in the following location:&lt;p&gt;drive:\..\Program Files\Microsoft ASP.NET\ASP.NET 2.0 AJAX Extensions\v1.0.nnnn.&lt;p&gt;To install ASP.NET AJAX from the command line, execute the following&lt;br&gt;command at a command prompt:&lt;p&gt;msiexec /i ASPAJAXExtSetup.msi [/q] [/log &amp;lt;log file name&amp;gt;]&lt;br&gt;[INSTALLDIR=&amp;lt;installation path&amp;gt;]&lt;p&gt;Specify the /q option to perform the installation without user&lt;br&gt;prompts. You can optionally provide an installation path and a file&lt;br&gt;name for logging. If you do not provide an installation path, the&lt;br&gt;default installation path is used.&lt;p&gt;If you want to add the ASP.NET 2.0 AJAX Futures CTP, download and&lt;br&gt;install it from the ASP.NET AJAX Downloads Web site.&lt;p&gt;If you want to add the ASP.NET AJAX Control Toolkit, download and&lt;br&gt;install it from ASP.NET AJAX Control Toolkit Web site.&lt;p&gt;Using ASP.NET AJAX with Visual Studio&lt;p&gt;If you have Microsoft Visual Studio 2005 installed on your computer,&lt;br&gt;the installation process installs templates for AJAX-enabled Web site&lt;br&gt;projects. It also installs an assembly (AJAXExtensionToolbox.dll) that&lt;br&gt;extends the Visual Studio toolbox. When you create a new AJAX-enabled&lt;br&gt;Web site by using Microsoft Visual Studio 2005, the template&lt;br&gt;automatically includes the Web.config file that includes the elements&lt;br&gt;required for ASP.NET AJAX components.&lt;p&gt;To add ASP.NET AJAX components to an existing site, modify the&lt;br&gt;Web.config file in the Web application by using the configuration&lt;br&gt;values from the sample Web.config file in the installation path. For&lt;br&gt;more information about ASP.NET AJAX configuration values, see&lt;br&gt;Configuring ASP.NET AJAX.&lt;p&gt;Using ASP.NET AJAX Without Visual Studio&lt;p&gt;If Microsoft .NET Framework version 2.0 is installed on a computer&lt;br&gt;without Microsoft Visual Studio 2005 or Visual Web Developer Express&lt;br&gt;Edition, the ASP.NET AJAX installation process adds the&lt;br&gt;System.Web.Extensions.dll assembly that contains server components to&lt;br&gt;the global assembly cache. It also copies a sample Web.config file to&lt;br&gt;the installation path. It does not install templates for AJAX-enabled&lt;br&gt;Web site projects or install the assembly for extending the Visual&lt;br&gt;Studio toolbox.&lt;p&gt;You can use ASP.NET AJAX in a Web application by adding the sample&lt;br&gt;Web.config file from the installation folder to the Web site&lt;br&gt;directory. You can also modify the Web.config file in an existing Web&lt;br&gt;application by using the configuration values from the sample&lt;br&gt;Web.config file. For more information about the ASP.NET AJAX&lt;br&gt;configuration values, see Configuring ASP.NET AJAX.&lt;p&gt;Installing the Microsoft AJAX Library on Non-Windows Environments&lt;p&gt;You do not have to build a Web site on a Windows-based environment to&lt;br&gt;use the client framework provided by the Microsoft AJAX Library. The&lt;br&gt;Microsoft AJAX Library consists of JavaScript files and will work with&lt;br&gt;any browsers that can run JavaScript code.&lt;p&gt;note&lt;p&gt;The Microsoft AJAX Library is installed with the full installation.&lt;br&gt;You do not have to install the Microsoft AJAX Library separately if&lt;br&gt;you have completed the full installation.&lt;p&gt;To install Microsoft AJAX Library&lt;p&gt;Download the MicrosoftAJAXLibrary.zip package from the ASP.NET AJAX&lt;br&gt;Downloads Web site.&lt;p&gt;Unzip the MicrosoftAJAXLibrary.zip package.&lt;p&gt;Copy the JavaScript files to the Web site.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7402073700401533358-2953023686727106176?l=dotnetframework3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetframework3.blogspot.com/feeds/2953023686727106176/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7402073700401533358&amp;postID=2953023686727106176' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/2953023686727106176'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/2953023686727106176'/><link rel='alternate' type='text/html' href='http://dotnetframework3.blogspot.com/2008/05/installing-aspnet-ajax.html' title='Installing ASP.NET AJAX'/><author><name>sudhir</name><uri>http://www.blogger.com/profile/14935355985671801644</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7402073700401533358.post-1807838687312613778</id><published>2008-05-21T23:34:00.001-07:00</published><updated>2008-05-21T23:34:22.375-07:00</updated><title type='text'>ASP.NET AJAX Client Life-Cycle Events</title><content type='html'>   &lt;h2&gt;Introduction&lt;/h2&gt;   &lt;p&gt;A Microsoft &lt;a href="http://ASP.NET"&gt;ASP.NET&lt;/a&gt; AJAX page raises the same server life-cycle events as an &lt;a href="http://ASP.NET"&gt;ASP.NET&lt;/a&gt; 2.0 Web page and also&amp;nbsp;raises client life-cycle events. The client events enable you to customize the UI for both postbacks and for asynchronous postbacks (partial-page updates). The client events also help you manage custom script components&amp;nbsp;during the lifetime of the page in the browser.&lt;/p&gt;   &lt;p&gt;The client events are raised by classes in the Microsoft AJAX Library. These classes are automatically instantiated when a page contains &lt;a href="http://ASP.NET"&gt;ASP.NET&lt;/a&gt; AJAX server controls. The client classes provide APIs that enable you to bind to events and to provide handlers for those events. Because the Microsoft AJAX Library&amp;nbsp;is browser independent, the code you write for your handlers works the same in all supported browsers.&lt;/p&gt;   &lt;p&gt;The key event for initial requests (GET requests) and synchronous postbacks is the load event of the Application instance. When script in a load event handler runs, all scripts and components have been loaded and are available. When partial-page rendering with UpdatePanel controls is enabled, the key client events are the events of the PageRequestManager class. These events enable you to handle many common scenarios. These include the ability to cancel postbacks, to give precedence to one postback over another, and to animate UpdatePanel controls when their content is refreshed.&lt;/p&gt;   &lt;p&gt;Client events are useful whether you are creating pages or writing components. If you are a page developer, you can provide custom script that is called when the page loads and unloads in the browser.&lt;/p&gt;   &lt;p&gt;&lt;br&gt;&lt;/p&gt;   &lt;h2 class="subsectionTitle"&gt;Client Classes&lt;/h2&gt;   &lt;p&gt;The two main Microsoft AJAX Library classes that raise events during the client life cycle of an &lt;a href="http://ASP.NET"&gt;ASP.NET&lt;/a&gt; AJAX Web page are the Application and PageRequestManager classes. &lt;/p&gt;   &lt;p&gt;The Application class is instantiated in the browser when the page contains a ScriptManager control. The Application class resembles the Page server control, which derives from the Control class, but provides additional functionality for raising server events. Similarly, the Application class derives from the Sys.Component class, but raises client life-cycle events that you can handle.&lt;/p&gt;    &lt;p&gt;If a page contains a ScriptManager control and one or more UpdatePanel controls, the page can perform partial-page updates (if partial-page rendering is enabled and supported in the browser). In that case, an instance of the PageRequestManager class is automatically available in the browser. The PageRequestManager class raises client events that are specific to asynchronous postbacks. For details about partial-page rendering, see Partial-Page Rendering Overview.&lt;/p&gt;   &lt;h2 class="subsectionTitle"&gt;Adding Handlers for Client Events&lt;/h2&gt;   &lt;p&gt;To add or remove handlers for events raised by the Application and PageRequestManager classes, use the &lt;span class="keyword"&gt;add_&lt;/span&gt;eventname and &lt;span class="keyword"&gt;remove_&lt;/span&gt;eventname methods of those classes. The following example shows how to add a handler named &lt;span class="code"&gt;MyLoad&lt;/span&gt; to the init event of the Application object.&lt;/p&gt;    &lt;h4&gt;CS&lt;/h4&gt;   &lt;div class="code"&gt;     &lt;pre&gt;Sys.Application.add_init(MyInit);&lt;br&gt;function MyInit(sender) {&lt;br&gt;}&lt;br&gt;Sys.Appplication.remove_init(MyInit);&lt;br&gt;&lt;br&gt;&lt;/pre&gt;   &lt;/div&gt;   &lt;h4&gt;VB&lt;/h4&gt;   &lt;div class="code"&gt;     &lt;pre&gt;Sys.Application.add_init(MyInit);&lt;br&gt;function MyInit(sender) {&lt;br&gt;}&lt;br&gt;Sys.Appplication.remove_init(MyInit);&lt;br&gt;&lt;br&gt;&lt;/pre&gt;   &lt;/div&gt;   &lt;div class="alert"&gt;     &lt;strong&gt;note&lt;/strong&gt;     &lt;p&gt;This example shows just the syntax of the &lt;span class="keyword"&gt;add_&lt;/span&gt;eventname and &lt;span class="keyword"&gt;remove_&lt;/span&gt;eventname methods. Details about what you can do with specific events are provided later in this topic.&lt;/p&gt;    &lt;/div&gt;   &lt;h2 class="subsectionTitle"&gt;Handling the Application Load and Unload Events&lt;/h2&gt;   &lt;p&gt;To handle the load and unload events of the Application object, you do not have to explicitly bind a handler to the event. Instead, you can create functions that use the reserved names &lt;span class="code"&gt;pageLoad&lt;/span&gt; and &lt;span class="code"&gt;pageUnload&lt;/span&gt;. The following example shows how to add a handler for the load event of the Application object by using this approach.&lt;/p&gt;   &lt;h4&gt;CS&lt;/h4&gt;   &lt;div class="code"&gt;     &lt;pre&gt;function pageLoad(sender, args) {&lt;br&gt;}&lt;br&gt;&lt;br&gt;&lt;/pre&gt;   &lt;/div&gt;   &lt;h4&gt;VB&lt;/h4&gt;   &lt;div class="code"&gt;     &lt;pre&gt;function pageLoad(sender, args) {&lt;br&gt;}&lt;br&gt;&lt;br&gt;&lt;/pre&gt;   &lt;/div&gt;   &lt;h2 class="subsectionTitle"&gt;Events for Other Client Classes&lt;/h2&gt;   &lt;p&gt;This topic describes only the events that are raised by the Application and PageRequestManager classes. The Microsoft AJAX Library&amp;nbsp;also contains classes for adding, clearing, and removing handlers for DOM element events. These classes include the following:&lt;/p&gt;   &lt;ul&gt;&lt;li&gt;       &lt;p&gt;The Sys.UI.DomEvent.addHandler method or the shortcut $addHandler.&lt;/p&gt;     &lt;/li&gt;&lt;li&gt;       &lt;p&gt;The Sys.UI.DomEvent.clearHandlers method or the shortcut $clearHandlers.&lt;/p&gt;     &lt;/li&gt;&lt;li&gt;       &lt;p&gt;The Sys.UI.DomEvent.removeHandler method or the shortcut $removeHandler.&lt;/p&gt;     &lt;/li&gt;&lt;/ul&gt;   &lt;p&gt;Events raised by DOM elements are not discussed in this topic.&lt;/p&gt;   &lt;h2 class="subsectionTitle"&gt;Client Events of the Application and PageRequestManager Classes&lt;/h2&gt;   &lt;p&gt;The following table lists client events of the Application and PageRequestManager classes that you can handle in AJAX ASP.NET-enabled pages. The order in which the events are raised is described later in this topic.&lt;/p&gt;        &lt;table class="authoredTable" cellpadding="0" cellspacing="0"&gt;&lt;tbody&gt;&lt;tr&gt;       &lt;th&gt;         &lt;p&gt;Event&lt;/p&gt;       &lt;/th&gt;       &lt;th&gt;         &lt;p&gt;Description&lt;/p&gt;       &lt;/th&gt;     &lt;/tr&gt;     &lt;tr&gt;       &lt;td&gt;         &lt;p&gt;           &lt;font size="2"&gt;init Event&lt;/font&gt;         &lt;/p&gt;       &lt;/td&gt;       &lt;td&gt;         &lt;p&gt;&lt;font size="2"&gt;Raised after all scripts have been loaded but before any objects are created. If you are writing a component, the init event gives you a point in the life cycle to add your component to the page. The component can then be used by other components or by script later in the page life cycle. If you are a page developer, you should use the load event instead of the init event for most scenarios.&lt;/font&gt;&lt;/p&gt;         &lt;p&gt;&lt;font size="2"&gt;The init event is raised only one time when the page is first rendered. Subsequent partial-page updates do not raise the init event.&lt;/font&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;     &lt;tr&gt;       &lt;td&gt;         &lt;p&gt;           &lt;font size="2"&gt;load Event&lt;/font&gt;         &lt;/p&gt;       &lt;/td&gt;       &lt;td&gt;         &lt;p&gt;&lt;font size="2"&gt;Raised after all scripts have been loaded and all objects in the application that are created by using $create are initialized. The load event is raised for all postbacks to the server, which includes asynchronous postbacks. &lt;/font&gt;&lt;/p&gt;          &lt;p&gt;&lt;font size="2"&gt;If you are a page developer, you can create a function that has the name &lt;span class="code"&gt;pageLoad&lt;/span&gt;, which automatically provides a handler for the load event. The &lt;span class="code"&gt;pageLoad&lt;/span&gt; handler is called after any handlers that have been added to the load event by the add_load method.&lt;/font&gt;&lt;/p&gt;          &lt;p&gt;&lt;font size="2"&gt;The load event takes an &lt;span class="parameter"&gt;eventargs&lt;/span&gt; parameter, which is an Sys.ApplicationLoadEventArgs object. You can use the event arguments to determine whether the page is being refreshed as a result of a partial-page update and what components were created since the previous load event was raised.&lt;/font&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;     &lt;tr&gt;       &lt;td&gt;         &lt;p&gt;           &lt;font size="2"&gt;unload Event&lt;/font&gt;         &lt;/p&gt;       &lt;/td&gt;       &lt;td&gt;         &lt;p&gt;&lt;font size="2"&gt;Raised before all objects are disposed and before the browser window&amp;#39;s &lt;span class="keyword"&gt;window.unload&lt;/span&gt; event occurs.&lt;/font&gt;&lt;/p&gt;         &lt;p&gt;&lt;font size="2"&gt;If you are a page developer, you can create a function that has the name &lt;span class="code"&gt;pageUnload&lt;/span&gt;, which automatically provides a handler for the unload event. The &lt;span class="code"&gt;pageUnload&lt;/span&gt; event is called just before the page is unloaded from the browser. During this event, you should free any resources that your code is holding. &lt;/font&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;     &lt;tr&gt;       &lt;td&gt;         &lt;p&gt;           &lt;font size="2"&gt;propertyChanged Event&lt;/font&gt;         &lt;/p&gt;       &lt;/td&gt;       &lt;td&gt;         &lt;p&gt;&lt;font size="2"&gt;Potentially raised when a property of a component changes. The Application object inherits this event from the Component class. This event is raised only if a component developer has called the Sys.Component.raisePropertyChange method in a property set accessor. For more information, see Defining Custom Component Properties and Raising PropertyChanged Events.&lt;/font&gt;&lt;/p&gt;         &lt;p&gt;&lt;font size="2"&gt;The propertyChanged event takes an &lt;span class="parameter"&gt;eventargs&lt;/span&gt; parameter, which is a Sys.applicationLoadEventArgs object. &lt;/font&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;     &lt;tr&gt;       &lt;td&gt;         &lt;p&gt;           &lt;font size="2"&gt;disposing Event&lt;/font&gt;         &lt;/p&gt;       &lt;/td&gt;       &lt;td&gt;         &lt;p&gt;&lt;font size="2"&gt;Raised when the Application instance is disposed. The Application object inherits this event from the Component class.&lt;/font&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;     &lt;tr&gt;       &lt;td&gt;         &lt;p&gt;           &lt;font size="2"&gt;initializeRequest Event&lt;/font&gt;         &lt;/p&gt;       &lt;/td&gt;       &lt;td&gt;         &lt;p&gt;&lt;font size="2"&gt;Raised before an asynchronous request starts. You can use this event to cancel a postback, such as to give precedence to another asynchronous postback. &lt;/font&gt;&lt;/p&gt;         &lt;p&gt;&lt;font size="2"&gt;The initializeRequest event takes an &lt;span class="parameter"&gt;eventargs&lt;/span&gt; parameter, which is a Sys.WebForms.InitializeRequestEventArgs object. This object makes available the element that caused the postback and the underlying request object. InitializeRequestEventArgs also exposes a cancel property. If you set cancel to &lt;span class="keyword"&gt;true&lt;/span&gt;, the new postback is canceled.&lt;/font&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;     &lt;tr&gt;       &lt;td&gt;         &lt;p&gt;           &lt;font size="2"&gt;beginRequest Event&lt;/font&gt;         &lt;/p&gt;       &lt;/td&gt;       &lt;td&gt;         &lt;p&gt;&lt;font size="2"&gt;Raised before an asynchronous postback starts and the postback is sent to the server. If there is a postback already processing, it is stopped (by using the abortPostBack method). You can use this event to set request headers or to begin an animation on the page to indicate that the request is in process. &lt;/font&gt;&lt;/p&gt;         &lt;p&gt;&lt;font size="2"&gt;The beginRequest event takes an &lt;span class="parameter"&gt;eventargs&lt;/span&gt; parameter, which is a Sys.WebForms.BeginRequestEventArgs object. This object makes available the element that caused the postback and the underlying request object.&lt;/font&gt;&lt;/p&gt;        &lt;/td&gt;     &lt;/tr&gt;     &lt;tr&gt;       &lt;td&gt;         &lt;p&gt;           &lt;font size="2"&gt;pageLoading Event&lt;/font&gt;         &lt;/p&gt;       &lt;/td&gt;       &lt;td&gt;         &lt;p&gt;&lt;font size="2"&gt;Raised after the response from the server to an asynchronous postback is received, but before any content on the page is updated. You can use this event to provide a custom transition effect for updated content. &lt;/font&gt;&lt;/p&gt;         &lt;p&gt;&lt;font size="2"&gt;The pageLoading event takes an &lt;span class="parameter"&gt;eventargs&lt;/span&gt; parameter, which is an Sys.WebForms.PageLoadingEventArgs object. This object makes available information about what panels will be deleted and updated as a result of the most recent asynchronous postback.&lt;/font&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;     &lt;tr&gt;       &lt;td&gt;         &lt;p&gt;           &lt;font size="2"&gt;pageLoaded Event&lt;/font&gt;         &lt;/p&gt;       &lt;/td&gt;       &lt;td&gt;         &lt;p&gt;&lt;font size="2"&gt;Raised after all content on the page is refreshed, as a result of either a synchronous or an asynchronous postback. For synchronous postbacks, panels can only be created, but for asynchronous postbacks, panels can be both created and updated. You can use this event to manage a custom transition effect for updated content.&lt;/font&gt;&lt;/p&gt;         &lt;p&gt;&lt;font size="2"&gt;The pageLoaded event takes an &lt;span class="parameter"&gt;eventargs&lt;/span&gt; parameter, which is an Sys.WebForms.PageLoadedEventArgs object. This object makes available information about which panels were updated and created in the most recent postback.&lt;/font&gt;&lt;/p&gt;        &lt;/td&gt;     &lt;/tr&gt;     &lt;tr&gt;       &lt;td&gt;         &lt;p&gt;           &lt;font size="2"&gt;endRequest Event&lt;/font&gt;         &lt;/p&gt;       &lt;/td&gt;       &lt;td&gt;         &lt;p&gt;&lt;font size="2"&gt;Raised after the response for an asynchronous postback is processed and the page is updated, or during the processing of the response if there is an error. If an error occurs, the page is not updated. Use this event to provide customized error notification to users or to log errors.&lt;/font&gt;&lt;/p&gt;         &lt;p&gt;&lt;font size="2"&gt;The endRequest event takes an &lt;span class="parameter"&gt;eventargs&lt;/span&gt; parameter, which is a Sys.WebForms.EndRequestEventArgs object. This object makes available information about errors that have occurred and whether the error was handled. It also makes available the response object.&lt;/font&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7402073700401533358-1807838687312613778?l=dotnetframework3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetframework3.blogspot.com/feeds/1807838687312613778/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7402073700401533358&amp;postID=1807838687312613778' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/1807838687312613778'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/1807838687312613778'/><link rel='alternate' type='text/html' href='http://dotnetframework3.blogspot.com/2008/05/aspnet-ajax-client-life-cycle-events.html' title='ASP.NET AJAX Client Life-Cycle Events'/><author><name>sudhir</name><uri>http://www.blogger.com/profile/14935355985671801644</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7402073700401533358.post-259651339355258476</id><published>2008-05-21T23:30:00.001-07:00</published><updated>2008-05-21T23:30:20.568-07:00</updated><title type='text'>Browser Compatibility and Security Settings for AJAX-Enabled ASP.NET Sites</title><content type='html'>&lt;h2&gt;Introduction&lt;/h2&gt;   &lt;p&gt;&lt;a href="http://ASP.NET"&gt;ASP.NET&lt;/a&gt; AJAX is compatible with most modern browsers. It runs with the default security settings for these browsers.&lt;/p&gt;   &lt;h2 class="subsectionTitle"&gt;Browser and Operating System Compatibility&lt;/h2&gt;   &lt;p&gt;Users can view your AJAX-enabled &lt;a href="http://ASP.NET"&gt;ASP.NET&lt;/a&gt; sites by using most modern browsers. The following lists show compatible browser versions and operating systems.&lt;/p&gt;   &lt;h2 class="subsectionTitle"&gt;Supported Browsers&lt;/h2&gt;   &lt;ul&gt;&lt;li&gt;       &lt;p&gt;Microsoft Internet Explorer 6.0 or later versions.&lt;/p&gt;     &lt;/li&gt;&lt;li&gt;       &lt;p&gt;Mozilla Firefox version 1.5 or later versions.&lt;/p&gt;     &lt;/li&gt;&lt;li&gt;       &lt;p&gt;Opera version 9.0 or later versions.&lt;/p&gt;     &lt;/li&gt;&lt;li&gt;       &lt;p&gt;Apple Safari version 2.0 or later versions.&lt;/p&gt;     &lt;/li&gt;&lt;/ul&gt;   &lt;h2 class="subsectionTitle"&gt;Supported Operating Systems&lt;/h2&gt;   &lt;ul&gt;&lt;li&gt;       &lt;p&gt;Microsoft Windows XP with Service Pack 2 installed.&lt;/p&gt;     &lt;/li&gt;&lt;li&gt;       &lt;p&gt;Microsoft Vista.&lt;/p&gt;     &lt;/li&gt;&lt;li&gt;       &lt;p&gt;Apple OSX (Intel architecture only).&lt;/p&gt;     &lt;/li&gt;&lt;/ul&gt;   &lt;h2 class="subsectionTitle"&gt;Security and Privacy Settings&lt;/h2&gt;   &lt;p&gt;The following table lists required browser security and privacy settings for both user browsing and site development. In all cases, the recommended settings are the default settings for that browser.&lt;/p&gt;        &lt;table class="authoredTable" cellpadding="0" cellspacing="0"&gt;&lt;tbody&gt;&lt;tr&gt;       &lt;td style="font-family: arial,sans-serif;"&gt;         &lt;p&gt;&lt;font size="2"&gt;Internet Explorer 6&lt;/font&gt;&lt;/p&gt;       &lt;/td&gt;       &lt;td style="font-family: arial,sans-serif;"&gt;         &lt;p&gt;&lt;font size="2"&gt;Make sure that the &lt;span class="ui"&gt;Internet Zone&lt;/span&gt; in the Security Zones settings is set to &lt;span class="ui"&gt;Medium&lt;/span&gt;.&lt;/font&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;     &lt;tr&gt;       &lt;td style="font-family: arial,sans-serif;"&gt;         &lt;p&gt;&lt;font size="2"&gt;Internet Explorer 7&lt;/font&gt;&lt;/p&gt;       &lt;/td&gt;       &lt;td style="font-family: arial,sans-serif;"&gt;         &lt;p&gt;&lt;font size="2"&gt;Make sure that the &lt;span class="ui"&gt;Internet Zone&lt;/span&gt; in the Security Zones settings is set to &lt;span class="ui"&gt;Medium-High&lt;/span&gt;.&lt;/font&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;     &lt;tr&gt;       &lt;td style="font-family: arial,sans-serif;"&gt;         &lt;p&gt;&lt;font size="2"&gt;FireFox 1.5 or later versions&lt;/font&gt;&lt;/p&gt;       &lt;/td&gt;       &lt;td style="font-family: arial,sans-serif;"&gt;         &lt;p&gt;&lt;font size="2"&gt;In the &lt;span class="ui"&gt;Tools&lt;/span&gt; menu under &lt;span class="ui"&gt;Options&lt;/span&gt;, make sure that &lt;span class="ui"&gt;Enable JavaScript&lt;/span&gt; is selected.&lt;/font&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;     &lt;tr&gt;       &lt;td style="font-family: arial,sans-serif;"&gt;         &lt;p&gt;&lt;font size="2"&gt;Opera 9.0 or later versions&lt;/font&gt;&lt;/p&gt;       &lt;/td&gt;       &lt;td style="font-family: arial,sans-serif;"&gt;         &lt;p&gt;&lt;font size="2"&gt;In the &lt;span class="ui"&gt;Tools&lt;/span&gt; menu under &lt;span class="ui"&gt;Quick preferences&lt;/span&gt;, make sure that &lt;span class="ui"&gt;Enable JavaScript&lt;/span&gt; is selected.&lt;/font&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;     &lt;tr&gt;       &lt;td style="font-family: arial,sans-serif;"&gt;         &lt;p&gt;&lt;font size="2"&gt;Safari 2.0 or later versions&lt;/font&gt;&lt;/p&gt;       &lt;/td&gt;       &lt;td style="font-family: arial,sans-serif;"&gt;         &lt;p&gt;&lt;font size="2"&gt;Click &lt;span class="ui"&gt;Safari&lt;/span&gt;, &lt;span class="ui"&gt;Preferences&lt;/span&gt;, &lt;span class="ui"&gt;Security&lt;/span&gt;, and then&lt;span class="ui"&gt; Web Content&lt;/span&gt; and make sure that &lt;span class="ui"&gt;Enable JavaScript&lt;/span&gt; is selected.&lt;/font&gt;&lt;/p&gt; &lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7402073700401533358-259651339355258476?l=dotnetframework3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetframework3.blogspot.com/feeds/259651339355258476/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7402073700401533358&amp;postID=259651339355258476' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/259651339355258476'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/259651339355258476'/><link rel='alternate' type='text/html' href='http://dotnetframework3.blogspot.com/2008/05/browser-compatibility-and-security.html' title='Browser Compatibility and Security Settings for AJAX-Enabled ASP.NET Sites'/><author><name>sudhir</name><uri>http://www.blogger.com/profile/14935355985671801644</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7402073700401533358.post-8788826217743491323</id><published>2008-05-21T23:28:00.001-07:00</published><updated>2008-05-21T23:28:39.798-07:00</updated><title type='text'>Configuring ASP.NET AJAX</title><content type='html'>   &lt;h2&gt;Introduction&lt;/h2&gt;   &lt;p&gt;This topic describes the elements in the Web.config file that support Microsoft &lt;a href="http://ASP.NET"&gt;ASP.NET&lt;/a&gt; AJAX. It also describes how to incorporate those elements into the Web.config file for an existing &lt;a href="http://ASP.NET"&gt;ASP.NET&lt;/a&gt; application.&lt;/p&gt;   &lt;h2 class="subsectionTitle"&gt;Using the &lt;a href="http://ASP.NET"&gt;ASP.NET&lt;/a&gt; AJAX Web Configuration File in a New Web Site&lt;/h2&gt;   &lt;p&gt;When you create a new AJAX-enabled Web site, you can use the Web.config file provided in the installation package to add the required configuration settings. In Visual Studio, the Web.config file for Microsoft &lt;a href="http://ASP.NET"&gt;ASP.NET&lt;/a&gt; AJAX&amp;nbsp;is included in your project when you create a new &lt;a href="http://ASP.NET"&gt;ASP.NET&lt;/a&gt; AJAX-enabled Web Site. &lt;/p&gt;   &lt;p&gt;If you have to manually add the Web.config file to a new Web site, you can get a copy of it from the installation path. By default, the file is in the following location:&lt;/p&gt;   &lt;div class="code"&gt;     &lt;pre&gt;drive:\Program Files\Microsoft &lt;a href="http://ASP.NET"&gt;ASP.NET&lt;/a&gt;\&lt;a href="http://ASP.NET"&gt;ASP.NET&lt;/a&gt; 2.0 AJAX Extensions\v1.0.nnnn&lt;/pre&gt;   &lt;/div&gt;   &lt;h2 class="subsectionTitle"&gt;Adding &lt;a href="http://ASP.NET"&gt;ASP.NET&lt;/a&gt; AJAX Configuration Elements to an Existing Web Site&lt;/h2&gt;   &lt;p&gt;In an existing Web site, you typically have values in the Web.config file that you want to retain. In that case, you can add the new &lt;a href="http://ASP.NET"&gt;ASP.NET&lt;/a&gt; AJAX elements into the existing Web.config file.&amp;nbsp;&lt;/p&gt;   &lt;p&gt;The new elements are part of the following configuration sections:&lt;/p&gt;   &lt;ul&gt;&lt;li&gt;       &lt;p&gt;         The &amp;lt;configSections&amp;gt; element       &lt;/p&gt;     &lt;/li&gt;&lt;li&gt;       &lt;p&gt;         The &amp;lt;controls&amp;gt; element       &lt;/p&gt;     &lt;/li&gt;&lt;li&gt;       &lt;p&gt;         The &amp;lt;assemblies&amp;gt; element       &lt;/p&gt;     &lt;/li&gt;&lt;li&gt;       &lt;p&gt;         The &amp;lt;httpHandlers&amp;gt; element       &lt;/p&gt;     &lt;/li&gt;&lt;li&gt;       &lt;p&gt;         The &amp;lt;httpModules&amp;gt; element       &lt;/p&gt;     &lt;/li&gt;&lt;li&gt;       &lt;p&gt;         The &amp;lt;system.web.extensions&amp;gt; element       &lt;/p&gt;     &lt;/li&gt;&lt;li&gt;       &lt;p&gt;         The &amp;lt;system.webserver&amp;gt; element       &lt;/p&gt;     &lt;/li&gt;&lt;/ul&gt;   &lt;h2 class="subsectionTitle"&gt;     &lt;a name="configSections"&gt;The &amp;lt;configSections&amp;gt; Element&lt;/a&gt;   &lt;/h2&gt;   &lt;p&gt;The &amp;lt;configSections&amp;gt; element creates a configuration section and subsections for the SystemWebExtensionsSectionGroup class. You set the properties for these sections in the &amp;lt;system.web.extensions&amp;gt; element.&lt;/p&gt;    &lt;p&gt;The following example shows the &amp;lt;configSections&amp;gt; element for &lt;a href="http://ASP.NET"&gt;ASP.NET&lt;/a&gt; AJAX. Add this section to the existing Web.config file as a child of the &amp;lt;configuration&amp;gt;&amp;nbsp;element.&lt;/p&gt;   &lt;div class="code"&gt;     &lt;pre&gt;&amp;lt;configuration&amp;gt;&lt;br&gt;  &amp;lt;configSections&amp;gt;&lt;br&gt;    &amp;lt;sectionGroup name=&amp;quot;system.web.extensions&amp;quot; &lt;br&gt;        type=&amp;quot;System.Web.Configuration.SystemWebExtensionsSectionGroup, &lt;br&gt;        System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, &lt;br&gt;         PublicKeyToken=31bf3856ad364e35&amp;quot;&amp;gt;&lt;br&gt;      &amp;lt;sectionGroup name=&amp;quot;scripting&amp;quot; &lt;br&gt;        type=&amp;quot;System.Web.Configuration.ScriptingSectionGroup, &lt;br&gt;        System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, &lt;br&gt;         PublicKeyToken=31bf3856ad364e35&amp;quot;&amp;gt;&lt;br&gt;          &amp;lt;section name=&amp;quot;scriptResourceHandler&amp;quot; &lt;br&gt;            type=&amp;quot;System.Web.Configuration.ScriptingScriptResourceHandlerSection, &lt;br&gt;            System.Web.Extensions, Version=1.0.61025.0, &lt;br&gt;             Culture=neutral, PublicKeyToken=31bf3856ad364e35&amp;quot; &lt;br&gt;            requirePermission=&amp;quot;false&amp;quot; &lt;br&gt;            allowDefinition=&amp;quot;MachineToApplication&amp;quot;/&amp;gt;&lt;br&gt;        &amp;lt;sectionGroup name=&amp;quot;webServices&amp;quot; &lt;br&gt;             type=&amp;quot;System.Web.Configuration.ScriptingWebServicesSectionGroup, &lt;br&gt;            System.Web.Extensions, Version=1.0.61025.0, &lt;br&gt;            Culture=neutral, PublicKeyToken=31bf3856ad364e35&amp;quot;&amp;gt;&lt;br&gt;          &amp;lt;section name=&amp;quot;jsonSerialization&amp;quot; &lt;br&gt;               type=&amp;quot;System.Web.Configuration.ScriptingJsonSerializationSection, &lt;br&gt;              System.Web.Extensions, Version=1.0.61025.0, &lt;br&gt;              Culture=neutral, PublicKeyToken=31bf3856ad364e35&amp;quot; &lt;br&gt;               requirePermission=&amp;quot;false&amp;quot; allowDefinition=&amp;quot;Everywhere&amp;quot; /&amp;gt;&lt;br&gt;          &amp;lt;section name=&amp;quot;profileService&amp;quot; &lt;br&gt;              type=&amp;quot;System.Web.Configuration.ScriptingProfileServiceSection, &lt;br&gt;               System.Web.Extensions, Version=1.0.61025.0, &lt;br&gt;              Culture=neutral, PublicKeyToken=31bf3856ad364e35&amp;quot; &lt;br&gt;              requirePermission=&amp;quot;false&amp;quot; &lt;br&gt;              allowDefinition=&amp;quot;MachineToApplication&amp;quot; /&amp;gt;&lt;br&gt;           &amp;lt;section name=&amp;quot;authenticationService&amp;quot; &lt;br&gt;              type=&amp;quot;System.Web.Configuration.ScriptingAuthenticationServiceSection, &lt;br&gt;              System.Web.Extensions, Version=1.0.61025.0, &lt;br&gt;              Culture=neutral, PublicKeyToken=31bf3856ad364e35&amp;quot; &lt;br&gt;               requirePermission=&amp;quot;false&amp;quot; &lt;br&gt;              allowDefinition=&amp;quot;MachineToApplication&amp;quot; /&amp;gt;&lt;br&gt;        &amp;lt;/sectionGroup&amp;gt;&lt;br&gt;      &amp;lt;/sectionGroup&amp;gt;&lt;br&gt;    &amp;lt;/sectionGroup&amp;gt;&lt;br&gt;  &amp;lt;/configSections&amp;gt;&lt;br&gt; &amp;lt;/configuration&amp;gt;&lt;/pre&gt;   &lt;/div&gt;   &lt;h2 class="subsectionTitle"&gt;     &lt;a name="controls"&gt;The &amp;lt;controls&amp;gt; Element&lt;/a&gt;   &lt;/h2&gt;   &lt;p&gt;The &amp;lt;controls&amp;gt; element registers &lt;a href="http://ASP.NET"&gt;ASP.NET&lt;/a&gt; AJAX&amp;nbsp;namespaces in the System.Web.Extensions assembly and maps the &lt;span class="keyword"&gt;asp&lt;/span&gt;&amp;nbsp;tag prefix as an alias for these namespaces. The controls in the&amp;nbsp;&lt;a href="http://ASP.NET"&gt;ASP.NET&lt;/a&gt; AJAX&amp;nbsp;namespaces can be referenced in a Web page with syntax such as the following:&lt;/p&gt;   &lt;div class="code"&gt;     &lt;pre&gt;&amp;lt;asp:ScriptManager ID=&amp;quot;ScriptManager1&amp;quot; runat=&amp;quot;server&amp;quot; /&amp;gt;&lt;/pre&gt;   &lt;/div&gt;   &lt;p&gt;The following example shows the &amp;lt;controls&amp;gt; element for &lt;a href="http://ASP.NET"&gt;ASP.NET&lt;/a&gt; AJAX. Add this section to the existing Web.config file as a child of the&amp;nbsp;&amp;lt;system.web&amp;gt;&amp;lt;pages&amp;gt; element.&lt;/p&gt;   &lt;div class="code"&gt;     &lt;pre&gt;&amp;lt;system.web&amp;gt;&lt;br&gt;  &amp;lt;pages&amp;gt;&lt;br&gt;    &amp;lt;controls&amp;gt;&lt;br&gt;      &amp;lt;add tagPrefix=&amp;quot;asp&amp;quot; namespace=&amp;quot;System.Web.UI&amp;quot; assembly=&amp;quot;System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35&amp;quot;/&amp;gt;&lt;br&gt;     &amp;lt;/controls&amp;gt;&lt;br&gt;  &amp;lt;/pages&amp;gt;&lt;br&gt;&amp;lt;/system.web&amp;gt;&lt;/pre&gt;   &lt;/div&gt;   &lt;h2 class="subsectionTitle"&gt;     &lt;a name="assemblies"&gt;The &amp;lt;assemblies&amp;gt; Element&lt;/a&gt;   &lt;/h2&gt;   &lt;p&gt;The &amp;lt;assemblies&amp;gt; element registers the System.Web.Extensions assembly.&lt;/p&gt;   &lt;p&gt;The following example shows the &amp;lt;assemblies&amp;gt; element for &lt;a href="http://ASP.NET"&gt;ASP.NET&lt;/a&gt; AJAX. Add this section to the existing Web.config file as a child of the &amp;lt;system.web&amp;gt;&amp;lt;compilation&amp;gt; element.&lt;/p&gt;   &lt;div class="code"&gt;     &lt;pre&gt;&amp;lt;system.web&amp;gt;&lt;br&gt;  &amp;lt;compilation&amp;gt;&lt;br&gt;    &amp;lt;assemblies&amp;gt;&lt;br&gt;      &amp;lt;add assembly=&amp;quot;System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35&amp;quot;/&amp;gt;&lt;br&gt;    &amp;lt;/assemblies&amp;gt;&lt;br&gt;   &amp;lt;/compilation&amp;gt;&lt;br&gt;&amp;lt;/system.web&amp;gt;&lt;/pre&gt;   &lt;/div&gt;   &lt;h2 class="subsectionTitle"&gt;     &lt;a name="httpHandlers"&gt;The &amp;lt;httpHandlers&amp;gt; Element&lt;/a&gt;   &lt;/h2&gt;   &lt;p&gt;The &amp;lt;httpHandlers&amp;gt; element adds new handlers for script requests.&lt;/p&gt;   &lt;p&gt;The following example shows the &amp;lt;httpHandler&amp;gt; element for &lt;a href="http://ASP.NET"&gt;ASP.NET&lt;/a&gt; AJAX. Add this section to the existing Web.config file as a child of the &amp;lt;system.web&amp;gt; element.&lt;/p&gt;   &lt;div class="code"&gt;     &lt;pre&gt;&amp;lt;system.web&amp;gt;&lt;br&gt;  &amp;lt;httpHandlers&amp;gt;&lt;br&gt;    &amp;lt;remove verb=&amp;quot;*&amp;quot; path=&amp;quot;*.asmx&amp;quot;/&amp;gt;&lt;br&gt;    &amp;lt;add verb=&amp;quot;*&amp;quot; path=&amp;quot;*.asmx&amp;quot; validate=&amp;quot;false&amp;quot; type=&amp;quot;System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35&amp;quot;/&amp;gt;&lt;br&gt;     &amp;lt;add verb=&amp;quot;*&amp;quot; path=&amp;quot;*_AppService.axd&amp;quot; validate=&amp;quot;false&amp;quot; type=&amp;quot;System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35&amp;quot;/&amp;gt;&lt;br&gt;     &amp;lt;add verb=&amp;quot;GET,HEAD&amp;quot; path=&amp;quot;ScriptResource.axd&amp;quot; type=&amp;quot;System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35&amp;quot; validate=&amp;quot;false&amp;quot;/&amp;gt;&lt;br&gt;   &amp;lt;/httpHandlers&amp;gt;&lt;br&gt;&amp;lt;/system.web&amp;gt;&lt;/pre&gt;   &lt;/div&gt;   &lt;h2 class="subsectionTitle"&gt;     &lt;a name="httpmodules"&gt;The &amp;lt;httpModules&amp;gt; Element&lt;/a&gt;   &lt;/h2&gt;   &lt;p&gt;The &amp;lt;httpModules&amp;gt; element defines HTTP modules used in &lt;a href="http://ASP.NET"&gt;ASP.NET&lt;/a&gt; AJAX.&lt;/p&gt;   &lt;p&gt;The following example shows the &amp;lt;httpModules&amp;gt; element for &lt;a href="http://ASP.NET"&gt;ASP.NET&lt;/a&gt; AJAX. Add this section to the existing Web.config file as a child of the &amp;lt;system.web&amp;gt; element.&lt;/p&gt;   &lt;div class="code"&gt;     &lt;pre&gt;&amp;lt;system.web&amp;gt;&lt;br&gt;  &amp;lt;httpModules&amp;gt;&lt;br&gt;    &amp;lt;add name=&amp;quot;ScriptModule&amp;quot; type=&amp;quot;System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35&amp;quot;/&amp;gt;&lt;br&gt;   &amp;lt;/httpModules&amp;gt;&lt;br&gt;&amp;lt;/system.web&amp;gt;&lt;/pre&gt;   &lt;/div&gt;   &lt;h2 class="subsectionTitle"&gt;     &lt;a name="microsoftweb"&gt;The &amp;lt;system.web.extensions&amp;gt; Element&lt;/a&gt;   &lt;/h2&gt;   &lt;p&gt;The &amp;lt;system.web.extensions&amp;gt; element provides elements that can be uncommented to configure how Web services are called from Microsoft &lt;a href="http://ASP.NET"&gt;ASP.NET&lt;/a&gt; AJAX applications. The &lt;span class="code"&gt;&amp;lt;jsonSerialization&amp;gt;&lt;/span&gt; element is used to specify custom type converters and to override default settings for JSON serialization. The &amp;lt;converters&amp;gt; element&amp;nbsp;specifies custom type converters. The &amp;lt;authenticationService&amp;gt; element is&amp;nbsp;used to enable or disable the authentication service. The &amp;lt;profileService&amp;gt; element is&amp;nbsp;used to enable or disable the profile service and to specify which properties are exposed by the service. The &amp;lt;scriptResourceHandler&amp;gt; element is used to enable or disable caching and compression of resources used with scripts.&lt;/p&gt;   &lt;p&gt;The &amp;lt;scriptResourceHandler&amp;gt; element, &amp;lt;authenticationService&amp;gt; element, and &amp;lt;profileService&amp;gt; element can be defined only in the Machine.config file or in the Web.config file in the application root directory. The &amp;lt;jsonSerialization&amp;gt; element can be defined in the Machine.config file, in the Web.config file in the application root directory, or in a Web.config file in a subfolder of the Web site.&lt;/p&gt;   &lt;p&gt;The following example shows the &amp;lt;system.web.extensions&amp;gt; element for &lt;a href="http://ASP.NET"&gt;ASP.NET&lt;/a&gt; AJAX. Add this section and its subsections to the existing Web.config file as a child of the &amp;lt;configuration&amp;gt; element.&lt;/p&gt;   &lt;div class="code"&gt;     &lt;pre&gt;&amp;lt;system.web.extensions&amp;gt;&lt;br&gt;  &amp;lt;scripting&amp;gt;&lt;br&gt;    &amp;lt;webServices&amp;gt;&lt;br&gt;    &amp;lt;!-- Uncomment this line to customize maxJsonLength and add a &lt;br&gt;         custom converter --&amp;gt;&lt;br&gt;      &amp;lt;!--&lt;br&gt;      &amp;lt;jsonSerialization maxJsonLength=&amp;quot;500&amp;quot;&amp;gt;&lt;br&gt;         &amp;lt;converters&amp;gt;&lt;br&gt;          &amp;lt;add name=&amp;quot;ConvertMe&amp;quot; &lt;br&gt;             type=&amp;quot;Acme.SubAcme.ConvertMeTypeConverter&amp;quot;/&amp;gt;&lt;br&gt;        &amp;lt;/converters&amp;gt;&lt;br&gt;      &amp;lt;/jsonSerialization&amp;gt;&lt;br&gt;      --&amp;gt;&lt;br&gt;       &amp;lt;!-- Uncomment this line to enable the authentication service. &lt;br&gt;           Include requireSSL=&amp;quot;true&amp;quot; if appropriate. --&amp;gt;&lt;br&gt;      &amp;lt;!--&lt;br&gt;      &amp;lt;authenticationService enabled=&amp;quot;true&amp;quot; requireSSL = &amp;quot;true|false&amp;quot;/&amp;gt;&lt;br&gt;       --&amp;gt;&lt;br&gt;&lt;br&gt;      &amp;lt;!-- Uncomment these lines to enable the profile service. To &lt;br&gt;           allow profile properties to be retrieved&lt;br&gt;           and modified in &lt;a href="http://ASP.NET"&gt;ASP.NET&lt;/a&gt; AJAX applications, you need to add &lt;br&gt;            each property name to the readAccessProperties and&lt;br&gt;           writeAccessProperties attributes. --&amp;gt;&lt;br&gt;      &amp;lt;!--&lt;br&gt;      &amp;lt;profileService enabled=&amp;quot;true&amp;quot;&lt;br&gt;        readAccessProperties=&amp;quot;propertyname1,propertyname2&amp;quot;&lt;br&gt;         writeAccessProperties=&amp;quot;propertyname1,propertyname2&amp;quot; /&amp;gt;&lt;br&gt;      --&amp;gt;&lt;br&gt;    &amp;lt;/webServices&amp;gt;&lt;br&gt;    &amp;lt;!-- &lt;br&gt;    &amp;lt;scriptResourceHandler enableCompression=&amp;quot;true&amp;quot; &lt;br&gt;        enableCaching=&amp;quot;true&amp;quot; /&amp;gt;&lt;br&gt;     --&amp;gt;&lt;br&gt;  &amp;lt;/scripting&amp;gt;&lt;br&gt;&amp;lt;/system.web.extensions&amp;gt;&lt;br&gt;&lt;/pre&gt;   &lt;/div&gt;   &lt;h2 class="subsectionTitle"&gt;     &lt;a name="systemwebserver"&gt;The &amp;lt;system.webserver&amp;gt; Element&lt;/a&gt;   &lt;/h2&gt;   &lt;p&gt;The &amp;lt;system.webserver&amp;gt; element contains configuration settings used by Microsoft Internet Information Server (IIS) 7.0.&lt;/p&gt;   &lt;p&gt;The following example shows the &amp;lt;system.webserver&amp;gt; element for &lt;a href="http://ASP.NET"&gt;ASP.NET&lt;/a&gt; AJAX. Add this section to the existing Web.config file as a child of the &amp;lt;configuration&amp;gt; element.&lt;/p&gt;   &lt;div class="code"&gt;     &lt;pre&gt;&amp;lt;system.webServer&amp;gt;&lt;br&gt;  &amp;lt;validation validateIntegratedModeConfiguration=&amp;quot;false&amp;quot; /&amp;gt;&lt;br&gt;  &amp;lt;modules&amp;gt;&lt;br&gt;    &amp;lt;add name=&amp;quot;ScriptModule&amp;quot; &lt;br&gt;      preCondition=&amp;quot;integratedMode&amp;quot; &lt;br&gt;       type=&amp;quot;System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35&amp;quot;/&amp;gt;&lt;br&gt;  &amp;lt;/modules&amp;gt;&lt;br&gt;  &amp;lt;handlers&amp;gt;&lt;br&gt;    &amp;lt;remove name=&amp;quot;WebServiceHandlerFactory-ISAPI-2.0&amp;quot;/&amp;gt;&lt;br&gt;     &amp;lt;add name=&amp;quot;ScriptHandlerFactory&amp;quot; verb=&amp;quot;*&amp;quot; path=&amp;quot;*.asmx&amp;quot; &lt;br&gt;      preCondition=&amp;quot;integratedMode&amp;quot;&lt;br&gt;      type=&amp;quot;System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35&amp;quot;/&amp;gt;&lt;br&gt;     &amp;lt;add name=&amp;quot;ScriptHandlerFactoryAppServices&amp;quot; verb=&amp;quot;*&amp;quot; &lt;br&gt;      path=&amp;quot;*_AppService.axd&amp;quot; preCondition=&amp;quot;integratedMode&amp;quot;&lt;br&gt;      type=&amp;quot;System.Web.Script.Services.ScriptHandlerFactory, &lt;br&gt;       System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, &lt;br&gt;      PublicKeyToken=31bf3856ad364e35&amp;quot;/&amp;gt;&lt;br&gt;    &amp;lt;add name=&amp;quot;ScriptResource&amp;quot; preCondition=&amp;quot;integratedMode&amp;quot; &lt;br&gt;      verb=&amp;quot;GET,HEAD&amp;quot; path=&amp;quot;ScriptResource.axd&amp;quot; &lt;br&gt;       type=&amp;quot;System.Web.Handlers.ScriptResourceHandler, &lt;br&gt;      System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, &lt;br&gt;      PublicKeyToken=31bf3856ad364e35&amp;quot; /&amp;gt;&lt;br&gt;  &amp;lt;/handlers&amp;gt;&lt;br&gt;&amp;lt;/system.webServer&amp;gt;&lt;/pre&gt;    &lt;/div&gt;&lt;br&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7402073700401533358-8788826217743491323?l=dotnetframework3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetframework3.blogspot.com/feeds/8788826217743491323/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7402073700401533358&amp;postID=8788826217743491323' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/8788826217743491323'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/8788826217743491323'/><link rel='alternate' type='text/html' href='http://dotnetframework3.blogspot.com/2008/05/configuring-aspnet-ajax.html' title='Configuring ASP.NET AJAX'/><author><name>sudhir</name><uri>http://www.blogger.com/profile/14935355985671801644</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7402073700401533358.post-7902925785949023260</id><published>2008-05-21T23:22:00.001-07:00</published><updated>2008-05-21T23:22:39.079-07:00</updated><title type='text'>Explain ASP.NET AJAX Client Architecture</title><content type='html'>   &lt;p&gt;The &lt;a href="http://ASP.NET"&gt;ASP.NET&lt;/a&gt; AJAX&amp;nbsp;client-script libraries consist of JavaScript (.js) files that provide features for object-oriented development. The object-oriented features included in the&amp;nbsp;&lt;a href="http://ASP.NET"&gt;ASP.NET&lt;/a&gt; AJAX client-script libraries enable a high level of consistency and modularity in client scripting. The following layers are included in the&amp;nbsp;&lt;a href="http://ASP.NET"&gt;ASP.NET&lt;/a&gt; AJAX&amp;nbsp;script libraries:&lt;/p&gt;   &lt;ul&gt;&lt;li&gt;       &lt;p&gt;A browser compatibility layer. This provides compatibility across the most frequently used browsers (including Microsoft Internet Explorer, Mozilla Firefox, and Apple Safari) for your &lt;a href="http://ASP.NET"&gt;ASP.NET&lt;/a&gt; AJAX&amp;nbsp;scripts. &lt;/p&gt;     &lt;/li&gt;&lt;li&gt;       &lt;p&gt;&lt;a href="http://ASP.NET"&gt;ASP.NET&lt;/a&gt; AJAX&amp;nbsp;core services, which include extensions to JavaScript, such as classes, namespaces, event handling, inheritance, data types, and object serialization. &lt;/p&gt;     &lt;/li&gt;&lt;li&gt;       &lt;p&gt;An &lt;a href="http://ASP.NET"&gt;ASP.NET&lt;/a&gt; AJAX&amp;nbsp;base class library, which includes components such as string builders and extended error handling.&lt;/p&gt;     &lt;/li&gt;&lt;li&gt;       &lt;p&gt;A networking layer that handles communication with Web-based services and applications, and that manages asynchronous remote method calls.&lt;/p&gt;     &lt;/li&gt;&lt;li&gt;       &lt;p&gt;Support for JavaScript libraries that are either embedded in an assembly or are provided as standalone JavaScript (.js) files. Embedding JavaScript libraries in an assembly can make it easier to deploy applications and can solve versioning issues.&lt;/p&gt;     &lt;/li&gt;&lt;li&gt;       &lt;p&gt;Support for accessing server-based forms authentication and profile information in client script. This support is also available to Web applications that are not created by using &lt;a href="http://ASP.NET"&gt;ASP.NET&lt;/a&gt;, as long as the application has access to the Microsoft AJAX Library.&lt;/p&gt;     &lt;/li&gt;&lt;li&gt;       &lt;p&gt;Support for release and debug modes and localization support for both assembly-embedded and standalone JavaScript files&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7402073700401533358-7902925785949023260?l=dotnetframework3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetframework3.blogspot.com/feeds/7902925785949023260/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7402073700401533358&amp;postID=7902925785949023260' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/7902925785949023260'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/7902925785949023260'/><link rel='alternate' type='text/html' href='http://dotnetframework3.blogspot.com/2008/05/explain-aspnet-ajax-client-architecture.html' title='Explain ASP.NET AJAX Client Architecture'/><author><name>sudhir</name><uri>http://www.blogger.com/profile/14935355985671801644</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7402073700401533358.post-4861535671120240573</id><published>2008-05-21T23:21:00.001-07:00</published><updated>2008-05-21T23:21:41.900-07:00</updated><title type='text'>What are ASP.NET AJAX Server Controls?</title><content type='html'>&lt;p&gt;The &lt;a href="http://ASP.NET"&gt;ASP.NET&lt;/a&gt; AJAX&amp;nbsp;server controls consist of server and client code that integrate to produce AJAX-like behavior. The following list describes the most frequently used &lt;a href="http://ASP.NET"&gt;ASP.NET&lt;/a&gt; AJAX&amp;nbsp;server controls.&lt;/p&gt;   &lt;dl&gt;&lt;dt&gt;       &lt;b&gt;ScriptManager&lt;/b&gt;     &lt;/dt&gt;&lt;dd&gt;       &lt;p&gt;Manages script resources for client components, partial-page rendering, localization, globalization, and custom user scripts. The ScriptManager control is required in order to use the UpdatePanel, UpdateProgress, and Timer controls.&lt;/p&gt;     &lt;/dd&gt;&lt;dt&gt;       &lt;b&gt;UpdatePanel&lt;/b&gt;     &lt;/dt&gt;&lt;dd&gt;       &lt;p&gt;Enables you to refresh selected parts of the page, instead of refreshing the whole page by using a synchronous postback.&lt;/p&gt;     &lt;/dd&gt;&lt;dt&gt;       &lt;b&gt;UpdateProgress&lt;/b&gt;     &lt;/dt&gt;&lt;dd&gt;       &lt;p&gt;Provides status information about partial-page updates in UpdatePanel controls.&lt;/p&gt;     &lt;/dd&gt;&lt;dt&gt;       &lt;b&gt;Timer&lt;/b&gt;     &lt;/dt&gt;&lt;dd&gt;       &lt;p&gt;Performs postbacks at defined intervals. You can use the Timer control to post the whole page, or use it together with the UpdatePanel control to perform partial-page updates at a defined interval.&lt;/p&gt;     &lt;/dd&gt;&lt;/dl&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7402073700401533358-4861535671120240573?l=dotnetframework3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetframework3.blogspot.com/feeds/4861535671120240573/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7402073700401533358&amp;postID=4861535671120240573' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/4861535671120240573'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/4861535671120240573'/><link rel='alternate' type='text/html' href='http://dotnetframework3.blogspot.com/2008/05/what-are-aspnet-ajax-server-controls.html' title='What are ASP.NET AJAX Server Controls?'/><author><name>sudhir</name><uri>http://www.blogger.com/profile/14935355985671801644</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7402073700401533358.post-5088643562969045130</id><published>2008-05-21T23:19:00.001-07:00</published><updated>2008-05-21T23:19:52.954-07:00</updated><title type='text'>Why Use ASP.NET AJAX?</title><content type='html'>&lt;div class="gmail_quote"&gt;&lt;a href="http://ASP.NET" target="_blank"&gt;ASP.NET&lt;/a&gt; AJAX enables you to build rich Web applications that have many advantages over Web applications that are completely server-based. &lt;a href="http://ASP.NET" target="_blank"&gt;ASP.NET&lt;/a&gt; AJAX applications offer:   &lt;ul&gt;&lt;li&gt;       &lt;p&gt;Improved efficiency by performing significant parts of a Web page&amp;#39;s processing in the browser.&lt;/p&gt;     &lt;/li&gt;&lt;li&gt;       &lt;p&gt;Familiar UI elements such as progress indicators, tooltips, and pop-up windows.&lt;/p&gt;     &lt;/li&gt;&lt;li&gt;       &lt;p&gt;Partial-page updates that refresh only the parts of the Web page that have changed.&lt;/p&gt;     &lt;/li&gt;&lt;li&gt;       &lt;p&gt;Client integration with &lt;a href="http://ASP.NET" target="_blank"&gt;ASP.NET&lt;/a&gt; application services for forms authentication and user profiles.&lt;/p&gt;     &lt;/li&gt;&lt;li&gt;       &lt;p&gt;Integration of data from different sources through calls to Web services.&lt;/p&gt;     &lt;/li&gt;&lt;li&gt;       &lt;p&gt;A framework that simplifies customization of server controls to include client capabilities.&lt;/p&gt;     &lt;/li&gt;&lt;li&gt;       &lt;p&gt;Support for the most popular and generally used browsers, which includes Microsoft Internet Explorer, Mozilla Firefox, and Apple Safari.&lt;/p&gt;     &lt;/li&gt;&lt;/ul&gt; &lt;/div&gt;&lt;br&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7402073700401533358-5088643562969045130?l=dotnetframework3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetframework3.blogspot.com/feeds/5088643562969045130/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7402073700401533358&amp;postID=5088643562969045130' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/5088643562969045130'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/5088643562969045130'/><link rel='alternate' type='text/html' href='http://dotnetframework3.blogspot.com/2008/05/why-use-aspnet-ajax.html' title='Why Use ASP.NET AJAX?'/><author><name>sudhir</name><uri>http://www.blogger.com/profile/14935355985671801644</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7402073700401533358.post-1504492898813150686</id><published>2007-06-10T23:55:00.001-07:00</published><updated>2007-06-11T00:00:43.280-07:00</updated><title type='text'>Introduction to the .NET Framework 3.0 (Google Video)</title><content type='html'>&lt;embed style="width:400px; height:326px;" id="VideoPlayback" type="application/x-shockwave-flash" src="http://video.google.com/googleplayer.swf?docId=3234718913985023562&amp;hl=en" flashvars=""&gt; &lt;/embed&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7402073700401533358-1504492898813150686?l=dotnetframework3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetframework3.blogspot.com/feeds/1504492898813150686/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7402073700401533358&amp;postID=1504492898813150686' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/1504492898813150686'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/1504492898813150686'/><link rel='alternate' type='text/html' href='http://dotnetframework3.blogspot.com/2007/06/introduction-to-net-framework-30-google.html' title='Introduction to the .NET Framework 3.0 (Google Video)'/><author><name>sudhir</name><uri>http://www.blogger.com/profile/14935355985671801644</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7402073700401533358.post-4731208361510515769</id><published>2007-04-26T07:59:00.002-07:00</published><updated>2007-04-26T08:00:27.403-07:00</updated><title type='text'>What Improvements does WCF offers over its earlier counterparts?</title><content type='html'>A lot of communication approaches exist in the .NET Framework 2.0 such as ASP.NET Web Services, .NET Remoting, System.Messaging supporting queued messaging through MSMQ, Web Services Enhancements (WSE) - an extension to ASP.NET Web Services that supports WS-Security etc. However, instead of requiring developers to use a different technology with a different application programming interface for each kind of communication, WCF provides a common approach and API.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7402073700401533358-4731208361510515769?l=dotnetframework3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetframework3.blogspot.com/feeds/4731208361510515769/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7402073700401533358&amp;postID=4731208361510515769' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/4731208361510515769'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/4731208361510515769'/><link rel='alternate' type='text/html' href='http://dotnetframework3.blogspot.com/2007/04/what-improvements-does-wcf-offers-over.html' title='What Improvements does WCF offers over its earlier counterparts?'/><author><name>sudhir</name><uri>http://www.blogger.com/profile/14935355985671801644</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7402073700401533358.post-5851405555516796242</id><published>2007-04-26T07:59:00.001-07:00</published><updated>2007-04-26T07:59:36.653-07:00</updated><title type='text'>What are WCF features and what communication problems it solves?</title><content type='html'>WCF provides strong support for interoperable communication through SOAP. This includes support for several specifications, including WS-Security, WS-ReliableMessaging, and WS-AtomicTransaction. WCF doesn't itself require SOAP, so other approaches can also be used, including optimized binary protocol and queued messaging using MSMQ. WCF also takes an explicit service-oriented approach to communication, and loosens some of the tight couplings that can exist in distributed object systems, making interaction less error-prone and easier to change. Thus, WCF addresses a range of communication problems for applications. Three of its most important aspects that clearly stand out are: &lt;br /&gt;&lt;br /&gt;Unification of Microsoft's communication technologies. &lt;br /&gt;Support for cross-vendor interoperability, including reliability, security, and transactions. &lt;br /&gt;Rich support for service orientation development.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7402073700401533358-5851405555516796242?l=dotnetframework3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetframework3.blogspot.com/feeds/5851405555516796242/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7402073700401533358&amp;postID=5851405555516796242' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/5851405555516796242'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/5851405555516796242'/><link rel='alternate' type='text/html' href='http://dotnetframework3.blogspot.com/2007/04/what-are-wcf-features-and-what.html' title='What are WCF features and what communication problems it solves?'/><author><name>sudhir</name><uri>http://www.blogger.com/profile/14935355985671801644</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7402073700401533358.post-856864959656937270</id><published>2007-04-26T07:58:00.004-07:00</published><updated>2007-04-26T07:59:09.539-07:00</updated><title type='text'>What contemporary computing problems WCS solves?</title><content type='html'>WCS provides an entirely new approach to managing digital identities. It helps people keep track of their digital identities as distinct information cards. If a Web site accepts WCS logins, users attempting to log in to that site will see a WCS selection. By choosing a card, users also choose a digital identity that will be used to access this site. Rather than remembering a plethora of usernames and passwords, users need only recognize the card they wish to use. The identities represented by these cards are created by one or more identity providers. These identities will typically use stronger cryptographic mechanisms to allow users to prove their identity. With this provider, users can create their own identities that don't rely on passwords for authentication.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7402073700401533358-856864959656937270?l=dotnetframework3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetframework3.blogspot.com/feeds/856864959656937270/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7402073700401533358&amp;postID=856864959656937270' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/856864959656937270'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/856864959656937270'/><link rel='alternate' type='text/html' href='http://dotnetframework3.blogspot.com/2007/04/what-contemporary-computing-problems_26.html' title='What contemporary computing problems WCS solves?'/><author><name>sudhir</name><uri>http://www.blogger.com/profile/14935355985671801644</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7402073700401533358.post-1835395387201172860</id><published>2007-04-26T07:58:00.003-07:00</published><updated>2007-04-26T07:58:45.336-07:00</updated><title type='text'>What contemporary computing problems WPF solves?</title><content type='html'>User interfaces needs to display video, run animations, use 2/3D graphics, and work with different document formats. So far, all of these aspects of the user interface have been provided in different ways on Windows. For example, a developer needs to use Windows Forms to build a Windows GUI, or HTML/ASPX/Applets/JavaScript etc. to build a web interface, Windows Media Player or software such as Adobe's Flash Player for displaying video etc. The challenge for developers is to build a coherent user interface for different kinds of clients using diverse technologies isn't a simple job. &lt;br /&gt;&lt;br /&gt;A primary goal of WPF  is to address this challenge! By offering a consistent platform for these entire user interface aspects, WPF makes life simpler for developers. By providing a common foundation for desktop clients and browser clients, WPF makes it easier to build applications.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7402073700401533358-1835395387201172860?l=dotnetframework3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetframework3.blogspot.com/feeds/1835395387201172860/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7402073700401533358&amp;postID=1835395387201172860' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/1835395387201172860'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/1835395387201172860'/><link rel='alternate' type='text/html' href='http://dotnetframework3.blogspot.com/2007/04/what-contemporary-computing-problems.html' title='What contemporary computing problems WPF solves?'/><author><name>sudhir</name><uri>http://www.blogger.com/profile/14935355985671801644</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7402073700401533358.post-759464084092323445</id><published>2007-04-26T07:58:00.001-07:00</published><updated>2007-04-26T07:58:21.192-07:00</updated><title type='text'>What is XAML ?</title><content type='html'>WPF relies on the eXtensible Application Markup Language (XAML). An XML-based language, XAML allows specifying a user interface declaratively rather than in code. This makes it much easier for user interface design tools like MS Expression Blend to generate and work with an interface specification based on the visual representation created by a designer. Designers will be able to use such tools to create the look of an interface and then have a XAML definition of that interface generated for them. The developer imports this definition into Visual Studio, then creates the logic the interface requires.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7402073700401533358-759464084092323445?l=dotnetframework3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetframework3.blogspot.com/feeds/759464084092323445/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7402073700401533358&amp;postID=759464084092323445' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/759464084092323445'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/759464084092323445'/><link rel='alternate' type='text/html' href='http://dotnetframework3.blogspot.com/2007/04/what-is-xaml.html' title='What is XAML ?'/><author><name>sudhir</name><uri>http://www.blogger.com/profile/14935355985671801644</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7402073700401533358.post-3347909487968785351</id><published>2007-04-26T07:57:00.003-07:00</published><updated>2007-04-26T07:57:59.837-07:00</updated><title type='text'>What is XBAP?</title><content type='html'>XAML browser application (XBAP) can be used to create a remote client that runs inside a Web browser. Built on the same foundation as a stand-alone WPF application, an XBAP allows presenting the same style of user interface within a downloadable browser application. The best part is that the same code can potentially be used for both kinds of applications, which means that developers no longer need different skill sets for desktop and browser clients. The downloaded XBAP from the Internet runs in a secure sandbox (like Java applets), and thus it limits what the downloaded application can do.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7402073700401533358-3347909487968785351?l=dotnetframework3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetframework3.blogspot.com/feeds/3347909487968785351/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7402073700401533358&amp;postID=3347909487968785351' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/3347909487968785351'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/3347909487968785351'/><link rel='alternate' type='text/html' href='http://dotnetframework3.blogspot.com/2007/04/what-is-xbap.html' title='What is XBAP?'/><author><name>sudhir</name><uri>http://www.blogger.com/profile/14935355985671801644</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7402073700401533358.post-4442378013677251727</id><published>2007-04-26T07:57:00.001-07:00</published><updated>2007-04-26T07:57:37.841-07:00</updated><title type='text'>What is a service contract ( In WCF) ?</title><content type='html'>In every service oriented architecture, services share schemas and contracts, not classes and types. What this means is that you don't share class definitions neither any implementation details about your service to consumers. &lt;br /&gt;&lt;br /&gt;Everything your consumer has to know is your service interface, and how to talk to it. In order to know this, both parts (service and consumer) have to share something that is called a Contract.   &lt;br /&gt;&lt;br /&gt;In WCF, there are 3 kinds of contracts: Service Contract, Data Contract and Message Contract. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;A Service Contract describes what the service can do. It defines some properties about the service, and a set of actions called Operation Contracts. Operation Contracts are equivalent to web methods in ASMX technology&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7402073700401533358-4442378013677251727?l=dotnetframework3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetframework3.blogspot.com/feeds/4442378013677251727/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7402073700401533358&amp;postID=4442378013677251727' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/4442378013677251727'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/4442378013677251727'/><link rel='alternate' type='text/html' href='http://dotnetframework3.blogspot.com/2007/04/what-is-service-contract-in-wcf.html' title='What is a service contract ( In WCF) ?'/><author><name>sudhir</name><uri>http://www.blogger.com/profile/14935355985671801644</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7402073700401533358.post-920192520699883123</id><published>2007-04-26T07:56:00.004-07:00</published><updated>2007-04-26T07:57:10.791-07:00</updated><title type='text'>In terms of WCF, What is a message?</title><content type='html'>A message is a self-contained unit of data that may consist of several parts, including a body and headers.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7402073700401533358-920192520699883123?l=dotnetframework3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetframework3.blogspot.com/feeds/920192520699883123/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7402073700401533358&amp;postID=920192520699883123' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/920192520699883123'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/920192520699883123'/><link rel='alternate' type='text/html' href='http://dotnetframework3.blogspot.com/2007/04/in-terms-of-wcf-what-is-message.html' title='In terms of WCF, What is a message?'/><author><name>sudhir</name><uri>http://www.blogger.com/profile/14935355985671801644</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7402073700401533358.post-2329554957957618561</id><published>2007-04-26T07:56:00.003-07:00</published><updated>2007-04-26T07:56:50.113-07:00</updated><title type='text'>In terms of WCF, What is a service?</title><content type='html'>A service is a construct that exposes one or more endpoints, with each endpoint exposing one or more service operations.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7402073700401533358-2329554957957618561?l=dotnetframework3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetframework3.blogspot.com/feeds/2329554957957618561/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7402073700401533358&amp;postID=2329554957957618561' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/2329554957957618561'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/2329554957957618561'/><link rel='alternate' type='text/html' href='http://dotnetframework3.blogspot.com/2007/04/in-terms-of-wcf-what-is-service.html' title='In terms of WCF, What is a service?'/><author><name>sudhir</name><uri>http://www.blogger.com/profile/14935355985671801644</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7402073700401533358.post-4866250152565166051</id><published>2007-04-26T07:56:00.001-07:00</published><updated>2007-04-26T07:56:26.483-07:00</updated><title type='text'>In terms of WCF, What is an endpoint?</title><content type='html'>An endpoint is a construct at which messages are sent or received (or both). It comprises a location (an address) that defines where messages can be sent, a specification of the communication mechanism (a binding) that described how messages should be sent, and a definition for a set of messages that can be sent or received (or both) at that location (a service contract) that describes what message can be sent. &lt;br /&gt;&lt;br /&gt;An WCF service is exposed to the world as a collection of endpoints.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7402073700401533358-4866250152565166051?l=dotnetframework3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetframework3.blogspot.com/feeds/4866250152565166051/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7402073700401533358&amp;postID=4866250152565166051' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/4866250152565166051'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/4866250152565166051'/><link rel='alternate' type='text/html' href='http://dotnetframework3.blogspot.com/2007/04/in-terms-of-wcf-what-is-endpoint.html' title='In terms of WCF, What is an endpoint?'/><author><name>sudhir</name><uri>http://www.blogger.com/profile/14935355985671801644</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7402073700401533358.post-7636387830554409544</id><published>2007-04-26T07:55:00.000-07:00</published><updated>2007-04-26T07:56:02.171-07:00</updated><title type='text'>In terms of WCF, What is an application endpoint?</title><content type='html'>An endpoint exposed by the application and that corresponds to a service contract implemented by the application.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7402073700401533358-7636387830554409544?l=dotnetframework3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetframework3.blogspot.com/feeds/7636387830554409544/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7402073700401533358&amp;postID=7636387830554409544' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/7636387830554409544'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/7636387830554409544'/><link rel='alternate' type='text/html' href='http://dotnetframework3.blogspot.com/2007/04/in-terms-of-wcf-what-is-application.html' title='In terms of WCF, What is an application endpoint?'/><author><name>sudhir</name><uri>http://www.blogger.com/profile/14935355985671801644</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7402073700401533358.post-6805401150329991878</id><published>2007-04-26T07:54:00.002-07:00</published><updated>2007-04-26T07:55:36.173-07:00</updated><title type='text'>In terms of WCF, What is an infrastructure endpoint?</title><content type='html'>An endpoint that is exposed by the infrastructure to facilitate functionality that is needed or provided by the service that does not relate to a service contract. For example, a service might have an infrastructure endpoint that provides metadata information.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7402073700401533358-6805401150329991878?l=dotnetframework3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetframework3.blogspot.com/feeds/6805401150329991878/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7402073700401533358&amp;postID=6805401150329991878' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/6805401150329991878'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/6805401150329991878'/><link rel='alternate' type='text/html' href='http://dotnetframework3.blogspot.com/2007/04/in-terms-of-wcf-what-is-infrastructure.html' title='In terms of WCF, What is an infrastructure endpoint?'/><author><name>sudhir</name><uri>http://www.blogger.com/profile/14935355985671801644</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7402073700401533358.post-2016875960350633982</id><published>2007-04-26T07:54:00.001-07:00</published><updated>2007-04-26T07:54:45.760-07:00</updated><title type='text'>In terms of WCF, What is an address?</title><content type='html'>An address specifies the location where messages are received. It is specified as a Uniform Resource Identifier (URI). The schema part of the URI names the transport mechanism to be used to reach the address, such as "HTTP" and "TCP", and the hierarchical part of the URI contains a unique location whose format is dependent on the transport mechanism.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7402073700401533358-2016875960350633982?l=dotnetframework3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetframework3.blogspot.com/feeds/2016875960350633982/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7402073700401533358&amp;postID=2016875960350633982' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/2016875960350633982'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/2016875960350633982'/><link rel='alternate' type='text/html' href='http://dotnetframework3.blogspot.com/2007/04/in-terms-of-wcf-what-is-address_26.html' title='In terms of WCF, What is an address?'/><author><name>sudhir</name><uri>http://www.blogger.com/profile/14935355985671801644</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7402073700401533358.post-652957072454952564</id><published>2007-04-26T07:48:00.001-07:00</published><updated>2007-04-26T07:48:21.204-07:00</updated><title type='text'>In terms of WCF, What is an address?</title><content type='html'>An address specifies the location where messages are received. It is specified as a Uniform Resource Identifier (URI). The schema part of the URI names the transport mechanism to be used to reach the address, such as "HTTP" and "TCP", and the hierarchical part of the URI contains a unique location whose format is dependent on the transport mechanism.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7402073700401533358-652957072454952564?l=dotnetframework3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetframework3.blogspot.com/feeds/652957072454952564/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7402073700401533358&amp;postID=652957072454952564' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/652957072454952564'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/652957072454952564'/><link rel='alternate' type='text/html' href='http://dotnetframework3.blogspot.com/2007/04/in-terms-of-wcf-what-is-address.html' title='In terms of WCF, What is an address?'/><author><name>sudhir</name><uri>http://www.blogger.com/profile/14935355985671801644</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7402073700401533358.post-2917829875771366348</id><published>2007-04-26T07:47:00.003-07:00</published><updated>2007-04-26T07:47:54.513-07:00</updated><title type='text'>In terms of WCF, What is binding?</title><content type='html'>A binding defines how an endpoint communicates to the world. It is constructed of a set of components called binding elements that "stack" one on top of the other to create the communication infrastructure. At the very least, a binding defines the transport (such as HTTP or TCP) and the encoding being used (such as text or binary). A binding can contain binding elements that specify details like the security mechanisms used to secure messages, or the message pattern used by an endpoint.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7402073700401533358-2917829875771366348?l=dotnetframework3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetframework3.blogspot.com/feeds/2917829875771366348/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7402073700401533358&amp;postID=2917829875771366348' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/2917829875771366348'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/2917829875771366348'/><link rel='alternate' type='text/html' href='http://dotnetframework3.blogspot.com/2007/04/in-terms-of-wcf-what-is-binding.html' title='In terms of WCF, What is binding?'/><author><name>sudhir</name><uri>http://www.blogger.com/profile/14935355985671801644</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7402073700401533358.post-4276695720449883133</id><published>2007-04-26T07:47:00.001-07:00</published><updated>2007-04-26T07:47:29.530-07:00</updated><title type='text'>What is an operation contract?</title><content type='html'>An operation contract defines the parameters and return type of an operation. When creating an interface that defines the service contract, you signify an operation contract by applying the OperationContractAttribute attribute to each method definition that is part of the contract. The operations can be modeled as taking a single message and returning a single message, or as taking a set of types and returning a type. In the latter case, the system will determine the format for the messages that need to be exchanged for that operation.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7402073700401533358-4276695720449883133?l=dotnetframework3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetframework3.blogspot.com/feeds/4276695720449883133/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7402073700401533358&amp;postID=4276695720449883133' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/4276695720449883133'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/4276695720449883133'/><link rel='alternate' type='text/html' href='http://dotnetframework3.blogspot.com/2007/04/what-is-operation-contract.html' title='What is an operation contract?'/><author><name>sudhir</name><uri>http://www.blogger.com/profile/14935355985671801644</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7402073700401533358.post-8008641407528049112</id><published>2007-04-26T07:45:00.002-07:00</published><updated>2007-04-26T07:47:04.097-07:00</updated><title type='text'>What is a message contract?</title><content type='html'>A message contact describes the format of a message. For example, it declares whether message elements should go in headers versus the body, what level of security should be applied to what elements of the message, and so on.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7402073700401533358-8008641407528049112?l=dotnetframework3.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetframework3.blogspot.com/feeds/8008641407528049112/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7402073700401533358&amp;postID=8008641407528049112' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/8008641407528049112'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7402073700401533358/posts/default/8008641407528049112'/><link rel='alternate' type='text/html' href='http://dotnetframework3.blogspot.com/2007/04/what-is-message-contract.html' title='What is a message contract?'/><author><name>sudhir</name><uri>http://www.blogger.com/profile/14935355985671801644</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
